U
    42‹i„	  ã                   @  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   ú4/tmp/pip-unpacked-wheel-irxcfhdx/iniconfig/_parse.pyr   
   s   
r   Ústrz	list[str]zlist[_ParsedLine])ÚpathÚ	line_iterÚreturnc           	      C  s  g }d }t |ƒD ]ì\}}t| ||ƒ\}}|d k	rN|d k	rN| t||||ƒ¡ q|d k	rˆ|d krˆ|snt| |dƒ‚|}| t||d d ƒ¡ q|d kr|d k	r|s¨t| |dƒ‚| ¡ }|jd krÆt| |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  ¡ sz"| dd¡\}}d	|kr tƒ ‚W nN tk
rð   z| d	d¡\}}W n$ tk
rê   t| |d
| ƒ‚Y nX Y nX | ¡ | ¡ 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k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   !