§
    s
ÊjI  ã                   óò   — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 g d	¢Z
d
dlmZ d
dlmZ d
dlmZ d
dlmZ  ed¦  «        Z ed¦  «        Z G d„ d¦  «        Z G d„ d¦  «        ZdS )zdbrain-dead simple parser for ini-style files.
(C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
é    N)ÚCallable)ÚIterator)ÚMapping)ÚFinal)ÚTypeVar)Úoverload)ÚCOMMENTCHARSÚ	IniConfigÚ
ParseErrorÚiscommentlineé   )Ú_parse)r	   )r   )r   Ú_DÚ_Tc                   ó  — e Zd ZU ed         ed<   ee         ed<   dddeddfd„Zdededz  fd„Ze	dededz  fd	„¦   «         Z
e	ded
eegef         dedz  fd„¦   «         Z
e	deddd
eegef         dedz  fd„¦   «         Z
e	ddeded
ddeez  fd„¦   «         Z
e	deded
eegef         deez  fd„¦   «         Z
	 	 ddededz  d
eegef         dz  deez  ez  dz  fd„Z
dedefd„Zdee         fd„Zdeeeef                  fd„ZdS )ÚSectionWrapperr
   ÚconfigÚnameÚreturnNc                 ó"   — || _         || _        d S ©N)r   r   )Úselfr   r   s      úBC:\Projects\Muse2API\.venv\Lib\site-packages\iniconfig/__init__.pyÚ__init__zSectionWrapper.__init__   s   € ØˆŒØˆŒ	ˆ	ˆ	ó    c                 óB   — | j                              | j        |¦  «        S r   ©r   Úlineofr   ©r   r   s     r   r   zSectionWrapper.lineof    s   € ØŒ{×!Ò! $¤)¨TÑ2Ô2Ð2r   Úkeyc                 ó   — d S r   © ©r   r    s     r   ÚgetzSectionWrapper.get#   s   € Ø+.¨3r   Úconvertc                 ó   — d S r   r"   )r   r    r%   s      r   r$   zSectionWrapper.get&   s	   € ð
 �Cr   Údefaultc                 ó   — d S r   r"   ©r   r    r'   r%   s       r   r$   zSectionWrapper.get-   ó	   € ð �Cr   c                 ó   — d S r   r"   r)   s       r   r$   zSectionWrapper.get5   s   € ØLOÈCr   c                 ó   — d S r   r"   r)   s       r   r$   zSectionWrapper.get8   s	   € ð �#r   c                 óH   — | j                              | j        |||¬¦  «        S )N)r%   r'   )r   r$   r   r)   s       r   r$   zSectionWrapper.getA   s"   € ð Œ{�Š˜tœy¨#°wÈˆÑPÔPÐPr   c                 ó<   — | j         j        | j                 |         S r   )r   Úsectionsr   r#   s     r   Ú__getitem__zSectionWrapper.__getitem__I   s   € ØŒ{Ô# D¤IÔ.¨sÔ3Ð3r   c              #   ó¬   ‡ K  — ‰ j         j                             ‰ j        i ¦  «        }dt          dt
          fˆ fd„}t          ||¬¦  «        E d {V —† d S )Nr    r   c                 óD   •— ‰j                              ‰j        | ¦  «        S r   r   )r    r   s    €r   r   z'SectionWrapper.__iter__.<locals>.lineofO   s   ø€ Ø”;×%Ò% d¤i°Ñ5Ô5Ð5r   ©r    )r   r/   r$   r   ÚstrÚintÚsorted)r   Úsectionr   s   `  r   Ú__iter__zSectionWrapper.__iter__L   s|   øè è € Ø%)¤[Ô%9×%=Ò%=¸d¼iÈÑ%LÔ%Lˆð	6�ð 	6¥ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6õ ˜' vÐ.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.r   c              #   ó,   K  — | D ]}|| |         fV — Œd S r   r"   r   s     r   ÚitemszSectionWrapper.itemsT   s7   è è € Øð 	#ð 	#ˆDØ˜˜Tœ
Ð"Ð"Ð"Ð"Ð"ð	#ð 	#r   r   ©NN)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r4   r   r5   r   r   r$   r   r   r   r0   r   r8   Útupler:   r"   r   r   r   r      sª  € € € € € € Ø�+ÔÐÐÑØ
�Œ*ÐÐÑð˜{ð °#ð ¸$ð ð ð ð ð3˜3ð 3 3¨¡:ð 3ð 3ð 3ð 3ð Ø.�sÐ.˜s T™zÐ.Ð.Ð.ñ „XØ.àðàðð ˜3˜% ˜)Ô$ðð 
ˆd‰ð	ð ð ñ „Xðð ðàðð ðð ˜3˜% ˜)Ô$ð	ð
 
ˆd‰ðð ð ñ „Xðð ØOÐO�sÐO RÐO°$ÐOÀ#ÈÁ(ÐOÐOÐOñ „XØOàðàðð ðð ˜3˜% ˜)Ô$ð	ð
 
ˆb‰ðð ð ñ „Xðð "Ø.2ð	Qð QàðQð �d‘ðQð ˜3˜% ˜)Ô$ tÑ+ð	Qð
 
ˆb‰�3‰˜Ñ	ðQð Qð Qð Qð4˜sð 4 sð 4ð 4ð 4ð 4ð/˜( 3œ-ð /ð /ð /ð /ð#�x  c¨3 h¤Ô0ð #ð #ð #ð #ð #ð #r   r   c                   ón  — e Zd ZU ee         ed<   eeeeeef         f                  ed<   eeeeedz  f         ef                  ed<   	 	 d!dddœdee	j
        e         z  dedz  ded	eeeeef         f         dz  deeeedz  f         ef         dz  d
dfd„Ze	 	 d!dddœdee	j
        e         z  dedz  dededed
d fd„¦   «         Zd"dededz  d
edz  fd„Zededed
edz  fd„¦   «         Zedededeegef         d
edz  fd„¦   «         Zedededddeegef         d
edz  f
d„¦   «         Ze	 d"dedededdd
eez  f
d„¦   «         Zededededeegef         d
eez  f
d„¦   «         Z	 	 d#dedededz  deegef         dz  d
eez  ez  dz  f
d„Zded
efd„Zd
ee         fd„Zded
efd „ZdS )$r
   Úpathr/   NÚ_sourcesúutf-8)Ú	_sectionsrC   ÚdataÚencodingrE   r   c                ó,  — t          j        |¦  «        | _        |�|�|}|}nc|€Bt          | j        |¬¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        | j        |d¬¦  «        \  }}|| _        || _        d S )N©rG   F)Ústrip_inline_comments)	ÚosÚfspathrB   ÚopenÚreadr   Úparse_ini_datarC   r/   )	r   rB   rF   rG   rE   rC   Úsections_dataÚsourcesÚfps	            r   r   zIniConfig.__init__^   sâ   € õ ”I˜d‘O”OˆŒ	ð Ð  XÐ%9à%ˆMØˆGˆGð ˆ|Ý˜$œ)¨hÐ7Ñ7Ô7ð %¸2ØŸ7š7™9œ9�Dð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ &,Ô%:Ø”	˜4°uð&ñ &ô &Ñ"ˆM˜7ð
  ˆŒØ%ˆŒˆˆs   »AÁA Á#A TF©rJ   Ústrip_section_whitespacerJ   rT   c                óú   — t          j        |¦  «        }|€=t          ||¬¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t	          j        ||||¬¦  «        \  }}	 | |||	¬¦  «        S )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
        NrI   rS   )rB   rE   rC   )rK   rL   rM   rN   r   rO   )
ÚclsrB   rF   rG   rJ   rT   rL   rR   rP   rQ   s
             r   ÚparsezIniConfig.parse}   sÌ   € õN ”˜4‘”ˆàˆ<Ý�f xÐ0Ñ0Ô0ð !°BØ—w’w‘y”y�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ "(Ô!6ØØØ"7Ø%=ð	"
ñ "
ô "
Ñˆ�wð ˆs˜¨-À'ÐJÑJÔJÐJs   ¨A	Á	AÁAr7   r   c                 óL   — | j                              ||f¦  «        }|€d n|dz   S )Nr   )rC   r$   )r   r7   r   Úlinenos       r   r   zIniConfig.lineof´   s-   € Ø”×"Ò" G¨T ?Ñ3Ô3ˆØ�~ˆtˆt¨6°A©:Ð5r   c                 ó   — d S r   r"   )r   r7   r   s      r   r$   zIniConfig.get¸   s	   € ð
 �Sr   r%   c                 ó   — d S r   r"   )r   r7   r   r%   s       r   r$   zIniConfig.get¿   r*   r   r'   c                 ó   — d S r   r"   ©r   r7   r   r'   r%   s        r   r$   zIniConfig.getÇ   s	   € ð �Cr   c                 ó   — d S r   r"   r]   s        r   r$   zIniConfig.getÐ   s	   € ð �3r   c                 ó   — d S r   r"   r]   s        r   r$   zIniConfig.getÕ   s	   € ð �#r   c                 ól   — 	 | j         |         |         }|� ||¦  «        S |S # t          $ r |cY S w xY wr   )r/   ÚKeyError)r   r7   r   r'   r%   Úvalues         r   r$   zIniConfig.getÞ   sY   € ð	Øœ wÔ/°Ô5ˆEð Ð"Ø�w˜u‘~”~Ð%à�øõ ð 	ð 	ð 	ØˆNˆNˆNð	øøøs   ‚$ ¤3²3c                 óR   — || j         vrt          |¦  «        ‚t          | |¦  «        S r   )r/   ra   r   r   s     r   r0   zIniConfig.__getitem__ï   s+   € Ø�t”}Ð$Ð$Ý˜4‘.”.Ð Ý˜d DÑ)Ô)Ð)r   c              #   ój   K  — t          | j        | j        ¬¦  «        D ]}t          | |¦  «        V — Œd S )Nr3   )r6   r/   r   r   r   s     r   r8   zIniConfig.__iter__ô   sI   è è € Ý˜4œ=¨d¬kÐ:Ñ:Ô:ð 	-ð 	-ˆDÝ   tÑ,Ô,Ð,Ð,Ð,Ð,ð	-ð 	-r   Úargc                 ó   — || j         v S r   )r/   )r   re   s     r   Ú__contains__zIniConfig.__contains__ø   s   € Ø�d”mÐ#Ð#r   )NrD   r   r;   )r<   r=   r>   r   r4   r?   r   r@   r5   rK   ÚPathLiker   ÚclassmethodÚboolrW   r   r   r$   r   r   r   r   r0   r   r8   rg   r"   r   r   r
   r
   Y   sn  € € € € € € Ø
�Œ*ÐÐÑØ�G˜C ¨¨c¨Ô!2Ð2Ô3Ô4Ð4Ð4Ñ4Ø�G˜E # s¨T¡z /Ô2°CÐ7Ô8Ô9Ð9Ð9Ñ9ð
  Øð	&ð =AØ@Dð&ð &ð &à�B”K Ô$Ñ$ð&ð �D‰jð&ð ð	&ð ˜3 ¨¨S¨Ô 1Ð1Ô2°TÑ9ð&ð ˜%  S¨4¡Z Ô0°#Ð5Ô6¸Ñ=ð&ð 
ð&ð &ð &ð &ð> ð  Øð	4Kð '+Ø).ð4Kð 4Kð 4Kà�B”K Ô$Ñ$ð4Kð �D‰jð4Kð ð	4Kð  $ð4Kð #'ð4Kð 
ð4Kð 4Kð 4Kñ „[ð4Kðl6ð 6˜cð 6¨¨t©ð 6¸sÀT¹zð 6ð 6ð 6ð 6ð ðàðð ðð 
ˆt‰ð	ð ð ñ „Xðð ðàðð ðð ˜3˜% ˜)Ô$ð	ð
 
ˆd‰ðð ð ñ „Xðð ðàðð ðð ð	ð
 ˜3˜% ˜)Ô$ðð 
ˆd‰ðð ð ñ „Xðð àDHðð ØðØ"%ðØ02ðØ=Aðà	ˆr‰ðð ð ñ „Xðð ðàðð ðð ð	ð
 ˜3˜% ˜)Ô$ðð 
ˆb‰ðð ð ñ „Xðð "Ø.2ðð àðð ðð �d‘ð	ð
 ˜3˜% ˜)Ô$ tÑ+ðð 
ˆb‰�3‰˜Ñ	ðð ð ð ð"* ð *¨ð *ð *ð *ð *ð
-˜( >Ô2ð -ð -ð -ð -ð$ ð $¨ð $ð $ð $ð $ð $ð $r   r
   )Ú__doc__rK   Úcollections.abcr   r   r   Útypingr   r   r   Ú__all__Ú r   r	   r   Ú
exceptionsr   r   r   r   r
   r"   r   r   ú<module>rq      sX  ððð ð 
€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à
FÐ
FÐ
F€à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "à€WˆT�]„]€Ø€WˆT�]„]€ð>#ð >#ð >#ð >#ð >#ñ >#ô >#ð >#ðB`$ð `$ð `$ð `$ð `$ñ `$ô `$ð `$ð `$ð `$r   