
    F-PhV                        d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlZerddlmZ g dZddlmZ dd	lmZ dd
lmZmZ  e	d          Z e	d          Z G d d          Z G d d          ZdS )ze brain-dead simple parser for ini-style files.
(C) Ronny Pfannschmidt, Holger Krekel -- MIT licensed
    )annotations)CallableIteratorMappingOptionalTupleTypeVarUnionTYPE_CHECKINGNoReturn
NamedTupleoverloadcastN)Final)	IniConfig
ParseErrorCOMMENTCHARSiscommentline   )r   )_parse)r   r   _D_Tc                      e Zd ZU ded<   ded<   d$d	Zd%dZed&d            Zed'd            Zed(d            Zed)d*d            Zed+d            Z	 	 d,d-dZd.dZd/d!Z	d0d#Z
dS )1SectionWrapperzFinal[IniConfig]config
Final[str]namer   strreturnNonec                "    || _         || _        d S N)r   r   )selfr   r   s      R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/iniconfig/__init__.py__init__zSectionWrapper.__init__'   s    			    
int | Nonec                B    | j                             | j        |          S r"   r   lineofr   r#   r   s     r$   r*   zSectionWrapper.lineof+   s    {!!$)T222r&   key
str | Nonec                    d S r"    r#   r,   s     r$   getzSectionWrapper.get.       r&   convertCallable[[str], _T]	_T | Nonec                    d S r"   r/   )r#   r,   r3   s      r$   r1   zSectionWrapper.get2   	     	r&   defaultc                    d S r"   r/   r#   r,   r8   r3   s       r$   r1   zSectionWrapper.get:   	     	r&   Nr   str | _Dc                    d S r"   r/   r:   s       r$   r1   zSectionWrapper.getC   r2   r&   _T | _Dc                    d S r"   r/   r:   s       r$   r1   zSectionWrapper.getG   r;   r&   	_D | NoneCallable[[str], _T] | None_D | _T | str | Nonec                H    | j                             | j        |||          S )N)r3   r8   )r   r1   r   r:   s       r$   r1   zSectionWrapper.getQ   s"     {ty#wPPPr&   c                <    | j         j        | j                 |         S r"   )r   sectionsr   r0   s     r$   __getitem__zSectionWrapper.__getitem__Y   s    {#DI.s33r&   Iterator[str]c              #      K    j         j                             j        i           }d fd}t	          ||          E d {V  d S )Nr,   r   r   intc                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   rI   )r   rE   r1   r   sorted)r#   sectionr*   s   `  r$   __iter__zSectionWrapper.__iter__\   sn      %)[%9%=%=di%L%L	6 	6 	6 	6 	6 	6 'v............r&   Iterator[tuple[str, str]]c              #  ,   K   | D ]}|| |         fV  d S r"   r/   r+   s     r$   itemszSectionWrapper.itemsd   s7       	# 	#DT
"""""	# 	#r&   )r   r   r   r   r   r    )r   r   r   r'   )r,   r   r   r-   )r,   r   r3   r4   r   r5   )r,   r   r8   r    r3   r4   r   r5   r"   )r,   r   r8   r   r3   r    r   r<   )r,   r   r8   r   r3   r4   r   r>   NN)r,   r   r8   r@   r3   rA   r   rB   )r,   r   r   r   )r   rG   )r   rO   )__name__
__module____qualname____annotations__r%   r*   r   r1   rF   rN   rQ   r/   r&   r$   r   r   #   s]           3 3 3 3    X    X    X     X    X ".2	Q Q Q Q Q4 4 4 4/ / / /# # # # # #r&   r   c                      e Zd ZU ded<   ded<   	 	 d*d+dZd,d-dZed.d            Zed/d            Zed0d            Ze	 d,d1d            Zed2d            Z	 	 d3d4d"Zd5d$Zd6d&Z	d7d)Z
dS )8r   r   pathz&Final[Mapping[str, Mapping[str, str]]]rE   Nutf-8str | os.PathLike[str]datar-   encodingr   r   r    c                X   t          j        |          | _        |Bt          | j        |          5 }|                                }d d d            n# 1 swxY w Y   t          j        | j        |                    d                    }i | _        i x| _	        }|D ]\  }}}	}
|t          | j        |d          || j        ||	f<   |	(|| j	        v rt          | j        |d|          i ||<   U|	| j	        |         v rt          | j        |d|	          |
J |
||         |	<   d S )N)r\   Tzno section header definedzduplicate section zduplicate name )osfspathrX   openreadr   parse_lines
splitlines_sourcesrE   r   )r#   rX   r[   r\   fptokenssections_datalinenorM   r   values              r$   r%   zIniConfig.__init__m   s    IdOO	<di(333 !rwwyy! ! ! ! ! ! ! ! ! ! ! ! ! ! ! #DItt/D/DEE(**,2 	5 	5(FGT5 F4OPPP+1DM'4-(|dm++$	6+K+K+K   *,g&&4=111$TY8R$8R8RSSS(((/4g&t,,	5 	5s   AAArM   r   r'   c                L    | j                             ||f          }|d n|dz   S )Nr   )rd   r1   )r#   rM   r   rh   s       r$   r*   zIniConfig.lineof   s-    ""GT?33~tt6A:5r&   c                    d S r"   r/   )r#   rM   r   s      r$   r1   zIniConfig.get   r7   r&   r3   r4   r5   c                    d S r"   r/   )r#   rM   r   r3   s       r$   r1   zIniConfig.get   r;   r&   r8   c                    d S r"   r/   r#   rM   r   r8   r3   s        r$   r1   zIniConfig.get   	     	r&   r   r<   c                    d S r"   r/   rn   s        r$   r1   zIniConfig.get   s	     	r&   r>   c                    d S r"   r/   rn   s        r$   r1   zIniConfig.get   ro   r&   r@   rA   rB   c                l    	 | j         |         |         }| ||          S |S # t          $ r |cY S w xY wr"   )rE   KeyError)r#   rM   r   r8   r3   ri   s         r$   r1   zIniConfig.get   sY    	w/5E "wu~~%  	 	 	NNN	s   $ 33r   c                R    || j         vrt          |          t          | |          S r"   )rE   rs   r   r+   s     r$   rF   zIniConfig.__getitem__   s+    t}$$4.. dD)))r&   Iterator[SectionWrapper]c              #  j   K   t          | j        | j                  D ]}t          | |          V  d S )NrK   )rL   rE   r*   r   r+   s     r$   rN   zIniConfig.__iter__   sI      4=dk::: 	- 	-D t,,,,,,	- 	-r&   argboolc                    || j         v S r"   )rE   )r#   rw   s     r$   __contains__zIniConfig.__contains__   s    dm##r&   )NrY   )rX   rZ   r[   r-   r\   r   r   r    r"   )rM   r   r   r-   r   r'   )rM   r   r   r   r   r-   )rM   r   r   r   r3   r4   r   r5   )
rM   r   r   r   r8   r    r3   r4   r   r5   )
rM   r   r   r   r8   r   r3   r    r   r<   )
rM   r   r   r   r8   r   r3   r4   r   r>   rR   )
rM   r   r   r   r8   r@   r3   rA   r   rB   )r   r   r   r   )r   ru   )rw   r   r   rx   )rS   rT   rU   rV   r%   r*   r   r1   rF   rN   rz   r/   r&   r$   r   r   i   sn        4444
  	5 5 5 5 5B6 6 6 6 6    X    X    X DH    X
    X ".2    "* * * *
- - - -$ $ $ $ $ $r&   r   )__doc__
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r^   r   __all__
exceptionsr    r   r   r   r   r   r   r   r/   r&   r$   <module>r      s    # " " " " "                            
			 
F
F
F " " " " " "       / / / / / / / /WT]]WT]]C# C# C# C# C# C# C# C#Lo$ o$ o$ o$ o$ o$ o$ o$ o$ o$r&   