
    =Ki                        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    k/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/azure.pyimport_azure_key_vaultr      s3    
:?7 r
	s    
0+0c                  z    \ 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(       a  UOSU l        U R                  5       U l        g )N )r   r   _case_sensitive_snake_case_conversion_env_prefix_load_remote_secret_map)selfsecret_clientcase_sensitivesnake_case_conversion
env_prefixs        r   __init__AzureKeyVaultMapping.__init__-   s;      "+-&;#)3:+/+<+<+>    c           
        S U R                   R                  5        5       nU R                  (       am  0 nU Hc  nUR                  U R                  5      (       a3  X2U R                   [        U[        U R                  5      S  5       3'   MV  X2[        U5      '   Me     U$ U R                  (       a  U Vs0 s H  o3U_M     sn$ U Vs0 s H  o3R                  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N)nameenabled).0secrets     r   	<genexpr>4AzureKeyVaultMapping._load_remote.<locals>.<genexpr><   s+      '
&VFZeZeKjpjxjxKFKK&Vs   A A A )	r   list_properties_of_secretsr#   
startswithr$   r   lenr"   lower)r'   secret_namesname_mapr2   s       r   r%   !AzureKeyVaultMapping._load_remote;   s    '
&*&9&9&T&T&V'
 &&')H$??4#3#344_c 0 01(4DDTDT@U@W;X2Y1Z[\/3Xd^,	 %
 O+78<4$J<88/;<|t

d"|<< 9<s   5C%C*c                   UnU R                   (       a\  UR                  U R                  5      (       a0  U R                   [        U[	        U R                  5      S  5       3nO-[        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   $ r1   )r#   r9   r$   r   r:   r"   r;   r   r&   r   
get_secretvalueKeyError)r'   keynew_keys      r   __getitem__ AzureKeyVaultMapping.__getitem__N   s    &&~~d..//!--.xC@P@P<Q<S8T/U.VW"3-%%iikG...***040C0C0N0NtO_O_`gOh0i0o0o$$W-sm###G,,r.   c                ,    [        U R                  5      $ r1   )r:   r&   r'   s    r   __len__AzureKeyVaultMapping.__len__b   s    4##$$r.   c                H    [        U R                  R                  5       5      $ r1   )iterr&   keysrH   s    r   __iter__AzureKeyVaultMapping.__iter__e   s    D$$))+,,r.   )r"   r$   r   r   r&   r#   N)
r(   r   r)   boolr*   rP   r+   
str | NonereturnNone)rR   zdict[str, str])rC   strrR   rQ   )rR   int)rR   zIterator[str])__name__
__module____qualname____firstlineno____annotations__r,   r%   rE   rI   rN   __static_attributes__ r.   r   r   r   (   s]    **  ?#? ?  $	?
 ? 
?=&-(%-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
$ )AzureKeyVaultSettingsSourcei   rT   _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 )NT__z--F)r)   r+   env_nested_delimiterenv_ignore_emptyenv_parse_none_strenv_parse_enums)r   r`   ra   _dash_to_underscorer#   superr,   )r'   settings_clsurl
credentialdash_to_underscorer)   r*   r+   rf   rg   	__class__s             r   r,   $AzureKeyVaultSettingsSource.__init__m   sQ     	 	%#5 &;##84n!)>D"1+ 	 	
r.   c                    [        U R                  U R                  S9n[        UU R                  U R
                  U R                  S9$ )N)	vault_urlrl   )r(   r)   r*   r+   )r   r`   ra   r   r)   r#   r+   )r'   r(   s     r   _load_env_vars*AzureKeyVaultSettingsSource._load_env_vars   sA    $tyyTEUEUV#'.."&"="=	
 	
r.   c                   > U R                   (       a!  [        S [        TU ]  X5       5       5      nU$ 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   r	      Nr\   r4   xs     r   r6   BAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>   s#     i:hQtQqT1Q40:hs   c              3  \   #    U  H"  oS    US   R                  SS5      US   4v   M$     g7f)r   r	   _-rv   N)replacerw   s     r   r6   ry      s.     uFt1qt||C5qt<Fts   *,)r#   listri   _extract_field_inforh   )r'   field
field_name
field_inforn   s       r   r   /AzureKeyVaultSettingsSource._extract_field_info   sb    &&i%':UV[:hiiJ##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=))rn   rV   r`   rd   rH   s    r   __repr__$AzureKeyVaultSettingsSource.__repr__   s4    ..))*%		}<STXTmTmSppqrrr.   )ra   rh   r#   r`   )FNFNNN)rj   ztype[BaseSettings]rk   rT   rl   r   rm   rP   r)   bool | Noner*   rP   r+   rQ   rf   rQ   rg   r   rR   rS   )rR   zMapping[str, str | None])r   r   r   rT   rR   zlist[tuple[str, str, bool]])rR   rT   )rV   rW   rX   rY   rZ   r,   rr   r   r   r[   __classcell__)rn   s   @r   r^   r^   i   s    
I   $)&*&+!%)-'+
(
 
 $	

 !
 $
  $
 
 '
 %
 

 
6
>s sr.   r^   )rR   rS   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   pydantic.alias_generatorsr   pydantic.fieldsr   envr
   r   r   r   r   r   r   pydantic_settings.mainr   r   rT   r   r^   __all__r\   r.   r   <module>r      su    & 2 -   . % "6;33O L>-73d
?3 >-B3s"3 3sl "#@
Ar.   