§
     öÉgB/  ã                   ó¶  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ eedf         Z ej        e¦  «        Zd	ee         d
ee         fd„Z G d„ d¦  «        Z	 d-dededee         d
ee         fd„Z e
dedee         d
eeee         ee         f                  fd„¦   «         Z!	 	 	 d.dedededede"dee         d
eee"         eef         fd„Z#	 	 d/dedededee         d
eee"         ef         f
d„Z$deeeee         f                  de"d
eeee         f         fd „Z%ded
ee         fd!„Z&	 	 	 d0d#ed$e"d%e"d
efd&„Z'	 	 	 	 	 	 d1dee         d(eee                  d)e"de"d*e"dee         d
e"fd+„Z(	 	 	 	 	 d2dee         d(eee                  d)e"d*e"dee         d
eeee         f         fd,„Z)dS )3é    N)ÚOrderedDict)Úcontextmanager)ÚIOÚDictÚIterableÚIteratorÚMappingÚOptionalÚTupleÚUnioné   )ÚBindingÚparse_stream)Úparse_variableszos.PathLike[str]ÚmappingsÚreturnc              #   ót   K  — | D ]2}|j         r%t                               d|j        j        ¦  «         |V — Œ3d S )Nz;Python-dotenv could not parse statement starting at line %s)ÚerrorÚloggerÚwarningÚoriginalÚline)r   Úmappings     úW/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/dotenv/main.pyÚwith_warn_for_invalid_linesr      sX   è è € Øð ð ˆØŒ=ð 	Ý�NŠNØMØÔ Ô%ñô ð ð ˆˆˆˆðð ó    c                   ó&  — e Zd Z	 	 	 	 	 ddee         deee                  dedee         ded	ed
dfd„Ze	d
e
ee                  fd„¦   «         Zd
eeee         f         fd„Zd
e
eeee         f                  fd„Zd
efd„Zded
ee         fd„ZdS )ÚDotEnvNFTÚdotenv_pathÚstreamÚverboseÚencodingÚinterpolateÚoverrider   c                 óh   — || _         || _        d | _        || _        || _        || _        || _        d S ©N)r   r    Ú_dictr!   r"   r#   r$   )Úselfr   r    r!   r"   r#   r$   s          r   Ú__init__zDotEnv.__init__$   s;   € ð /:ˆÔØ)/ˆŒØ9=ˆŒ
Ø$ˆŒØ'/ˆŒØ!,ˆÔØ&ˆŒˆˆr   c              #   óv  K  — | j         r^t          j                             | j         ¦  «        r:t	          | j         | j        ¬¦  «        5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S | j        �| j        V — d S | j        r"t           	                    d| j         pd¦  «         t          j        d¦  «        V — d S )N©r"   z3Python-dotenv could not find configuration file %s.ú.envÚ )r   ÚosÚpathÚisfileÚopenr"   r    r!   r   ÚinfoÚioÚStringIO)r(   r    s     r   Ú_get_streamzDotEnv._get_stream5   s  è è € àÔð 	"¥¤§¢¨tÔ/?Ñ @Ô @ð 	"Ý�dÔ&°´Ð?Ñ?Ô?ð À6Ø���ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð àŒ[Ð$Ø”+ÐÐÐÐÐàŒ|ð Ý—’ØIØÔ$Ð.¨ñô ð õ ”+˜b‘/”/Ð!Ð!Ð!Ð!Ð!s   Á	AÁAÁ"Ac                 óÜ   — | j         r| j         S |                      ¦   «         }| j        r)t          t	          || j        ¬¦  «        ¦  «        | _         nt          |¦  «        | _         | j         S )zReturn dotenv as dict)r$   )r'   Úparser#   r   Úresolve_variablesr$   )r(   Ú
raw_valuess     r   ÚdictzDotEnv.dictD   sd   € àŒ:ð 	Ø”:Ðà—Z’Z‘\”\ˆ
àÔð 	1Ý$Õ%6°zÈDÌMÐ%ZÑ%ZÔ%ZÑ[Ô[ˆDŒJˆJå$ ZÑ0Ô0ˆDŒJàŒzÐr   c              #   óÒ   K  — |                       ¦   «         5 }t          t          |¦  «        ¦  «        D ]}|j        �|j        |j        fV — Œ	 d d d ¦  «         d S # 1 swxY w Y   d S r&   )r5   r   r   ÚkeyÚvalue)r(   r    r   s      r   r7   zDotEnv.parseR   s»   è è € Ø×ÒÑÔð 	5 6Ý6µ|ÀFÑ7KÔ7KÑLÔLð 5ð 5�Ø”;Ð*Ø!œ+ w¤}Ð4Ð4Ð4Ð4øð5ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   —7AÁA Á#A c                 óØ   — |                       ¦   «         sdS |                       ¦   «                              ¦   «         D ],\  }}|t          j        v r| j        sŒ|�|t          j        |<   Œ-dS )zI
        Load the current dotenv as system environment variable.
        FNT)r:   Úitemsr.   Úenvironr$   )r(   ÚkÚvs      r   Úset_as_environment_variablesz#DotEnv.set_as_environment_variablesX   sj   € ð �yŠy‰{Œ{ð 	Ø�5à—I’I‘K”K×%Ò%Ñ'Ô'ð 	"ð 	"‰DˆAˆqØ•B”Jˆˆ t¤}ˆØØˆ}Ø !•”
˜1‘øàˆtr   r<   c                 ó–   — |                       ¦   «         }||v r||         S | j        r!t                               d|| j        ¦  «         dS )z	
        zKey %s not found in %s.N)r:   r!   r   r   r   )r(   r<   Údatas      r   Úgetz
DotEnv.getg   sN   € ð �yŠy‰{Œ{ˆà�$ˆ;ˆ;Ø˜”9ÐàŒ<ð 	MÝ�NŠNÐ4°c¸4Ô;KÑLÔLÐLàˆtr   )NFNTT)Ú__name__Ú
__module__Ú__qualname__r
   ÚStrPathr   ÚstrÚboolr)   r   r   r5   r   r:   r   r7   rC   rF   © r   r   r   r   #   s\  € € € € € ð %)ØØ"&Ø Øð'ð 'à˜gÔ&ð'ð ˜˜CœÔ!ð'ð ð	'ð
 ˜3”-ð'ð ð'ð ð'ð 
ð'ð 'ð 'ð 'ð" ð"˜X b¨¤gÔ.ð "ð "ð "ñ „^ð"ð�d˜3 ¨¤Ð-Ô.ð ð ð ð ð5�x  c¨8°C¬=Ð&8Ô 9Ô:ð 5ð 5ð 5ð 5ð¨dð ð ð ð ð�sð ˜x¨œ}ð ð ð ð ð ð r   r   úutf-8r   Ú
key_to_getr"   c                 óL   — t          | d|¬¦  «                             |¦  «        S )z
    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   rF   )r   rO   r"   s      r   Úget_keyrQ   u   s'   € õ �+ t°hÐ?Ñ?Ô?×CÒCÀJÑOÔOÐOr   r/   c              #   ó¼  K  — t          j        | ¦  «                             ¦   «          t          j        d|d¬¦  «        5 }d }	 t          | |¬¦  «        5 }||fV — d d d ¦  «         n# 1 swxY w Y   n# t          $ r}|}Y d }~nd }~ww xY wd d d ¦  «         n# 1 swxY w Y   |€t          j        |j	        | ¦  «         d S t          j        |j	        ¦  «         |d ‚)NÚwF)Úmoder"   Údeleter+   )ÚpathlibÚPathÚtouchÚtempfileÚNamedTemporaryFiler1   ÚBaseExceptionÚshutilÚmoveÚnamer.   Úunlink)r/   r"   Údestr   ÚsourceÚerrs         r   Úrewriterc   ‚   sx  è è € õ
 „L�ÑÔ×ÒÑÔÐå	Ô	$¨#¸ÈÐ	OÑ	OÔ	Oð ÐSWØˆð	Ý�d XÐ.Ñ.Ô.ð %°&Ø˜t�nÐ$Ð$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %øøåð 	ð 	ð 	ØˆEˆEˆEˆEˆEˆEøøøøð	øøøðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð €}ÝŒ�D”I˜tÑ$Ô$Ð$Ð$Ð$å
Œ	�$”)ÑÔÐØ˜Ðs`   Á BÁA4ÁA(ÁA4Á(A,	Á,A4Á/A,	Á0A4Á3BÁ4
B
Á>BÂ BÂB
Â
BÂBÂ BÚalwaysFÚ
key_to_setÚvalue_to_setÚ
quote_modeÚexportc                 ó¼  — |dvrt          d|› �¦  «        ‚|dk    p|dk    o|                     ¦   «          }|r*d                     |                     dd¦  «        ¦  «        }n|}|r
d|› d	|› d
�}n|› d	|› d
�}t	          | |¬¦  «        5 \  }	}
d}d}t          t          |	¦  «        ¦  «        D ]d}|j        |k    r|
                     |¦  «         d}Œ%|
                     |j	        j
        ¦  «         |j	        j
                             d
¦  «         }Œe|s,|r|
                     d
¦  «         |
                     |¦  «         ddd¦  «         n# 1 swxY w Y   d||fS )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
    )rd   ÚautoÚneverzUnknown quote_mode: rd   rj   z'{}'ú'z\'zexport ú=ú
r+   FTN)Ú
ValueErrorÚisalnumÚformatÚreplacerc   r   r   r<   Úwriter   ÚstringÚendswith)r   re   rf   rg   rh   r"   ÚquoteÚ	value_outÚline_outra   r`   ÚreplacedÚmissing_newliner   s                 r   Úset_keyr{   ˜   sõ  € ð Ð4Ð4Ð4ÝÐ<°
Ð<Ð<Ñ=Ô=Ð=ð 	�hÒð 	AØ˜&Ò Ð?¨×)=Ò)=Ñ)?Ô)?Ð%?ð 
ð
 ð !Ø—M’M ,×"6Ò"6°s¸EÑ"BÔ"BÑCÔCˆ	ˆ	à ˆ	Øð 1Ø7˜ZÐ7Ð7¨)Ð7Ð7Ð7ˆˆà Ð0Ð0 9Ð0Ð0Ð0ˆå	� xÐ	0Ñ	0Ô	0ð !±N°V¸TØˆØˆÝ2µ<ÀÑ3GÔ3GÑHÔHð 	Mð 	MˆGØŒ{˜jÒ(Ð(Ø—
’
˜8Ñ$Ô$Ð$Ø��à—
’
˜7Ô+Ô2Ñ3Ô3Ð3Ø&-Ô&6Ô&=×&FÒ&FÀtÑ&LÔ&LÐ"L��Øð 	!Øð !Ø—
’
˜4Ñ Ô Ð Ø�JŠJ�xÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð �˜\Ð)Ð)s   ÂB7EÅEÅEÚkey_to_unsetc                 óÀ  — t           j                             | ¦  «        st                               d| ¦  «         d|fS d}t          | |¬¦  «        5 \  }}t          t          |¦  «        ¦  «        D ]/}|j        |k    rd}Œ| 	                    |j
        j        ¦  «         Œ0	 ddd¦  «         n# 1 swxY w Y   |s t                               d|| ¦  «         d|fS ||fS )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.NFr+   Tz/Key %s not removed from %s - key doesn't exist.)r.   r/   Úexistsr   r   rc   r   r   r<   rs   r   rt   )r   r|   rg   r"   Úremovedra   r`   r   s           r   Ú	unset_keyr€   É   s3  € õ Œ7�>Š>˜+Ñ&Ô&ð "Ý�ŠÐAÀ;ÑOÔOÐOØ�\Ð!Ð!à€GÝ	� xÐ	0Ñ	0Ô	0ð 4±N°V¸TÝ2µ<ÀÑ3GÔ3GÑHÔHð 	4ð 	4ˆGØŒ{˜lÒ*Ð*Ø��à—
’
˜7Ô+Ô2Ñ3Ô3Ð3Ð3ð		4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð ð "Ý�ŠÐHÈ,ÐXcÑdÔdÐdØ�\Ð!Ð!à�LÐ Ð s   ÁAB/Â/B3Â6B3Úvaluesr$   c                 ój  ‡— i }| D ]¬\  }}|€d }n�t          |¦  «        }i Š|r5‰                     t          j        ¦  «         ‰                     |¦  «         n4‰                     |¦  «         ‰                     t          j        ¦  «         d                     ˆfd„|D ¦   «         ¦  «        }|||<   Œ­|S )Nr-   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S r&   )Úresolve)Ú.0ÚatomÚenvs     €r   ú	<genexpr>z$resolve_variables.<locals>.<genexpr>ú   s/   øè è € ÐAÐA°4˜TŸ\š\¨#Ñ.Ô.ÐAÐAÐAÐAÐAÐAr   )r   Úupdater.   r@   Újoin)r�   r$   Ú
new_valuesr^   r=   ÚresultÚatomsr‡   s          @r   r8   r8   è   sË   ø€ ð ,.€Jàð "ð "‰ˆˆuØˆ=ØˆFˆFå# EÑ*Ô*ˆEØ,.ˆCØð 'Ø—
’
�2œ:Ñ&Ô&Ð&Ø—
’
˜:Ñ&Ô&Ð&Ð&à—
’
˜:Ñ&Ô&Ð&Ø—
’
�2œ:Ñ&Ô&Ð&Ø—W’WÐAÐAÐAÐA¸5ÐAÑAÔAÑAÔAˆFà!ˆ
�4ÑÐàÐr   c              #   óè  K  — t           j                             | ¦  «        st          d¦  «        ‚t           j                             | ¦  «        rt           j                             | ¦  «        } d}t           j                             | ¦  «        }||k    r\|V — t           j                             t           j                             |t           j        j        ¦  «        ¦  «        }||}}||k    °ZdS dS )zL
    Yield directories starting from the given directory up to the root
    zStarting path not foundN)	r.   r/   r~   ÚIOErrorr0   ÚdirnameÚabspathrŠ   Úpardir)r/   Úlast_dirÚcurrent_dirÚ
parent_dirs       r   Ú_walk_to_rootr–     sÎ   è è € õ Œ7�>Š>˜$ÑÔð 1ÝÐ/Ñ0Ô0Ð0å	„w‡~‚~�dÑÔð %ÝŒw�Š˜tÑ$Ô$ˆà€HÝ”'—/’/ $Ñ'Ô'€KØ
�kÒ
!Ð
!ØÐÐÐÝ”W—_’_¥R¤W§\¢\°+½r¼w¼~Ñ%NÔ%NÑOÔOˆ
Ø +¨Z�+ˆð �kÒ
!Ð
!Ð
!Ð
!Ð
!Ð
!r   r,   ÚfilenameÚraise_error_if_not_foundÚusecwdc                 ó  — d„ }|s  |¦   «         st          t          dd¦  «        rt          j        ¦   «         }nät          j        ¦   «         }t
          }|j        j        |k    s)t          j         	                    |j        j        ¦  «        sI|j
        €J ‚|j
        }|j        j        |k    ° t          j         	                    |j        j        ¦  «        ¯I|j        j        }t          j                             t          j                             |¦  «        ¦  «        }t          |¦  «        D ]E}t          j                             || ¦  «        }	t          j                             |	¦  «        r|	c S ŒF|rt!          d¦  «        ‚dS )z‡
    Search in increasingly higher folders for the given file

    Returns path to the file if found, or an empty string otherwise
    c                  ór   — 	 t          ddddg¬¦  «        } n# t          $ r Y dS w xY wt          | d¦  «         S )z> Decide whether this is running in a REPL or IPython notebook Ú__main__NÚ__file__)ÚfromlistF)Ú
__import__ÚModuleNotFoundErrorÚhasattr)Úmains    r   Ú_is_interactivez$find_dotenv.<locals>._is_interactive  sV   € ð	Ý˜j¨$°À
¸|ÐLÑLÔLˆDˆDøÝ"ð 	ð 	ð 	Ø�5�5ð	øøøå˜4 Ñ,Ô,Ð,Ð,s   ‚ —
%¤%ÚfrozenFNzFile not foundr-   )ÚgetattrÚsysr.   ÚgetcwdÚ	_getframer�   Úf_codeÚco_filenamer/   r~   Úf_backr�   r‘   r–   rŠ   r0   r�   )
r—   r˜   r™   r£   r/   ÚframeÚcurrent_fileÚframe_filenamer�   Ú
check_paths
             r   Úfind_dotenvr°     sp  € ð-ð -ð -ð ð @��Ñ"Ô"ð @¥g­c°8¸UÑ&CÔ&Cð @åŒy‰{Œ{ˆˆõ ”‘”ˆÝˆàŒlÔ&¨,Ò6Ð6½b¼g¿nºnØŒLÔ$ñ?
ô ?
Ð6ð ”<Ð+Ð+Ð+Ø”LˆEð	 ŒlÔ&¨,Ò6Ð6½b¼g¿nºnØŒLÔ$ñ?
ô ?
Ð6ð
 œÔ1ˆÝŒw�Š�rœwŸš¨~Ñ>Ô>Ñ?Ô?ˆå  Ñ&Ô&ð ð ˆÝ”W—\’\ '¨8Ñ4Ô4ˆ
ÝŒ7�>Š>˜*Ñ%Ô%ð 	ØÐÐÐð	ð  ð (ÝÐ&Ñ'Ô'Ð'àˆ2r   Tr    r!   r#   c                 óx   — | €|€t          ¦   «         } t          | |||||¬¦  «        }|                     ¦   «         S )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.
    N©r   r    r!   r#   r$   r"   )r°   r   rC   )r   r    r!   r$   r#   r"   Údotenvs          r   Úload_dotenvr´   A  sQ   € ð0 Ð˜v˜~Ý!‘m”mˆåØØØØØØðñ ô €Fð ×.Ò.Ñ0Ô0Ð0r   c                 ót   — | €|€t          ¦   «         } t          | |||d|¬¦  «                             ¦   «         S )a‘  
    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.
    NTr²   )r°   r   r:   )r   r    r!   r#   r"   s        r   Údotenv_valuesr¶   g  sK   € ð. Ð˜v˜~Ý!‘m”mˆåØØØØØØðñ ô ÷ ‚d�f„fðr   )rN   )rd   FrN   )rd   rN   )r,   FF)NNFFTrN   )NNFTrN   )*r3   Úloggingr.   rV   r\   r¦   rY   Úcollectionsr   Ú
contextlibr   Útypingr   r   r   r   r	   r
   r   r   Úparserr   r   Ú	variablesr   rK   rJ   Ú	getLoggerrG   r   r   r   rQ   rc   rL   r{   r€   r8   r–   r°   r´   r¶   rM   r   r   ú<module>r¾      sÉ  ðØ 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø &Ð &Ð &Ð &Ð &Ð &ð �Ð'Ð'Ô
(€à	ˆÔ	˜8Ñ	$Ô	$€ð¨(°7Ô*;ð ÀÈÔ@Qð ð ð ð ðOð Oð Oð Oð Oñ Oô Oð Oðj &ð
Pð 
PØð
Pàð
Pð �sŒmð
Pð ˆc„]ð	
Pð 
Pð 
Pð 
Pð ðØ
ðà�sŒmðð ˆe�B�s”G˜R œWÐ$Ô%Ô&ðð ð ñ „ðð2 ØØ%ð.*ð .*Øð.*àð.*ð ð.*ð ð	.*ð
 ð.*ð �sŒmð.*ð ˆ8�DŒ>˜3 Ð#Ô$ð.*ð .*ð .*ð .*ðh Ø%ð	!ð !Øð!àð!ð ð!ð �sŒmð	!ð
 ˆ8�DŒ>˜3ÐÔð!ð !ð !ð !ð>Ø�U˜3 ¨¤Ð-Ô.Ô/ðàðð ˆS�(˜3”-ÐÔ ðð ð ð ð28˜ð 8 ¨¤ð 8ð 8ð 8ð 8ð& Ø%*Øð+ð +Øð+à"ð+ð ð+ð 	ð	+ð +ð +ð +ð^ &*Ø $ØØØØ%ð#1ð #1Ø˜'Ô"ð#1à�R˜”WÔð#1ð ð#1ð ð	#1ð
 ð#1ð �sŒmð#1ð 
ð#1ð #1ð #1ð #1ðN &*Ø $ØØØ%ð!ð !Ø˜'Ô"ð!à�R˜”WÔð!ð ð!ð ð	!ð
 �sŒmð!ð 
ˆ#ˆx˜Œ}Ð
Ôð!ð !ð !ð !ð !ð !r   