
    bi
                        d dl mZ d dl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Z dadadd
Z G d de      ZdgZy)    )annotationsN)Mapping)TYPE_CHECKING   )parse_env_vars   )EnvSettingsSource)BaseSettingsc                 X    	 ddl ma ddlma y # t
        $ r} t        d      | d } ~ ww xY w)Nr   )client)SecretsManagerClientzlAWS Secrets Manager dependencies are not installed, run `pip install pydantic-settings[aws-secrets-manager]`)boto3r   boto3_client mypy_boto3_secretsmanager.clientr   ImportError)es    o/home/jang/Projects/ai-researcher/.venv/lib/python3.12/site-packages/pydantic_settings/sources/providers/aws.pyimport_aws_secrets_managerr      s0    0I z
	s    	)$)c                       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 )AWSSecretsManagerSettingsSourcestr
_secret_idr   _secretsmanager_clientc           	         t                t        d||      | _        || _        |
| _        t
        |   ||||d||	       y )Nsecretsmanager)region_nameendpoint_urlF)case_sensitive
env_prefixenv_nested_delimiterenv_ignore_emptyenv_parse_none_strenv_parse_enums)r   r   r   r   _version_idsuper__init__)selfsettings_cls	secret_idr   r   r   r   r    r"   r#   
version_id	__class__s              r   r&   z(AWSSecretsManagerSettingsSource.__init__#   sU     	#$&23CQ\kw&x##%)!!5"1+ 	 	
    c                   d| j                   i}| j                  r| j                  |d<    | j                  j                  di |}t	        t        j                  |d         | j                  | j                  | j                        S )NSecretId	VersionIdSecretString )
r   r$   r   get_secret_valuer   jsonloadsr   r!   r"   )r'   requestresponses      r   _load_env_varsz.AWSSecretsManagerSettingsSource._load_env_vars>   s}    t/#'#3#3GK ?4..??J'JJJx/0!!##	
 	
r,   c                h    | j                   j                   d| j                  d| j                  dS )Nz(secret_id=z, env_nested_delimiter=))r+   __name__r   r    )r'   s    r   __repr__z(AWSSecretsManagerSettingsSource.__repr__M   s<    ~~&&'{4??2E F$$($=$=#@C	
r,   )NNTNz--NNN)r(   ztype[BaseSettings]r)   r   r   
str | Noner   r<   r   bool | Noner   r<   r    r<   r"   r<   r#   r=   r*   r<   returnNone)r>   zMapping[str, str | None])r>   r   )r:   
__module____qualname____annotations__r&   r7   r;   __classcell__)r+   s   @r   r   r      s    O00 #'#'&*!%+/)-'+!%
(
 
  	

 !
 $
 
 )
 '
 %
 
 

6

r,   r   )r>   r?   )
__future__r   _annotationsr3   collections.abcr   typingr   utilsr   envr	   pydantic_settings.mainr
   r   r   r   r   __all__r1   r,   r   <module>rL      sI    2  #   " "3  
2
&7 2
l &r,   