
    	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 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)	FieldInfo   )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    v/var/www/html/web-builder-api.evdpl.com/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                  V    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dZdS )AzureKeyVaultMappingzdict[str, str | None]_loaded_secretsr   _secret_clientz	list[str]_secret_namessecret_clientcase_sensitiveboolr   r   c                b    i | _         || _        || _        |                                 | _        d S N)r   r   _case_sensitive_load_remote_secret_map)selfr!   r"   s      r   __init__zAzureKeyVaultMapping.__init__,   s6    
  "+-+/+<+<+>+>    dict[str, str]c                    d | j                                         D             }| j        rd |D             S d |D             S )Nc              3  @   K   | ]}|j         	|j        |j         V  d S r%   )nameenabled).0secrets     r   	<genexpr>z4AzureKeyVaultMapping._load_remote.<locals>.<genexpr>7   sL       '
 '
"Z`Ze'
jpjx'
K'
 '
 '
 '
 '
 '
r+   c                    i | ]}||S  r5   r1   r/   s     r   
<dictcomp>z5AzureKeyVaultMapping._load_remote.<locals>.<dictcomp>;   s    8884D$888r+   c                8    i | ]}|                                 |S r5   )lowerr6   s     r   r7   z5AzureKeyVaultMapping._load_remote.<locals>.<dictcomp><   s"    <<<t

d<<<r+   )r   list_properties_of_secretsr&   )r)   secret_namess     r   r'   z!AzureKeyVaultMapping._load_remote6   sd    '
 '
&*&9&T&T&V&V'
 '
 '
  	988<8888<<|<<<<r+   keystr
str | Nonec                    | j         s|                                }|| j        vr;|| j        v r2| j                            | j        |                   j        | j        |<   | j        |         S r%   )r&   r9   r   r(   r   
get_secretvalue)r)   r<   s     r   __getitem__z AzureKeyVaultMapping.__getitem__>   sm    # 	))++Cd***sd6F/F/F(,(;(F(FtGWX[G\(](](cD %#C((r+   intc                *    t          | j                  S r%   )lenr(   r)   s    r   __len__zAzureKeyVaultMapping.__len__E   s    4#$$$r+   Iterator[str]c                N    t          | j                                                  S r%   )iterr(   keysrF   s    r   __iter__zAzureKeyVaultMapping.__iter__H   s    D$))++,,,r+   N)r!   r   r"   r#   r   r   )r   r,   )r<   r=   r   r>   )r   rC   )r   rH   )	__name__
__module____qualname____annotations__r*   r'   rB   rG   rL   r5   r+   r   r   r   '   s         ****    ? ? ? ?= = = =) ) ) )% % % %- - - - - -r+   r   c                  ^     e Zd ZU ded<   ded<   	 	 	 	 	 dd fdZd dZd! fdZd"dZ xZS )#AzureKeyVaultSettingsSourcer=   _urlr   _credentialFNsettings_clstype[BaseSettings]url
credentialdash_to_underscorer#   r"   bool | None
env_prefixr>   env_parse_none_strenv_parse_enumsr   r   c	           	         t                       || _        || _        || _        t	                                          |||dd||           d S )Nz--F)r"   r[   env_nested_delimiterenv_ignore_emptyr\   r]   )r   rS   rT   _dash_to_underscoresuperr*   )
r)   rU   rW   rX   rY   r"   r[   r\   r]   	__class__s
            r   r*   z$AzureKeyVaultSettingsSource.__init__P   sh     	   	%#5 )!!%"1+ 	 	
 	
 	
 	
 	
r+   Mapping[str, Optional[str]]c                b    t          | j        | j                  }t          || j                  S )N)	vault_urlrX   )r   rS   rT   r   r"   )r)   r!   s     r   _load_env_varsz*AzureKeyVaultSettingsSource._load_env_varsi   s,    $tyTEUVVV#M43FGGGr+   fieldr   
field_namelist[tuple[str, str, bool]]c                    | j         r9t          d t                                          ||          D                       S t                                          ||          S )Nc              3  l   K   | ]/}|d          |d                              dd          |d         fV  0dS )r   r	   _-   N)replace)r1   xs     r   r3   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>o   sC      uu1qt||C55qt<uuuuuur+   )ra   listrb   _extract_field_info)r)   rh   ri   rc   s      r   rs   z/AzureKeyVaultSettingsSource._extract_field_infom   s\    # 	vuueggFaFabgisFtFtuuuuuuww**5*===r+   c                @    | j         j         d| j        d| j        dS )Nz(url=z, env_nested_delimiter=))rc   rM   rS   r_   rF   s    r   __repr__z$AzureKeyVaultSettingsSource.__repr__r   s,    .)rr	rrTXTmrrrrr+   )FNNNN)rU   rV   rW   r=   rX   r   rY   r#   r"   rZ   r[   r>   r\   r>   r]   rZ   r   r   )r   rd   )rh   r   ri   r=   r   rj   )r   r=   )	rM   rN   rO   rP   r*   rg   rs   rv   __classcell__)rc   s   @r   rR   rR   L   s         III     $)&*!%)-'+
 
 
 
 
 
 
2H H H H> > > > > >
s s s s s s s sr+   rR   )r   r   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   r   pydantic.fieldsr   envr
   r   r   r   r   r   r   pydantic_settings.mainr   r   r=   r   rR   __all__r5   r+   r   <module>r      sf   & & 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 "- "- "-J's 's 's 's 's"3 's 's 'sT "#@
Ar+   