
    ~<i|                        d Z ddlmZ ddlmZmZ ddlmZ ddl	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dz  f         Z G d de      ZddgZy)z Azure Key Vault settings source.    )annotations)IteratorMapping)TYPE_CHECKING)to_snake)	FieldInfo   )EnvSettingsSourceTokenCredentialResourceNotFoundErrorSecretClient)BaseSettingsNc                 d    	 ddl ma ddlma ddlma y # 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    n/home/www/utuvibe.miabetepe.com/venv/lib/python3.12/site-packages/pydantic_settings/sources/providers/azure.pyimport_azure_key_vaultr      s3    
:?7 r
	s    	/*/c                  d    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y)AzureKeyVaultMappingzdict[str, str | None]_loaded_secretsr   _secret_clientz	list[str]_secret_namesc                f    i | _         || _        || _        || _        | j	                         | _        y N)r   r   _case_sensitive_snake_case_conversion_load_remote_secret_map)selfsecret_clientcase_sensitivesnake_case_conversions       r   __init__zAzureKeyVaultMapping.__init__-   s5      "+-&;#+/+<+<+>    c                &   d | j                   j                         D        }| j                  r|D ci c]  }t        |      | c}S | j                  r|D ci c]  }|| c}S |D ci c]  }|j                         | c}S c c}w c c}w c c}w )Nc              3  h   K   | ]*  }|j                   s|j                  s|j                    , y wr    )nameenabled).0secrets     r   	<genexpr>z4AzureKeyVaultMapping._load_remote.<locals>.<genexpr>:   s+      '
"Z`ZeZejpjxjxFKK'
s   222)r   list_properties_of_secretsr"   r   r!   lower)r%   secret_namesr-   s      r   r#   z!AzureKeyVaultMapping._load_remote9   s    '
&*&9&9&T&T&V'
 &&5ABTHTND(BB+784D$J88/;<t

d"<< C 9<s   B
B	)Bc                Z   |}| j                   rt        |      }n| j                  s|j                         }|| j                  vrY|| j
                  v r@| j                  j                  | j
                  |         j                  | j                  |<   nt        |      | j                  |   S r    )
r"   r   r!   r3   r   r$   r   
get_secretvalueKeyError)r%   keynew_keys      r   __getitem__z AzureKeyVaultMapping.__getitem__F   s    &&smG%%iikG$...$***040C0C0N0NtO_O_`gOh0i0o0o$$W-sm###G,,r*   c                ,    t        | j                        S r    )lenr$   r%   s    r   __len__zAzureKeyVaultMapping.__len__V   s    4##$$r*   c                H    t        | j                  j                               S r    )iterr$   keysr>   s    r   __iter__zAzureKeyVaultMapping.__iter__Y   s    D$$))+,,r*   N)r&   r   r'   boolr(   rD   returnNone)rE   zdict[str, str])r9   strrE   
str | None)rE   int)rE   zIterator[str])	__name__
__module____qualname____annotations__r)   r#   r;   r?   rC    r*   r   r   r   (   sS    **  
?#
? 
?  $	
?
 

?=- %-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 )AzureKeyVaultSettingsSourcerG   _urlr   _credentialc
           	         t                || _        || _        || _        || _        t
        
|   ||rdn|||rdndd||	       y )NF__z--)r'   
env_prefixenv_nested_delimiterenv_ignore_emptyenv_parse_none_strenv_parse_enums)r   rQ   rR   _dash_to_underscorer"   superr)   )r%   settings_clsurl
credentialdash_to_underscorer'   r(   rU   rX   rY   	__class__s             r   r)   z$AzureKeyVaultSettingsSource.__init__a   sY     	 	%#5 &;#$95~!)>D"1+ 	 	
r*   c                    t        | j                  | j                        }t        || j                  | j
                        S )N)	vault_urlr^   )r&   r'   r(   )r   rQ   rR   r   r'   r"   )r%   r&   s     r   _load_env_varsz*AzureKeyVaultSettingsSource._load_env_vars|   s:    $tyyTEUEUV#'.."&"="=
 	
r*   c                    | j                   r t        d t        |   ||      D              S | j                  r t        d t        |   ||      D              S t        |   ||      S )Nc              3  8   K   | ]  }|d    |d    |d   f  yw)r      NrN   r/   xs     r   r1   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>   s#     cq1qtQqT*cs   c              3  X   K   | ]"  }|d    |d   j                  dd      |d   f $ yw)r   r	   _-rf   N)replacerg   s     r   r1   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>   s.     u1qt||C5qt<us   (*)r"   listr[   _extract_field_inforZ   )r%   field
field_namer`   s      r   rn   z/AzureKeyVaultSettingsSource._extract_field_info   se    &&cEG4OPUWa4bccc##uegFabgisFtuuuw*5*==r*   c                h    | j                   j                   d| j                  d| j                  dS )Nz(url=z, env_nested_delimiter=))r`   rJ   rQ   rV   r>   s    r   __repr__z$AzureKeyVaultSettingsSource.__repr__   s4    ..))*%		}<STXTmTmSppqrrr*   )FNFNNN)r\   ztype[BaseSettings]r]   rG   r^   r   r_   rD   r'   bool | Noner(   rD   rU   rH   rX   rH   rY   rt   rE   rF   )rE   zMapping[str, str | None])ro   r   rp   rG   rE   zlist[tuple[str, str, bool]])rE   rG   )	rJ   rK   rL   rM   r)   rc   rn   rs   __classcell__)r`   s   @r   rP   rP   ]   s    
I   $)&*&+!%)-'+
(
 
 $	

 !
 $
  $
 
 '
 %
 

6
>sr*   rP   )rE   rF   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   pydantic.alias_generatorsr   pydantic.fieldsr   envr
   r   r   r   r   r   r   pydantic_settings.mainr   r   rG   r   rP   __all__rN   r*   r   <module>r      su    & 2 -   . % "6;33O L2-73d
?3 2-j1s"3 1sh "#@
Ar*   