Ë
    çÞËjù  ã                   ó.  — U d dl mZ d dlmZ d dlmZ ddlmZ dZdZee	d<    G d	„ d
e«      Z
ddœdededededeeeeeef   f   eeeedz  f   ef   f   f
d„Zdddœdedee   dededee
   f
d„Zdedededededeedz  edz  f   fd„Zdedefd„Zy)é    )ÚMapping)ÚFinal)Ú
NamedTupleé   )Ú
ParseErrorz#;u   ï»¿ÚUTF8_BOMc                   óN   — e Zd ZU eed<   edz  ed<   edz  ed<   ee   dz  ed<   y)Ú
ParsedLineÚlinenoNÚsectionÚnameÚvalue)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__ÚstrÚlist© ó    úM/var/www/photos/backend/venv/lib/python3.12/site-packages/iniconfig/_parse.pyr
   r
      s*   … ØƒKØ�4‰ZÓØ
�‰*ÓØ�‰9�tÑÔr   r
   F)Ústrip_section_whitespaceÚpathÚdataÚstrip_inline_commentsr   ÚreturnNc                óX  — |j                  t        «      }t        | |j                  d«      ||¬«      }i }i }|D ]k  \  }}}	}
|€t	        | |d«      ‚||||	f<   |	€||v rt	        | |d|›�«      ‚i ||<   Œ:|	||   v rt	        | |d|	›�«      ‚|
€J ‚dj                  |
«      ||   |	<   Œm ||fS )aO  Parse INI data and return sections and sources mappings.

    Args:
        path: Path for error messages
        data: INI content as string
        strip_inline_comments: Whether to strip inline comments from values
        strip_section_whitespace: Whether to strip whitespace from section and key names
            (default: False). When True, addresses issue #4 by stripping Unicode whitespace.

    Returns:
        Tuple of (sections_data, sources) where:
        - sections_data: mapping of section -> {name -> value}
        - sources: mapping of (section, name) -> line number
    T©r   r   zno section header definedzduplicate section zduplicate name ú
)Úremoveprefixr   Úparse_linesÚ
splitlinesr   Újoin)r   r   r   r   ÚtokensÚsourcesÚsections_datar   r   r   r   s              r   Úparse_ini_datar(      sü   € ð* ×ÑœXÓ&€DäØØ�‰˜ÓØ3Ø!9ô	€Fð 24€GØ/1€Mà(.ò <Ñ$ˆ�˜˜uØˆ?Ü˜T 6Ð+FÓGÐGØ!'ˆ�˜�ÑØˆ<Ø˜-Ñ'Ü   vÐ1CÀGÀ;Ð/OÓPÐPØ%'ˆM˜'Ò"à�} WÑ-Ñ-Ü   v°ÀÀÐ/IÓJÐJØÐ$Ð$Ð$Ø+/¯9©9°UÓ+;ˆM˜'Ñ" 4Ò(ð<ð ˜'Ð!Ð!r   r   Ú	line_iterc          	      ó~  — g }d }t        |«      D ]ª  \  }}t        | ||||«      \  }}	|�%|	�#|j                  t        ||||	r|	gng «      «       Œ?|�1|	€/|st	        | |d«      ‚|}|j                  t        ||d d «      «       Œr|�Œu|	€Œx|r|d   j
                  nd }
|
€t	        | |d«      ‚|
j                  |	«       Œ¬ |S )Nzempty section nameéÿÿÿÿzunexpected value continuation)Ú	enumerateÚ
_parselineÚappendr
   r   r   )r   r)   r   r   Úresultr   r   Úliner   r   r   s              r   r"   r"   D   sê   € ð  "€FØ€GÜ! )Ó,ò ‰ˆ�ÜØ�$˜Ð 5Ð7Oó
‰
ˆˆdð Ð Ð 0Ø�M‰Mœ* V¨W°dÁd¸T¹FÐPRÓSÕTàÐ $ ,ÙÜ   vÐ/CÓDÐDØˆGØ�M‰Mœ* V¨W°d¸DÓAÕBà‰\˜dÑ.Ù(.�F˜2‘J×$Ò$°DˆEØˆ}Ü   vÐ/NÓOÐOØ�L‰L˜Õð%ð& €Mr   r0   r   c                 ó@  — t        |«      rd}n|j                  «       }|sy|d   dk(  rd|}t        D ]$  }|j                  |«      d   j                  «       }Œ& |d   dk(  r|dd }|r|j	                  «       }|d fS d |j	                  «       fS |d   j                  «       sx	 |j                  dd«      \  }}	d	|v r
t        «       ‚	 |j	                  «       }
|	j	                  «       }	|r-t        D ]$  }|	j                  |«      d   j                  «       }	Œ& |
|	fS |j	                  «       }|r-t        D ]$  }|j                  |«      d   j                  «       }Œ& d |fS # t        $ r8 	 |j                  d	d«      \  }}	n# t        $ r t        | |d
|›�«      d ‚w xY wY ŒÖw xY w)NÚ )NNr   ú[r+   ú]r   ú=ú:zunexpected line: )ÚiscommentlineÚrstripÚCOMMENTCHARSÚsplitÚstripÚisspaceÚ
ValueErrorr   )r   r0   r   r   r   ÚreallineÚcÚsection_namer   r   Úkey_names              r   r-   r-   c   sÐ  € ô �TÔØ‰à�{‰{‹}ˆÙØàˆA�w�#‚~ØˆÜò 	-ˆAØ—:‘:˜a“= Ñ#×*Ñ*Ó,‰Dð	-à�‰8�sŠ?Ø  "˜:ˆLá'Ø+×1Ñ1Ó3�Ø Ð%Ð%Ø�X—^‘^Ó%Ð%Ð%à�!‰W�_‰_Ôð	WØŸ*™* S¨!Ó,‰KˆD�%Ø�d‰{Ü “lÐ"ð ð —:‘:“<ˆð —‘“ˆá Ü!ò 3�ØŸ™ A› qÑ)×0Ñ0Ó2‘ð3ð ˜ˆÐð �z‰z‹|ˆá Ü!ò 1�Ø—z‘z !“} QÑ'×.Ñ.Ó0‘ð1à�TˆzÐøô1 ò 	WðWØ"Ÿj™j¨¨aÓ0‘�‘eøÜò WÜ   vÐ1BÀ4À(Ð/KÓLÐRVÐVðWúñ ð	Wús*   Â"#E Å	FÅ&E<Å;FÅ<FÆFÆFc                 ó8   — | j                  «       d d }|t        v S )Nr   )Úlstripr9   )r0   r?   s     r   r7   r7   ž   s   € Ø�‰‹�b�qÐ€AØ”ÐÐr   )Úcollections.abcr   Útypingr   r   Ú
exceptionsr   r9   r   r   r
   r   ÚboolÚtupler   r(   r   r"   r-   r7   r   r   r   ú<module>rI      s@  ðÞ #Ý Ý å "à€Ø'€ˆ%Ó 'ô�ô ð &+ò/"Ø
ð/"à
ð/"ð  ð	/"ð
 #ð/"ð ˆ7�3˜  S Ñ)Ð)Ñ*¨G°E¸#¸sÀT¹z¸/Ñ4JÈCÐ4OÑ,PÐPÑQó/"ðl #(Ø%*òØ
ðà�C‰yðð  ð	ð
 #ðð 
ˆ*Ñóð>8Ø
ð8à
ð8ð ð8ð  ð	8ð
 #ð8ð ˆ3�‰:�s˜T‘zÐ!Ñ"ó8ðv˜ð  ô r   