+
     hd0  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHtHtHtHtHtHtHtHt ^RIHtHt ^RIHt ]]R3,          t]P6                  ! ]4      tR R	 lt ! R
 R4      tRR R llt ]
R R l4       t!RR R llt"R R R llt#R R lt$R R lt%R!R R llt&R"R R llt'R#R R llt(R# )$i    N)OrderedDict)contextmanager)IODictIterableIteratorMappingOptionalTupleUnion)Bindingparse_stream)parse_variableszos.PathLike[str]c                s\    V ^8  d   QhR\         \        ,          R\         \        ,          /# )   mappingsreturn)r   r
   format   "0/usr/lib/python3.14/site-packages/dotenv/main.py__annotate__r      s$      (7*; @Q     c              #   s   "   V  FC  pVP                   '       d+   \        P                  R VP                  P                  4       Vx  KE  	  R# 5i)z;python-dotenv could not parse statement starting at line %sN)errorloggerwarningoriginalZline)r   mapping   & r   with_warn_for_invalid_linesr      s=     ===NNM  %%  s   AAc                   s   a  ] tR t^"t o RV 3R lR llt]V 3R lR l4       tV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
RtV tR# )DotEnvNc                s   < V ^8  d   QhRS[ S[,          RS[ S[S[,          ,          RS[RS[ S[,          RS[RS[RR/# )	r   dotenv_pathstreamverboseencodinginterpolateoverrider   Nr   StrPathr   strboolr   __classdict__   "r   r   DotEnv.__annotate__#   sc     ' 'g&' C!' 	'
 3-' ' ' 
'r   c                s\    Wn         W n        R V n        W0n        W@n        WPn        W`n        R # N)r   r   _dictr    r!   r"   r#   )selfr   r   r    r!   r"   r#   s   &&&&&&&r   __init__ZDotEnv.__init__#   s+     /:)/9=
$'/!,&r   c                s@   < V ^8  d   QhRS[ S[S[,          ,          /# r   r   )r   r   r&   r(   r*   r   r   r+   5   s     " "Xbg. "r   c              #  s  "   V P                   '       dh   \        P                  P                  V P                   4      '       d9   \	        V P                   V P
                  R 7      ;_uu_ 4       pVx  RRR4       R# V P                  e   V P                  x  R# V P                  '       d+   \        P                  RV P                   ;'       g    R4       \        P                  ! R4      x  R#   + '       g   i     R# ; i5i)r!   Nz3python-dotenv could not find configuration file %s..env )r   ospathisfileopenr!   r   r    r   ZinfoioZStringIO)r.   r   r   r   _get_streamZDotEnv._get_stream4   s     t/?/? @ @d&&??6 @?[[$++|||I$$.. ++b/! @??s0   AD)D-C029D,"D!D0D	;	Dc                sF   < V ^8  d   QhRS[ S[S[S[,          3,          /# r0   )r   r&   r   r(   r*   r   r   r+   C   s"      d3-. r   c                s   V P                   '       d   V P                   # V P                  4       pV P                  '       d1   \        \	        WP
                  R7      4      V n         V P                   # \        V4      V n         V P                   # )zReturn dotenv as dict)r#   )r-   parser"   r    resolve_variablesr#   )r.   Z
raw_valuesr   r   dictZDotEnv.dictC   sh    :::::ZZ\
$!*}}EDJ zz %Z0DJzzr   c                sV   < V ^8  d   QhRS[ S[S[S[S[,          3,          ,          /# r0   )r   r   r&   r   r(   r*   r   r   r+   S   s'     5 5xc8C=&8 9: 5r   c              #  s  "   V P                  4       ;_uu_ 4       p\        \        V4      4       F-  pVP                  f   K  VP                  VP                  3x  K/  	  R R R 4       R #   + '       g   i     R # ; i5ir,   )r9   r   r   keyvalue)r.   r   r      &  r   r:   ZDotEnv.parseS   sV     66|F7KL;;*!++w}}44 M  s"   A?#A+A+!
A?+A<	6	A?c                s    < V ^8  d   QhRS[ /# r0   )r'   r(   r*   r   r   r+   Y   s      d r   c                s   V P                  4       '       g   R# V P                  4       P                  4        FG  w  rV\        P                  9   d   V P                  '       g   K.  Vf   K4  V\        P                  V&   KI  	  R# )z9
Load the current dotenv as system environment variable.
FT)r<   Zitemsr4   environr#   )r.   ZkZvr?   r   set_as_environment_variablesZ#DotEnv.set_as_environment_variablesY   sZ     yy{{IIK%%'DABJJt}}}} !

1	 ( r   c                s6   < V ^8  d   QhRS[ RS[S[ ,          /# )r   r=   r   )r&   r   r(   r*   r   r   r+   h   s     
 
s 
x} 
r   c                s    V P                  4       pW9   d	   W!,          # V P                  '       d!   \        P                  RWP                  4       R# )r3   zKey %s not found in %s.N)r<   r    r   r   r   )r.   r=   Zdatas   && r   getZ
DotEnv.geth   s;    yy{;9<<<NN4c;K;KLr   )r-   r   r!   r"   r#   r   r    )NFNTT)__name__Z
__module__Z__qualname__Z__firstlineno__r/   r   r9   r<   r:   rA   rB   Z__static_attributes__Z__classdictcell__)r)   s   @r   r   r   "   sK     ' '" " "  5 5 
 
r   r   c          	      st    V ^8  d   QhR\         R\        R\        \        ,          R\        \        ,          /# )r   r   
key_to_getr!   r   )r%   r&   r   r   r   r   r   r   u   s>     
P 
P
P
P sm
P c]	
Pr   c                s<    \        V RVR7      P                  V4      # )zs
Get the value of a given key from the given .env.

Returns `None` if the key isn't found or doesn't have a value.
T)r    r!   )r   rB   )r   rD   r!   s   &&&r   get_keyrE   u   s     +th?CCJOOr   c          
      s    V ^8  d   QhR\         R\        \        ,          R\        \        \
        \        ,          \
        \        ,          3,          ,          /# )r   r5   r!   r   )r%   r   r&   r   r   r   r   r   r   r   r      sA      
sm eBsGRW$%&r   c           	   #   s  "   \         P                  ! V 4      P                  4        \        P                  ! R VRR7      ;_uu_ 4       pRp \        WR7      ;_uu_ 4       pWB3x  RRR4       RRR4       Xf$   \        P                  ! XP                  T 4       R# \        P                  ! XP                  4       TRh  + '       g   i     Lb; i  \         d   pTp Rp?LwRp?ii ; i  + '       g   i     L; i5i)ZwF)Zmoder!   ZdeleteNr1   )pathlibZPathZtouchtempfileZNamedTemporaryFiler7   ZBaseExceptionshutilZmovenamer4   Zunlink)r5   r!   destr   sourceZerrs   &&    r   rewriterL      s     
 LL		$	$#	O	OSW	d..&n$ / 
P }DIIt$
		$)) /. 	E	 
P	Osg   AD C-C C 	&C.AD  CCC-CC*C% C-%C**C--C=	8D c                s    V ^8  d   QhR\         R\        R\        R\        R\        R\        \        ,          R\        \        \        ,          \        \        3,          /# )r   r   
key_to_setvalue_to_set
quote_modeexportr!   r   )r%   r&   r'   r   r   r   r   r   r   r      sb     -* -*-*-* -* 	-*
 -* sm-* 8D>3#$-*r   c                s   VR9  d   \        RV 24      hVR8H  ;'       g#    VR8H  ;'       d    VP                  4       '       * pV'       d#   RP                  VP                  RR4      4      pMTpV'       d   RV RV R	2pMV RV R	2p\	        WR
7      ;_uu_ 4       w  rRpRp\        \        V	4      4       Fx  pVP                  V8X  d   V
P                  V4       RpK)  V
P                  VP                  P                  4       VP                  P                  P                  R	4      '       * pKz  	  V'       g+   V'       d   V
P                  R	4       V
P                  V4       RRR4       RW3#   + '       g   i     L; i)z
Adds or Updates a key/value to the given .env

If the .env path given doesn't exist, fails instead of risking creating
an orphan .env somewhere in the filesystem
alwaysautozUnknown quote_mode: z'{}'Z'z\'zexport Z=Z
r1   FTN)rQ   rR   Znever)Z
ValueErrorZisalnumr   ZreplacerL   r   r   r=   writer   stringZendswith)r   rM   rN   rO   rP   r!   ZquoteZ	value_outZline_outrK   rJ   ZreplacedZmissing_newliner   s   &&&&&&        r   set_keyrU      s^    44/
|<==("  f;;\%9%9%;!; 
 MM,"6"6sE"BC	 	ZL)B7 \9+R0		0	0NV2<3GHG{{j(

8$

7++223&-&6&6&=&=&F&Ft&L"L I 

4 JJx  
1 )) 
1	0s   BE4>E4"E44F	c                s    V ^8  d   QhR\         R\        R\        R\        \        ,          R\        \        \        ,          \        3,          /# )r   r   key_to_unsetrO   r!   r   )r%   r&   r   r   r'   r   r   r   r   r      sL     ! !!! ! sm	!
 8D>3!r   c                s   \         P                  P                  V 4      '       g   \        P	                  RV 4       RV3# Rp\        WR7      ;_uu_ 4       w  rV\        \        V4      4       F=  pVP                  V8X  d   RpK  VP                  VP                  P                  4       K?  	  RRR4       V'       g   \        P	                  RW4       RV3# WA3#   + '       g   i     L5; i)z
Removes a given key from the given `.env` file.

If the .env path given doesn't exist, fails.
If the given key doesn't exist in the .env, fails.
z(Can't delete from %s - it doesn't exist.NFr1   Tz/Key %s not removed from %s - key doesn't exist.)r4   r5   existsr   r   rL   r   r   r=   rS   r   rT   )r   rV   rO   r!   ZremovedrK   rJ   r   s   &&&&    r   	unset_keyrX      s     77>>+&&A;O\!!G		0	0NV2<3GHG{{l*

7++223	 I 
1 =|	
 \!!   
1	0s   ACC+	c          	      s    V ^8  d   QhR\         \        \        \        \        ,          3,          ,          R\        R\
        \        \        \        ,          3,          /# )r   valuesr#   r   )r   r   r&   r   r'   r   r   r   r   r   r      sG      U3-./ S(3- r   c                 sZ  a / pV  F  w  r4Vf   R pM\        V4      p/ oV'       d2   SP                  \        P                  4       SP                  V4       M0SP                  V4       SP                  \        P                  4       RP	                  V3R lV 4       4      pWRV&   K  	  V# )Nr3   c              3   sD   <"   T F  qP                  S4      x  K  	  R # 5ir,   )Zresolve)Z.0Zatomenvs   & r   Z	<genexpr>Z$resolve_variables.<locals>.<genexpr>   s     A54\\#..5s    )r   Zupdater4   r@   join)rY   r#   Z
new_valuesrI   r>   ZresultZatomsrZ   s   &&     @r   r;   r;      s     ,.J=F#E*E,.C

2::&

:&

:&

2::&WWA5AAF!4   r   c                sF    V ^8  d   QhR\         R\        \         ,          /# )r   r5   r   )r&   r   r   r   r   r   r     s     8 8 8 8r   c              #  s  "   \         P                  P                  V 4      '       g   \        R4      h\         P                  P	                  V 4      '       d    \         P                  P                  V 4      p Rp\         P                  P                  V 4      pW8w  d^   Vx  \         P                  P                  \         P                  P                  V\         P                  P                  4      4      pY#r!Kc  R# 5i)zD
Yield directories starting from the given directory up to the root
zStarting path not foundN)	r4   r5   rW   IOErrorr6   dirnameabspathr[   Zpardir)r5   Zlast_dirZcurrent_dirZ
parent_dirs   &   r   _walk_to_rootr_     s      77>>$/00	ww~~dwwt$H''//$'K

!WW__RWW\\+rww~~%NO
 ++ "s   AC=B%C=c                sH    V ^8  d   QhR\         R\        R\        R\         /# )r   filenameraise_error_if_not_foundusecwdr   )r&   r'   r   r   r   r   r     s0     . ..". . 		.r   c                sH   R pR pV'       g2   V! 4       '       g%   V! 4       '       g   \        \        RR4      '       d   \        P                  ! 4       pM\        P                  ! 4       p\
        pVP                  P                  V8X  g:   \        P                  P                  VP                  P                  4      '       g   VP                  f   Q hVP                  pKr  VP                  P                  p\        P                  P                  \        P                  P                  V4      4      p\        V4       FK  p	\        P                  P                  W4      p
\        P                  P                  V
4      '       g   KI  V
u # 	  V'       d   \!        R4      hR# )z{
Search in increasingly higher folders for the given file

Returns path to the file if found, or an empty string otherwise
c                 sj     \        RRRR.R7      p \        T R4      '       * #   \         d     R# i ; i)z<Decide whether this is running in a REPL or IPython notebookZ__main__N__file__)ZfromlistF)Z
__import__ZModuleNotFoundErrorZhasattr)Zmains    r   _is_interactiveZ$find_dotenv.<locals>._is_interactive  s?    	j$
|LD 4,,, # 		s   # 22c                  s0    \         P                  ! 4       R J# r,   )sysZgettrace r   r   _is_debuggerZ!find_dotenv.<locals>._is_debugger'  s    ||~T))r   ZfrozenFzFile not foundr3   )Zgetattrre   r4   ZgetcwdZ	_getframerc   Zf_codeZco_filenamer5   rW   Zf_backr]   r^   r_   r[   r6   r\   )r`   ra   rb   rd   rg   r5   ZframeZcurrent_fileZframe_filenamer]   Z
check_paths   &&&        r   find_dotenvrh     s   -* ""lnnXu8U8Uyy{ ll&&,6bggnnLL$$?
 ?
 <<+++LLE11wwrww~>? &WW\\'4
77>>*%% '
  &''r   c                s    V ^8  d   QhR\         \        ,          R\         \        \        ,          ,          R\        R\        R\        R\         \        ,          R\        /# )r   r   r   r    r#   r"   r!   r   r$   r   r   r   r   r   E  s`     %1 %1'"%1RW%1 %1 	%1
 %1 sm%1 
%1r   c           	     sh    V f   Vf   \        4       p \        V VVVVVR7      pVP                  4       # )aZ  Parse a .env file and then load all the variables found as environment variables.

Parameters:
    dotenv_path: Absolute or relative path to .env file.
    stream: Text stream (such as `io.StringIO`) with .env content, used if
        `dotenv_path` is `None`.
    verbose: Whether to output a warning the .env file is missing.
    override: Whether to override the system environment variables with the variables
        from the `.env` file.
    encoding: Encoding to be used to read the file.
Returns:
    Bool: True if at least one environment variable is set else False

If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the
.env file with it's default parameters. If you need to change the default parameters
of `find_dotenv()`, you can explicitly call `find_dotenv()` and pass the result
to this function as `dotenv_path`.
r   r   r    r"   r#   r!   )rh   r   rA   )r   r   r    r#   r"   r!   Zdotenvs   &&&&&& r   load_dotenvrj   E  sB    4 v~!mF ..00r   c                s    V ^8  d   QhR\         \        ,          R\         \        \        ,          ,          R\        R\        R\         \        ,          R\
        \        \         \        ,          3,          /# )r   r   r   r    r"   r!   r   )r   r%   r   r&   r'   r   r   r   r   r   r   m  sd     ! !'"!RW! ! 	!
 sm! 
#x}
!r   c           	     sd    V f   Vf   \        4       p \        V VVVRVR7      P                  4       # )aa  
Parse a .env file and return its content as a dict.

The returned dict will have `None` values for keys without values in the .env file.
For example, `foo=bar` results in `{"foo": "bar"}` whereas `foo` alone results in
`{"foo": None}`

Parameters:
    dotenv_path: Absolute or relative path to the .env file.
    stream: `StringIO` object with .env content, used if `dotenv_path` is `None`.
    verbose: Whether to output a warning if the .env file is missing.
    encoding: Encoding to be used to read the file.

If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the
.env file.
Tri   )rh   r   r<   )r   r   r    r"   r!   s   &&&&&r   dotenv_valuesrk   m  s=    . v~!m dfr   )utf-8)rQ   Frl   )rQ   rl   )r2   FF)NNFFTrl   )NNFTrl   ))r8   Zloggingr4   rF   rH   re   rG   Zcollectionsr    Z
contextlibr   Ztypingr   r   r   r   r   r   r   r	   Zparserr
   r   Z	variablesr   r&   r%   Z	getLoggerrC   r   r   r   rE   rL   rU   rX   r;   r_   rh   rj   rk   rf   r   r   <module>rm      s    	  	   
  # % P P P ) & ''
(			8	$P Pf
P  *-*`!B28$.b%1P! !r   