
    Áj                    P   d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	m
Z
 d dlZddlmZmZ ddlmZ ddlmZmZmZmZmZmZmZmZ dd	lmZmZmZ dd
lm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)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9 d+dZ:d,dZ;d-dZ<d.dZ=d/dZ>d0dZ?er,ddl@mAZAmBZBmCZCmDZD ddlEmFZFmGZG ddlHmIZImJZJ ddlKmLZLmMZM ddlNmOZOmPZP g dZQ G d d e*      ZR G d! d"e+      ZS G d# d$      ZT G d% d&      ZU G d' d(      ZV G d) d*      ZWeRZXeSZYy)1    )annotationsN)TYPE_CHECKINGAnyMappingSequence)Selfoverride   )
_constants_exceptionsQuerystring)OmitHeadersTimeoutNotGiven	TransportProxiesTypesRequestOptions	not_given)is_givenis_mapping_tget_async_library)cached_property)__version__)StreamAsyncStream)APIStatusError)MiddlewareInput)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClientmerge_headers)
TokenCacheInMemoryConfigAccessTokenAuthCredentialsFileAccessTokenProviderBaseURLBoundProviderdefault_credentials)&warn_env_static_shadows_auto_discovery(warn_explicit_static_shadows_credentials)"_has_auto_discoverable_credentialsc                0    t        |       t        t        fv S )a0  True only for the base ``Anthropic`` / ``AsyncAnthropic`` classes, not subclasses.

    Subclasses (``AnthropicAWS``, ``AnthropicFoundry``) have their own auth paths
    and must not run the credential chain or forward ``credentials`` through their
    ``__init__`` (which doesn't accept the kwarg).
    )type	AnthropicAsyncAnthropic)clients    8/tmp/pip-target-k_scjv0h/lib/python/anthropic/_client.py_is_base_clientr4   9   s     <I~666    c                2    t        | dd      }| |        yy)zPRelease any resources owned by a credential provider, if it exposes ``close()``.closeN)getattr)credentialsr7   s     r3   _close_credentialsr:   C   s     K$/E r5   c                H    t        | t              r| j                  |      S | S )zReturn the provider this client should exchange tokens through.

    See :class:`BaseURLBoundProvider`; any other provider (plain callables,
    custom impls) is returned untouched and resolves its own exchange URL.
    )
isinstancer)   for_base_url)r9   base_urls     r3   _bind_credentials_base_urlr?   J   s&     +34''11r5   c                    |du xsH t        t        j                  |            j                  d      t        |       j                  d      k(  S )zWhether a ``copy()`` stays on the parent's deployment.

    Tokens are only valid for the deployment that minted them, so the parent's
    :class:`TokenCache` is only shared in that case.
    N/)strhttpxURLrstrip)current	requesteds     r3   _keeps_base_urlrH   U   sB     aEIIi$8 9 @ @ EWI\I\]`Ia aar5   c                @    |y| t        d       |t        d       yy)zWarn when an explicit ``api_key=`` / ``auth_token=`` argument shadows
    an explicit ``credentials=`` provider. Call *after* any copy-inheritance
    merging so the params reflect the resolved values.Napi_key
auth_token)r,   rJ   rK   r9   s      r3   _warn_explicit_shadowrM   ^   s.     0;0> r5   c                    t               sy| *t        j                  j                  d      rt	        d       |,t        j                  j                  d      rt	        d       yyy)av  Warn when an ``ANTHROPIC_API_KEY`` / ``ANTHROPIC_AUTH_TOKEN`` from the
    environment is set alongside signals that would normally drive profile /
    federation auto-discovery (``ANTHROPIC_PROFILE``, a ``configs/`` directory,
    or the workload-identity env trio). Per the credential-precedence spec,
    the static credential wins and auto-discovery is silently skipped.NANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN)r-   osenvirongetr+   rJ   rK   s     r3   _warn_env_shadowrU   j   sT     ./rzz~~.AB./BC"**..1G"H./EF #Ir5   )betamodelsmessagescompletions)ModelsAsyncModels)Beta	AsyncBeta)CompletionsAsyncCompletions)MessagesAsyncMessages)r   r   r   r   r0   r1   ClientAsyncClientc                      e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   ej
                  Zej                  Zdddddddeeddddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d" fdZ	e
d#d       Ze
d$d       Ze
d%d       Ze
d&d       Ze
d'd       Ze
d(d       Zeed)d              Zeed*d              Zed*d       Zed*d       Zeed+ fd              Zed,d       Zeed-d              Zed. fd       Zed/ fd       Zddeddddededdddei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0dZeZd1d Ze	 	 	 	 	 	 	 	 d2d!       Z xZ S )3r0   
str | NonerJ   rK   webhook_keyAccessTokenProvider | Noner9   TokenCache | None_token_cacheAccessTokenAuth | None_custom_authNFrJ   rK   r9   configprofilerf   r>   timeoutmax_retriesdefault_headersdefault_queryhttp_client
middleware_strict_response_validationri   c               *   |duxs |duxs |duxs
 |duxs |du}|sFt         j                  j                  d      xs d}t         j                  j                  d      xs d}|| _        || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|du}|d}t         j                  j                  d      }|li }|j                  d      D ]C  }|j                  d	      }|d
k\  s||dz   d j                         ||d| j                         <   E i |t        |
      r|
ni }
i }|P||t        d      t        t        |            }|}|j                         }|s`|j                  rT|j                  }nG|E|t        d      t        |      }|}|j                         }|s|j                  r|j                  }|\|Z|Xt!        |       rMt#        |rt%        |      nd      }|2|j&                  }|j                  }|s|j(                  r|j(                  }t+        |t%        |            }|| _        t/        |||       t!        |       rt1        ||       t3        |t4              s|| _        n|t9        |      nd| _        | j6                  t;        | j6                        nd| _        |r
i ||
xs i }
t>        |   tB        ||	|||
|||	       tD        | _#        y)ud  Construct a new synchronous Anthropic client instance.

        Credentials are resolved in the following order (first match wins):

        1. Explicit constructor arguments — ``api_key=``, ``auth_token=``,
           ``credentials=``, ``config=``, or ``profile=``. When any of these
           is passed, environment variables are not consulted for credentials.
        2. ``ANTHROPIC_API_KEY`` / ``ANTHROPIC_AUTH_TOKEN`` environment
           variables.
        3. ``ANTHROPIC_PROFILE`` environment variable — loads the named
           profile from ``<config_dir>/configs/<profile>.json``.
        4. Workload identity federation environment variables —
           ``ANTHROPIC_IDENTITY_TOKEN[_FILE]`` +
           ``ANTHROPIC_FEDERATION_RULE_ID`` + ``ANTHROPIC_ORGANIZATION_ID``.
        5. The active profile on disk — the profile named by
           ``<config_dir>/active_config``, or ``default``.

        ``credentials=``, ``config=``, and ``profile=`` are mutually exclusive.

        If a static credential is supplied alongside a credentials provider
        (``credentials=`` / ``config=`` / ``profile=``), or if
        ``ANTHROPIC_API_KEY`` / ``ANTHROPIC_AUTH_TOKEN`` is set alongside a
        profile or federation configuration, the static credential takes
        precedence and a one-shot warning is logged on the ``anthropic``
        logger.
        NrO   rP   ANTHROPIC_WEBHOOK_SIGNING_KEYANTHROPIC_BASE_URLhttps://api.anthropic.comANTHROPIC_CUSTOM_HEADERS
:r   r
   =Pass at most one of `credentials=`, `config=`, or `profile=`.rn   r>   rL   rT   	versionr>   rp   ro   rs   custom_headerscustom_queryrt   ru   )$rQ   rR   rS   rJ   rK   rf   splitfindstripr   	TypeErrorr%   dictextra_headersresolved_base_urlr'   r4   r*   rB   providerr>   r?   r9   rM   rU   r<   r   ri   r$   r&   rk   super__init__r   r   _default_stream_clsselfrJ   rK   r9   rm   rn   rf   r>   ro   rp   rq   rr   rs   rt   ru   ri   has_explicit_credentialbase_url_is_explicitcustom_headers_envparsedlinecoloncredential_headers	in_memory
creds_fileresult	__class__s                             r3   r   zAnthropic.__init__   sL   x 4 #%#$&# T!# d" 	  'jjnn%89ATG(>?G4J$ **..)HIK&zz~~&:;H
  (t32HZZ^^,FG)%'F*006 M		#A:37	3D3J3J3LF4<--/0M gf|O?\ObdfO .0&'*= _``&tF|4I#K!*!8!8!:'I,G,G$66 & _``(9J$K!+!9!9!;'J,H,H%777?z7Io^bNc(8#h-QlmF!$oo%+%9%9"+%H0c(mL&g*R]^4  WD,1 ,D;F;R
; 7X\DBFBSBSB_OD,=,=>eiO!3O8M2OO 	##*&!(C 	 
	
 $* r5   c                    ddl m}  ||       S )Nr
   )r^   )resources.completionsr^   )r   r^   s     r3   rY   zAnthropic.completions1  s    64  r5   c                    ddl m}  ||       S )Nr
   )r`   )resources.messagesr`   )r   r`   s     r3   rX   zAnthropic.messages7  s    0~r5   c                    ddl m}  ||       S )Nr
   )rZ   )resources.modelsrZ   )r   rZ   s     r3   rW   zAnthropic.models=  s    ,d|r5   c                    ddl m}  ||       S )Nr
   )r\   )resources.betar\   )r   r\   s     r3   rV   zAnthropic.betaC  s    (Dzr5   c                    t        |       S N)AnthropicWithRawResponser   s    r3   with_raw_responsezAnthropic.with_raw_responseI  s    '--r5   c                    t        |       S r   )AnthropicWithStreamedResponser   s    r3   with_streaming_responsez!Anthropic.with_streaming_responseM      ,T22r5   c                    t        d      S Nbrackets)array_formatr   r   s    r3   qszAnthropic.qsQ       
33r5   c                6    i | j                   | j                  S r   _api_key_auth_bearer_authr   s    r3   auth_headerszAnthropic.auth_headersV        ;$$$:(9(9::r5   c                *    | j                   }|i S d|iS N	X-Api-KeyrJ   r   rJ   s     r3   r   zAnthropic._api_key_auth[       ,,?IW%%r5   c                0    | j                   }|i S dd| iS NAuthorizationzBearer rK   r   rK   s     r3   r   zAnthropic._bearer_authb  *     __
I7:,!788r5   c                >    i t         |   ddd| j                  S )Nfalse
2023-06-01zX-Stainless-Asynczanthropic-version)r   rq   _custom_headersr   r   s    r3   rq   zAnthropic.default_headerso  s5    
g%
!(!-
 ""	
 	
r5   c                   | j                   #|j                  d      s|j                  d      sy |j                  d      s|j                  d      ry |j                  d      st        |j                  d      t              ry |j                  d      st        |j                  d      t              ry t	        d      Nr   r   z"Could not resolve authentication method. Expected one of api_key, auth_token, or credentials to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"ri   rS   r<   r   r   r   headersr   s      r3   _validate_headerszAnthropic._validate_headersy  s     ([1IRYR]R]^mRn;;'7;;{+C;;{#z.2D2D[2QSW'X;;':n6H6H6Y[_+` J
 	
r5   c                    | j                   S r   rk   r   s    r3   custom_authzAnthropic.custom_auth          r5   c                    |j                   dk(  rO| j                  C| j                  j                          |j                  j                  j                  d      dk(  ryt        |   |      S N  zx-stainless-retry-count0Tstatus_coderi   
invalidaterequestr   rS   r   _should_retryr   responser   s     r3   r   zAnthropic._should_retry  c     3&4+<+<+H((*''++,EF#Mw$X..r5   c                L    t         |           t        | j                         y r   r   r7   r:   r9   r   s    r3   r7   zAnthropic.close  s    4++,r5   rJ   rK   r9   rm   rn   rf   r>   ro   rs   rp   rq   set_default_headersrr   set_default_queryrt   _extra_kwargsc               x   ||t        d      ||t        d      | j                  }|t        ||      }n||}| j                  }|i ||}n||}|	xs | j                  }	|$t        |t              r|t        d      d|i|}n|"t        |t              st        d      d|i|}ngt        |t              r| j                  n|}|Gt        |       r<d|i|}t        |t              r&t        | j                  |      rd| j                  i|} | j                  d	|xs | j                  |xs | j                  |xs | j                   |xs | j                  t        |t              r| j"                  n||	t%        |
      r|
n| j&                  ||t        |t              r| j(                  n|d
|S 
z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusiver}   rm   rn   r9   ri   )
rJ   rK   rf   r>   ro   rs   rp   rq   rr   rt    
ValueErrorr   r#   _custom_query_clientr<   r   r   r9   r4   rH   r>   ri   r   rJ   rK   rf   ro   r   rp   _middlewarer   rJ   rK   r9   rm   rn   rf   r>   ro   rs   rp   rq   r   rr   r   rt   r   r   paramsresolved_credentialss                       r3   copyzAnthropic.copy     . &+>+Jopp$):)Fkll&&&#G_=G ,)G##$00-0F*&F!1T\\k848K _``%v??M k84 _``&A=AM7A+x7X4#3#3^i #/OD4I!.0D V V k84X`9a%3T5F5F$X-$XMt~~ 
+t||!4T__#7t'7'7.$.w$ADLLw#'/'<$BRBR# +5j(+Kt''Q[
 
 	
r5   c                B    | j                  g | j                  |      S zA new client with the given middleware appended after this client's middleware.

        Convenience for applying extra middleware to a single request:

        ```py
        client.with_middleware(my_middleware).messages.create(...)
        ```
        )rt   r   r   r   rt   s     r3   with_middlewarezAnthropic.with_middleware  &     yy$Dd&6&6$D$DyEEr5   c               *   |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k(  rt        j                  |||      S |j                   d
k(  rt        j                  |||      S |j                   dk\  rt        j                  |||      S t        |||      S Ni  )r   bodyr   i  i  i  i  i  i  i  i  r   r   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorRequestTooLargeErrorUnprocessableEntityErrorRateLimitErrorOverloadedErrorInternalServerErrorr   r   err_msgr   r   s       r3   _make_status_errorzAnthropic._make_status_error	  x    3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&33GhUYZZ3&77(Y]^^3&--gtTT3&..wPTUU3&227XTXYYgtDDr5   ) rJ   re   rK   re   r9   rg   rm   Mapping[str, Any] | Nonern   re   rf   re   r>   str | httpx.URL | Nonero   !float | Timeout | None | NotGivenrp   intrq   Mapping[str, str] | Nonerr   Mapping[str, object] | Noners   httpx.Client | Nonert    Sequence[MiddlewareInput] | Noneru   boolri   TokenCache | None | NotGivenreturnNone)r  r^   )r  r`   )r  rZ   )r  r\   )r  r   )r  r   r  r   r  zdict[str, str]r  zdict[str, str | Omit]r   r   r   r   r  r  r  zhttpx.Auth | Noner   httpx.Responser  r  r  r  )"rJ   re   rK   re   r9   %AccessTokenProvider | None | NotGivenrm   r  rn   re   rf   re   r>   r  ro   r  rs   r  rp   int | NotGivenrq   r  r   r  rr   r  r   r  rt   +Sequence[MiddlewareInput] | None | NotGivenr   Mapping[str, Any]r  r   rt   r   r  r   r	  rB   r   objectr   r  r  r   !__name__
__module____qualname____annotations__r   HUMAN_PROMPT	AI_PROMPTr   r    r   r   rY   rX   rW   rV   r   r   propertyr	   r   r   r   r   rq   r   r   r   r7   r   with_optionsr   r
  __classcell__r   s   @r3   r0   r0      s   ++##(( **L$$I
 #!%26+/""&+/5>.4859 ,07; -25>9U* U* 	U*
 0U* )U* U*  U* )U* 3U* U* 2U* 3U*" )#U*$ 5%U*6 &*7U*8 39U*: 
;U*n ! !
  
  
  
 . . 3 3 4  4 ;  ; & & 
9 
9 
  
 
 
4 !  ! / / - - #!%=F+/""&+/5>+/&/488<599=BK+-%I
 I
 	I

 ;I
 )I
 I
  I
 )I
 3I
 )I
 $I
 2I
 6I
 3I
  7!I
" @#I
$ )%I
& 
'I
Z L	F $E$E 	$E
 !$E 
$E $Er5   r0   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   ej
                  Zej                  Zdddddddeeddddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d" fdZ	e
d#d       Ze
d$d       Ze
d%d       Ze
d&d       Ze
d'd       Ze
d(d       Zeed)d              Zeed*d              Zed*d       Zed*d       Zeed+ fd              Zed,d       Zeed-d              Zed. fd       Zed/ fd       Zddeddddededdddei d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0dZeZd1d Ze	 	 	 	 	 	 	 	 d2d!       Z xZ S )3r1   re   rJ   rK   rf   rg   r9   rh   ri   rj   rk   NFrl   c               *   |duxs |duxs |duxs
 |duxs |du}|sFt         j                  j                  d      xs d}t         j                  j                  d      xs d}|| _        || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|du}|d}t         j                  j                  d      }|li }|j                  d      D ]C  }|j                  d	      }|d
k\  s||dz   d j                         ||d| j                         <   E i |t        |
      r|
ni }
i }|P||t        d      t        t        |            }|}|j                         }|s`|j                  rT|j                  }nG|E|t        d      t        |      }|}|j                         }|s|j                  r|j                  }|\|Z|Xt!        |       rMt#        |rt%        |      nd      }|2|j&                  }|j                  }|s|j(                  r|j(                  }t+        |t%        |            }|| _        t/        |||       t!        |       rt1        ||       t3        |t4              s|| _        n|t9        |      nd| _        | j6                  t;        | j6                        nd| _        |r
i ||
xs i }
t>        |   tB        ||	|||
|||	       tD        | _#        y)uc  Construct a new async AsyncAnthropic client instance.

        Credentials are resolved in the following order (first match wins):

        1. Explicit constructor arguments — ``api_key=``, ``auth_token=``,
           ``credentials=``, ``config=``, or ``profile=``. When any of these
           is passed, environment variables are not consulted for credentials.
        2. ``ANTHROPIC_API_KEY`` / ``ANTHROPIC_AUTH_TOKEN`` environment
           variables.
        3. ``ANTHROPIC_PROFILE`` environment variable — loads the named
           profile from ``<config_dir>/configs/<profile>.json``.
        4. Workload identity federation environment variables —
           ``ANTHROPIC_IDENTITY_TOKEN[_FILE]`` +
           ``ANTHROPIC_FEDERATION_RULE_ID`` + ``ANTHROPIC_ORGANIZATION_ID``.
        5. The active profile on disk — the profile named by
           ``<config_dir>/active_config``, or ``default``.

        ``credentials=``, ``config=``, and ``profile=`` are mutually exclusive.

        If a static credential is supplied alongside a credentials provider
        (``credentials=`` / ``config=`` / ``profile=``), or if
        ``ANTHROPIC_API_KEY`` / ``ANTHROPIC_AUTH_TOKEN`` is set alongside a
        profile or federation configuration, the static credential takes
        precedence and a one-shot warning is logged on the ``anthropic``
        logger.
        NrO   rP   rw   rx   ry   rz   r{   r|   r   r
   r}   r~   r   rL   rT   r   )$rQ   rR   rS   rJ   rK   rf   r   r   r   r   r   r%   r   r   r   r'   r4   r*   rB   r   r>   r?   r9   rM   rU   r<   r   ri   r$   r&   rk   r   r   r   r   r   r   s                             r3   r   zAsyncAnthropic.__init__>  sL   x 4 #%#$&# T!# d" 	  'jjnn%89ATG(>?G4J$ **..)HIK&zz~~&:;H
  (t32HZZ^^,FG)%'F*006 M		#A:37	3D3J3J3LF4<--/0M gf|O?\ObdfO .0&'*= _``&tF|4I#K!*!8!8!:'I,G,G$66 & _``(9J$K!+!9!9!;'J,H,H%777?z7Io^bNc(8#h-QlmF!$oo%+%9%9"+%H0c(mL&g*R]^4  WD,1 ,D;F;R
; 7X\DBFBSBSB_OD,=,=>eiO!3O8M2OO 	##*&!(C 	 
	
 $/ r5   c                    ddl m}  ||       S )Nr
   )r_   )r   r_   )r   r_   s     r3   rY   zAsyncAnthropic.completions  s    ;%%r5   c                    ddl m}  ||       S )Nr
   )ra   )r   ra   )r   ra   s     r3   rX   zAsyncAnthropic.messages  s    5T""r5   c                    ddl m}  ||       S )Nr
   )r[   )r   r[   )r   r[   s     r3   rW   zAsyncAnthropic.models  s    14  r5   c                    ddl m}  ||       S )Nr
   )r]   )r   r]   )r   r]   s     r3   rV   zAsyncAnthropic.beta  s    -r5   c                    t        |       S r   )AsyncAnthropicWithRawResponser   s    r3   r   z AsyncAnthropic.with_raw_response  r   r5   c                    t        |       S r   )"AsyncAnthropicWithStreamedResponser   s    r3   r   z&AsyncAnthropic.with_streaming_response  s    1$77r5   c                    t        d      S r   r   r   s    r3   r   zAsyncAnthropic.qs  r   r5   c                6    i | j                   | j                  S r   r   r   s    r3   r   zAsyncAnthropic.auth_headers  r   r5   c                *    | j                   }|i S d|iS r   r   r   s     r3   r   zAsyncAnthropic._api_key_auth  r   r5   c                0    | j                   }|i S dd| iS r   r   r   s     r3   r   zAsyncAnthropic._bearer_auth  r   r5   c                T    i t         |   dt                dd| j                  S )Nzasync:r   r   )r   rq   r   r   r   s    r3   rq   zAsyncAnthropic.default_headers  sA    
g%
#)*;*=)>!?!-
 ""	
 	
r5   c                   | j                   #|j                  d      s|j                  d      sy |j                  d      s|j                  d      ry |j                  d      st        |j                  d      t              ry |j                  d      st        |j                  d      t              ry t	        d      r   r   r   s      r3   r   z AsyncAnthropic._validate_headers  s     ([1IRYR]R]^mRn;;'7;;{+C;;{#z.2D2D[2QSW'X;;':n6H6H6Y[_+` J
 	
r5   c                    | j                   S r   r   r   s    r3   r   zAsyncAnthropic.custom_auth2  r   r5   c                    |j                   dk(  rO| j                  C| j                  j                          |j                  j                  j                  d      dk(  ryt        |   |      S r   r   r   s     r3   r   zAsyncAnthropic._should_retry7  r   r5   c                h   K   t         |           d {    t        | j                         y 7 wr   r   r   s    r3   r7   zAsyncAnthropic.closeF  s+     gmo 	4++, 	s   202r   c               x   ||t        d      ||t        d      | j                  }|t        ||      }n||}| j                  }|i ||}n||}|	xs | j                  }	|$t        |t              r|t        d      d|i|}n|"t        |t              st        d      d|i|}ngt        |t              r| j                  n|}|Gt        |       r<d|i|}t        |t              r&t        | j                  |      rd| j                  i|} | j                  d	|xs | j                  |xs | j                  |xs | j                   |xs | j                  t        |t              r| j"                  n||	t%        |
      r|
n| j&                  ||t        |t              r| j(                  n|d
|S r   r   r   s                       r3   r   zAsyncAnthropic.copyO  r   r5   c                B    | j                  g | j                  |      S r   r   r   s     r3   r   zAsyncAnthropic.with_middleware  r   r5   c               *   |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k(  rt        j                  |||      S |j                   d
k(  rt        j                  |||      S |j                   dk\  rt        j                  |||      S t        |||      S r   r   r  s       r3   r
  z!AsyncAnthropic._make_status_error  r  r5   ) rJ   re   rK   re   r9   rg   rm   r  rn   re   rf   re   r>   r  ro   r  rp   r  rq   r  rr   r  rs   httpx.AsyncClient | Nonert   r  ru   r  ri   r  r  r  )r  r_   )r  ra   )r  r[   )r  r]   )r  r9  )r  r;  r  r  r  r  r  r  r  )"rJ   re   rK   re   r9   r   rm   r  rn   re   rf   re   r>   r  ro   r  rs   rH  rp   r!  rq   r  r   r  rr   r  r   r  rt   r"  r   r#  r  r   r$  r%  r'  r1  s   @r3   r1   r1   1  s   ++##(( **L$$I
 #!%26+/""&+/5>.4859 157; -25>9U/ U/ 	U/
 0U/ )U/ U/  U/ )U/ 3U/ U/ 2U/ 3U/" .#U/$ 5%U/6 &*7U/8 39U/: 
;U/n & &
 # #
 ! !
  
 3 3 8 8 4  4 ;  ; & & 
9 
9 
  
 
 
( !  ! / / - - #!%=F+/""&+/5>04&/488<599=BK+-%I
 I
 	I

 ;I
 )I
 I
  I
 )I
 3I
 .I
 $I
 2I
 6I
 3I
  7!I
" @#I
$ )%I
& 
'I
Z L	F $E$E 	$E
 !$E 
$E $Er5   r1   c                  h    e Zd ZU ded<   d	dZed
d       Zedd       Zedd       Zedd       Z	y)r   r0   r   c                    || _         y r   r   r   r2   s     r3   r   z!AnthropicWithRawResponse.__init__  	    r5   c                F    ddl m}  || j                  j                        S )Nr
   )CompletionsWithRawResponse)r   rO  r   rY   )r   rO  s     r3   rY   z$AnthropicWithRawResponse.completions  s    E)$,,*B*BCCr5   c                F    ddl m}  || j                  j                        S )Nr
   )MessagesWithRawResponse)r   rQ  r   rX   )r   rQ  s     r3   rX   z!AnthropicWithRawResponse.messages  s    ?&t||'<'<==r5   c                F    ddl m}  || j                  j                        S )Nr
   )ModelsWithRawResponse)r   rS  r   rW   )r   rS  s     r3   rW   zAnthropicWithRawResponse.models  s    ;$T\\%8%899r5   c                F    ddl m}  || j                  j                        S )Nr
   )BetaWithRawResponse)r   rU  r   rV   )r   rU  s     r3   rV   zAnthropicWithRawResponse.beta  s    7"4<<#4#455r5   Nr2   r0   r  r  )r  z&completions.CompletionsWithRawResponse)r  z messages.MessagesWithRawResponse)r  zmodels.ModelsWithRawResponse)r  zbeta.BetaWithRawResponse
r(  r)  r*  r+  r   r   rY   rX   rW   rV   r   r5   r3   r   r     s_     D D
 > >
 : :
 6 6r5   r   c                  h    e Zd ZU ded<   d	dZed
d       Zedd       Zedd       Zedd       Z	y)r9  r1   r   c                    || _         y r   rK  rL  s     r3   r   z&AsyncAnthropicWithRawResponse.__init__  rM  r5   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncCompletionsWithRawResponse)r   r[  r   rY   )r   r[  s     r3   rY   z)AsyncAnthropicWithRawResponse.completions  s    J.t||/G/GHHr5   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncMessagesWithRawResponse)r   r]  r   rX   )r   r]  s     r3   rX   z&AsyncAnthropicWithRawResponse.messages  s    D+DLL,A,ABBr5   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncModelsWithRawResponse)r   r_  r   rW   )r   r_  s     r3   rW   z$AsyncAnthropicWithRawResponse.models  s    @)$,,*=*=>>r5   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncBetaWithRawResponse)r   ra  r   rV   )r   ra  s     r3   rV   z"AsyncAnthropicWithRawResponse.beta  s    <'(9(9::r5   Nr2   r1   r  r  )r  z+completions.AsyncCompletionsWithRawResponse)r  z%messages.AsyncMessagesWithRawResponse)r  z!models.AsyncModelsWithRawResponse)r  zbeta.AsyncBetaWithRawResponserW  r   r5   r3   r9  r9    sa     I I
 C C
 ? ?
 ; ;r5   r9  c                  h    e Zd ZU ded<   d	dZed
d       Zedd       Zedd       Zedd       Z	y)r   r0   r   c                    || _         y r   rK  rL  s     r3   r   z&AnthropicWithStreamedResponse.__init__  rM  r5   c                F    ddl m}  || j                  j                        S )Nr
   ) CompletionsWithStreamingResponse)r   rf  r   rY   )r   rf  s     r3   rY   z)AnthropicWithStreamedResponse.completions  s    K/0H0HIIr5   c                F    ddl m}  || j                  j                        S )Nr
   )MessagesWithStreamingResponse)r   rh  r   rX   )r   rh  s     r3   rX   z&AnthropicWithStreamedResponse.messages  s    E,T\\-B-BCCr5   c                F    ddl m}  || j                  j                        S )Nr
   )ModelsWithStreamingResponse)r   rj  r   rW   )r   rj  s     r3   rW   z$AnthropicWithStreamedResponse.models!  s    A*4<<+>+>??r5   c                F    ddl m}  || j                  j                        S )Nr
   )BetaWithStreamingResponse)r   rl  r   rV   )r   rl  s     r3   rV   z"AnthropicWithStreamedResponse.beta'  s    =():):;;r5   NrV  )r  z,completions.CompletionsWithStreamingResponse)r  z&messages.MessagesWithStreamingResponse)r  z"models.ModelsWithStreamingResponse)r  zbeta.BetaWithStreamingResponserW  r   r5   r3   r   r     sc     J J
 D D
 @ @
 < <r5   r   c                  h    e Zd ZU ded<   d	dZed
d       Zedd       Zedd       Zedd       Z	y)r;  r1   r   c                    || _         y r   rK  rL  s     r3   r   z+AsyncAnthropicWithStreamedResponse.__init__1  rM  r5   c                F    ddl m}  || j                  j                        S )Nr
   )%AsyncCompletionsWithStreamingResponse)r   rp  r   rY   )r   rp  s     r3   rY   z.AsyncAnthropicWithStreamedResponse.completions4  s    P4T\\5M5MNNr5   c                F    ddl m}  || j                  j                        S )Nr
   )"AsyncMessagesWithStreamingResponse)r   rr  r   rX   )r   rr  s     r3   rX   z+AsyncAnthropicWithStreamedResponse.messages:  s    J1$,,2G2GHHr5   c                F    ddl m}  || j                  j                        S )Nr
   ) AsyncModelsWithStreamingResponse)r   rt  r   rW   )r   rt  s     r3   rW   z)AsyncAnthropicWithStreamedResponse.models@  s    F/0C0CDDr5   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncBetaWithStreamingResponse)r   rv  r   rV   )r   rv  s     r3   rV   z'AsyncAnthropicWithStreamedResponse.betaF  s    B-dll.?.?@@r5   Nrb  )r  z1completions.AsyncCompletionsWithStreamingResponse)r  z+messages.AsyncMessagesWithStreamingResponse)r  z'models.AsyncModelsWithStreamingResponse)r  z#beta.AsyncBetaWithStreamingResponserW  r   r5   r3   r;  r;  .  se     O O
 I I
 E E
 A Ar5   r;  )r2   r&  r  r  )r9   r&  r  r  )r9   rg   r>   rB   r  rg   )rF   z	httpx.URLrG   r  r  r  )rJ   re   rK   re   r9   r&  r  r  )rJ   re   rK   re   r  r  )Z
__future__r   rQ   typingr   r   r   r   typing_extensionsr   r	   rC    r   r   _qsr   _typesr   r   r   r   r   r   r   r   _utilsr   r   r   _compatr   _versionr   
_streamingr   r   r   r   r   _base_clientr    r!   r"   r#   lib.credentialsr$   r%   r&   r'   r(   r)   r*   lib.credentials._authr+   r,   lib.credentials._constantsr-   r4   r:   r?   rH   rM   rU   	resourcesrV   rW   rX   rY   r   rZ   r[   resources.beta.betar\   r]   r   r^   r_   resources.messages.messagesr`   ra   __all__r0   r1   r   r9  r   r;  rb   rc   r   r5   r3   <module>r     s   # 	 8 8 ,  % 	 	 	 
 % ! D ' (    K7b	?G  >>54DD	aE aEH]E^ ]E@6 6>; ;>< <>A A> 
r5   