a
    ai;                     @   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	 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)stringextra_flagsreturnc                 C   s   t | t j|B S N)recompileUNICODE)r	   r
    r   G/var/www/html/SiteWeb/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__0   s    zPosition.__init__r   c                 C   s   | dddS )Nr      r#   r   )clsr   r   r   start4   s    zPosition.start)otherr   c                 C   s   |j | _ |j| _d S r   r#   )r$   r*   r   r   r   set8   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   advance<   s    zPosition.advance)
r   r   r   r   r%   classmethodr)   r+   r   r/   r   r   r   r   r!   /   s
   r!   c                   @   s   e Zd ZdS )ErrorN)r   r   r   r   r   r   r   r1   A   s   r1   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$   r4   r   r   r   r%   F   s    

zReader.__init__r&   c                 C   s   | j jt| jk S r   )r6   r"   r,   r	   r$   r   r   r   has_nextK   s    zReader.has_nextc                 C   s   | j | j d S r   )r7   r+   r6   r8   r   r   r   set_markN   s    zReader.set_markc                 C   s"   t | j| jj| jj | jjdS )N)r	   r   )r   r	   r7   r"   r6   r   r8   r   r   r   
get_markedQ   s    zReader.get_marked)countr   c                 C   s   | j | jj| jj|  S r   )r	   r6   r"   )r$   r<   r   r   r   peekW   s    zReader.peekc                 C   s>   | j | jj| jj|  }t||k r.td| j| |S )Nzread: End of string)r	   r6   r"   r,   r1   r/   )r$   r<   resultr   r   r   r5   Z   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	   r6   r"   r1   r/   r)   endgroups)r$   r?   r@   r   r   r   
read_regexa   s
    zReader.read_regex)r   r   r   r   r   r%   r    r9   r:   r   r;   r   r=   r5   r   r   rC   r   r   r   r   r2   E   s   r2   )r?   r	   r   c                 C   s    t t tddd}| ||S )N)r@   r   c                 S   s   t | ddS )Nr   zunicode-escape)codecsdecodegroup)r@   r   r   r   decode_matchj   s    z$decode_escapes.<locals>.decode_match)r   r   sub)r?   r	   rG   r   r   r   decode_escapesi   s    rI   )readerr   c                 C   s<   |  d}|dkrd S |dkr,| t\}n| t\}|S )Nr'   #')r=   rC   _single_quoted_key_unquoted_key)rJ   charr   r   r   r   	parse_keyp   s    
rP   c                 C   s   |  t\}tdd| S )Nz\s+#.* )rC   _unquoted_valuer   rH   rstrip)rJ   partr   r   r   parse_unquoted_value{   s    rU   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'   rL   ")rQ   
rQ   )r=   rC   _single_quoted_valuerI   _single_quote_escapes_double_quoted_value_double_quote_escapesrU   )rJ   rO   r   r   r   r   parse_value   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:   rC   _multiline_whitespacer9   r   r;   _exportrP   _whitespacer=   _equal_signr]   _comment_end_of_liner1   _rest_of_line)rJ   r   r   r   r   r   parse_binding   sB    







rf   r3   c                 c   s    t | }| rt|V  qd S r   )r2   r9   rf   )r4   rJ   r   r   r   parse_stream   s    rg   )r   ))rD   r   typingr   r   r   r   r   r   r   r   r   r   r.   	MULTILINEr_   ra   r`   rM   rN   rb   rY   r[   rR   rc   rd   re   r\   rZ   r   r   r!   	Exceptionr1   r2   rI   rP   rU   r]   rf   rg   r   r   r   r   <module>   s:   $$%