o
    !if	                     @  sZ   d dl mZ ddlmZ d dlmZ dZG dd deZdddZdddZ	dddZ
dS )    )annotations   )
ParseError)
NamedTuplez#;c                   @  s.   e Zd ZU ded< ded< ded< ded< dS )_ParsedLineintlinenoz
str | NonesectionnamevalueN)__name__
__module____qualname____annotations__ r   r   I/var/www/html/corbot_env/lib/python3.10/site-packages/iniconfig/_parse.pyr   
   s
   
 r   pathstr	line_iter	list[str]returnlist[_ParsedLine]c           	      C  s  g }d }t |D ]v\}}t| ||\}}|d ur'|d ur'|t|||| q|d urD|d u rD|s7t| |d|}|t||d d  q|d u r~|d ur~|sTt| |d| }|jd u rct| |d|jrs|j|j d| d}n|j|d}|| q|S )Nzempty section namezunexpected value continuation
)r   )		enumerate
_parselineappendr   r   popr
   r   _replace)	r   r   resultr	   r   liner
   datalastr   r   r   parse_lines   s.   

r"   r   r   r   tuple[str | None, str | None]c                 C  s  t |rd}n| }|sdS |d dkr9|}tD ]}||d  }q|d dkr3|dd d fS d | fS |d  s|z|dd\}}d	|v rOt W n# tys   z
|d	d\}}W n typ   t| |d
| w Y nw | | fS d | fS )N )NNr   []r   =:zunexpected line: %r)iscommentlinerstripCOMMENTCHARSsplitstripisspace
ValueErrorr   )r   r   r   reallinecr
   r   r   r   r   r   /   s8   r   boolc                 C  s   |   d d }|tv S )Nr   )lstripr,   )r   r2   r   r   r   r*   P   s   r*   N)r   r   r   r   r   r   )r   r   r   r   r   r   r   r#   )r   r   r   r3   )
__future__r   
exceptionsr   typingr   r,   r   r"   r   r*   r   r   r   r   <module>   s    

!