
    ,h                        d Z ddlmZ ddlmZmZ ddlmZ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	e   f         Z G d de      ZddgZy)z Azure Key Vault settings source.    )annotations)IteratorMapping)TYPE_CHECKINGOptional   )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    k/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pydantic_settings/sources/providers/azure.pyimport_azure_key_vaultr      s3    
:?7 r
	s    	/*/c                  T    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y)AzureKeyVaultMappingzdict[str, str | None]_loaded_secretsr   _secret_clientz	list[str]_secret_namesc                    i | _         || _        | j                  j                         D cg c](  }|j                  s|j                  s|j                  * c}| _        y c c}w N)r   r   list_properties_of_secretsnameenabledr   )selfsecret_clientsecrets      r   __init__zAzureKeyVaultMapping.__init__*   sV      "+&*&9&9&T&T&V)
"Z`ZeZejpjxjxFKK)
 )
s   A!A!
A!c                    || j                   vrA|| j                  v r3	 | j                  j                  |      j                  | j                   |<   | j                   |   S # t
        $ r t        |      w xY wr   )r   r   r   
get_secretvalue	ExceptionKeyError)r#   keys     r   __getitem__z AzureKeyVaultMapping.__getitem__4   sw    d***sd6H6H/H$,0,?,?,J,J3,O,U,U$$S) ##C((  $sm#$s   2A A4c                ,    t        | j                        S r   )lenr   r#   s    r   __len__zAzureKeyVaultMapping.__len__=   s    4%%&&    c                ,    t        | j                        S r   )iterr   r0   s    r   __iter__zAzureKeyVaultMapping.__iter__@   s    D&&''r2   N)r$   r   returnNone)r,   strr6   
str | None)r6   int)r6   zIterator[str])__name__
__module____qualname____annotations__r&   r-   r1   r5    r2   r   r   r   %   s:    **  
#
 

)'(r2   r   c                  h     e Zd ZU ded<   ded<   	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 d	 fdZd
dZddZ xZS )AzureKeyVaultSettingsSourcer8   _urlr   _credentialc           	     b    t                || _        || _        t        |   |d|dd||       y )NTz--F)case_sensitive
env_prefixenv_nested_delimiterenv_ignore_emptyenv_parse_none_strenv_parse_enums)r   rB   rC   superr&   )r#   settings_clsurl
credentialrF   rI   rJ   	__class__s          r   r&   z$AzureKeyVaultSettingsSource.__init__H   sA     	 	%!!%"1+ 	 	
r2   c                Z    t        | j                  | j                        }t        |      S )N)	vault_urlrN   )r   rB   rC   r   )r#   r$   s     r   _load_env_varsz*AzureKeyVaultSettingsSource._load_env_vars^   s#    $tyyTEUEUV#M22r2   c                h    | j                   j                   d| j                  d| j                  dS )Nz(url=z, env_nested_delimiter=))rO   r;   rB   rG   r0   s    r   __repr__z$AzureKeyVaultSettingsSource.__repr__b   s4    ..))*%		}<STXTmTmSppqrrr2   )NNN)rL   ztype[BaseSettings]rM   r8   rN   r   rF   r9   rI   r9   rJ   zbool | Noner6   r7   )r6   zMapping[str, Optional[str]])r6   r8   )r;   r<   r=   r>   r&   rR   rU   __classcell__)rO   s   @r   rA   rA   D   sm    
I   "&)-'+
(
 
 $	

 
 '
 %
 

,3sr2   rA   )r6   r7   )__doc__
__future__r   _annotationscollections.abcr   r   typingr   r   envr	   r   r   r   r   r   r   pydantic_settings.mainr   r   r8   r   rA   __all__r?   r2   r   <module>r_      so    & 2 - * "6;33O L(73#56 (>s"3 sD "#@
Ar2   