a
    e	g	                     @  sr   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
dddZdddddddZ	dd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   S/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/iniconfig/_parse.pyr   
   s   
r   strz	list[str]zlist[_ParsedLine])path	line_iterreturnc           	      C  s  g }d }t |D ]\}}t| ||\}}|d urN|d urN|t|||| q|d ur|d u r|snt| |d|}|t||d d  q|d u r|d ur|st| |d| }|jd u rt| |d|jr|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   ztuple[str | None, str | None])r   r   r   r   c                 C  s  t |rd}n| }|sdS |d dkrr|}tD ]}||d  }q2|d dkrf|dd d fS d | fS |d   sz"|dd\}}d	|v rt W nJ ty   z|d	d\}}W n" ty   t| |d
| Y n0 Y n0 | | fS d | fS d S )N )NNr   []r   =:zunexpected line: %r)iscommentlinerstripCOMMENTCHARSsplitstripisspace
ValueErrorr   )r   r   r   Zreallinecr
   r   r   r   r   r   /   s0    
r   bool)r   r   c                 C  s   |   d d }|tv S )Nr   )lstripr)   )r   r.   r   r   r   r'   P   s    r'   N)
__future__r   
exceptionsr   typingr   r)   r   r    r   r'   r   r   r   r   <module>   s   !