
    R
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dS )z Azure Key Vault settings source.    )annotations)IteratorMapping)TYPE_CHECKING)to_snake)	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    C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\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boolsnake_case_conversion
env_prefix
str | Noner   r   c                    i | _         || _        || _        || _        |r|nd| _        |                                 | _        d S )N )r   r   _case_sensitive_snake_case_conversion_env_prefix_load_remote_secret_map)selfr!   r"   r$   r%   s        r   __init__zAzureKeyVaultMapping.__init__-   sO      "+-&;#)3;::+/+<+<+>+>    dict[str, str]c           
     j   d | j                                         D             }| j        rki }|D ]d}|                    | j                  r6||| j         t          |t          | j                  d                     <   R||t          |          <   e|S | j        rd |D             S d |D             S )Nc              3  @   K   | ]}|j         	|j        |j         V  d S N)nameenabled).0secrets     r   	<genexpr>z4AzureKeyVaultMapping._load_remote.<locals>.<genexpr><   sL       '
 '
"Z`Ze'
jpjx'
K'
 '
 '
 '
 '
 '
r0   c                    i | ]}||S  r;   r7   r5   s     r   
<dictcomp>z5AzureKeyVaultMapping._load_remote.<locals>.<dictcomp>J   s    8884D$888r0   c                8    i | ]}|                                 |S r;   )lowerr<   s     r   r=   z5AzureKeyVaultMapping._load_remote.<locals>.<dictcomp>L   s"    <<<t

d<<<r0   )r   list_properties_of_secretsr*   
startswithr+   r   lenr)   )r.   secret_namesname_mapr5   s       r   r,   z!AzureKeyVaultMapping._load_remote;   s    '
 '
&*&9&T&T&V&V'
 '
 '
 & 	')H$ 4 4??4#344 4_cH 0[(4DDT@U@U@W@W;X2Y2Y[[\\/3HXd^^,,O 	988<8888<<|<<<<r0   keystrc                   |}| j         r]|                    | j                  r3| j         t          |t	          | j                  d                     }n+t          |          }n| j        s|                                }|| j        vrK|| j        v r3| j	        
                    | j        |                   j        | j        |<   nt          |          | j        |         S r4   )r*   rA   r+   r   rB   r)   r?   r   r-   r   
get_secretvalueKeyError)r.   rE   new_keys      r   __getitem__z AzureKeyVaultMapping.__getitem__N   s    & 	"~~d.// (!-WxC@P<Q<Q<S<S8T/U/UWW"3--% 	"iikkG$...$***040C0N0NtO_`gOh0i0i0o$W--smm##G,,r0   intc                *    t          | j                  S r4   )rB   r-   r.   s    r   __len__zAzureKeyVaultMapping.__len__b   s    4#$$$r0   Iterator[str]c                N    t          | j                                                  S r4   )iterr-   keysrO   s    r   __iter__zAzureKeyVaultMapping.__iter__e   s    D$))++,,,r0   N)
r!   r   r"   r#   r$   r#   r%   r&   r   r   )r   r1   )rE   rF   r   r&   )r   rM   )r   rQ   )	__name__
__module____qualname____annotations__r/   r,   rL   rP   rU   r;   r0   r   r   r   (   s         ****    ? ? ? ?= = = =&- - - -(% % % %- - - - - -r0   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 )$AzureKeyVaultSettingsSourcerF   _urlr   _credentialFNsettings_clstype[BaseSettings]url
credentialdash_to_underscorer#   r"   bool | Noner$   r%   r&   env_parse_none_strenv_parse_enumsr   r   c
           	         t                       || _        || _        || _        || _        t                                          ||rdn|||rdndd||	           d S )NT__z--F)r"   r%   env_nested_delimiterenv_ignore_emptyrd   re   )r   r\   r]   _dash_to_underscorer*   superr/   )r.   r^   r`   ra   rb   r"   r$   r%   rd   re   	__class__s             r   r/   z$AzureKeyVaultSettingsSource.__init__m   s     	   	%#5 &;##8L44n!)>!HD"1+ 	 	
 	
 	
 	
 	
r0   Mapping[str, str | None]c                |    t          | j        | j                  }t          || j        | j        | j                  S )N)	vault_urlra   )r!   r"   r$   r%   )r   r\   r]   r   r"   r*   r%   )r.   r!   s     r   _load_env_varsz*AzureKeyVaultSettingsSource._load_env_vars   sD    $tyTEUVVV#'."&"=	
 
 
 	
r0   fieldr   
field_namelist[tuple[str, str, bool]]c                L   | j         r;t          d t                                          ||          D                       }|S | j        r9t          d t                                          ||          D                       S t                                          ||          S )Nc              3  D   K   | ]}|d          |d         |d         fV  dS )r   r	      Nr;   r7   xs     r   r9   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>   s5      iiQqtQqT1Q40iiiiiir0   c              3  l   K   | ]/}|d          |d                              dd          |d         fV  0dS )r   r	   _-rv   N)replacerw   s     r   r9   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>   sC      uu1qt||C55qt<uuuuuur0   )r*   listrk   _extract_field_inforj   )r.   rq   rr   
field_inforl   s       r   r~   z/AzureKeyVaultSettingsSource._extract_field_info   s    & 	ii%'':U:UV[]g:h:hiiiiiJ# 	vuueggFaFabgisFtFtuuuuuuww**5*===r0   c                @    | j         j         d| j        d| j        dS )Nz(url=z, env_nested_delimiter=))rl   rV   r\   rh   rO   s    r   __repr__z$AzureKeyVaultSettingsSource.__repr__   s,    .)rr	rrTXTmrrrrr0   )FNFNNN)r^   r_   r`   rF   ra   r   rb   r#   r"   rc   r$   r#   r%   r&   rd   r&   re   rc   r   r   )r   rm   )rq   r   rr   rF   r   rs   )r   rF   )	rV   rW   rX   rY   r/   rp   r~   r   __classcell__)rl   s   @r   r[   r[   i   s         III     $)&*&+!%)-'+
 
 
 
 
 
 
6
 
 
 
> > > > > >s s s s s s s sr0   r[   )r   r   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   pydantic.alias_generatorsr   pydantic.fieldsr   envr
   r   r   r   r   r   r   pydantic_settings.mainr   r   rF   r   r[   __all__r;   r0   r   <module>r      sq   & & 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d
?3 >- >- >-B3s 3s 3s 3s 3s"3 3s 3s 3sl "#@
Ar0   