a
    ¥Q•hB  ã                   @   s�  d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
 d/eeee dœdd„ZedƒZedejd�Zed	ƒZed
ƒZedƒZedƒZedƒZedƒZedƒZedƒZedƒZedƒZedƒZedƒZedƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZ G dd„ de!ƒZ"G dd„ dƒZ#ee eed œd!d"„Z$e#ee d#œd$d%„Z%e#ed#œd&d'„Z&e#ed#œd(d)„Z'e#ed#œd*d+„Z(ee ee d,œd-d.„Z)dS )0é    N)ÚIOÚIteratorÚMatchÚ
NamedTupleÚOptionalÚPatternÚSequenceÚTuple)ÚstringÚextra_flagsÚreturnc                 C   s   t  | t j|B ¡S ©N)ÚreÚcompileÚUNICODE)r
   r   © r   úF/var/www/sistema_ama/venv/lib/python3.9/site-packages/dotenv/parser.pyÚ
make_regex   s    r   z(\r\n|\n|\r)z\s*)r   z
[^\S\r\n]*z(?:export[^\S\r\n]+)?z	'([^']+)'z([^=\#\s]+)z(=[^\S\r\n]*)z'((?:\\'|[^'])*)'z"((?:\\"|[^"])*)"z
([^\r\n]*)z(?:[^\S\r\n]*#[^\r\n]*)?z[^\S\r\n]*(?:\r\n|\n|\r|$)z[^\r\n]*(?:\r|\n|\r\n)?z\\[\\'\"abfnrtv]z\\[\\']c                   @   s   e Zd ZU eed< eed< dS )ÚOriginalr
   ÚlineN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Úintr   r   r   r   r      s   
r   c                   @   s6   e Zd ZU ee ed< ee ed< eed< eed< dS )ÚBindingÚkeyÚvalueÚoriginalÚerrorN)r   r   r   r   r   r   r   Úboolr   r   r   r   r   !   s   
r   c                   @   sP   e Zd Zeeddœdd„Zed dœdd„ƒZd ddœd	d
„Zeddœdd„Z	dS )ÚPositionN)Úcharsr   r   c                 C   s   || _ || _d S r   ©r#   r   )Úselfr#   r   r   r   r   Ú__init__)   s    zPosition.__init__©r   c                 C   s   | ddd�S )Nr   é   r$   r   )Úclsr   r   r   Ústart-   s    zPosition.start)Úotherr   c                 C   s   |j | _ |j| _d S r   r$   )r%   r+   r   r   r   Úset1   s    zPosition.set)r
   r   c                 C   s0   |  j t|ƒ7  _ |  jtt t|¡ƒ7  _d S r   )r#   Úlenr   r   ÚfindallÚ_newline)r%   r
   r   r   r   Úadvance5   s    zPosition.advance)
r   r   r   r   r&   Úclassmethodr*   r,   r   r0   r   r   r   r   r"   (   s
   r"   c                   @   s   e Zd ZdS )ÚErrorN)r   r   r   r   r   r   r   r2   :   s   r2   c                   @   s‚   e Zd Zee ddœdd„Zedœdd„Zddœdd	„Ze	dœd
d„Z
eedœdd„Zeedœdd„Zee ee dœdd„ZdS )ÚReaderN©Ústreamr   c                 C   s"   |  ¡ | _t ¡ | _t ¡ | _d S r   )Úreadr
   r"   r*   ÚpositionÚmark)r%   r5   r   r   r   r&   ?   s    

zReader.__init__r'   c                 C   s   | j jt| jƒk S r   )r7   r#   r-   r
   ©r%   r   r   r   Úhas_nextD   s    zReader.has_nextc                 C   s   | j  | j¡ d S r   )r8   r,   r7   r9   r   r   r   Úset_markG   s    zReader.set_markc                 C   s"   t | j| jj| jj… | jjd�S )N)r
   r   )r   r
   r8   r#   r7   r   r9   r   r   r   Ú
get_markedJ   s    þzReader.get_marked)Úcountr   c                 C   s   | j | jj| jj| … S r   )r
   r7   r#   )r%   r=   r   r   r   ÚpeekP   s    zReader.peekc                 C   s>   | j | jj| jj| … }t|ƒ|k r.tdƒ‚| j |¡ |S )Nzread: End of string)r
   r7   r#   r-   r2   r0   )r%   r=   Úresultr   r   r   r6   S   s
    zReader.read)Úregexr   c                 C   sH   |  | j| jj¡}|d u r"tdƒ‚| j | j| ¡ | ¡ … ¡ | ¡ S )Nzread_regex: Pattern not found)	Úmatchr
   r7   r#   r2   r0   r*   ÚendÚgroups)r%   r@   rA   r   r   r   Ú
read_regexZ   s
    zReader.read_regex)r   r   r   r   r   r&   r!   r:   r;   r   r<   r   r>   r6   r   r   rD   r   r   r   r   r3   >   s   r3   )r@   r
   r   c                 C   s    t t tdœdd„}|  ||¡S )N)rA   r   c                 S   s   t  |  d¡d¡S )Nr   zunicode-escape)ÚcodecsÚdecodeÚgroup)rA   r   r   r   Údecode_matchc   s    z$decode_escapes.<locals>.decode_match)r   r   Úsub)r@   r
   rH   r   r   r   Údecode_escapesb   s    rJ   )Úreaderr   c                 C   s<   |   d¡}|dkrd S |dkr,|  t¡\}n|  t¡\}|S )Nr(   ú#ú')r>   rD   Ú_single_quoted_keyÚ_unquoted_key)rK   Úcharr   r   r   r   Ú	parse_keyi   s    
rQ   c                 C   s   |   t¡\}t dd|¡ ¡ S )Nz\s+#.*Ú )rD   Ú_unquoted_valuer   rI   Úrstrip)rK   Úpartr   r   r   Úparse_unquoted_valuet   s    rV   c                 C   s^   |   d¡}|dkr(|  t¡\}tt|ƒS |dkrF|  t¡\}tt|ƒS |dv rRdS t| ƒS d S )Nr(   rM   ú")rR   Ú
úrR   )r>   rD   Ú_single_quoted_valuerJ   Ú_single_quote_escapesÚ_double_quoted_valueÚ_double_quote_escapesrV   )rK   rP   r   r   r   r   Úparse_valuey   s    


r^   c              	   C   sÒ   |   ¡  z”|  t¡ |  ¡ s2td d |  ¡ dd�W S |  t¡ t| ƒ}|  t¡ |  	d¡dkrp|  t
¡ t| ƒ}nd }|  t¡ |  t¡ t|||  ¡ dd�W S  tyÌ   |  t¡ td d |  ¡ dd� Y S 0 d S )NF)r   r   r   r    r(   ú=T)r;   rD   Ú_multiline_whitespacer:   r   r<   Ú_exportrQ   Ú_whitespacer>   Ú_equal_signr^   Ú_commentÚ_end_of_liner2   Ú_rest_of_line)rK   r   r   r   r   r   Úparse_binding‡   sB    
ü





ü
ürg   r4   c                 c   s    t | ƒ}| ¡ rt|ƒV  qd S r   )r3   r:   rg   )r5   rK   r   r   r   Úparse_stream¬   s    rh   )r   )*rE   r   Útypingr   r   r   r   r   r   r   r	   r   r   r   r/   Ú	MULTILINEr`   rb   ra   rN   rO   rc   rZ   r\   rS   rd   re   rf   r]   r[   r   r   r"   Ú	Exceptionr2   r3   rJ   rQ   rV   r^   rg   rh   r   r   r   r   Ú<module>   s:   ($%