
    `^b                         S SK r S SKrS SKrS SKJrJr  S rS rS\R                  4S jr	S\R                  4S jr
S rg)    N)SourcePackageBinaryPackagec                 \    X;   a'  X!   R                    H  nUR                  U :w  d  M    g   g)NTF)reverse_dependssource)r   binary	bin_suiterdeps       I/srv/release.debian.org/www/transitions/auto-transition/debian/rt/util.pybinary_has_external_rdepsr      s/    %55D{{f$ 6     c                 0  ^ SR                  S U 5       5      nSR                  S U 5       5      nSnU(       a  SR                  XE45      nSU-  nOSnUnT(       a)  SnUSR                  U4S	 j[        T5       5       5      -   nS
R                  XXWUS9$ )N|c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fNreescape.0xs     r   	<genexpr>as_ben_file.<locals>.<genexpr>   s     7,QBIIaLL,   #%c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   r   r   s     r   r   r      s     6A299Q<<r    z.depends ~ /\b(%s)\b/falsez8

Extra information (collected entirely from testing!):

c              3   P   >#    U  H  nS U< S[        TU   5      < 3v   M     g7f)z * z: N)str)r   key
extra_infos     r   r   r      s#     -vcu\_S#jQToBV.Wcus   #&ztitle = "{transition_name} (auto)";
is_affected = .depends ~ /\b({affected})\b/;
is_good = {good};
is_bad = .depends ~ /\b({bad})\b/;
notes = "This tracker was setup by a very simple automated tool.  The tool may not be very smart...{extra_notes}";
)transition_namegoodbadaffectedextra_notes)joinsortedformat)r#   new_binariesold_binariesr"   r$   r%   r'   r&   s      `    r   as_ben_filer-      s    887,77D
((66
6CK88TK((4/S!DII-vcijtcu-v$vv F?3_jFklr   c           	         Uc  0 nU R                    H  n[        R                  " U5      nUR                  R                  nUR
                  nU" 5       (       d  MI  U" SS5      S:X  a  M  U" U" S5      5      nU" U" S5      5      nXq;   a)  [        R                  " X   R                  U5      S:  a  Mg  [        S U" S5      R                  S	5       5       5      n	[        UUUUU	S
9X'   U" 5       (       a  M  M     U$ )NzExtra-Source-OnlynoyesPackageVersionr   c              3   @   #    U  H  oR                  5       v   M     g 7fr   stripr   s     r   r   read_sources.<locals>.<genexpr>9   s      S4Rq4R   Binary,)r   packageversionsource_versionbinaries)sources_filesapt_pkgTagFilesectiongetstepversion_comparer;   	frozensetsplitr   )
mirror_distsourcesinternfilenametag_file	get_fieldrC   pkgverr=   s
             r   read_sourcesrO   &   s    --??8,$$((	}}ff,d3u<9-.C9-.C~'"9"9',:N:NPS"TWX"X  SIh4G4M4Mc4R SSH("!GL ff .2 Nr   c                    Uc  0 nU R                    GH  n[        R                  " U5      nUR                  R                  nUR
                  nU" 5       (       d  MJ  U" U" S5      5      nU" U" S5      5      nU" SU5      n	Un
Xq;   a)  [        R                  " X   R                  U5      S:  a  Mc  SU	;   a;  S U	R                  S5       5       u  pUR                  S5        U" U	5      n	U" U5      n
U" U" SS	5      5      nU" S
5      nU" S5      n/ nXq;   a  X   R                  nU(       a%  UR                  [        R                  " U5      5        U(       a%  UR                  [        R                  " U5      5        [        S U 5       5       Vs/ s H  n[        U5      PM     nn[        UUU" S5      U	U
UU[        5       S9nUX'   U" 5       (       a  GM~  GM     U$ s  snf )Nr1   r2   Sourcer   (c              3   @   #    U  H  oR                  5       v   M     g 7fr   r4   r   s     r   r    read_binaries.<locals>.<genexpr>\   s     B0A1WWYY0Ar7   z )SectionzN/ADependszPre-Dependsc              3   8   #    U  H  n[        U5      v   M     g 7fr   )tupler   s     r   r   rT   t   s     +FgE!HHgs   Architecture)r:   r;   architecturer   r<   rA   dependsr   )packages_filesr?   r@   rA   rB   rC   rD   r;   rF   rstripr[   extendparse_dependssetlistr   )rG   packagesrI   rJ   rK   rL   rC   rM   r;   r   r<   vrA   depends_fieldpredepends_fieldr[   r   bin_pkgs                     r   read_binariesrg   F   s   ..??8,$$((	}}ff9-.CYy12Gx-F$N
 7#:#:8=;P;PRY#Z]^#^f}BS0AB	!'Yy%89G%i0M(7G "-//w44]CDw445EFG(++Fg+F(FG(F1tAw(FGG#&~6- #	G $HMe ff /t O! Hs   G!c                     U  HL  nX   nUR                    H5  nU H,  nUS   nXP;  a  M  X   R                  R                  U5        M.     M7     MN     g )Nr   )r[   r   add)rb   pkg_namerM   ordepdepdep_pkgs         r   compute_reverse_dependenciesrn      sZ     [[Ea&*!1155c:	  !  r   )r?   r   sysdebian.rt.packager   r   r   r-   rI   rO   rg   rn    r   r   <module>rr      sC     	 
 <l, '+3:: @ )-SZZ >B	r   