Ë
    Ì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y)z Azure Key Vault settings source.é    )Úannotations)ÚIteratorÚMapping)ÚTYPE_CHECKING)Úto_snake)Ú	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    új/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/pydantic_settings/sources/providers/azure.pyÚimport_azure_key_vaultr      s3   € ð
Ý:Ý?Þ7øÜò ÜØró
àð	ûðús   ‚ •	/ž*ª/c                  óh   — 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                ó|   — i | _         || _        || _        || _        |r|nd| _        | j                  «       | _        y )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__zAzureKeyVaultMapping.__init__-   sA   € ð  "ˆÔØ+ˆÔØ-ˆÔØ&;ˆÔ#Ù)3™:¸ˆÔØ+/×+<Ñ+<Ó+>ˆÕó    c           
     ó¶  — d„ | j                   j                  «       D «       }| j                  rgi }|D ]^  }|j                  | j                  «      r3||| j                  › t        |t        | j                  «      d  «      › �<   ŒQ||t        |«      <   Œ` |S | 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©N)ÚnameÚenabled)Ú.0Úsecrets     r   ú	<genexpr>z4AzureKeyVaultMapping._load_remote.<locals>.<genexpr><   s+   è ø€ ò '
Ø"ÐZ`×ZeÓZeÐjp×jxÓjxˆF�K�Kñ'
ùs   ‚2”2¡2)	r   Úlist_properties_of_secretsr"   Ú
startswithr#   r   Úlenr!   Úlower)r&   Úsecret_namesÚname_mapr0   s       r   r$   z!AzureKeyVaultMapping._load_remote;   sÛ   € ñ'
Ø&*×&9Ñ&9×&TÑ&TÓ&Vô'
ˆð ×&Ò&Ø')ˆHØ$ò 4�Ø—?‘? 4×#3Ñ#3Ô4Ø_c�H × 0Ñ 0Ð1´(¸4ÄÀD×DTÑDTÓ@UÐ@WÐ;XÓ2YÐ1ZÐ[Ò\à/3�HœX d›^Ò,ð	4ð
 ˆOà×ÒØ+7Ö8 4�D˜$‘JÒ8Ð8à/;Ö< t�—
‘
“˜dÑ"Ò<Ð<ùò 9ùâ<s   Â%
CÂ6Cc                óð  — |}| j                   rW|j                  | j                  «      r0| j                  › t        |t	        | j                  «      d  «      › �}n(t        |«      }n| j
                  s|j                  «       }|| j                  vrY|| j                  v r@| j                  j                  | j                  |   «      j                  | j                  |<   nt        |«      ‚| j                  |   S r/   )r"   r6   r#   r   r7   r!   r8   r   r%   r   Ú
get_secretÚvalueÚKeyError)r&   ÚkeyÚnew_keys      r   Ú__getitem__z AzureKeyVaultMapping.__getitem__N   s×   € Øˆà×&Ò&Ø�~‰~˜d×.Ñ.Ô/Ø!×-Ñ-Ð.¬x¸¼CÀ×@PÑ@PÓ<QÐ<SÐ8TÓ/UÐ.VÐW‘ä" 3›-‘à×%Ò%Ø—i‘i“kˆGà˜$×.Ñ.Ñ.Ø˜$×*Ñ*Ñ*Ø04×0CÑ0C×0NÑ0NÈt×O_ÑO_Ð`gÑOhÓ0i×0oÑ0o�×$Ñ$ WÒ-ä˜s“mÐ#à×#Ñ# GÑ,Ð,r,   c                ó,   — t        | j                  «      S r/   )r7   r%   ©r&   s    r   Ú__len__zAzureKeyVaultMapping.__len__b   s   € Ü�4×#Ñ#Ó$Ð$r,   c                óH   — t        | j                  j                  «       «      S r/   )Úiterr%   ÚkeysrC   s    r   Ú__iter__zAzureKeyVaultMapping.__iter__e   s   € Ü�D×$Ñ$×)Ñ)Ó+Ó,Ð,r,   N)
r'   r   r(   Úboolr)   rI   r*   ú
str | NoneÚreturnÚNone)rK   zdict[str, str])r?   ÚstrrK   rJ   )rK   Úint)rK   zIterator[str])	Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r+   r$   rA   rD   rH   © r,   r   r   r   (   s]   … Ø*Ó*Ø Ó ØÓð?à#ð?ð ð?ð  $ð	?ð
 ð?ð 
ó?ó=ó&-ó(%ô-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 )ÚAzureKeyVaultSettingsSourcerM   Ú_urlr   Ú_credentialc
           	     óŽ   •— t        «        || _        || _        || _        || _        t
        ‰
| �  ||rdn|||rdndd||	¬«       y )NTÚ__z--F)r(   r*   Úenv_nested_delimiterÚenv_ignore_emptyÚenv_parse_none_strÚenv_parse_enums)r   rV   rW   Ú_dash_to_underscorer"   Úsuperr+   )r&   Úsettings_clsÚurlÚ
credentialÚdash_to_underscorer(   r)   r*   r\   r]   Ú	__class__s             €r   r+   z$AzureKeyVaultSettingsSource.__init__m   sY   ø€ ô 	Ô ØˆŒ	Ø%ˆÔØ#5ˆÔ Ø&;ˆÔ#Ü‰ÑØÙ#8™4¸nØ!Ù)>¡ÀDØ"Ø1Ø+ð 	õ 	
r,   c                óž   — t        | j                  | j                  ¬«      }t        || j                  | j
                  | j                  ¬«      S )N)Ú	vault_urlrb   )r'   r(   r)   r*   )r   rV   rW   r   r(   r"   r*   )r&   r'   s     r   Ú_load_env_varsz*AzureKeyVaultSettingsSource._load_env_varsˆ   sA   € Ü$¨t¯y©yÀT×EUÑEUÔVˆÜ#Ø'Ø×.Ñ.Ø"&×"=Ñ"=Ø—‘ô	
ð 	
r,   c                óØ   •— | j                   r"t        d„ t        ‰| �  ||«      D «       «      }|S | j                  r t        d„ t        ‰| �  ||«      D «       «      S t        ‰| �  ||«      S )Nc              3  ó8   K  — | ]  }|d    |d   |d   f–— Œ y­w)r   r	   é   NrS   ©r2   Úxs     r   r4   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>“   s#   è ø€ Òi°Q˜q ™t Q q¡T¨1¨Q©4Ô0Ñiùs   ‚c              3  óX   K  — | ]"  }|d    |d   j                  dd«      |d   f–— Œ$ y­w)r   r	   Ú_ú-rj   N)Úreplacerk   s     r   r4   zBAzureKeyVaultSettingsSource._extract_field_info.<locals>.<genexpr>—   s.   è ø€ ÒuÀ˜˜1™˜q ™tŸ|™|¨C°Ó5°q¸±tÔ<Ñuùs   ‚(*)r"   Úlistr_   Ú_extract_field_infor^   )r&   ÚfieldÚ
field_nameÚ
field_inford   s       €r   rr   z/AzureKeyVaultSettingsSource._extract_field_info‘   sj   ø€ Ø×&Ò&ÜÑi¼%¹'Ñ:UÐV[Ð]gÓ:hÔiÓiˆJØÐà×#Ò#ÜÑ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=ú))rd   rO   rV   rZ   rC   s    r   Ú__repr__z$AzureKeyVaultSettingsSource.__repr__›   s4   € Ø—.‘.×)Ñ)Ð*¨%°·	±	¨}Ð<SÐTX×TmÑTmÐSpÐpqÐrÐrr,   )FNFNNN)r`   ztype[BaseSettings]ra   rM   rb   r   rc   rI   r(   úbool | Noner)   rI   r*   rJ   r\   rJ   r]   ry   rK   rL   )rK   zMapping[str, str | None])rs   r   rt   rM   rK   zlist[tuple[str, str, bool]])rK   rM   )	rO   rP   rQ   rR   r+   rg   rr   rx   Ú__classcell__)rd   s   @r   rU   rU   i   s™   ø… Ø
ƒIØ Ó ð $)Ø&*Ø&+Ø!%Ø)-Ø'+ð
à(ð
ð ð
ð $ð	
ð
 !ð
ð $ð
ð  $ð
ð ð
ð 'ð
ð %ð
ð 
õ
ó6
õ>÷sr,   rU   )rK   rL   )Ú__doc__Ú
__future__r   Ú_annotationsÚcollections.abcr   r   Útypingr   Úpydantic.alias_generatorsr   Úpydantic.fieldsr   Úenvr
   r   r   r   r   r   r   Úpydantic_settings.mainr   r   rM   r   rU   Ú__all__rS   r,   r   ú<module>r…      su   ðÙ &å 2ç -Ý  å .Ý %å "áÝ6Ý;Ý3æ3à€OØ ÐØ€Lóô>-˜7 3¨¨d©
 ?Ñ3ô >-ôB3sÐ"3ô 3sðl "Ð#@Ð
A�r,   