
    =	f|A                        d dl Z d dlZd dlZddl ddlmZmZmZmZm	Z	 d dl
mZ d dlmZ ddlmZ 	 d dlmZ dZd
ZdZdZ ej6                  dej8                        Z ej6                  dej<                        Z ej6                  d      Z  ej6                  dejB                        Z" ej6                  dejB                        Z# ej6                  dejB                        Z$ ej6                  dejB                        Z%i Z&da' G d d      Z(d Z)d Z*ddZ+d Z,de-e.ddfdZ/y# e$ r"Zej+                  e       dd	lmZ Y dZ[dZ[ww xY w)    N   )*)utilstuipasswordos_utilssmart_install)cups)core_install)to_string_utf8)import_module)dyn_import_mod         zv(.*):/(.*?)/(\S*?)\?(?:serial=(\S*)|device=(\S*)|ip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^&]*)|zc=(\S+))(?:&port=(\d))?z\*NickName:\s*\"(.*)"z$(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})zzc=(.*)z(.*)://(.*)zserial=(.*)z(\S*)(\s)?: (.*)Fc                       e Zd ZddZy)DetectedDevicec                 X    || _         || _        || _        || _        || _        || _        y )N)PrinterName	DeviceURI
DeviceTypePPDFileTypePPDFileError	IsEnabled)selfPrinter_Name
Device_URIDevice_TypeppdTyper   r   s          /usr/share/hplip/base/queues.py__init__zDetectedDevice.__init__?   s/    &#%"("    N)FT)__name__
__module____qualname__r!    r"   r    r   r   >   s    #r"   r   c                     |d k7  r>t        ||||||      }| t        v rt        |    j                  |       y |g}|t        | <   y t        j	                  d|z         y )Nz%s is not HP Device.)r   mapofDevicesappendlogwarn)	Keyprinter_name
device_uriback_endppd_fileTyper   Is_Print_Q_Enableddevice1
deviceLists	            r    addToDeviceListr4   M   s^    tj<P\^pq,$$W-yJ(L',78r"   c                    t        t        j                  ddd            }t        t        j                  ddd            }t        j                  d      \  }}d}g }|j                  d      dk7  s|j                  d	      dk7  rt        j                  d
       n`|j                         D ]M  }	 t        j                  |      }|j                  d      }	|j                  d      }
|j                  |	|
f       O t        j                  |       t        j                  d||fz         |r8|D ]2  }|\  }	}
|
j                  d      r|
j                  d      r-t        j                  t        j!                  |	             t        j                  t        j!                  dt#        |	      z               	 t%        |
      \	  }}}}}}}}}t        j                  d|
z         t(        j*                  j-                  d|	dz         }d }d}t(        j*                  j/                  |      s.t        j1                  d|z         t3        t4        |	|
|||d       nt        j                  d|z         	 t7        |d      j9                         }	 t;        t<        j                  |j?                  d            j                  d            }t        j                  d|z         d |	z  }t        j                  |      \  }}t        j                  d!|jK                  d"d      z         tL        j                  |
      r&tL        j                  |
      j                  d      }ntN        j                  |
      r%tN        j                  |
      j                  d      }ntP        j                  |
      r%tP        j                  |
      j                  d      }ntR        j                  |
      rjtR        j                  |
      j                  d      }tR        j                  |
      j                  d      }d|v r|}n5t        j                  d#|
z         d }nt        j                  d#|
z         d }|Dd}|j                  d$      dk7  rd}|d%z   |z   }t        j                  d&|||||||||||fz         d}|d'k(  rd(|vrt        jC                  d)|	z         d}n@|d*k(  rd(|v rt        jC                  d+|	z         d}n|d,vrt        jC                  d-|	z         d }d.|v rtT        }|s'd}n$d/|v rtV        }|sd}nd0|v rtX        }n
|rt4        }d}t3        ||	|
||||       5 t        j                  d       tH        |fS # t        $ r Y w xY w# t&        $ r d\	  }}}}}}}}}d|
v rd}Y w xY w# t        $ r d}Y w xY w# t@        $ r t        jC                  d|z         t)        jD                  |t(        jF                        rt        j                  d|z         n&t        jC                  d|z         d}tH        |fcY c S d}Y w xY w)1N	configurezhpcups-install0zhpijs-installz	lpstat -vTzNo destinations addedzlpstat:zNo Queue addedr   r   z.HPCups installation=%d  HPIJS installation =%dz
cups-pdf:/zipp:/-)	 Fr:   r:   r:   r:   r:   r:   r   HPzDevice URI: %sz/etc/cups/ppdz.ppdFzPPD %s file not foundzPPD: %srbzutf-8r:   zFail to read ppd=%s filezFile %s has read permissionsz)Insufficient permission to access file %szPPD Description: %szlpstat -p%szPrinter status: %s
zunknown protocol device_uri=%sPaused_zyKey'%s': deviceType '%s' is_hp '%s' bus '%s' model '%s' serial '%s' dev_file '%s' host '%s' zc '%s' port '%s' Enabled'%d'hpfaxzHP FaxzMIncorrect PPD file for fax queue '%s'. Fax queue must use 'HP-Fax-hplip.ppd'.hpzUIncorrect PPD file for print queue '%s'. Print queue must not use 'HP-Fax-hplip.ppd'.)rA   r@   zYDevice %s is not HPLIP installed. Device must use the hp: or hpfax: to function in HPLIP.hpcupshpijs
Postscript)-to_boolsys_confgetr   runfindr*   info
splitlinesLPSTAT_PATTERNsearchgroupr)   AttributeErrordebug
startswithboldlenparseDeviceURIErrorospathjoinexistserrorr4   HPOTHERopenreadr   NICKNAME_PATTERNdecodeIOErrorr+   accessR_OKr(   replaceUSB_PATTERNNET_PATTERNNET_ZC_PATTERNNET_OTHER_PATTERNHPCUPSHPIJSHPPS)modeis_hpcups_installedis_hpijs_installedstoutputstatuscups_printerspmatchr-   r.   r/   is_hpbusmodelserialdev_filehostzcportppd_filer0   r   fileptrdesccmdr,   part_1part_2r1   s                                 r    parseQueuesr   Y   s   !(,,{<Lc"RS k?C!PQ;'JBFM{{*+r1V[[5Kr5Q!"""$ 	A&--a0${{1~"[[^
$$lJ%?@	 IImII>ATVh@iij f	wA'($L*$$\2$$W-IIchh|,-IIchhs3|#4456!P^_iPjM%eVXtR II&34ww||O\F5JKHL L77>>(+		1H<=j<Yegkl		)h./x.335)+;+B+B7>>RYCZ+[+a+abc+dfD II+d23-C3JBII*V^^D"-EEF !!*- ''
399!<##J/!((4::1=&&z2$++J7==a@"))*5*11*=CCAF*11*=CCAF6> CHH=zIJC9:EF$(";;x(R/(-&GH$		  V.1(E3vW_aegiko  qC  -DD E  %w&x4/?HHlo{{|#'L%(d*:HHt  xD  D  E#'L_4HHx  {G  G  H#t##)L.'+_#(L-'+!T)"&L")L#'L\:hUacuvMf	wN HHRL] " &  !PtM%eVXtR:% E!8 & D  3H<=99Xbgg.II<hFGHHH(RS"F'..sP   /A
V9V3W<V4	VVV10V14WWB Y
YYc                 ,   d }|t         k(  rhd| j                  v sd| j                  v rB| j                  dk(  r#t        j	                  d| j
                  z         nd| j
                  z  }nd| j
                  z  }|d k7  r"dat        j                  |       t        j                  d      \  }}|dk(  r+t        j	                  d	       t        j                  d
       y |dk(  rt        j                  t        j                  t         dd | j
                        \  }}|t        j                  k7  r#t        j                  d| j
                  z         y t        j!                  d| j
                  z         t#        j$                  d      rd}	t'        j(                  |	       y | j*                  dk(  rdat        j                  d| j
                  z        \  }
}|
dk(  r+t        j	                  d	       t        j                  d
       y |dk(  rBt        j,                  | j
                         t        j!                  d| j
                  z         y t        j!                  d| j
                  z         y y y y d| j                  v sd| j                  v r[| j                  dk(  r#t        j	                  d| j
                  z         nQt        j                  d| j
                  z         t.        }n(t        j                  d| j
                  z         t0        }|d k(  r| j*                  dk(  rt2        }|re|rb|r_da|j5                  | j
                  | j6                  |       |j9                          t        j	                  d       |j;                          y y y y )NrA   r@   Fz'%s' is configured correctly.zBPPD file for '%s' is not correct. Need to choose correct PPD file.zR'%s' is not configured using HPLIP. Need to remove and re-cofigure using hp-setup.Tz'Do you want to remove and re-configure?z	User Exitr   r:   z5Failed to remove '%s' queue.
Remove using hp-toolbox.zF' %s' removed successfully.
Re-configuring this printer by hp-setup...zhp-setupzhp-setup -iz1'%s Queue is paused. Do you want to enable queue?z'%s' is enabled successfullyzManually enable '%s'.zStarting GUI loop...)INTERACTIVE_MODEr   r   r*   rP   r   Error_FoundrZ   r   enter_yes_nosysexitr
   cups_operation
delPrinterIPP_OKrJ   r   whichr   executer   enablePrinterQUEUES_INCORRECT_PPDQUEUES_CONFIG_ERRORQUEUES_PAUSEDinitr   showexec_)querk   dialogapp	Error_msgresponsevaluerp   
status_strr   responces              r    reconfigure_Queuer      s   I3>>!W%>E)		9COOLM`cfcrcrs	knqn}n}~I KIIi !../XYOHe5 		+&$%)%8%8JZ\^`dfifufu%v"
T[[(IIVWZWfWffgHHfgjgvgvvw{{:.+ ((-]]e#K --.acfcrcr.stOHe5 		+&$""3??37GH0@A $	 / . 3>>!W%>E)		9COOLM		^adapapqr0	IIjmpm|m|}~*I%!7%ICKKK	BKKMII,-IIK %(9r"   c           	         t         j                  |       }|t        t              |j	                  d      j                         xs d}|dv }|j	                  d      j                         xs d}|dvrt        t              |j	                  d      xs d}|j	                  d      xs d}|j	                  d      xs d}|j	                  d	      xs d}d}	|s|j	                  d
      xs dx}	}|j	                  d      xs d}
|dk(  r	 t        |
      }
|
dk(  rd}
||||||||	|
f	S # t        t        f$ r d}
Y %w xY w)Nr   r:   )rA   r@   hpaior   )usbnetbtfwparr   r               r   r   )	DEVICE_URI_PATTERNrs   rU   ERROR_INVALID_DEVICE_URIrN   lowerint
ValueError	TypeError)r.   mr/   rt   ru   rv   rw   rx   ry   rz   r{   s              r    rT   rT     sJ     ,Ay,--wwqz!'RH11E
''!*



"C
33,--771:EWWQZ2FwwqzRH771:D	BGGAJ$"$T771:?D
e|	t9D 19D
 UC$DHH I& 	D	s   D+ +D?>D?c                 <	   	 ddl m}m} |t        k(  r	 ddl m	} t        j                  |j                         t        |      \  }}	|	r\t        |j!                               dk(  rt        j#                  d       t        |j!                               D ]  \  }
}t%        |      dkD  rH|s2dat        j                  d	t%        |      |d   j(                  fz         |D ]  }t+        ||        \t        j#                  d
       t        j#                  d|d   j(                  z         t+        |d   |        t-        j.                  |d
d d |       \  }}|t0        k7  rdat&        du rQ|sOt%        |      dk(  rt        j                  d       n+t        j3                  d       nt        j                  d       t        j4                          y |t6        k(  rc|dk(  r*t        j                  d       t        j                  d       t9        j:                  |      \  }}t=        |dz         }t=        |dz         } |t        j>                        }|jA                  d d
d
tB        |       }t        j                  |jD                         t        |      \  }}	|	rwt        |j!                               dk(  rt        j#                  d       t        |j!                               D ]  \  }
}t%        |      dkD  rvt        j                  dt%        |      |d   j(                  fz         |s.da|jG                  d	t%        |      |d   j(                  fz         |D ]  }t+        ||||        t        j#                  d
       t        j#                  d|d   j(                  z         t+        |d   |||        t-        j.                  |||||       \  }}|t0        k7  rdat&        du r<|s:t%        |      dk(  rd}nd}|jI                  |       nt        j                  d       t        j4                          y y # t        $ r. t        j                  d       t        j                  d       Y kw xY w# t        $ r t        j                  d       Y `w xY w)Nr   )devicepmlzDevice library is not avail.)r   z Failed to import password objectr   zNo queues found.TzB%d queues of same device %s is configured.
Remove unwanted queues.r:   z+Single print queue is configured for '%s'. FzNo Queue(s) configured.z*Queue(s) configured correctly using HPLIP.z/Could not complete Queue(s) configuration checkqt3zsThis is not supported in Qt3, requires GUI support (try running with --qt4). Also, try using interactive (-i) mode.z.queuesconfz.setupdialogzC%d queues of same device %s is configured.  Remove unwanted queues.)%r:   r   r   ImportErrorr*   rZ   r   r   r   r   r
   setPasswordCallbackshowPasswordPromptr+   r   listitemsrP   rS   r   r   r   r	   disableERROR_NO_SI_DEVICErJ   releaseCupsInstanceGUI_MODEr   import_dialogr   argvQueuesDiagnoseQUEUES_MSG_SENDINGshowPasswordUIshowMessageshowSuccessMessage)passwordObjrk   
ui_toolkit
quiet_mode
DEVICE_URIr   r   r   r(   rp   keyvalr   SI_sts	error_strQApplication
ui_packageuisetupdialogr   r   msgs                         r    main_functionr   @  sN   ! 	B" $$X%@%@A)$/VL&&()Q.		,- 2 2 45 4Cs8Q;%&*!fhklohpqtuvqw  rD  rD  hE  "E  F" 5)#t45 IIbMIIKSQRVM_M__`%c!fd34 !. 5 5dBdK XFI++"e#!<(A-!:;!MNHHFG  "		II  L  MHHQK#(#6#6z#B j:56#J$?@388$""4B/A+N  !;!;<)$/VL&&()Q.		,- 2 2 45 ACs8Q;HHbehilemnqrsnt  oA  oA  eB  B  C%&***+pruvyrz{~  @A  |B  |N  |N  rO  ,O  P" A)#tVC@A IIbMIIKSQRVM_M__`%c!fdFC@A !. 5 5dJPSU` aFI++"e#!<(A-6I--c2HHFG  "_ 
[  		01  	9HH78	9s"   P? Q9 ?3Q65Q69RR)NN)0r   rV   regr:   r   r   r   r   r	   prntr
   	installerr   sixextr   	importlibr   r   er*   rP   r   rh   ri   rj   r[   compileIr   	MULTILINEr^   re   
IGNORECASErf   rg   rd   rL   r(   r   r   r4   r   r   rT   r   UI_TOOLKIT_QT4r   r&   r"   r    <module>r      s\  .  	 	  ; ;  " "7' 
	
RZZ  !^  `b  `d  `d  e 2:::BLLI bjjDEN2==9BJJ1"--@ bjj+BMM:3R]]C # #	9~D=B!IH !%X>`erv a#y  7IIaL667s   D& &E+EE