ó
    8.õg�  ã                   ó¦   • S r SSKrSSKrSSKrSSKr\R
                  " S5      r " S S5      r " S S5      r\	S:X  a  S	r
\" \
5      r\" \5        gg)
z;deb822 parser with support for comment headers and footers.é    NÚTc                   ó¤  • \ rS rSr% Sr\R                  \\4   \S'   \	\\4   \S'   \\S'   \\S'   S\
R                  \S 4   4S jrS	\S
\4S jrS	\S
S4S jrS	\S\S
S4S jrS
\4S jr\
R$                  S	\S
\S-  4S j5       r\
R$                  S	\S\S
\\-  4S j5       rSS	\S\S-  S
\S-  \-  4S jjr\S\S
\4S j5       rS
\4S jrSrg)ÚSectioné   z[A single deb822 section, possibly with comments.

This represents a single deb822 section.
ÚtagsÚ_case_mappingÚheaderÚfooterÚsectionc                 óü  • [        U[        5      (       ax  [        R                  " UR                  5      U l        U R                   Vs0 s H  o"R                  5       U_M     snU l        UR                  U l        UR                  U l        g SS/nSnSnUR                  S5       H8  nUR                  S5      (       a  USS  nX4==   US-   -  ss'   M/  SnXVS-   -  nM:     U(       a0  [        R                  " [        R                  " U5      5      U l        O[        R                  " 5       U l        U R                   Vs0 s H  o"R                  5       U_M     snU l        Uu  U l        U l        g s  snf s  snf )NÚ FÚ
Ú#é   T)Ú
isinstancer   ÚcollectionsÚOrderedDictr   Úcasefoldr   r	   r
   ÚsplitÚ
startswithÚapt_pkgÚ
TagSection)Úselfr   ÚkÚcommentsÚ
in_sectionÚtrimmed_sectionÚlines          Ú4/usr/lib/python3/dist-packages/aptsources/_deb822.pyÚ__init__ÚSection.__init__   s6  € Ü�gœw×'Ñ'Ü#×/Ò/°·±Ó=ˆDŒIØ;?¿9º9Ó!Eº9°a§*¡*£,°¢/¹9Ñ!EˆDÔØ!Ÿ.™.ˆDŒKØ!Ÿ.™.ˆDŒKØà˜�8ˆØˆ
Øˆà—M‘M $Ö'ˆDØ�‰˜s×#Ñ#à˜A˜B�x�ØÓ$¨¨t©Ñ3Ó$ÙàˆJØ d™{Ñ*ŠOñ (ö Ü#×/Ò/´×0BÒ0BÀ?Ó0SÓTˆD�Iä#×/Ò/Ó1ˆDŒIØ7;·y²yÓA²y°!Ÿj™j›l¨Ašo±yÑAˆÔØ#+Ñ ˆŒ�T•[ùò1 "Fùò. Bs   Á	E4ÅE9ÚkeyÚreturnc                 óp   • U R                   U R                  R                  UR                  5       U5         $ )zGet the value of a field.©r   r   Úgetr   ©r   r"   s     r   Ú__getitem__ÚSection.__getitem__:   s*   € à�y‰y˜×+Ñ+×/Ñ/°·±³ÀÓDÑEÐEó    Nc                 ón   • U R                   U R                  R                  UR                  5       U5      	 g)zDelete a fieldNr%   r'   s     r   Ú__delitem__ÚSection.__delitem__>   s'   € à�I‰I�d×(Ñ(×,Ñ,¨S¯\©\«^¸SÓAÑBr*   Úvalc                 óÊ   • UR                  5       U R                  ;  a  XR                  UR                  5       '   X R                  U R                  UR                  5          '   g)zSet the value of a field.N)r   r   r   )r   r"   r.   s      r   Ú__setitem__ÚSection.__setitem__B   sG   € à�<‰<‹> ×!3Ñ!3Ó3Ø14×Ñ˜sŸ|™|›~Ñ.Ø8;�	‰	�$×$Ñ$ S§\¡\£^Ñ4Ò5r*   c                 ó,   • [        U R                  5      $ ©N)Úboolr   ©r   s    r   Ú__bool__ÚSection.__bool__H   s   € Ü�D—I‘I‹Ðr*   c                 ó   • g r3   © r'   s     r   r&   ÚSection.getK   s   € Ø+.r*   Údefaultc                 ó   • g r3   r9   ©r   r"   r;   s      r   r&   r:   N   s   € Ø47r*   c                 ó0   •  X   $ ! [          a    Us $ f = fr3   )ÚKeyErrorr=   s      r   r&   r:   Q   s#   € ð	Ø‘9ÐøÜó 	ØŠNð	ús   ‚ †”Úcontentc                 óf   • U (       a)  SR                  S U R                  5        5       5      S-   $ S$ )Nr   c              3   ó,   #   • U  H
  nS U-   v •  M     g7f)r   Nr9   )Ú.0r   s     r   Ú	<genexpr>Ú*Section.__comment_lines.<locals>.<genexpr>Z   s   é € ÐBÒ-A T�c˜D–jÒ-Aùs   ‚r   )ÚjoinÚ
splitlines)r@   s    r   Ú__comment_linesÚSection.__comment_linesW   s8   € ö ð �I‰IÑB¨W×-?Ñ-?Ô-AÓBÓBÀTÑIð	
ð ð	
r*   c                 óÒ   • U R                  U R                  5      SR                  S U R                  R	                  5        5       5      -   U R                  U R
                  5      -   $ )z+Canonical string rendering of this section.r   c              3   ó6   #   • U  H  u  pU S U S3v •  M     g7f)z: r   Nr9   )rC   r   Úvs      r   rD   Ú"Section.__str__.<locals>.<genexpr>c   s    é € ÐBÒ0A©¨˜˜˜2˜a˜S •mÒ0Aùs   ‚)Ú_Section__comment_linesr	   rF   r   Úitemsr
   r5   s    r   Ú__str__ÚSection.__str___   sU   € ð × Ñ  §¡Ó-Ø�g‰gÑB°·	±	·±Ô0AÓBÓBñCà×"Ñ" 4§;¡;Ó/ñ0ð	
r*   )r   r
   r	   r   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   ÚstrÚ__annotations__ÚdictÚtypingÚUnionr    r(   r,   r0   r4   r6   Úoverloadr&   r   ÚstaticmethodrN   rP   Ú__static_attributes__r9   r*   r   r   r      s<  ‡ ñð
 ×
!Ñ
! # s (Ñ
+Ó+Ø˜˜S˜‘>Ó!ØƒKØƒKð, §¡¨S°)¨^Ñ <ô ,ð:F˜sð F sô FðC˜sð C tô Cð<˜sð <¨ð <°ô <ð˜$ô ð ‡_�_Ø.�sÐ.˜s T™zÓ.ó Ø.à‡_�_Ø7�sÐ7 QÐ7¨1¨s©7Ó7ó Ø7ñ�sð  Q¨¡Xð ¸¸T¹ÀC¹õ ð ð
 ð 
¨ó 
ó ð
ð
˜÷ 
r*   r   c                   óp   • \ rS rSrSrS\R                  4S jrS\R                  \
   4S jrS\4S jrSrg	)
ÚFileéh   z;
Parse a given file object into a list of Section objects.
Úfobjc                 ó  • / U l         SnU HM  nUR                  5       (       d  X#-  nM  U(       d  M'  U R                   R                  [        U5      5        SnMO     U(       a%  U R                   R                  [        U5      5        g g )Nr   )ÚsectionsÚisspaceÚappendr   )r   rb   r   r   s       r   r    ÚFile.__init__m   sl   € ØˆŒØˆÛˆDØ—<‘<—>‘>à‘’ß�à—‘×$Ñ$¤W¨WÓ%5Ô6Ø’ñ ö Ø�M‰M× Ñ ¤¨Ó!1Õ2ð r*   r#   c                 ó,   • [        U R                  5      $ r3   )Úiterrd   r5   s    r   Ú__iter__ÚFile.__iter__}   s   € Ü�D—M‘MÓ"Ð"r*   c                 óF   • SR                  S U R                   5       5      $ )Nr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr3   )rW   )rC   Úss     r   rD   ÚFile.__str__.<locals>.<genexpr>�   s   é € Ð7ª Aœ˜QŸ˜ªùs   ‚)rF   rd   r5   s    r   rP   ÚFile.__str__€   s   € Ø�y‰yÑ7¨¯ªÓ7Ó7Ð7r*   )rd   N)rR   rS   rT   rU   rV   ÚioÚ
TextIOBaser    rZ   ÚIteratorr   rj   rW   rP   r^   r9   r*   r   r`   r`   h   s8   † ñð3˜RŸ]™]ô 3ð #˜&Ÿ/™/¨'Ñ2ô #ð8˜÷ 8r*   r`   Ú__main__zV# Header
# More header
K1: V1
# Inline
K2: V2
 # not a comment
# Footer
# More footer
)rV   r   rq   rZ   r   ÚTypeVarr   r   r`   rR   Ústrn   Úprintr9   r*   r   Ú<module>rx      sd   ðñ Bã Û 	Û ã à
‡N‚N�3Ó€÷S
ñ S
÷l8ñ 8ð8 ˆzÓð
€Bñ 	�‹€Aá	ˆ!…Hð r*   