
    .h                        d Z ddlmZ ddlmZmZ ddlmZm	Z	 ddl
mZ erddlma ddlma dd	lma dd
lmZ ndadadaddZ G d deee	e         f                   Z G d de          ZddgZdS )z Azure Key Vault settings source.    )annotations)IteratorMapping)TYPE_CHECKINGOptional   )EnvSettingsSourceTokenCredentialResourceNotFoundErrorSecretClient)BaseSettingsNreturnNonec                 p    	 ddl ma ddlma ddlma d S # t          $ r} t          d          | d } ~ ww xY w)Nr   r
   r   r   zdAzure Key Vault dependencies are not installed, run `pip install pydantic-settings[azure-key-vault]`)azure.core.credentialsr   azure.core.exceptionsr   azure.keyvault.secretsr   ImportError)es    f/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/pydantic_settings/sources/providers/azure.pyimport_azure_key_vaultr      sz    
::::::??????77777777   r
 
	s    
505c                  N    e Zd ZU ded<   ded<   ded<   dd
ZddZddZddZdS )AzureKeyVaultMappingzdict[str, str | None]_loaded_secretsr   _secret_clientz	list[str]_secret_namessecret_clientr   r   c                r    i | _         || _        d | j                                        D             | _        d S )Nc                8    g | ]}|j         	|j        |j         S  )nameenabled).0secrets     r   
<listcomp>z1AzureKeyVaultMapping.__init__.<locals>.<listcomp>0   s>     )
 )
 )
"Z`Ze)
jpjx)
K)
 )
 )
    )r   r   list_properties_of_secretsr   selfr    s     r   __init__zAzureKeyVaultMapping.__init__*   sJ      "+)
 )
&*&9&T&T&V&V)
 )
 )
r)   keystr
str | Nonec                    || j         vrO|| j        v rF	 | j                            |          j        | j         |<   n# t
          $ r t          |          w xY w| j         |         S N)r   r   r   
get_secretvalue	ExceptionKeyError)r,   r.   s     r   __getitem__z AzureKeyVaultMapping.__getitem__4   s}    d***sd6H/H/H$,0,?,J,J3,O,O,U$S)) $ $ $smm#$ #C((s	   '< Aintc                *    t          | j                  S r2   )lenr   r,   s    r   __len__zAzureKeyVaultMapping.__len__=   s    4%&&&r)   Iterator[str]c                *    t          | j                  S r2   )iterr   r;   s    r   __iter__zAzureKeyVaultMapping.__iter__@   s    D&'''r)   N)r    r   r   r   )r.   r/   r   r0   )r   r8   )r   r=   )__name__
__module____qualname____annotations__r-   r7   r<   r@   r#   r)   r   r   r   %   s         ****    
 
 
 
) ) ) )' ' ' '( ( ( ( ( (r)   r   c                  N     e Zd ZU ded<   ded<   	 	 	 dd fdZddZddZ xZS )AzureKeyVaultSettingsSourcer/   _urlr   _credentialNsettings_clstype[BaseSettings]url
credential
env_prefixr0   env_parse_none_strenv_parse_enumsbool | Noner   r   c           	         t                       || _        || _        t                                          |d|dd||           d S )NTz--F)case_sensitiverM   env_nested_delimiterenv_ignore_emptyrN   rO   )r   rG   rH   superr-   )r,   rI   rK   rL   rM   rN   rO   	__class__s          r   r-   z$AzureKeyVaultSettingsSource.__init__H   s`     	   	%!!%"1+ 	 	
 	
 	
 	
 	
r)   Mapping[str, Optional[str]]c                V    t          | j        | j                  }t          |          S )N)	vault_urlrL   )r   rG   rH   r   r+   s     r   _load_env_varsz*AzureKeyVaultSettingsSource._load_env_vars^   s'    $tyTEUVVV#M222r)   c                @    | j         j         d| j        d| j        dS )Nz(url=z, env_nested_delimiter=))rV   rA   rG   rS   r;   s    r   __repr__z$AzureKeyVaultSettingsSource.__repr__b   s,    .)rr	rrTXTmrrrrr)   )NNN)rI   rJ   rK   r/   rL   r   rM   r0   rN   r0   rO   rP   r   r   )r   rW   )r   r/   )rA   rB   rC   rD   r-   rZ   r]   __classcell__)rV   s   @r   rF   rF   D   s         III     "&)-'+
 
 
 
 
 
 
,3 3 3 3s s s s s s s sr)   rF   )r   r   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   r   envr	   r   r   r   r   r   r   pydantic_settings.mainr   r   r/   r   rF   __all__r#   r)   r   <module>rg      sS   & & 2 2 2 2 2 2 - - - - - - - - * * * * * * * * " " " " " " 	666666;;;;;;3333333333333O L   ( ( ( ( (73#56 ( ( (>s s s s s"3 s s sD "#@
Ar)   