a
    Nb                     @   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
 d3e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eddefdefgZeddee fdee fdefdefg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  d0d1d2Z*dS )4    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   J/var/www/html/diaryflask/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\\[\\']Originalr
   lineBindingkeyvalueoriginalerrorc                   @   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)
__name__
__module____qualname__intr   classmethodr#   r%   strr)   r   r   r   r   r   /   s
   r   c                   @   s   e Zd ZdS )ErrorN)r*   r+   r,   r   r   r   r   r0   A   s   r0   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   r3   r   r   r   r   F   s    

zReader.__init__r    c                 C   s   | j jt| jk S r   )r5   r   r&   r
   r   r   r   r   has_nextK   s    zReader.has_nextc                 C   s   | j | j d S r   )r6   r%   r5   r7   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
   r6   r   r5   r   r7   r   r   r   
get_markedQ   s    zReader.get_marked)countr   c                 C   s   | j | jj| jj|  S r   )r
   r5   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
   r5   r   r&   r0   r)   )r   r;   resultr   r   r   r4   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
   r5   r   r0   r)   r#   endgroups)r   r>   r?   r   r   r   
read_regexa   s
    zReader.read_regex)r*   r+   r,   r   r/   r   boolr8   r9   r   r:   r-   r<   r4   r   r   rB   r   r   r   r   r1   E   s   r1   )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<   rB   _single_quoted_key_unquoted_key)rJ   charr   r   r   r   	parse_keyp   s    
rP   c                 C   s   |  t\}tdd| S )Nz\s+#.* )rB   _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<   rB   _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)r9   rB   _multiline_whitespacer8   r   r:   _exportrP   _whitespacer<   _equal_signr]   _comment_end_of_liner0   _rest_of_line)rJ   r   r   r   r   r   parse_binding   sB    







rf   r2   c                 c   s    t | }| rt|V  qd S r   )r1   r8   rf   )r3   rJ   r   r   r   parse_stream   s    rg   )r   )+rD   r   typingr   r   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   rC   r   r   	Exceptionr0   r1   rI   rP   rU   r]   rf   rg   r   r   r   r   <module>   sR   (

$%