ó
    &ÝNj*  ã                   ó~   • S r SSKrSSKJrJrJrJrJrJrJ	r	  SSK
JrJr  SSKJr  \(       a  SSKJr   " S S	5      rg)
a.  
Environment variable configuration loading class.

Using a class here doesn't really model anything but makes state passing (in a
situation requiring it) more convenient.

This module is currently considered private/an implementation detail and should
not be included in the Sphinx API documentation.
é    N)ÚTYPE_CHECKINGÚAnyÚDictÚIterableÚListÚMappingÚSequenceé   )ÚUncastableEnvVarÚAmbiguousEnvVar)Údebug)ÚConfigc                   óÚ   • \ rS rSrSSS\SS4S jrS\\\4   4S jrS	\	\   S
\
\\\   4   S\\\4   4S jrS	\\   S\4S jrS	\\   SS4S jrS	\\   S\SS4S jrS\S\S\4S jrSrg)ÚEnvironmenté   Úconfigr   ÚprefixÚreturnNc                 ó*   • Xl         X l        0 U l        g ©N©Ú_configÚ_prefixÚdata)Úselfr   r   s      ÚG/home/mande/repo/quber/.venv/lib/python3.13/site-packages/invoke/env.pyÚ__init__ÚEnvironment.__init__   s   € ØŒØŒØ$&ˆ�	ó    c                 ó¤  • U R                  / 0 S9nSn[        UR                  U R                  U5      5        UR	                  5        HV  u  p4U R                  =(       d    SU-   nU[
        R                  ;   d  M3  U R                  U[
        R                  U   5        MX     [        SR                  U R                  5      5        U R                  $ )zÕ
Return a nested dict containing values from `os.environ`.

Specifically, values whose keys map to already-known configuration
settings, allowing us to perform basic typecasting.

See :ref:`env-vars` for details.
)Úkey_pathÚenv_varsz>Scanning for env vars according to prefix: {!r}, mapping: {!r}Ú zObtained env var config: {!r})	Ú_crawlr   Úformatr   ÚitemsÚosÚenvironÚ	_path_setr   )r   r"   ÚmÚenv_varr!   Úreal_vars         r   ÚloadÚEnvironment.load   s    € ð —;‘;¨°R�;Ð8ˆØLˆÜˆa�h‰h�t—|‘| XÓ.Ô/à!)§¡Ö!1ÑˆGØŸ™×*¨¨gÑ5ˆHØœ2Ÿ:™:Õ%Ø—‘˜x¬¯©°HÑ)=Ö>ñ "2ô 	Ð-×4Ñ4°T·Y±YÓ?Ô@Ø�y‰yÐr   r!   r"   c                 ó¶  • 0 nU R                  U5      n[        US5      (       a¡  [        UR                  5      (       a‡  [        US5      (       av  UR                  5        H`  n[	        U40 UD6nX/-   nU R                  Xv5      nU H$  nXS;   d  M
  Sn	[        U	R                  U5      5      e   UR                  U5        Mb     U$ XU R                  U5      '   U$ )a[  
Examine config at location ``key_path`` & return potential env vars.

Uses ``env_vars`` dict to determine if a conflict exists, and raises an
exception if so. This dict is of the following form::

    {
        'EXPECTED_ENV_VAR_HERE': ['actual', 'nested', 'key_path'],
        ...
    }

Returns another dictionary of new keypairs as per above.
ÚkeysÚ__getitem__zFound >1 source for {})
Ú	_path_getÚhasattrÚcallabler0   Údictr$   r   r%   ÚupdateÚ_to_env_var)
r   r!   r"   Únew_varsÚobjÚkeyÚmerged_varsÚmerged_pathÚcrawledÚerrs
             r   r$   ÚEnvironment._crawl0   sÏ   € ð  *,ˆØ�n‰n˜XÓ&ˆô �C˜× Ñ Ü˜Ÿ™×"Ñ"Ü˜˜]×+Ñ+à—x‘x–z�Ü" 8Ñ8¨xÑ8�Ø&¨Ñ.�ØŸ+™+ kÓ?�ã"�CØ•Ø6˜Ü-¨c¯j©j¸«oÓ>Ð>ñ #ð
 —‘ Ö(ñ "ð ˆð 4<�T×%Ñ% hÓ/Ñ0Øˆr   c                 ó@   • SR                  U5      R                  5       $ )NÚ_)ÚjoinÚupper)r   r!   s     r   r7   ÚEnvironment._to_env_varX   s   € Ø�x‰x˜Ó!×'Ñ'Ó)Ð)r   c                 ó8   • U R                   nU H  nX#   nM	     U$ r   )r   )r   r!   r9   r:   s       r   r2   ÚEnvironment._path_get[   s#   € ð �l‰lˆÛˆCØ‘(ŠCñ àˆ
r   Úvaluec                 ó    • U R                   nUS S  H  nXC;  a  0 X4'   X4   nM     U R                  U5      nU R                  XR5      nXcUS   '   g )Néÿÿÿÿ)r   r2   Ú_cast)r   r!   rG   r9   r:   ÚoldÚnews          r   r)   ÚEnvironment._path_setc   sZ   € ð �i‰iˆØ˜C˜R“=ˆCØ‹~Ø�‘Ø‘(ŠCñ !ð �n‰n˜XÓ&ˆØ�j‰j˜Ó$ˆØˆH�R‰LÒr   rK   rL   c                 ó  • [        U[        5      (       a  US;  $ [        U[        5      (       a  U$ Uc  U$ [        U[        [        45      (       a'  SnUR                  [        U5      5      n[        U5      eUR                  U5      $ )N)Ú0r#   z,Can't adapt an environment string into a {}!)	Ú
isinstanceÚboolÚstrÚlistÚtupler%   Útyper   Ú	__class__)r   rK   rL   r>   s       r   rJ   ÚEnvironment._casto   sx   € Ü�cœ4× Ñ Ø˜iÑ'Ð'Ü˜œS×!Ñ!ØˆJØ‰[ØˆJÜ˜œd¤E˜]×+Ñ+Ø@ˆCØ—*‘*œT #›YÓ'ˆCÜ" 3Ó'Ð'à—=‘= Ó%Ð%r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rR   r   r   r   r-   r   r   r	   r$   r   r7   r2   r)   rJ   Ú__static_attributes__© r   r   r   r      sÎ   † ð'˜xð '°ð '¸ô 'ð
�d˜3 ˜8‘nô ð*&Ø˜S™	ð&Ø-4°S¸(À3¹-Ð5GÑ-Hð&à	ˆc�3ˆh‰ô&ðP* H¨S¡Mð *°cô *ð (¨3¡-ð °Hô ð
  (¨3¡-ð 
 ¸ð 
 Àô 
 ð&˜ð & 3ð &¨3÷ &r   r   )Ú__doc__r'   Útypingr   r   r   r   r   r   r	   Ú
exceptionsr   r   Úutilr   r   r   r   r]   r   r   Ú<module>rb      s0   ðñó 
ß N× NÑ Nç 9Ý æÝ÷f&ò f&r   