ó
    †>iI  ã                   óØ   • S r SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  / S	Qr
S
SKJr  S
SKJr  S
SKJr  S
SKJr  \" S5      r\" S5      r " S S5      r " S S5      rg)zdbrain-dead simple parser for ini-style files.
(C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
é    N)ÚCallable)ÚIterator)ÚMapping)ÚFinal)ÚTypeVar)Úoverload)Ú	IniConfigÚ
ParseErrorÚCOMMENTCHARSÚiscommentlineé   )Ú_parse)r   )r   )r
   Ú_DÚ_Tc                   óâ  • \ rS rSr% \S   \S'   \\   \S'   SSS\SS4S jrS\S\S-  4S jr	\
S	\S\S-  4S
 j5       r\
S	\S\\/\4   S\S-  4S j5       r\
S	\SSS\\/\4   S\S-  4S j5       r\
SS	\S\SSS\\-  4S jj5       r\
S	\S\S\\/\4   S\\-  4S j5       r  SS	\S\S-  S\\/\4   S-  S\\-  \-  S-  4S jjrS	\S\4S jrS\\   4S jrS\\\\4      4S jrSrg)ÚSectionWrapperé   r	   ÚconfigÚnameÚreturnNc                 ó   • Xl         X l        g ©N©r   r   )Úselfr   r   s      ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/iniconfig/__init__.pyÚ__init__ÚSectionWrapper.__init__   s   € ØŒØ�	ó    c                 óN   • U R                   R                  U R                  U5      $ r   ©r   Úlineofr   ©r   r   s     r   r!   ÚSectionWrapper.lineof    s   € Ø�{‰{×!Ñ! $§)¡)¨TÓ2Ð2r   Úkeyc                 ó   • g r   © ©r   r$   s     r   ÚgetÚSectionWrapper.get#   s   € Ø+.r   Úconvertc                 ó   • g r   r&   )r   r$   r*   s      r   r(   r)   &   s   € ð
 r   Údefaultc                 ó   • g r   r&   ©r   r$   r,   r*   s       r   r(   r)   -   ó   € ð r   c                 ó   • g r   r&   r.   s       r   r(   r)   5   s   € ØLOr   c                 ó   • g r   r&   r.   s       r   r(   r)   8   s   € ð r   c                 óL   • U R                   R                  U R                  XUS9$ )N)r*   r,   )r   r(   r   r.   s       r   r(   r)   A   s!   € ð �{‰{�‰˜tŸy™y¨#ÈˆÐPÐPr   c                 óN   • U R                   R                  U R                     U   $ r   )r   Úsectionsr   r'   s     r   Ú__getitem__ÚSectionWrapper.__getitem__I   s    € Ø�{‰{×#Ñ# D§I¡IÑ.¨sÑ3Ð3r   c              #   ó¼   ^ #   • T R                   R                  R                  T R                  0 5      nS[        S[
        4U 4S jjn[        XS9 S h  v•N   g  N7f)Nr$   r   c                 óP   >• TR                   R                  TR                  U 5      $ r   r    )r$   r   s    €r   r!   Ú'SectionWrapper.__iter__.<locals>.lineofO   s   ø€ Ø—;‘;×%Ñ% d§i¡i°Ó5Ð5r   ©r$   )r   r4   r(   r   ÚstrÚintÚsorted)r   Úsectionr!   s   `  r   Ú__iter__ÚSectionWrapper.__iter__L   sI   øé € Ø%)§[¡[×%9Ñ%9×%=Ñ%=¸d¿i¹iÈÓ%Lˆð	6œð 	6¤÷ 	6ô ˜'Ñ.×.Ó.ùs   ƒAAÁAÁAc              #   ó.   #   • U  H  nXU   4v •  M     g 7fr   r&   r"   s     r   ÚitemsÚSectionWrapper.itemsT   s   é € ÛˆDØ˜T™
Ð"Ô"ò ùs   ‚r   r   ©NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r;   r   r<   r!   r   r(   r   r   r   r5   r   r?   ÚtuplerB   Ú__static_attributes__r&   r   r   r   r      sð  ‡ Ø�+ÑÓØ
�‰*Óð˜{ð °#ð ¸$ô ð3˜3ð 3 3¨¡:ô 3ð Ø.�sÐ.˜s T™zÓ.ó Ø.àðàðð ˜3˜% ˜)Ñ$ðð 
ˆd‰ó	ó ðð ðàðð ðð ˜3˜% ˜)Ñ$ð	ð
 
ˆd‰óó ðð ÙO�sÐO RÐO°$ÐOÀ#ÈÁ(ÔOó ØOàðàðð ðð ˜3˜% ˜)Ñ$ð	ð
 
ˆb‰óó ðð "Ø.2ñ	QàðQð �d‘ðQð ˜3˜% ˜)Ñ$ tÑ+ð	Qð
 
ˆb‰�3‰˜Ñ	õQð4˜sð 4 sô 4ð/˜( 3™-ô /ð#�x  c¨3 h¡Ñ0÷ #r   r   c                   ó  • \ rS rSr% \\   \S'   \\\\\\4   4      \S'   \\\\\S-  4   \	4      \S'     S"SSS.S\\
R                  \   -  S\S-  S\S	\\\\\4   4   S-  S\\\\S-  4   \	4   S-  S
S4S jjjr\  S"SSS.S\\
R                  \   -  S\S-  S\S\S\S
S 4S jjj5       rS#S\S\S-  S
\	S-  4S jjr\S\S\S
\S-  4S j5       r\S\S\S\\/\4   S
\S-  4S j5       r\S\S\SSS\\/\4   S
\S-  4
S j5       r\ S#S\S\S\SSS
\\-  4
S jj5       r\S\S\S\S\\/\4   S
\\-  4
S j5       r  S$S\S\S\S-  S\\/\4   S-  S
\\-  \-  S-  4
S jjrS\S
\4S jrS
\\   4S jrS\S
\4S  jrS!rg)%r	   éY   Úpathr4   NÚ_sources)Ú	_sectionsrO   ÚdataÚencodingrP   r   c                ó.  • [         R                  " U5      U l        Ub  Ub  UnUnORUc-  [        U R                  US9 nUR	                  5       nS S S 5        [
        R                  " U R                  USS9u  pgXpl        X`l        g ! , (       d  f       N== f)N©rR   F)Ústrip_inline_comments)	ÚosÚfspathrN   ÚopenÚreadr   Úparse_ini_datarO   r4   )	r   rN   rQ   rR   rP   rO   Úsections_dataÚsourcesÚfps	            r   r   ÚIniConfig.__init__^   s†   € ô —I’I˜d“OˆŒ	ð Ñ  XÑ%9à%ˆMØ‰Gð ‰|Ü˜$Ÿ)™)¨hÒ7¸2ØŸ7™7›9�D÷ 8ô &,×%:Ò%:Ø—	‘	˜4°uñ&Ñ"ˆMð
  ŒØ%�÷ 8Õ7ús   ¾BÂ
BTF©rU   Ústrip_section_whitespacerU   r`   c                óÚ   • [         R                  " U5      nUc"  [        XcS9 nUR                  5       nSSS5        [        R
                  " UUUUS9u  p‰U " XhU	S9$ ! , (       d  f       N.= f)aá  Parse an INI file.

Args:
    path: Path to the INI file (used for error messages)
    data: Optional INI content as string. If None, reads from path.
    encoding: Encoding to use when reading the file (default: utf-8)
    strip_inline_comments: Whether to strip inline comments from values
        (default: True). When True, comments starting with # or ; are
        removed from values, matching the behavior for section comments.
    strip_section_whitespace: Whether to strip whitespace from section and key names
        (default: False). When True, strips Unicode whitespace from section and key names,
        addressing issue #4. When False, preserves existing behavior for backward compatibility.

Returns:
    IniConfig instance with parsed configuration

Example:
    # With comment stripping (default):
    config = IniConfig.parse("setup.cfg")
    # value = "foo" instead of "foo # comment"

    # Without comment stripping (old behavior):
    config = IniConfig.parse("setup.cfg", strip_inline_comments=False)
    # value = "foo # comment"

    # With section name stripping (opt-in for issue #4):
    config = IniConfig.parse("setup.cfg", strip_section_whitespace=True)
    # section names and keys have Unicode whitespace stripped
NrT   r_   )rN   rP   rO   )rV   rW   rX   rY   r   rZ   )
ÚclsrN   rQ   rR   rU   r`   rW   r]   r[   r\   s
             r   ÚparseÚIniConfig.parse}   sj   € ôN —’˜4“ˆà‰<Ü�fÒ0°BØ—w‘w“y�÷ 1ô "(×!6Ò!6ØØØ"7Ø%=ñ	"
Ñˆñ ˜À'ÑJÐJ÷ 1Õ0ús   £AÁ
A*r>   r   c                 óN   • U R                   R                  X45      nUc  S $ US-   $ )Nr   )rO   r(   )r   r>   r   Úlinenos       r   r!   ÚIniConfig.lineof´   s+   € Ø—‘×"Ñ" G ?Ó3ˆØ‘~ˆtÐ5¨6°A©:Ð5r   c                 ó   • g r   r&   )r   r>   r   s      r   r(   ÚIniConfig.get¸   s   € ð
 r   r*   c                 ó   • g r   r&   )r   r>   r   r*   s       r   r(   ri   ¿   r/   r   r,   c                 ó   • g r   r&   ©r   r>   r   r,   r*   s        r   r(   ri   Ç   s   € ð r   c                 ó   • g r   r&   rl   s        r   r(   ri   Ð   s   € ð r   c                 ó   • g r   r&   rl   s        r   r(   ri   Õ   s   € ð r   c                 óf   •  U R                   U   U   nUb  U" U5      $ U$ ! [         a    Us $ f = fr   )r4   ÚKeyError)r   r>   r   r,   r*   Úvalues         r   r(   ri   Þ   sG   € ð	ØŸ™ wÑ/°Ñ5ˆEð Ñ"Ù˜u“~Ð%à�øô ó 	ØŠNð	ús   ‚! ¡0¯0c                 óL   • XR                   ;  a  [        U5      e[        X5      $ r   )r4   rp   r   r"   s     r   r5   ÚIniConfig.__getitem__ï   s!   € Ø—}‘}Ó$Ü˜4“.Ð Ü˜dÓ)Ð)r   c              #   óp   #   • [        U R                  U R                  S9 H  n[        X5      v •  M     g 7f)Nr:   )r=   r4   r!   r   r"   s     r   r?   ÚIniConfig.__iter__ô   s)   é € Ü˜4Ÿ=™=¨d¯k©kÔ:ˆDÜ  Ó,Ô,ò ;ùs   ‚46Úargc                 ó   • XR                   ;   $ r   )r4   )r   rv   s     r   Ú__contains__ÚIniConfig.__contains__ø   s   € Ø—m‘mÑ#Ð#r   )rO   rN   r4   )Nzutf-8r   rD   )rE   rF   rG   rH   r   r;   rI   r   rJ   r<   rV   ÚPathLiker   ÚclassmethodÚboolrc   r!   r   r(   r   r   r   r   r5   r   r?   rx   rK   r&   r   r   r	   r	   Y   sƒ  ‡ Ø
�‰*ÓØ�G˜C ¨¨c¨Ñ!2Ð2Ñ3Ñ4Ó4Ø�G˜E # s¨T¡z /Ñ2°CÐ7Ñ8Ñ9Ó9ð
  Øð	&ð =AØ@Dò&à�B—K‘K Ñ$Ñ$ð&ð �D‰jð&ð ð	&ð ˜3 ¨¨S¨Ñ 1Ð1Ñ2°TÑ9ð&ð ˜%  S¨4¡Z Ñ0°#Ð5Ñ6¸Ñ=ð&ð 
ö&ð> ð  Øð	4Kð '+Ø).ò4Kà�B—K‘K Ñ$Ñ$ð4Kð �D‰jð4Kð ð	4Kð  $ð4Kð #'ð4Kð 
õ4Kó ð4Kñl6˜cð 6¨¨t©ð 6¸sÀT¹zõ 6ð ðàðð ðð 
ˆt‰ó	ó ðð ðàðð ðð ˜3˜% ˜)Ñ$ð	ð
 
ˆd‰óó ðð ðàðð ðð ð	ð
 ˜3˜% ˜)Ñ$ðð 
ˆd‰óó ðð àDHñØðØ"%ðØ02ðØ=Aðà	ˆr‰ôó ðð ðàðð ðð ð	ð
 ˜3˜% ˜)Ñ$ðð 
ˆb‰óó ðð "Ø.2ñàðð ðð �d‘ð	ð
 ˜3˜% ˜)Ñ$ tÑ+ðð 
ˆb‰�3‰˜Ñ	õð"* ð *¨ô *ð
-˜( >Ñ2ô -ð$ ð $¨÷ $r   r	   )Ú__doc__rV   Úcollections.abcr   r   r   Útypingr   r   r   Ú__all__Ú r   r   r   Ú
exceptionsr
   r   r   r   r	   r&   r   r   Ú<module>rƒ      s[   ðñó 
Ý $Ý $Ý #Ý Ý Ý â
F€å Ý  Ý !Ý "áˆTƒ]€ÙˆTƒ]€÷>#ñ >#÷B`$ò `$r   