
    <'i|                        S r SSKJr  SSKJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  \(       a  SS	KJq  SS
KJq  SSKJq  SSKJr  OSqSqSqSS jr " S S\\\S-  4   5      r " S S\5      rSS/rg)z Azure Key Vault settings source.    )annotations)IteratorMapping)TYPE_CHECKING)to_snake)	FieldInfo   )EnvSettingsSourceTokenCredentialResourceNotFoundErrorSecretClient)BaseSettingsNc                 f     SSK Jq  SSKJq  SSKJq  g ! [         a  n [        S5      U eS n A ff = f)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    Ilib/python3.13/site-packages/pydantic_settings/sources/providers/azure.pyimport_azure_key_vaultr      s3    
:?7 r
	s    
0+0c                  v    \ rS rSr% S\S'   S\S'   S\S'           SS jrSS	 jrSS
 jrSS jrSS jr	Sr
g)AzureKeyVaultMapping(   zdict[str, str | None]_loaded_secretsr   _secret_clientz	list[str]_secret_namesc                `    0 U l         Xl        X l        X0l        U R	                  5       U l        g N)r   r   _case_sensitive_snake_case_conversion_load_remote_secret_map)selfsecret_clientcase_sensitivesnake_case_conversions       r   __init__AzureKeyVaultMapping.__init__-   s/      "+-&;#+/+<+<+>    c                H   S U R                   R                  5        5       nU R                  (       a  U Vs0 s H  n[        U5      U_M     sn$ U R                  (       a  U Vs0 s H  o"U_M     sn$ U Vs0 s H  o"R                  5       U_M     sn$ s  snf s  snf s  snf )Nc              3     #    U  H6  oR                   (       d  M  UR                  (       d  M(  UR                   v   M8     g 7fr!   )nameenabled).0secrets     r   	<genexpr>4AzureKeyVaultMapping._load_remote.<locals>.<genexpr>:   s+      '
&VFZeZeKjpjxjxKFKK&Vs   A A A )r   list_properties_of_secretsr#   r   r"   lower)r&   secret_namesr/   s      r   r$   !AzureKeyVaultMapping._load_remote9   s    '
&*&9&9&T&T&V'
 &&5AB\THTND(\BB+78<4$J<88/;<|t

d"|<< C 9<s   B%B8Bc                r   UnU R                   (       a  [        U5      nO!U R                  (       d  UR                  5       nX R                  ;  aZ  X R
                  ;   a@  U R                  R                  U R
                  U   5      R                  U R                  U'   O[        U5      eU R                  U   $ r!   )
r#   r   r"   r6   r   r%   r   
get_secretvalueKeyError)r&   keynew_keys      r   __getitem__ AzureKeyVaultMapping.__getitem__F   s    &&smG%%iikG...***040C0C0N0NtO_O_`gOh0i0o0o$$W-sm###G,,r,   c                ,    [        U R                  5      $ r!   )lenr%   r&   s    r   __len__AzureKeyVaultMapping.__len__V   s    4##$$r,   c                H    [        U R                  R                  5       5      $ r!   )iterr%   keysrC   s    r   __iter__AzureKeyVaultMapping.__iter__Y   s    D$$))+,,r,   )r"   r   r   r%   r#   N)r'   r   r(   boolr)   rK   returnNone)rL   zdict[str, str])r=   strrL   
str | None)rL   int)rL   zIterator[str])__name__
__module____qualname____firstlineno____annotations__r*   r$   r?   rD   rI   __static_attributes__ r,   r   r   r   (   sS    **  
?#
? 
?  $	
?
 

?=- %-r,   r   c                     ^  \ rS rSr% S\S'   S\S'         S                   SU 4S jjjrSS jrSU 4S jjrSS	 jrS
r	U =r
$ )AzureKeyVaultSettingsSource]   rN   _urlr   _credentialc
           
        > [        5         X l        X0l        X@l        X`l        [
        T
U ]  UU(       a  SOUUU(       a  SOSSUU	S9  g )NF__z--)r(   
env_prefixenv_nested_delimiterenv_ignore_emptyenv_parse_none_strenv_parse_enums)r   r[   r\   _dash_to_underscorer#   superr*   )r&   settings_clsurl
credentialdash_to_underscorer(   r)   r_   rb   rc   	__class__s             r   r*   $AzureKeyVaultSettingsSource.__init__a   sQ     	 	%#5 &;#$95~!)>D"1+ 	 	
r,   c                |    [        U R                  U R                  S9n[        UU R                  U R
                  S9$ )N)	vault_urlrh   )r'   r(   r)   )r   r[   r\   r   r(   r#   )r&   r'   s     r   _load_env_vars*AzureKeyVaultSettingsSource._load_env_vars|   s:    $tyyTEUEUV#'.."&"="=
 	
r,   c                   > U R                   (       a  [        S [        TU ]  X5       5       5      $ U R                  (       a  [        S [        TU ]  X5       5       5      $ [        TU ]  X5      $ )Nc              3  <   #    U  H  oS    US    US   4v   M     g7f)r      NrW   r1   xs     r   r3   BAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>   s#     c4bq1qtQqT*4bs   c              3  \   #    U  H"  oS    US   R                  SS5      US   4v   M$     g7f)r   r	   _-rr   N)replacers   s     r   r3   ru      s.     uFt1qt||C5qt<Fts   *,)r#   listre   _extract_field_inford   )r&   field
field_namerj   s      r   r{   /AzureKeyVaultSettingsSource._extract_field_info   s]    &&cEG4OPU4bccc##uegFabgFtuuuw*5==r,   c                l    U R                   R                   SU R                  < SU R                  < S3$ )Nz(url=z, env_nested_delimiter=))rj   rQ   r[   r`   rC   s    r   __repr__$AzureKeyVaultSettingsSource.__repr__   s4    ..))*%		}<STXTmTmSppqrrr,   )r\   rd   r#   r[   )FNFNNN)rf   ztype[BaseSettings]rg   rN   rh   r   ri   rK   r(   bool | Noner)   rK   r_   rO   rb   rO   rc   r   rL   rM   )rL   zMapping[str, str | None])r|   r   r}   rN   rL   zlist[tuple[str, str, bool]])rL   rN   )rQ   rR   rS   rT   rU   r*   rn   r{   r   rV   __classcell__)rj   s   @r   rY   rY   ]   s    
I   $)&*&+!%)-'+
(
 
 $	

 !
 $
  $
 
 '
 %
 

 
6
>s sr,   rY   )rL   rM   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   pydantic.alias_generatorsr   pydantic.fieldsr   envr
   r   r   r   r   r   r   pydantic_settings.mainr   r   rN   r   rY   __all__rW   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,   