ó
    †>ig  ã                   ó  • S SK Jr  S SKJr  SSKJr  Sr " S S\5      rSS	.S
\S\S\	S\	S\
\\\\\4   4   \\
\\S-  4   \4   4   4
S jjrSSS.S
\S\\   S\	S\	S\\   4
S jjrS
\S\S\S\	S\	S\
\S-  \S-  4   4S jrS\S\	4S jrg)é    )ÚMapping)Ú
NamedTupleé   )Ú
ParseErrorz#;c                   óP   • \ rS rSr% \\S'   \S-  \S'   \S-  \S'   \S-  \S'   Srg)Ú
ParsedLineé	   ÚlinenoNÚsectionÚnameÚvalue© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚintÚ__annotations__ÚstrÚ__static_attributes__r   ó    ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/iniconfig/_parse.pyr   r   	   s%   ‡ ØƒKØ�4‰ZÓØ
�‰*ÓØ�‰:Ör   r   F)Ústrip_section_whitespaceÚpathÚdataÚstrip_inline_commentsr   ÚreturnNc                ó
  • [        U UR                  S5      UUS9n0 n0 nU H\  u  pxpšUc  [        XS5      eXuX‰4'   U	c  X†;   a  [        XSU< 35      e0 Xh'   M8  X–U   ;   a  [        XSU	< 35      eU
c   eX¦U   U	'   M^     Xe4$ )a#  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 )Úparse_linesÚ
splitlinesr   )r   r   r   r   ÚtokensÚsourcesÚsections_datar
   r   r   r   s              r   Úparse_ini_datar%      sÆ   € ô* ØØ�‰˜ÓØ3Ø!9ñ	€Fð 24€GØ/1€Mã(.Ñ$ˆ˜Ø‰?Ü˜TÐ+FÓGÐGØ!'��ÑØ‰<ØÓ'Ü  Ð1CÀGÁ;Ð/OÓPÐPØ%'ˆMÓ"à WÑ-Ó-Ü  °ÀÁÐ/IÓJÐJØÑ$Ð$Ð$Ø+0˜'Ñ" 4Ó(ñ )/ð Ð!Ð!r   r   Ú	line_iterc          	      ó<  • / nS n[        U5       GH  u  pg[        XXbU5      u  p‰Ub   U	b  UR                  [        XeX‰5      5        M8  Ub6  U	c3  U(       d  [	        XS5      eUnUR                  [        XeS S 5      5        Mq  Ub  Mv  U	c  M{  U(       d  [	        XS5      eUR                  5       n
U
R                  c  [	        XS5      eU
R                  (       a  U
R                  U
R                   SU	 3S9n
OU
R                  U	S9n
UR                  U
5        GM
     U$ )Nzempty section namezunexpected value continuationÚ
)r   )	Ú	enumerateÚ
_parselineÚappendr   r   Úpopr   r   Ú_replace)r   r&   r   r   Úresultr   r
   Úliner   r   Úlasts              r   r    r    @   s  € ð  "€FØ€GÜ! )×,‰ˆÜØ˜Ð7Oó
‰
ˆð Ñ Ñ 0Ø�M‰Mœ* V°dÓAÖBàÑ $¡,ÞÜ  Ð/CÓDÐDØˆGØ�M‰Mœ* V°d¸DÓAÖBà‹\˜dÓ.ÞÜ  Ð/NÓOÐOØ—:‘:“<ˆDØ�y‰yÑ Ü  Ð/NÓOÐOà�z�zØ—}‘}¨d¯j©j¨\¸¸D¸6Ð+B�}ÐC‘à—}‘}¨4�}Ð0�Ø�M‰M˜$×ñ3 -ð4 €Mr   r/   r
   c                 óŒ  • [        U5      (       a  SnOUR                  5       nU(       d  gUS   S:X  al  Un[         H%  nUR                  U5      S   R                  5       nM'     US   S:X  a   USS nU(       a  UR	                  5       nUS 4$ S UR	                  5       4$ US   R                  5       (       d   UR                  SS5      u  p‰S	U;   a
  [        5       e UR	                  5       n
U	R	                  5       n	U(       a/  [         H%  nU	R                  U5      S   R                  5       n	M'     X©4$ UR	                  5       nU(       a/  [         H%  nUR                  U5      S   R                  5       nM'     S U4$ ! [         a7     UR                  S	S5      u  p‰ NÄ! [         a    [        XS
U< 35      S ef = ff = f)NÚ )NNr   Ú[éÿÿÿÿÚ]r   Ú=Ú:zunexpected line: )ÚiscommentlineÚrstripÚCOMMENTCHARSÚsplitÚstripÚisspaceÚ
ValueErrorr   )r   r/   r
   r   r   ÚreallineÚcÚsection_namer   r   Úkey_names              r   r*   r*   f   s¼  € ô �T×ÑØ‰à�{‰{‹}ˆÞØàˆA�w�#ƒ~ØˆßˆAØ—:‘:˜a“= Ñ#×*Ñ*Ó,ŠDñ à�‰8�s‹?Ø  "˜:ˆLæ'Ø+×1Ñ1Ó3�Ø Ð%Ð%Ø�X—^‘^Ó%Ð%Ð%à�!‰W�_‰_×Ñð	WØŸ*™* S¨!Ó,‰KˆDØ�d‹{Ü “lÐ"ð ð —:‘:“<ˆð —‘“ˆæ ß!�ØŸ™ A› qÑ)×0Ñ0Ó2’ñ "ð ˆÐð �z‰z‹|ˆæ ß!�Ø—z‘z !“} QÑ'×.Ñ.Ó0’ñ "à�TˆzÐøô1 ó 	WðWØ"Ÿj™j¨¨aÓ0‘�‘eøÜó WÜ  Ð1BÀ4Á(Ð/KÓLÐRVÐVðWúð	Wús   Â:$F Æ
GÆF#Æ#F?Æ?Gc                 ó:   • U R                  5       S S nU[        ;   $ )Nr   )Úlstripr:   )r/   r@   s     r   r8   r8   ¡   s   € Ø�‰‹�b�qÐ€AØ”ÑÐr   )Úcollections.abcr   Útypingr   Ú
exceptionsr   r:   r   r   ÚboolÚtupler   r%   Úlistr    r*   r8   r   r   r   Ú<module>rK      s4  ðÝ #Ý å "à€ô�ô ð &+ò-"Ø
ð-"à
ð-"ð  ð	-"ð
 #ð-"ð ˆ7�3˜  S Ñ)Ð)Ñ*¨G°E¸#¸sÀT¹z¸/Ñ4JÈCÐ4OÑ,PÐPÑQõ-"ðh #(Ø%*ò#Ø
ð#à�C‰yð#ð  ð	#ð
 #ð#ð 
ˆ*Ñõ#ðL8Ø
ð8à
ð8ð ð8ð  ð	8ð
 #ð8ð ˆ3�‰:�s˜T‘zÐ!Ñ"ô8ðv˜ð  õ r   