
                         x   S SK r S SKrS SKJrJrJrJrJrJrJ	r	J
r
  S-S\S\S\\   4S jjr\" S5      r\" S\R                  S	9r\" S
5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" SS\4S\4/5      r\" SS\\   4S\\   4S\4S\4/5      r  " S S5      r! " S  S!\"5      r# " S" S#5      r$S$\\   S\S\4S% jr%S&\$S\\   4S' jr&S&\$S\4S( jr'S&\$S\4S) jr(S&\$S\ 4S* jr)S+\\   S\\    4S, jr*g).    N)IOIteratorMatch
NamedTupleOptionalPatternSequenceTuplestringextra_flagsreturnc                 R    [         R                  " U [         R                  U-  5      $ N)recompileUNICODE)r   r   s      lib/third_party/dotenv/parser.py
make_regexr      s    ::fbjj;677    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\\[\\']OriginallineBindingkeyvalueoriginalerrorc                   Z    \ rS rSrS\S\SS4S jr\SS j5       rSS jrS	\	SS4S
 jr
Srg)Position/   charsr   r   Nc                     Xl         X l        g r   r    r   )selfr    r   s      r   __init__Position.__init__0   s    
	r   c                     U " SSS9$ )Nr      r"    )clss    r   startPosition.start4   s    ##r   c                 H    UR                   U l         UR                  U l        g r   r"   )r#   others     r   setPosition.set8   s    [[
JJ	r   r   c                     U =R                   [        U5      -  sl         U =R                  [        [        R                  " [
        U5      5      -  sl        g r   )r    lenr   r   findall_newline)r#   r   s     r   advancePosition.advance<   s2    

c&k!
		SHf566	r   r"   )r   r   )r-   r   r   N)__name__
__module____qualname____firstlineno__intr$   classmethodr*   r.   strr4   __static_attributes__r(   r   r   r   r   /   sH    c    $ $7c 7d 7r   r   c                       \ rS rSrSrg)ErrorA   r(   N)r6   r7   r8   r9   r=   r(   r   r   r?   r?   A   s    r   r?   c                       \ rS rSrS\\   SS4S jrS\4S jrSS jr	S\
4S jrS	\S\4S
 jrS	\S\4S jrS\\   S\\   4S jrSrg)ReaderE   streamr   Nc                     UR                  5       U l        [        R                  5       U l        [        R                  5       U l        g r   )readr   r   r*   positionmark)r#   rD   s     r   r$   Reader.__init__F   s+    kkm (NN$	r   c                 Z    U R                   R                  [        U R                  5      :  $ r   )rG   r    r1   r   r#   s    r   has_nextReader.has_nextK   s     }}""S%555r   c                 N    U R                   R                  U R                  5        g r   )rH   r.   rG   rK   s    r   set_markReader.set_markN   s    		dmm$r   c                     [        U R                  U R                  R                  U R                  R                   U R                  R
                  S9$ )N)r   r   )r   r   rH   r    rG   r   rK   s    r   
get_markedReader.get_markedQ   s:    ;;tyyt}}/B/BC
 	
r   countc                 v    U R                   U R                  R                  U R                  R                  U-    $ r   )r   rG   r    )r#   rT   s     r   peekReader.peekW   s,    {{4==..t}}/B/BU/JKKr   c                     U R                   U R                  R                  U R                  R                  U-    n[        U5      U:  a  [	        S5      eU R                  R                  U5        U$ )Nzread: End of string)r   rG   r    r1   r?   r4   )r#   rT   results      r   rF   Reader.readZ   sZ    T]]001D1Du1LMv;-..f%r   regexc                 &   UR                  U R                  U R                  R                  5      nUc  [	        S5      eU R                  R                  U R                  UR                  5       UR                  5        5        UR                  5       $ )Nzread_regex: Pattern not found)	matchr   rG   r    r?   r4   r*   endgroups)r#   r[   r]   s      r   
read_regexReader.read_regexa   sf    DKK)<)<==788dkk%++-		DE||~r   )rH   rG   r   )r   N)r6   r7   r8   r9   r   r<   r$   boolrL   rO   r   rR   r:   rV   rF   r   r	   r`   r=   r(   r   r   rB   rB   E   sz    %r#w %4 %
6$ 6%
H 
L# L# L# #  # r   rB   r[   c                 T    S[         [           S[        4S jnU R                  X!5      $ )Nr]   r   c                 N    [         R                  " U R                  S5      S5      $ )Nr   zunicode-escape)codecsdecodegroup)r]   s    r   decode_match$decode_escapes.<locals>.decode_matchj   s    }}U[[^-=>>r   )r   r<   sub)r[   r   rh   s      r   decode_escapesrk   i   s*    ?E#J ?3 ? 99\**r   readerc                     U R                  S5      nUS:X  a  g US:X  a  U R                  [        5      u  nU$ U R                  [        5      u  nU$ )Nr'   #')rV   r`   _single_quoted_key_unquoted_key)rl   charr   s      r   	parse_keyrs   p   sS    ;;q>Ds{	""#56 J ""=1Jr   c                 |    U R                  [        5      u  n[        R                  " SSU5      R	                  5       $ )Nz\s+#.* )r`   _unquoted_valuer   rj   rstrip)rl   parts     r   parse_unquoted_valuery   {   s0    0GT66)R&--//r   c                     U R                  S5      nUS:X  a'  U R                  [        5      u  n[        [        U5      $ US:X  a'  U R                  [
        5      u  n[        [        U5      $ US;   a  g[        U 5      $ )Nr'   ro   ")ru   
ru   )rV   r`   _single_quoted_valuerk   _single_quote_escapes_double_quoted_value_double_quote_escapesry   )rl   rr   r   s      r   parse_valuer      sv    ;;q>Dt|$$%9:3U;;	$$%9:3U;;	$	$#F++r   c                    U R                  5          U R                  [        5        U R                  5       (       d  [	        S S U R                  5       SS9$ U R                  [        5        [        U 5      nU R                  [        5        U R                  S5      S:X  a!  U R                  [        5        [        U 5      nOS nU R                  [        5        U R                  [        5        [	        UUU R                  5       SS9$ ! [         a2    U R                  [        5        [	        S S U R                  5       SS9s $ f = f)NF)r   r   r   r   r'   =T)rO   r`   _multiline_whitespacerL   r   rR   _exportrs   _whitespacerV   _equal_signr   _comment_end_of_liner?   _rest_of_line)rl   r   r   s      r   parse_bindingr      s#   
OO 
/0  **,	  	'"+&;;q>S k*'EE(#,'&&(	
 	
  
-(&&(	
 	

s   AD B0D 9EErD   c              #      #    [        U 5      nUR                  5       (       a%  [        U5      v   UR                  5       (       a  M$  g g 7fr   )rB   rL   r   )rD   rl   s     r   parse_streamr      s5     F^F
//

F## //

s   AA	A	)r   )+re   r   typingr   r   r   r   r   r   r	   r
   r<   r:   r   r3   	MULTILINEr   r   r   rp   rq   r   r~   r   rv   r   r   r   r   r   r   rb   r   r   	Exceptionr?   rB   rk   rs   ry   r   r   r   r(   r   r   <module>r      s    	. . .8s 8 8WS\ 8 o&"6r||D '
-
.- >*)*!"67 !"67 ]+127856"#67 ":.  	3	 		(3- 	X	$	7 7$	I 	! !H+'#, + + +f # 0 0C 0
, ,3 ,"
& "
W "
J$C $Xg%6 $r   