
    ch                        S r SSKJr  SSKJrJr  SSKJr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\\\	\   4   5      r " S S\5      rSS/rg)z Azure Key Vault settings source.    )annotations)IteratorMapping)TYPE_CHECKINGOptional)	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    a/var/www/html/shao/venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/azure.pyimport_azure_key_vaultr      s3    
:?7 r
	s    
0+0c                  r    \ 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                T    0 U l         Xl        X l        U R                  5       U l        g N)r   r   _case_sensitive_load_remote_secret_map)selfsecret_clientcase_sensitives      r   __init__AzureKeyVaultMapping.__init__,   s)    
  "+-+/+<+<+>    c                    S U R                   R                  5        5       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 )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>7   s+      '
&VFZeZeKjpjxjxKFKK&Vs   ???)r   list_properties_of_secretsr"   lower)r%   secret_namesr-   s      r   r#   !AzureKeyVaultMapping._load_remote6   sh    '
&*&9&9&T&T&V'
 +78<4$J<88/;<|t

d"|<< 9<s   A%	A*c                   U R                   (       d  UR                  5       nXR                  ;  aN  XR                  ;   a?  U R                  R                  U R                  U   5      R                  U R                  U'   U R                  U   $ r!   )r"   r4   r   r$   r   
get_secretvalue)r%   keys     r   __getitem__ AzureKeyVaultMapping.__getitem__>   sq    ##))+C***s6F6F/F(,(;(;(F(FtGWGWX[G\(](c(cD  %##C((r*   c                ,    [        U R                  5      $ r!   )lenr$   r%   s    r   __len__AzureKeyVaultMapping.__len__E   s    4##$$r*   c                H    [        U R                  R                  5       5      $ r!   )iterr$   keysr?   s    r   __iter__AzureKeyVaultMapping.__iter__H   s    D$$))+,,r*   )r"   r   r   r$   N)r&   r   r'   boolreturnNone)rH   zdict[str, str])r:   strrH   
str | None)rH   int)rH   zIterator[str])__name__
__module____qualname____firstlineno____annotations__r(   r#   r;   r@   rE   __static_attributes__ r*   r   r   r   '   sI    **  ?#? ? 
	?=)%-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
$ )AzureKeyVaultSettingsSourceL   rJ   _urlr   _credentialc	           
     d   > [        5         X l        X0l        X@l        [        T	U ]  UUUSSUUS9  g )Nz--F)r'   
env_prefixenv_nested_delimiterenv_ignore_emptyenv_parse_none_strenv_parse_enums)r   rW   rX   _dash_to_underscoresuperr(   )
r%   settings_clsurl
credentialdash_to_underscorer'   rZ   r]   r^   	__class__s
            r   r(   $AzureKeyVaultSettingsSource.__init__P   sC     	 	%#5 )!!%"1+ 	 	
r*   c                h    [        U R                  U R                  S9n[        XR                  5      $ )N)	vault_urlrc   )r   rW   rX   r   r'   )r%   r&   s     r   _load_env_vars*AzureKeyVaultSettingsSource._load_env_varsi   s)    $tyyTEUEUV#M3F3FGGr*   c                   > U R                   (       a  [        S [        TU ]  X5       5       5      $ [        TU ]  X5      $ )Nc              3  Z   #    U H"  oS    US   R                  SS5      US   4v   M$     g7f)r   r	   _-   N)replace)r/   xs     r   r1   BAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>o   s.     uFt1qt||C5qt<Fts   )+)r_   listr`   _extract_field_info)r%   field
field_namere   s      r   rt   /AzureKeyVaultSettingsSource._extract_field_infom   s8    ##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=))re   rM   rW   r[   r?   s    r   __repr__$AzureKeyVaultSettingsSource.__repr__r   s4    ..))*%		}<STXTmTmSppqrrr*   )rX   r_   rW   )FNNNN)ra   ztype[BaseSettings]rb   rJ   rc   r   rd   rG   r'   bool | NonerZ   rK   r]   rK   r^   r|   rH   rI   )rH   zMapping[str, Optional[str]])ru   r   rv   rJ   rH   zlist[tuple[str, str, bool]])rH   rJ   )rM   rN   rO   rP   rQ   r(   ri   rt   rz   rR   __classcell__)re   s   @r   rU   rU   L   s    
I   $)&*!%)-'+
(
 
 $	

 !
 $
 
 '
 %
 

 
2H>
s sr*   rU   )rH   rI   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   r   pydantic.fieldsr   envr
   r   r   r   r   r   r   pydantic_settings.mainr   r   rJ   r   rU   __all__rS   r*   r   <module>r      ss    & 2 - * % "6;33O L"-73#56 "-J's"3 'sT "#@
Ar*   