
    dgl0                     r    S SK r S SKrS SKJ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
   " S S5      rS/rg)    N)glob)ALCLog)_c                   f    \ rS rSrS r\S 5       rSS jrS rS r	SS jr
S	 rS
 rS rSS jrSrg)	ALCConfig&   c                 F   [         R                  " 5       U l        SU l        SU l        S U l        SU l        S U l        SU l        SU l	        SU l
        SU l        SU l        SU l        S U l        SU l        S U l        S U l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        S U l        S U l        S U l        / SQU l        / SQU l        / S	QU l        S
U R@                  0U l!        SU l"        SU l#        SU l$        SU l%        / U l&        g )NFpagertextbothTz/var/log/apt/listchanges.log)confirmdebugshow_allheadersverbosereverse	dump_seenselect_frontend
no_networkignore_apt_assumeignore_debian_frontendtitledhide)	frontendemail_addressemail_formatlatestlogfilter	save_seensincewhich)browserr
   xtermcapture_snapshotssnapshot_dirr%   r   )r   html)r   news
changelogs)'configparserConfigParserparserapt_moder   profiler   r   r   r   r   r   r   r   r    r"   r!   r   r   r   r   r   r   r   r   r   r   r%   r&   
_bool_opts_value_opts_cfgfile_only_optsconvert_capture_snapshots_cfgfile_convertersquietfrontend_from_env_allowed_email_formats_allowed_whichdebs)selfs    ;/usr/lib/python3/dist-packages/apt_listchanges/ALCConfig.py__init__ALCConfig.__init__'   s-   "//1  !"


$!&&+#	1!% 



#
  !?!?$
 
 
!&&6#<	    c                 j    U (       d  g[         R                  " SU R                  5       5      (       a  gg)NFz(auto|1|y(?:es)|t(?:rue)|on)$T)rematchlower)values    r:   r2   #ALCConfig.convert_capture_snapshotsx   s(    884ekkmDD r=   Nc                 H   [         R                  " 5         [         R                  R                  S5      n[         R                  R	                  S5      nU(       d   [
        R                  R                  US5      n[         R                  R                  S5      nUS:X  a   [
        R                  R                  US5      nU/nU[        [
        R                  R                  US5      5      -  nU R                  U5        U R                  Uc  [        R                  OUUS9  g )	NzDir::EtczDir::Etc::apt-listchanges-mainzlistchanges.confzDir::Etc::apt-listchanges-parts/zlistchanges.conf.dz*.conf)require_debs)apt_pkginitconfigfind_dir	find_fileospathjoinr   readgetoptsysargv)r9   argsrF   etcconfconf_dconfigss          r:   setupALCConfig.setup   s    nn%%j1~~''(HI 77<<%78D(()JKS=WW\\#';<F&4VX677		'CHH$!- 	 	/r=   c                 :    U R                   R                  U5        g N)r,   rO   )r9   files     r:   rO   ALCConfig.read   s    r=   c                 R   U R                   R                  U R                  5      (       a  U R                   R                  U R                  5       H  nS nXR                  ;   a'  U R                   R                  U R                  U5      nOiXR                  ;   d  XR                  ;   a'  U R                   R                  U R                  U5      nO$[        R                  " [        S5      U-  5        M  U R                  R                  US 5      n[        XU" U5      5        M     g g )Nz%Unknown configuration file option: %sc                     U $ r[    )vs    r:   <lambda>"ALCConfig.expose.<locals>.<lambda>   s    1r=   )r,   has_sectionr.   optionsr/   
getbooleanr0   r1   getr   warningr   r3   setattr)r9   optionrB   	converters       r:   exposeALCConfig.expose   s    ;;""4<<00++--dll;__, KK224<<HE///"9"99 KKOODLL&AENNABVKM 4488M	i&67 < 1r=   c                     [        XU5      $ r[   )getattr)r9   rj   defvalues      r:   rg   ALCConfig.get   s    tX..r=   c                     US:X  a  [         R                  nO[         R                  nUR                  [	        S5      5        [         R
                  " U5        g )Nr   z<Usage: apt-listchanges [options] {--apt | filename.deb ...}
)rQ   stdoutstderrwriter   exit)r9   exitcodefhs      r:   usageALCConfig.usage   s=    q=BB
MN	Pr=   c                     X;   a  U$ [         R                  " [        S5      XSR                  U5      S.-  5        [        R
                  " S5        g )NzGUnknown argument %(arg)s for option %(opt)s.  Allowed are: %(allowed)s.z, )argoptallowed   )r   errorr   rN   rQ   rv   )r9   r|   r}   r~   s       r:   _check_allowedALCConfig._check_allowed   sJ    >J * +		'0BCD	E 	r=   c                    U R                   (       d  U R                  (       a  g U(       d  U R                  S5        U GH*  n[        R                  R                  U5      S   nUS:w  a:  [        R                  " [        S5      SU0-  5        [        R                  " S5        [        R                  R                  U5      (       d:  [        R                  " [        S5      SU0-  5        [        R                  " S5        [        R                  " U[        R                  5      (       a  M  [        R                  " [        S5      SU0-  5        [        R                  " S5        GM-     g )Nr   z.debz&%(deb)s does not have '.deb' extensiondebz'%(deb)s does not exist or is not a filez%(deb)s is not readable)r-   r   ry   rL   rM   splitextr   r   r   rQ   rv   isfileaccessR_OK)r9   r8   r   exts       r:   _check_debsALCConfig._check_debs   s    ==DNNJJqMC''""3'*Cf}>?5#,NP77>>#&&?@CL!" 99S"''**Q89UCLHI r=   c                 f
    [         R                   " USS  S/ SQU R                   Vs/ s H  o3R                  SS5      PM     sn-   U R                   Vs/ s H  o3R                  SS5      S-   PM     sn-   5      u  pEW H"  u  pxUS:X  a  Xl
        M  US:X  d  M  S	U l        M$     U R                  c   U R                  (       a  S
U l
        OSU l
        U R                  5         S[        R                  ;   a)  [        R                  " S5      U l        S	U l        S	U l        Su  pnU GH  u  pxUS:X  a  U R'                  S5        M  US;   a	  S	U l        M.  US;   a  Xl        M<  US:X  a  Xl        MJ  US:X  a#  U R-                  XU R.                  5      U l        Ms  US;   a	  S	U l        M  US:X  a  Un	M  US:X  a  Un
M  US;   a  S	nM  US;   a	  S	U l        M  US;   a  Xl        M  US:X  a	  S	U l        M  US:X  a#  U R-                  XU R:                  5      U l        M  US:X  a
  S	U l        GM  US:X  a
  S	U l         GM  US;   a
  S	U l!        GM%  US:X  a
  S	U l"        GM5  US :X  a
  S	U l#        GME  US!:X  a
  S	U l        GMU  US":X  a
  S	U l$        GMe  US#:X  a
  S$U l$        GMu  US%:X  a
  S	U l%        GM  US&:X  a	  Xl&        GM  US':X  d  GM  Xl'        GM     U
b  [Q        U
5      n
U R*                  S(:X  a  S U l        U R6                  S(:X  a  S U l        U RR                  b  U RT                  (       d
  U	b=  U(       a6  [
        R                  " [W        S)5      5        [        R                  " S5        OU	c  U(       a  Xl)        Xl*        U RR                  bK  [Y        W5      S:w  a5  [
        R                  " [W        S*5      5        [        R                  " S5        S U l        U RZ                  b  U RT                  (       d
  U
b=  U(       a6  [
        R                  " [W        S+5      5        [        R                  " S5        OU
c  U(       a  Xl-        Xl*        U R                  (       a:  U R$                  (       d)  [        R                  " S,S-5      S.:X  a  SU l.        S$U l        WU l/        U(       d  U R^                  (       a  U Ra                  U R^                  5        g g s  snf s  snf ! [         R                   a@  n[
        R                  " [        U5      5        [        R                  " S5         S nAGNS nAff = f)/Nr   zvf:s:cah)aptzprofile=helpallz
save_seen=r   -=z	--profilez--aptTr   cmdlineAPT_LISTCHANGES_FRONTEND)NNFz--helpr   )z-vz	--verbose)z-fz
--frontendz--email-addressz--email-format)z-cz	--confirmz--sincez--latest)z-az
--show-allz--all)z-hz	--headers)z--save-seenz--save_seenz--dump-seenz--whichz--debugz	--reverse)z-nz--no-networkz--select-frontendz--ignore-apt-assumez--ignore-debian-frontendz--titledz
--untitledFz--hidez--logz--filternonez7--since=<version> and --show-all are mutually exclusivez<--since=<version> expects a path to exactly one .deb archivez2--latest=<N> and --show-all are mutually exclusiveDEBIAN_FRONTEND noninteractive)1rP   r/   replacer0   GetoptErrorr   r   strrQ   rv   r.   r-   rl   rL   environgetenvr   r5   r   ry   r   r   r   r6   r   r   r   r    r   r7   r"   r   r   r   r   r   r   r   r   r   intr!   r   r   lenr   r4   r8   r   )r9   rR   rF   xoptlistrS   errr}   r|   r!   r   r   s               r:   rP   ALCConfig.getopt   s^   	$mmDHj C% 15@199S#&@CA 594D4DE4Dq99S#&s*4DECF 	OW  HCk!" $	   <<}}$( 	 &3II&@ADM%)D"*.D'$7!  HCh

1++#,, #))%("(($($7$7d99%;!++#	!
"55++#66!$%!%	!!004;N;NO
	!!
##.."&++'+$--)-&22.2+
""$# 	
"!c  f [F'!%D>>V#!DNZZ# XLL    HHQK(J$M::!4yA~ % &' !DNKK#8LLFGIHHQK8 K$M==!<!<99&+/??DJ DL	499TYY' %A AE!! 	LLS"HHQKK	s4   &S SS S3S 
S T005T++T0)$r6   r7   r/   r3   r1   r0   r-   r%   r   r8   r   r   r   r   r   r   r5   r   r   r   r   r   r   r   r,   r.   r4   r   r    r   r   r!   r&   r   r   r"   )NTr[   )T)__name__
__module____qualname____firstlineno__r;   staticmethodr2   rX   rO   rl   rg   ry   r   r   rP   __static_attributes__r`   r=   r:   r   r   &   sF    Ob  /&8 /(I(r=   r   )r*   rP   r   rL   r?   rQ   rG   apt_listchangesr   apt_listchanges.ALChacksr   r   __all__r`   r=   r:   <module>r      s8   2    	 	 
  " &v( v(r	 -r=   