Ë
    ðLqj  ã                  óÚ   — 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 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)Ú	FieldInfoé   )Ú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    úu/var/www/html/ai-menu-system/python-ai/venv/lib/python3.12/site-packages/pydantic_settings/sources/providers/azure.pyÚimport_azure_key_vaultr      s3   € ð
Ý:Ý?Þ7øÜò ÜØró
àð	ûðús   ‚ •	/ž*ª/c                  ó`   — 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y)ÚAzureKeyVaultMappingzdict[str, str | None]Ú_loaded_secretsr   Ú_secret_clientz	list[str]Ú_secret_namesc                óX   — i | _         || _        || _        | j                  «       | _        y ©N)r   r   Ú_case_sensitiveÚ_load_remoteÚ_secret_map)ÚselfÚsecret_clientÚcase_sensitives      r   Ú__init__zAzureKeyVaultMapping.__init__,   s-   € ð
  "ˆÔØ+ˆÔØ-ˆÔØ+/×+<Ñ+<Ó+>ˆÕó    c                óÐ   — d„ | j                   j                  «       D «       }| j                  r|D �ci c]  }||“Œ c}S |D �ci c]  }|j                  «       |“Œ c}S c c}w c c}w )Nc              3  óh   K  — | ]*  }|j                   sŒ|j                  sŒ|j                   –— Œ, y ­wr    )ÚnameÚenabled)Ú.0Úsecrets     r   ú	<genexpr>z4AzureKeyVaultMapping._load_remote.<locals>.<genexpr>7   s+   è ø€ ò '
Ø"ÐZ`×ZeÓZeÐjp×jxÓjxˆF�K�Kñ'
ùs   ‚2”2¡2)r   Úlist_properties_of_secretsr!   Úlower)r$   Úsecret_namesr+   s      r   r"   z!AzureKeyVaultMapping._load_remote6   sd   € ñ'
Ø&*×&9Ñ&9×&TÑ&TÓ&Vô'
ˆð ×ÒØ+7Ö8 4�D˜$‘JÒ8Ð8Ø/;Ö< t�—
‘
“˜dÑ"Ò<Ð<ùò 9ùÚ<s   ²
AÁA#c                ó  — | j                   s|j                  «       }|| j                  vrM|| j                  v r?| j                  j                  | j                  |   «      j                  | j                  |<   | j                  |   S r    )r!   r1   r   r#   r   Ú
get_secretÚvalue)r$   Úkeys     r   Ú__getitem__z AzureKeyVaultMapping.__getitem__>   su   € Ø×#Ò#Ø—)‘)“+ˆCØ�d×*Ñ*Ñ*¨s°d×6FÑ6FÑ/FØ(,×(;Ñ(;×(FÑ(FÀt×GWÑGWÐX[ÑG\Ó(]×(cÑ(cˆD× Ñ  Ñ%Ø×#Ñ# CÑ(Ð(r(   c                ó,   — t        | j                  «      S r    )Úlenr#   ©r$   s    r   Ú__len__zAzureKeyVaultMapping.__len__E   s   € Ü�4×#Ñ#Ó$Ð$r(   c                óH   — t        | j                  j                  «       «      S r    )Úiterr#   Úkeysr:   s    r   Ú__iter__zAzureKeyVaultMapping.__iter__H   s   € Ü�D×$Ñ$×)Ñ)Ó+Ó,Ð,r(   N)r%   r   r&   ÚboolÚreturnÚNone)rA   zdict[str, str])r6   ÚstrrA   ú
str | None)rA   Úint)rA   zIterator[str])	Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r'   r"   r7   r;   r?   © r(   r   r   r   '   sI   … Ø*Ó*Ø Ó ØÓð?à#ð?ð ð?ð 
ó	?ó=ó)ó%ô-r(   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 )ÚAzureKeyVaultSettingsSourcerC   Ú_urlr   Ú_credentialc	           	     óp   •— t        «        || _        || _        || _        t        ‰	| �  |||dd||¬«       y )Nz--F)r&   Ú
env_prefixÚenv_nested_delimiterÚenv_ignore_emptyÚenv_parse_none_strÚenv_parse_enums)r   rM   rN   Ú_dash_to_underscoreÚsuperr'   )
r$   Úsettings_clsÚurlÚ
credentialÚdash_to_underscorer&   rP   rS   rT   Ú	__class__s
            €r   r'   z$AzureKeyVaultSettingsSource.__init__P   sI   ø€ ô 	Ô ØˆŒ	Ø%ˆÔØ#5ˆÔ Ü‰ÑØØ)Ø!Ø!%Ø"Ø1Ø+ð 	õ 	
r(   c                óp   — t        | j                  | j                  ¬«      }t        || j                  «      S )N)Ú	vault_urlrY   )r   rM   rN   r   r&   )r$   r%   s     r   Ú_load_env_varsz*AzureKeyVaultSettingsSource._load_env_varsi   s+   € Ü$¨t¯y©yÀT×EUÑEUÔVˆÜ# M°4×3FÑ3FÓGÐGr(   c                ó|   •— | j                   r t        d„ t        ‰| �  ||«      D «       «      S t        ‰| �  ||«      S )Nc              3  óX   K  — | ]"  }|d    |d   j                  dd«      |d   f–— Œ$ y­w)r   r	   Ú_ú-é   N)Úreplace)r-   Úxs     r   r/   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>o   s.   è ø€ ÒuÀ˜˜1™˜q ™tŸ|™|¨C°Ó5°q¸±tÔ<Ñuùs   ‚(*)rU   ÚlistrV   Ú_extract_field_info)r$   ÚfieldÚ
field_namer[   s      €r   rg   z/AzureKeyVaultSettingsSource._extract_field_infom   s=   ø€ Ø×#Ò#ÜÑuÄeÁgÑFaÐbgÐisÓFtÔuÓuÐuÜ‰wÑ*¨5°*Ó=Ð=r(   c                óh   — | j                   j                  › d| j                  ›d| j                  ›d�S )Nz(url=z, env_nested_delimiter=ú))r[   rF   rM   rQ   r:   s    r   Ú__repr__z$AzureKeyVaultSettingsSource.__repr__r   s4   € Ø—.‘.×)Ñ)Ð*¨%°·	±	¨}Ð<SÐTX×TmÑTmÐSpÐpqÐrÐrr(   )FNNNN)rW   ztype[BaseSettings]rX   rC   rY   r   rZ   r@   r&   úbool | NonerP   rD   rS   rD   rT   rm   rA   rB   )rA   zMapping[str, Optional[str]])rh   r   ri   rC   rA   zlist[tuple[str, str, bool]])rA   rC   )	rF   rG   rH   rI   r'   r^   rg   rl   Ú__classcell__)r[   s   @r   rL   rL   L   s�   ø… Ø
ƒIØ Ó ð $)Ø&*Ø!%Ø)-Ø'+ð
à(ð
ð ð
ð $ð	
ð
 !ð
ð $ð
ð ð
ð 'ð
ð %ð
ð 
õ
ó2Hõ>÷
sr(   rL   )rA   rB   )Ú__doc__Ú
__future__r   Ú_annotationsÚcollections.abcr   r   Útypingr   r   Úpydantic.fieldsr   Úenvr
   r   r   r   r   r   r   Úpydantic_settings.mainr   r   rC   r   rL   Ú__all__rJ   r(   r   ú<module>rx      ss   ðÙ &å 2ç -ß *å %å "áÝ6Ý;Ý3æ3à€OØ ÐØ€Lóô"-˜7 3¨°©Ð#5Ñ6ô "-ôJ'sÐ"3ô 'sðT "Ð#@Ð
A�r(   