
    gn                    Z   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJr   " S S\5      r " S S\5      rS	u  rrrr " S
 S5      r " S S\5      rS\R,                  ;   a  \R,                  S   S:w  a  SrOSrSS.SS jjr\S:X  a  \" SS9  \" 5       r\R7                  \S5        \R9                  5         \R;                  S5      r\R?                  S5      r \RC                  5         \"" \RF                  5        \"" \RH                  5        \"" \5        \"" \ 5        gg)    )annotationsN)TracebackType)IOProtocolc                      \ rS rSrSS jrSrg)Command&   c                    g N )selfparamss     )/usr/lib/python3/dist-packages/debconf.py__call__Command.__call__'   s    3    r   N)r   	str | intreturnstr)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r   &   s    6r   r   c                      \ rS rSrSrg)DebconfError*   r   N)r   r   r   r   r   r   r   r   r   r   *   s    r   r   )lowmediumhighcriticalc                  t   \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'       S$         S%S jjrS&S jrS'S jrS(S jr	S)S jr
S*S jrS+S jrS,S  jrS-S! jr        S.S" jrS#rg)/Debconf1   a$  A class that speaks the debconf protocol.

The simplest way to use this is as a context manager:

    import debconf

    with debconf.Debconf(run_frontend=True) as db:
        print(db.get('debconf/frontend'))

Note that this will send the STOP command on exiting the context
manager, so you shouldn't expect to be able to use the same frontend
again after this.  If you need to do that, then you should instantiate
the class directly instead:

    import debconf

    db = debconf.Debconf(run_frontend=True)
    print(db.get('debconf/frontend'))
r   
beginblockcapbendblockexistfsetgetgoinfoinputprogresspurgeregisterresetsetsettitlesubsttitle
unregisterversion_visibleNc                B   SR                  5        H  nU R                  U5        M     U=(       d    [        R                  U l        U=(       d    [        R
                  U l        [        R                  [        l        U(       a
  [        5         U R                  U5        g )Nzcapb set reset title input beginblock endblock go get register unregister subst fset fget visible purge metaget exist version_ settitle info progress data)
split
setCommandsysstdinreadstdoutwritestderrrunFrontEndsetUp)r   r5   r>   r@   run_frontendcommands         r   __init__Debconf.__init__[   sk    " %'G OOG$ %CII	(cjj
ZZ
M

5r   c                    U R                  S5      U l        U R                  S S S:w  a  [        SSU R                  -  5      eU R                  5       R	                  5       U l        U(       a  U R                  U5        g g )N   z2.   zwrong version: %s)r7   versionr   r&   r:   capabilitiesr5   )r   r5   s     r   rC   Debconf.setUpp   sg    }}Q'<<t#s$7$,,$FGG IIK--/JJu r   c                ,   ^ ^ [        T TUU 4S j5        g )Nc                 0   > TR                   " T/U Q70 UD6$ r   )rE   )argskwrE   r   s     r   <lambda>$Debconf.setCommand.<locals>.<lambda>|   s    W Bt Br Br   )setattr)r   rE   s   ``r   r;   Debconf.setCommandx   s    B	
r   c                
   US:X  a  SnUR                  5       nU R                  R                  SR                  USR                  [	        [
        U5      5      5      5        U R                  R                  5           U R                  R                  5       R                  S5      n SU;   a  UR                  SS5      u  pVOUSpe[        U5      nUS:X  a  U$ US:X  ad  Sn[        R                  " S	U5       HE  n	U	R!                  S
5      (       a(  [#        U	5      S:X  a  U	S   S:X  a  US-  nM8  XS   -  nMA  X-  nMG     U$ [%        Xv5      e! [         a+  nUR                  [        R                  :X  a   S nAGM  e S nAff = f)Nr7   rK   z{} {}
 
    r   z(\\.)\rI   n)upperr@   formatjoinmapr   flushr>   readlinerstripOSErrorerrnoEINTRr:   intre
startswithlenr   )
r   rE   r   respestatus_datastatus	unescapedchunks
             r   rE   Debconf.command   sZ   j G--/

))'388CV<L3MNO

yy))+2248 $; JJsA.MGT "TWQ;Kq[I(D1##D))c%jAoQx3!T)	!1X-	&I 2 v,,3  77ekk)	s   =)E 
FE=<E==Fc                n    U R                   R                  S5        U R                   R                  5         g )NzSTOP
)r@   ra   r   s    r   stopDebconf.stop   s$    

"

r   c                ~     U R                  X5        g! [         a  nUR                  S   S:w  a  e  S nAgS nAff = f)NrY   r      )r-   r   rP   )r   priorityquestionrl   s       r   
forceInputDebconf.forceInput   s@    	JJx* 	vvayB 	s    
<7<c                .    U R                  U5      nUS:H  $ )Ntruer*   )r   rz   results      r   
getBooleanDebconf.getBoolean   s    (#r   c                $    U R                  U5      $ r   r   )r   rz   s     r   	getStringDebconf.getString   s    xx!!r   c                    U $ r   r   rt   s    r   	__enter__Debconf.__enter__   s    r   c                $    U R                  5         g r   )ru   )r   exc_type	exc_valueexc_tbs       r   __exit__Debconf.__exit__   s     			r   )rL   r>   rK   r@   )NNNF)
r5   
str | Noner>   IO[str] | Noner@   r   rD   boolr   None)r5   r   r   r   )rE   r   r   r   )rE   r   r   r   r   r   r   r   )ry   r   rz   r   r   rg   )rz   r   r   r   )rz   r   r   r   )r   r#   )r   ztype[BaseException] | Noner   zBaseException | Noner   zTracebackType | Noner   r   )r   r   r   r   __doc____annotations__rF   rC   r;   rE   ru   r{   r   r   r   r   r   r   r   r   r#   r#   1   s   ( 
MN
M	LK
MNNN	LNN !# $"  	
  
*
$-L ", ( %	
 
r   r#   c                  T   ^  \ rS rSr S       SU 4S jjjrSS jrSS jrSrU =r$ )	DebconfCommunicator   c                .  > SSU/n[         R                  " U[         R                  [         R                  SSS9U l        [        TU ]  X R                  R                  U R                  R                  S9  U(       a  [        R                  " U R                  R                  5       [        R                  [        R                  5        [        R                  " U R                  R                  5       [        R                  [        R                  5        g g )Nzdebconf-communicatez-fnoninteractiveT)r=   r?   	close_fdsuniversal_newlines)r5   r>   r@   )
subprocessPopenPIPEdccommsuperrF   r?   r=   fcntlr>   filenoF_SETFD
FD_CLOEXECr@   )r   ownerr5   cloexecrP   	__class__s        r   rF   DebconfCommunicator.__init__   s     &'95A4>4D4D//??#5
 	kk008I8I 	 	
 KK		((*EMM5;K;KLKK

))+U]]E<L<LM r   c                V   U R                   b  U R                   R                  c   eU R                   R                  c   eU R                   R                  R                  5         U R                   R                  R                  5         U R                   R	                  5         S U l         g g r   )r   r=   r?   closewaitrt   s    r   shutdownDebconfCommunicator.shutdown   s    ;;";;$$000;;%%111KK##%KK$$&KKDK #r   c                F     U R                  5         g ! [         a     g f = fr   )r   AttributeErrorrt   s    r   __del__DebconfCommunicator.__del__   s"    	MMO 		s    
  )r   )NF)r   r   r5   r   r   r   r   r   r   )	r   r   r   r   rF   r   r   r   __classcell__)r   s   @r   r   r      sE    DINN!+N=AN	N N$ r   r   DEBCONF_USE_CDEBCONFrZ   z/usr/lib/cdebconf/debconfz/usr/share/debconf/frontendF)pass_sys_executablec                "   S[         R                  ;  a{  S[         R                  S'   [        /nU (       a  UR                  [        R
                  5        UR                  [        R                  5        [         R                  " [        U5        g g )NDEBIAN_HAS_FRONTEND1PERL_DL_NONLAZY)	osenviron_frontEndProgramappendr<   
executableextendargvexecv)r   rP   s     r   rB   rB      s\    BJJ.(+

$% !KK'CHH
!4( /r   __main__Tz&bsdmainutils/calendar_lib_is_not_emptyzless/add_mime_handlerzapt-listchanges/email-address)r   r   r   r   )%
__future__r   re   r   r   rh   r   r<   typesr   typingr   r   r   	Exceptionr   LOWMEDIUMHIGHCRITICALr#   r   r   r   rB   r   dbr{   r+   r   lessr   aptlcru   printrK   rL   r   r   r   <module>r      s  4 #   	 	  
  7h 7	9 	 B VT8Q Qh!' !J bjj(


)*b024 05 ) zD)	BMM(DEEEG==01DLL89EGGI	"**	"//	$K	%L r   