a
    mIgB                     @   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   I/var/www/html/django/DPS/env/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:   ($%