+
    }iP4                        ^ RI t ^ 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]P8                  ! ]4      tR R	 l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  R! lt+R# )(    N)OrderedDict)contextmanager)IODictIterableIteratorMappingOptionalTupleUnion)Bindingparse_stream)parse_variableszos.PathLike[str]c                $    V ^8  d   QhR\         /#    returnbool)formats   "]/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/dotenv/main.py__annotate__r      s     3 3t 3    c                     R\         P                  9  d   R# \         P                  R,          P                  4       p V R9   # )z0
Determine if dotenv loading has been disabled.
PYTHON_DOTENV_DISABLEDF>   1tyyestrue)osenvironcasefold)values    r   _load_dotenv_disabledr%      s7      rzz1JJ/099;E222r   c                \    V ^8  d   QhR\         \        ,          R\         \        ,          /# )r   mappingsr   )r   r   )r   s   "r   r   r   #   s$      (7*; @Q r   c              #      "   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originalline)r'   mappings   & r   with_warn_for_invalid_linesr/   #   s=     ===NNM  %%  s   AAc                      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                   < 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   strr   )r   __classdict__s   "r   r   DotEnv.__annotate__.   sc     ' 'g&' C!' 	'
 3-' ' ' 
'r   c                \    Wn         W n        R V n        W0n        W@n        WPn        W`n        R # N)r3   r4   _dictr5   r6   r7   r8   )selfr3   r4   r5   r6   r7   r8   s   &&&&&&&r   __init__DotEnv.__init__.   s+     /:)/9=
$'/!,&r   c                @   < V ^8  d   QhRS[ S[S[,          ,          /# r   )r   r   r;   )r   r<   s   "r   r   r=   @   s     " "Xbg. "r   c              #    "   V P                   '       dT   \        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)r6   Nz3python-dotenv could not find configuration file %s..env )
r3   _is_file_or_fifoopenr6   r4   r5   r*   infoioStringIO)rA   r4   s   & r   _get_streamDotEnv._get_stream?   s      01A1A B Bd&&??6 @?[[$++|||I$$.. ++b/! @??s*   AC0C9C0"C0;!C0C-	'	C0c                F   < V ^8  d   QhRS[ S[S[S[,          3,          /# r   )r   r;   r
   )r   r<   s   "r   r   r=   N   s"      d3-. r   c                   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)r8   )r@   parser7   r   resolve_variablesr8   )rA   
raw_valuess   & r   dictDotEnv.dictN   sh    :::::ZZ\
$!*}}EDJ zz %Z0DJzzr   c                V   < V ^8  d   QhRS[ S[S[S[S[,          3,          ,          /# r   )r   r   r;   r
   )r   r<   s   "r   r   r=   ^   s'     5 5xc8C=&8 9: 5r   c              #    "   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?   )rN   r/   r   keyr$   )rA   r4   r.   s   &  r   rR   DotEnv.parse^   sV     66|F7KL;;*!++w}}44 M  s"   A?#A+A+!
A?+A<	6	A?c                    < V ^8  d   QhRS[ /# r   r   )r   r<   s   "r   r   r=   d   s      d r   c                   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)rU   itemsr!   r"   r8   )rA   kvs   &  r   set_as_environment_variables#DotEnv.set_as_environment_variablesd   sZ     yy{{IIK%%'DABJJt}}}} !

1	 ( r   c                6   < V ^8  d   QhRS[ RS[S[ ,          /# )r   rY   r   )r;   r
   )r   r<   s   "r   r   r=   s   s     
 
s 
x} 
r   c                    V P                  4       pW9   d	   W!,          # V P                  '       d!   \        P                  RWP                  4       R# )rH   zKey %s not found in %s.N)rU   r5   r*   r+   r3   )rA   rY   datas   && r   get
DotEnv.gets   s;    yy{;9<<<NN4c;K;KLr   )r@   r3   r6   r7   r8   r4   r5   )NFNTT)__name__
__module____qualname____firstlineno__rB   r   rN   rU   rR   r`   re   __static_attributes____classdictcell__)r<   s   @r   r1   r1   -   sK     ' '" " "  5 5 
 
r   r1   c          	      t    V ^8  d   QhR\         R\        R\        \        ,          R\        \        ,          /# )r   r3   
key_to_getr6   r   )r:   r;   r
   )r   s   "r   r   r      s>     
P 
P
P
P sm
P c]	
Pr   c                <    \        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)r5   r6   )r1   re   )r3   rn   r6   s   &&&r   get_keyrp      s     +th?CCJOOr   c          
          V ^8  d   QhR\         R\        \        ,          R\        \        \
        \        ,          \
        \        ,          3,          ,          /# )r   pathr6   r   )r:   r
   r;   r   r   r   )r   s   "r   r   r      sA      
sm eBsGRW$%&r   c           	   #     "   \         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)wF)moder6   deleteNrF   )pathlibPathtouchtempfileNamedTemporaryFilerJ   BaseExceptionshutilmovenamer!   unlink)rr   r6   destr)   sourceerrs   &&    r   rewriter      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                    V ^8  d   QhR\         R\        R\        R\        R\        R\        \        ,          R\        \        \        ,          \        \        3,          /# )r   r3   
key_to_setvalue_to_set
quote_modeexportr6   r   )r:   r;   r   r
   r   )r   s   "r   r   r      sb     -* -*-*-* -* 	-*
 -* sm-* 8D>3#$-*r   c                   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export =
rF   FTN)r   r   never)
ValueErrorisalnumr   replacer   r/   r   rY   writer,   stringendswith)r3   r   r   r   r   r6   quote	value_outline_outr   r   replacedmissing_newliner.   s   &&&&&&        r   set_keyr      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                    V ^8  d   QhR\         R\        R\        R\        \        ,          R\        \        \        ,          \        3,          /# )r   r3   key_to_unsetr   r6   r   )r:   r;   r
   r   r   )r   s   "r   r   r      sL     ! !!! ! sm	!
 8D>3!r   c                   \         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.NFrF   Tz/Key %s not removed from %s - key doesn't exist.)r!   rr   existsr*   r+   r   r/   r   rY   r   r,   r   )r3   r   r   r6   removedr   r   r.   s   &&&&    r   	unset_keyr      s     77>>+&&A;O\!!G		0	0NV2<3GHG{{l*

7++223	 I 
1 =|	
 \!!   
1	0s   ACC+	c          	          V ^8  d   QhR\         \        \        \        \        ,          3,          ,          R\        R\
        \        \        \        ,          3,          /# )r   valuesr8   r   )r   r   r;   r
   r   r	   )r   s   "r   r   r      sG      U3-./ S(3- r   c                 Z  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# )NrH   c              3   D   <"   T F  qP                  S4      x  K  	  R # 5ir?   )resolve).0atomenvs   & r   	<genexpr>$resolve_variables.<locals>.<genexpr>  s     A54\\#..5s    )r   updater!   r"   join)r   r8   
new_valuesr   r$   resultatomsr   s   &&     @r   rS   rS      s     ,.J=F#E*E,.C

2::&

:&

:&

2::&WWA5AAF!4   r   c                F    V ^8  d   QhR\         R\        \         ,          /# r   rr   r   )r;   r   )r   s   "r   r   r     s     8 8 8 8r   c              #    "   \         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)	r!   rr   r   IOErrorisfiledirnameabspathr   pardir)rr   last_dircurrent_dir
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                H    V ^8  d   QhR\         R\        R\        R\         /# )r   filenameraise_error_if_not_foundusecwdr   )r;   r   )r   s   "r   r   r     s0     0 00"0 0 		0r   c                    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       F7  p	\        P                  P                  W4      p
\        V
4      '       g   K5  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                     \        \        R4      '       g   \        \        R4      '       d   R#  \        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 notebookps1ps2T__main__N__file__)fromlistF)hasattrsys
__import__ModuleNotFoundError)mains    r   _is_interactive$find_dotenv.<locals>._is_interactive*  s[    3'#u"5"5	j$
|LD 4,,, # 		s   A A A c                  0    \         P                  ! 4       R J# r?   )r   gettrace r   r   _is_debugger!find_dotenv.<locals>._is_debugger4  s    ||~T))r   frozenFzFile not foundrH   )getattrr   r!   getcwd	_getframer   f_codeco_filenamerr   r   f_backr   r   r   r   rI   r   )r   r   r   r   r   rr   framecurrent_fileframe_filenamer   
check_paths   &&&        r   find_dotenvr     s   -* ""lnnXu8U8Uyy{ ll&&,6bggnnLL$$?
 ?
 <<+++LLE11wwrww~>? &WW\\'4
J'' '
  &''r   c                    V ^8  d   QhR\         \        ,          R\         \        \        ,          ,          R\        R\        R\        R\         \        ,          R\        /# )r   r3   r4   r5   r8   r7   r6   r   r9   )r   s   "r   r   r   R  s`     .1 .1'".1RW.1 .1 	.1
 .1 sm.1 
.1r   c           	         \        4       '       d   \        P                  R4       R# V f   Vf   \        4       p \	        V VVVVVR7      pVP                  4       # )a  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`.

If the environment variable `PYTHON_DOTENV_DISABLED` is set to a truthy value,
.env loading is disabled.
zSpython-dotenv: .env loading disabled by PYTHON_DOTENV_DISABLED environment variableFr3   r4   r5   r7   r8   r6   )r%   r*   debugr   r1   r`   )r3   r4   r5   r8   r7   r6   dotenvs   &&&&&& r   load_dotenvr   R  s_    : a	
 v~!mF ..00r   c                    V ^8  d   QhR\         \        ,          R\         \        \        ,          ,          R\        R\        R\         \        ,          R\
        \        \         \        ,          3,          /# )r   r3   r4   r5   r7   r6   r   )r
   r:   r   r;   r   r   )r   s   "r   r   r     sd     ! !'"!RW! ! 	!
 sm! 
#x}
!r   c           	     d    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.
Tr   )r   r1   rU   )r3   r4   r5   r7   r6   s   &&&&&r   dotenv_valuesr     s=    . v~!m dfr   c                0    V ^8  d   QhR\         R\        /# r   )r:   r   )r   s   "r   r   r     s     % %7 %t %r   c                    \         P                  P                  V 4      '       d   R#  \         P                  ! V 4      p\        P                  ! TP                  4      #   \        \
        3 d     R# i ; i)zF
Return True if `path` exists and is either a regular file or a FIFO.
TF)r!   rr   r   statFileNotFoundErrorOSErrorS_ISFIFOst_mode)rr   sts   & r   rI   rI     sZ     
ww~~dWWT] ==$$ w' s   A A43A4)utf-8)r   Fr   )r   r   )rG   FF)NNFFTr   )NNFTr   ),rL   loggingr!   rw   r}   r   r   rz   collectionsr   
contextlibr   typingr   r   r   r   r	   r
   r   r   parserr   r   	variablesr   r;   r:   	getLoggerrg   r*   r%   r/   r1   rp   r   r   r   rS   r   r   r   r   rI   r   r   r   <module>r      s    	  	    
  # % P P P ) & ''
(			8	$3P Pf
P  *-*`!B28$0f.1b!H%r   