§
    ÜŽ’j+  ã                  óx   — d dl mZ d dlZd dlmZ d&d	„Zd'd„Zddœd(d„Zddœd)d„Zd*d„Z	ddœd+d„Z
ddd œd,d%„ZdS )-é    )ÚannotationsN)ÚSequenceÚaws_access_keyú
str | NoneÚaws_secret_keyÚreturnÚNonec                ó^   — | du|duk    r"| �dnd}| �dnd}t          d|› d|› d�¦  «        ‚dS )z?Raise if only one of aws_access_key/aws_secret_key is provided.Nr   r   ú`z` was provided without `zT`. Both must be provided together, or neither (to use the default credential chain).)Ú
ValueError)r   r   ÚprovidedÚmissings       úLC:\Projects\DSCons\.venv\Lib\site-packages\anthropic\lib\aws\_credentials.pyÚvalidate_credentialsr      s~   € ð 	˜dÐ"¨¸dÐ(BÒCÐCØ'5Ð'AÐ#Ð#ÐGWˆØ&4Ð&@Ð"Ð"ÐFVˆÝða�ð að a°'ð að að añ
ô 
ð 	
ð DÐCó    Úenv_varsÚstrc                 óZ   — | D ]'}t           j                             |¦  «        }|�|c S Œ(dS )zAReturn the first non-None value from the given env vars, or None.N©ÚosÚenvironÚget)r   ÚvarÚvalues      r   Ú	_read_envr      s=   € àð ð ˆÝ”
—’˜sÑ#Ô#ˆØÐØˆLˆLˆLð àˆ4r   )ÚANTHROPIC_AWS_API_KEY)Úapi_key_env_varsÚapi_keyÚaws_profiler   úSequence[str]Úboolc                ó8   — | �dS |€|�dS |�dS t          |Ž �dS dS )u‡  Determine whether to use SigV4 auth. Returns True for SigV4, False for API key.

    Auth precedence:
    1. api_key constructor arg â†’ API key mode
    2. aws_access_key + aws_secret_key constructor args â†’ SigV4
    3. aws_profile constructor arg â†’ SigV4
    4. API key env var(s) â†’ API key mode (checked in order; first match wins)
    5. Default AWS credential chain â†’ SigV4
    NFT©r   )r   r   r   r   r   s        r   Úresolve_auth_moder$      sD   € ð" ÐØˆuàÐ! ^Ð%?ØˆtàÐØˆtõ Ð"Ð#Ð/Øˆuð ˆ4r   Ú	use_sigv4c                ó$   — | �| S |s	t          |Ž S dS )z1Resolve the API key. Returns None if using SigV4.Nr#   )r   r%   r   s      r   Úresolve_api_keyr'   A   s(   € ð ÐØˆàð ,åÐ*Ð+Ð+àˆ4r   Ú
aws_regionc                ó†   — | �| S t           j                             d¦  «        pt           j                             d¦  «        S )u‡   Resolve the AWS region from constructor arg or env var.

    Does not silently default â€” returns None if no region is available.
    NÚ
AWS_REGIONÚAWS_DEFAULT_REGIONr   )r(   s    r   Úresolve_regionr,   R   s8   € ð
 ÐØÐåŒ:�>Š>˜,Ñ'Ô'ÐO­2¬:¯>ª>Ð:NÑ+OÔ+OÐOr   )ÚANTHROPIC_AWS_WORKSPACE_ID)Úworkspace_id_env_varsÚworkspace_idr.   c               ó   — | �| S t          |Ž S )zŠResolve the workspace ID from constructor arg or env var(s).

    Returns None if no workspace ID is available (caller should raise).
    r#   )r/   r.   s     r   Úresolve_workspace_idr1   ]   s   € ð ÐØÐåÐ+Ð,Ð,r   )ÚANTHROPIC_AWS_BASE_URLz/https://aws-external-anthropic.{region}.api.aws)Úbase_url_env_varsÚurl_templateÚbase_urlÚregionr3   r4   c               óX   — | �| S t          |Ž }|�|S |�|                     |¬¦  «        S dS )z‰Resolve the base URL from constructor arg, env var, or region.

    Returns None if no base URL is resolvable (caller should raise).
    N)r6   )r   Úformat)r5   r6   r3   r4   Úenv_urls        r   Úresolve_base_urlr:   l   sG   € ð ÐØˆåÐ*Ð+€GØÐØˆàÐØ×"Ò"¨&Ð"Ñ1Ô1Ð1àˆ4r   )r   r   r   r   r   r	   )r   r   r   r   )r   r   r   r   r   r   r   r   r   r    r   r!   )r   r   r%   r!   r   r    r   r   )r(   r   r   r   )r/   r   r.   r    r   r   )
r5   r   r6   r   r3   r    r4   r   r   r   )Ú
__future__r   r   Útypingr   r   r   r$   r'   r,   r1   r:   © r   r   ú<module>r>      s  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ðð ð ð ð 'Aðð ð ð ð ð ðL 'Að	ð ð ð ð ð ð"Pð Pð Pð Pð ,Kð-ð -ð -ð -ð -ð -ð& (CØIðð ð ð ð ð ð ð r   