
    q`X                     p    d Z ddgZdZ G d de          Z G d de          Z G d de          Zd Zd	S )
ze brain-dead simple parser for ini-style files.
(C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
	IniConfig
ParseErrorz#;c                       e Zd Zd Zd ZdS )r   c                 j    t                               | |||           || _        || _        || _        d S N)	Exception__init__pathlinenomsg)selfr	   r
   r   s       2lib/python3.11/site-packages/iniconfig/__init__.pyr   zParseError.__init__
   s5    4vs333	    c                 :    | j         d| j        dz   d| j        S )N:   z: )r	   r
   r   )r   s    r   __str__zParseError.__str__   s#    "iiiQAAr   N)__name__
__module____qualname__r   r    r   r   r   r   	   s7          B B B B Br   c                   8    e Zd Zd Zd ZdefdZd Zd Zd Z	dS )SectionWrapperc                 "    || _         || _        d S r   )configname)r   r   r   s      r   r   zSectionWrapper.__init__   s    			r   c                 B    | j                             | j        |          S r   r   lineofr   r   r   s     r   r   zSectionWrapper.lineof   s    {!!$)T222r   Nc                 H    | j                             | j        |||          S )N)convertdefault)r   getr   )r   keyr"   r!   s       r   r#   zSectionWrapper.get   s-    {ty#'.  A A 	Ar   c                 <    | j         j        | j                 |         S r   )r   sectionsr   )r   r$   s     r   __getitem__zSectionWrapper.__getitem__    s    {#DI.s33r   c              #       K    j         j                             j        g           } fd}t	          ||          D ]}|V  d S )Nc                 D    j                             j        |           S r   r   )r$   r   s    r   r   z'SectionWrapper.__iter__.<locals>.lineof&   s    ;%%di555r   r$   )r   r&   r#   r   sorted)r   sectionr   r   s   `   r   __iter__zSectionWrapper.__iter__#   sm      +&**49b99	6 	6 	6 	6 	67/// 	 	DJJJJ	 	r   c              #   ,   K   | D ]}|| |         fV  d S r   r   r   s     r   itemszSectionWrapper.items+   s7       	# 	#DT
"""""	# 	#r   )
r   r   r   r   r   strr#   r'   r-   r/   r   r   r   r   r      s~          3 3 3  $S A A A A4 4 4  # # # # #r   r   c                   N    e Zd ZddZd Zd Zd ZddZdefdZ	d Z
d	 Zd
 ZdS )r   Nc                    t          |          | _        |et          | j                  }	 |                     t	          |                    }|                                 nA# |                                 w xY w|                     |                    d                    }i | _        i | _        |D ]\  }}}}|| 	                    |d           || j        ||f<   |-|| j        v r| 	                    |d|           i | j        |<   Z|| j        |         v r| 	                    |d|           || j        |         |<   d S )NTzno section header definedzduplicate section zduplicate name )
r0   r	   open_parseiterclose
splitlines_sourcesr&   _raise)	r   r	   dataftokensr
   r,   r   values	            r   r   zIniConfig.__init__1   sR   II	<TYAT!WW--								[[!6!677F,2 	5 	5(FGT5F$?@@@+1DM'4-(|dm++KK''(LMMM)+g&&4=111KKtt(FGGG/4g&t,,	5 	5s   "A# #A9c                 .    t          | j        ||          r   )r   r	   )r   r
   r   s      r   r9   zIniConfig._raiseL   s    FC000r   c                    g }d }t          |          D ]\  }}|                     ||          \  }}|||                    ||||f           <|6|4|s|                     |d           |}|                    ||d d f           t|}|{|s|                     |d           |                                }|dd          \  }	}
|	|                     |d           |
r|
d|}|                    |d d         |fz              |S )Nzempty section namezunexpected value continuation
)	enumerate
_parselineappendr9   pop)r   	line_iterresultr,   r
   liner   r:   last	last_name	last_datas              r   r4   zIniConfig._parseO   sR   %i00 	3 	3LFDv66JD$D$4vwd;<<<<!dl >KK(<===vwd;<<<<$"2 IKK(GHHHzz||'+BCCy$	9$KK(GHHH 8'0yy$$7Dd3B3i4'1222r   c                    t          |          rd}n|                                }|sdS |d         dk    rg|}t          D ]/}|                    |          d                                         }0|d         dk    r|dd         d fS d |                                fS |d                                         s	 |                    dd          \  }}d	|v rt                      nT# t          $ rG 	 |                    d	d          \  }}n)# t          $ r |                     |d
|z             Y nw xY wY nw xY w|                                |                                fS d |                                fS )N )NN    [rB   ]r   =r   zunexpected line: %r)iscommentlinerstripCOMMENTCHARSsplitstripisspace
ValueErrorr9   )r   rI   r
   reallinecr   r=   s          r   rD   zIniConfig._parselinek   s    	!DD;;==D 	:7c>>H! 1 1zz!}}Q'..00Bx3AbDz4''))))a"" 	&F"jja00e$;;$,,&  F F FF"&**S!"4"4KD%%! F F FKK(=(DEEEEEFF
 ::<<.. %%s6   9+C% %
D60D
	D6
#D0-D6/D00D65D6c                 L    | j                             ||f          }||dz   S d S Nr   )r8   r#   )r   r,   r   r
   s       r   r   zIniConfig.lineof   s3    ""GT?33A: r   c                 `    	  || j         |         |                   S # t          $ r |cY S w xY wr   )r&   KeyError)r   r,   r   r"   r!   s        r   r#   zIniConfig.get   sG    	74=1$7888 	 	 	NNN	s    --c                 R    || j         vrt          |          t          | |          S r   )r&   r_   r   r   s     r   r'   zIniConfig.__getitem__   s+    t}$$4.. dD)))r   c              #   j   K   t          | j        | j                  D ]}t          | |          V  d S )Nr*   )r+   r&   r   r   r   s     r   r-   zIniConfig.__iter__   sI      4=dk::: 	- 	-D t,,,,,,	- 	-r   c                     || j         v S r   )r&   )r   args     r   __contains__zIniConfig.__contains__   s    dm##r   r   )r   r   r   r   r9   r4   rD   r   r0   r#   r'   r-   rd   r   r   r   r   r   0   s        5 5 5 561 1 1  8& & &@   
 *.s    * * *
- - -$ $ $ $ $r   c                 L    |                                  d d         }|t          v S r]   )lstriprU   )rI   r[   s     r   rS   rS      s#    bqbAr   N)	__doc____all__rU   r   r   objectr   r   rS   r   r   r   <module>rj      s     
%B B B B B B B B# # # # #V # # #8p$ p$ p$ p$ p$ p$ p$ p$f    r   