
    b\jy                      % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#  S SK$J%r%J&r&J'r'  S SK(r(S SK)r)S SK*r*S SK+r+S SK)J,r,J-r-J.r.J/r/  S SK+J0r0  S	S
K1J2r2  S	SK3J4r4  S	SK5J6r6J7r7  S	SK8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrI  S	SKJJKrKJLrLJMrMJNrNJOrOJPrP  S	SKQJRrRJSrSJTrT  S	SKUJVrVJWrWJXrXJYrY  S	SKZJ[r[  S	SK\J]r]J^r^J_r_J`r`  S	SKaJbrbJcrcJdrdJereJfrfJgrgJhrh  S	SKiJjrjJkrkJlrlJmrm  S	SK2JnrnJoroJprpJqrqJrrrJsrs  S	SKtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|  S	SK}J~r~  S	SKJr  S	SKJr  \
GR                  " \5      rS\S'   \" SSS9r\" SS S9r\" S!5      r\" S"S#S$9r\" S%\j\   S9r\" S&\l\   S9r\(       a	  S S'KJr  \rO S S'KJr   " S) S*5      r " S+ S,\V\\   5      r " S- S.\\   \\   5      r " S/ S0\\\4   5      r " S1 S2\\   \\   5      r\" S3\\)GR,                  \)GR.                  4   S9r\" S4\\j\   \l\   4   S9r " S5 S6\\\4   5      r " S7 S8\)GR,                  5      r\(       a  \)GR,                  rO\r " S9 S:\5      r " S; S<\\)GR,                  \j\   4   5      r " S= S>\)GR.                  5      r S SKr " S? S@\GRB                  5      r\(       a  \)GR.                  r \)GR.                  rO\r\r " SB SC\5      r " SD SE\\)GR.                  \l\   4   5      rSSSSS\I\ISF.               S^SG jjr " SH SI\\S4   5      r " SJ SK5      r\\\%SL   4   rS_SM jr\O" SSN9S`SO j5       r " SP SQ5      r\\\%SR   4   rSaSS jrSaST jrSbSU jrScSV jr      SdSW jr\" SX15      rSeSY jrSfSZ jrSgS[ jrShS\ jrSiS] jrg! \ a    \=" S(5      r GN$f = f! \ a     " SA S@\)GR.                  5      r GN/f = f)j    )annotationsN)TracebackType)random)TYPE_CHECKINGAnyDictListTypeTupleUnionGenericMappingTypeVarIterableIteratorOptionalSequence	GeneratorAsyncIteratorcastoverload)Literaloverride
get_origin)URLProxyHTTPTransportAsyncHTTPTransport)PrivateAttr   )_exceptionsQuerystring)to_httpx_filesasync_to_httpx_files)BodyOmitQueryHeadersTimeoutNotGiven	ResponseT
AnyMapping
PostParserBinaryTypesRequestFilesHttpxSendArgsRequestOptionsAsyncBinaryTypesHttpxRequestFilesModelBuilderProtocol	not_given)is_dictis_listasyncifyis_given	lru_cache
is_mapping)PYDANTIC_V1
model_copy
model_dump)GenericModelFinalRequestOptionsvalidate_typeconstruct_type)
APIRequest)APIResponseBaseAPIResponseAsyncAPIResponseextract_response_type)DEFAULT_TIMEOUTMAX_RETRY_DELAYDEFAULT_MAX_RETRIESINITIAL_RETRY_DELAYRAW_RESPONSE_HEADEROVERRIDE_CAST_TO_HEADERDEFAULT_CONNECTION_LIMITS)Stream
SSEDecoderAsyncStreamSSEBytesDecoder)AnthropicErrorAPIStatusErrorRetryableErrorAPITimeoutErrorAPIConnectionErrorAPIResponseValidationError)CallNext
MiddlewareAsyncCallNextMiddlewareInputMiddlewareCallableAsyncMiddlewareCallablevalidate_sync_middlewarevalidate_async_middleware)openapi_dumps)get_environment_proxies)LegacyAPIResponsezlogging.Loggerlog	SyncPageTzBaseSyncPage[Any])bound
AsyncPageTzBaseAsyncPage[Any]_T_T_coT)	covariant_StreamT_AsyncStreamT)DEFAULT_TIMEOUT_CONFIG      @c                      \ rS rSr% SrS\S'   S\S'   S\S'   \    SS	 j5       r\    SS
 j5       r\    SS j5       r\\\S.       SS jjr\	SS j5       r
Srg)PageInfo   zxStores the necessary information to build the request to retrieve the next page.

Either `url` or `params` must be set.
URL | NotGivenurlQuery | NotGivenparamsBody | NotGivenjsonc                   g N selfrt   s     L/var/www/website/venv/lib/python3.13/site-packages/anthropic/_base_client.py__init__PageInfo.__init__       
     c                   g rz   r{   )r}   rv   s     r~   r   r      r   r   c                   g rz   r{   )r}   rx   s     r~   r   r      r   r   rt   rx   rv   c               (    Xl         X l        X0l        g rz   r   )r}   rt   rx   rv   s       r~   r   r      s     	r   c                *   U R                   (       a&  U R                  R                   SU R                    S3$ U R                  (       a&  U R                  R                   SU R                   S3$ U R                  R                   SU R                   S3$ )Nz(url=)z(json=z(params=)rt   	__class____name__rx   rv   r}   s    r~   __repr__PageInfo.__repr__   sv    88nn--.eDHH:Q??99nn--.fTYYKqAA..))*(4;;-qAAr   )rx   rv   rt   N)rt   r   returnNone)rv   r(   r   r   )rx   r&   r   r   )rt   rs   rx   rw   rv   ru   r   r   r   str)r   
__module____qualname____firstlineno____doc____annotations__r   r   r6   r   r   __static_attributes__r{   r   r~   rq   rq      s    
 

  
	    
	    
	  ( )#,	 	 		
 !	 
	 B Br   rq   c                  |    \ rS rSr% Sr\" 5       rS\S'   \" 5       rS\S'   SS jr	SS jr
SS	 jrSS
 jrSS jrSrg)BasePage   a   
Defines the core interface for pagination.

Type Args:
    ModelT: The pydantic model that represents an item in the response.

Methods:
    has_next_page(): Check if there is another page available
    next_page_info(): Get the necessary information to make a request for the next page
rA   _optionsType[_T]_modelc                V    U R                  5       nU(       d  gU R                  5       S L$ )NF)_get_page_itemsnext_page_info)r}   itemss     r~   has_next_pageBasePage.has_next_page   s*    $$&""$D00r   c                    g rz   r{   r   s    r~   r   BasePage.next_page_info   s    Cr   c                    g rz   r{   r   s    r~   r   BasePage._get_page_items   s    r   c                    [         R                  " [        [        U R                  R
                  5      5      R                  UR
                  5      $ rz   )httpxQueryParamsr   r   r   rv   merger|   s     r~   _params_from_urlBasePage._params_from_url   s3      c4==+?+?!@AGG

SSr   c                @   [        U R                  5      nUR                  5         [        UR                  [
        5      (       d!  0 UR                  EUR                  EUl        U$ [        UR                  [
        5      (       d`  U R                  UR                  5      nUR                  R                  US9n[        UR                  5      Ul        [        U5      Ul        U$ [        UR                  [
        5      (       d  [        UR                  5      (       d  [        S5      eUR                  (       d  0 UR                  EUl        U$ [        UR                  5      (       d  [        S5      e0 UR                  EUR                  EUl        U$ [        S5      e)N)rv   z*Pagination is only supported with mappingszUnexpected PageInfo state)r>   r   _strip_raw_response_header
isinstancerv   r+   rt   r   	copy_withdictr   rx   r<   	TypeError	json_data
ValueError)r}   infooptionsrv   rt   s        r~   _info_to_optionsBasePage._info_to_options   s?   T]]+**,$++x00>>$++>GNN$((H--**4884F(($$F$3C!#**-GNc(GKN$))X..dii(( LMM$$$1tyyM! N	 "'"3"344#$PQQ$Fw'8'8$FDII$F!N455r   r{   Nr   bool)r   zOptional[PageInfo])r   zIterable[_T])rt   r   r   zhttpx.QueryParams)r   rq   r   rA   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r{   r   r~   r   r      s<    	 %0MH!1"}FH$1 8T6r   r   c                  z    \ rS rSr% \R
                  " 5       rS\S'           S
S jrSS jr	SS jr
SS jrSrg	)BaseSyncPage   SyncAPIClient_clientc                h    [         (       d  [        U SS 5      c  0 U l        X l        Xl        X0l        g N__pydantic_private__r=   getattrr   r   r   r   )r}   clientmodelr   s       r~   _set_private_attributes$BaseSyncPage._set_private_attributes   /     /Et!L!T(*D%r   c              #  p   #    U R                  5        H  nUR                  5        H  nUv   M	     M      g 7frz   
iter_pagesr   r}   pageitems      r~   __iter__BaseSyncPage.__iter__  s.     OO%D,,.
 / &s   46c              #  j   #    U n Uv   UR                  5       (       a  UR                  5       nOg M-  7frz   r   get_next_pager}   r   s     r~   r   BaseSyncPage.iter_pages  s7     J!!##))+ s   13c                    U R                  5       nU(       d  [        S5      eU R                  U5      nU R                  R	                  U R
                  U R                  US9$ NzYNo next page expected; please check `.has_next_page()` before calling `.get_next_page()`.)r   r   r   RuntimeErrorr   r   _request_api_listr   r   r}   r   r   s      r~   r   BaseSyncPage.get_next_page  sZ    ""$k  ''-||--dkkX_-``r   r   r   r   r   N)r   r   r   r   r   rA   r   r   )r   zIterator[_T])r}   rf   r   zIterator[SyncPageT])r}   rf   r   rf   )r   r   r   r   pydanticr   r   r   r   r   r   r   r   r{   r   r~   r   r      sP    %113G]3     %	 
 
 *
ar   r   c                  P    \ rS rSr          SS jrS	S jrS
S jrSS jrSrg)AsyncPaginatori*  c                4    X@l         Xl        X l        X0l        g rz   )r   r   r   	_page_cls)r}   r   r   page_clsr   s        r~   r   AsyncPaginator.__init__+  s     !r   c                >    U R                  5       R                  5       $ rz   )	_get_page	__await__r   s    r~   r   AsyncPaginator.__await__7  s    ~~))++r   c                   ^ #    SU 4S jjnUT R                   l        T R                  R                  T R                  T R                   5      I S h  vN $  N7f)Nc                f   > U R                  TR                  TR                  TR                  S9  U $ )N)r   r   r   )r   r   r   r   )respr}   s    r~   _parser)AsyncPaginator._get_page.<locals>._parser;  s2    ((kk|| ) 
 Kr   )r   rh   r   rh   )r   post_parserr   requestr   )r}   r   s   ` r~   r   AsyncPaginator._get_page:  s>     	 %,!\\))$..$--HHHHs   AAAAc               j   #    [        [        U I S h  vN 5      nU  S h  vN nU7v   M   N N
 g 7frz   )r   rh   r   s      r~   	__aiter__AsyncPaginator.__aiter__G  s4     J
  	$J 	$s$   3-

31/1	313)r   r   r   r   N)
r   AsyncAPIClientr   rA   r   Type[AsyncPageT]r   r   r   r   )r   z Generator[Any, None, AsyncPageT])r   rh   r   zAsyncIterator[_T])	r   r   r   r   r   r   r   r   r   r{   r   r~   r   r   *  sG    
"
" %
" #	
"
 
" 

",Ir   r   c                  z    \ rS rSr% \R
                  " 5       rS\S'           S
S jrSS jr	SS jr
SS jrSrg	)BaseAsyncPageiQ  r   r   c                h    [         (       d  [        U SS 5      c  0 U l        Xl        X l        X0l        g r   r   )r}   r   r   r   s       r~   r   %BaseAsyncPage._set_private_attributesT  r   r   c                  #    U R                  5         S h  vN nUR                  5        H  nU7v   M
     M'   N"
 g 7frz   r   r   s      r~   r   BaseAsyncPage.__aiter__a  s6     //+ 	$,,.
 /	+s   ><:<><>c                  #    U n U7v   UR                  5       (       a  UR                  5       I S h  vN nOg M6   N7frz   r   r   s     r~   r   BaseAsyncPage.iter_pagesf  s?     J!!##!//11  2s   1><	>c                   #    U R                  5       nU(       d  [        S5      eU R                  U5      nU R                  R	                  U R
                  U R                  US9I S h  vN $  N7fr   r   r   s      r~   r   BaseAsyncPage.get_next_pageo  sc     ""$k  ''-\\33DKKdnn^e3ffffs   A&A/(A-)A/r   N)r   r   r   r   r   rA   r   r   r   )r}   rh   r   zAsyncIterator[AsyncPageT])r}   rh   r   rh   )r   r   r   r   r   r   r   r   r   r   r   r   r   r{   r   r~   r   r   Q  sP    &224G^4     %	 
 
 
gr   r   _HttpxClientT_DefaultStreamTc                     \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   SrS\S'   S\S'   \\SSSS.                 S7S jjrS8S jr	    S9S jr
        S:S jrSS.S;S jjrS<S jrS=S jrSS.     S>S jjrS?S  jrS@S! jrSAS" jrSBS# jr        SCS$ jr\SDS% j5       r\SES& j5       r\SFS' j5       r\SGS( j5       r\SHS) j5       r      SIS* jr\SJS+ j5       r\SKS, j5       r\R<                  SLS- j5       r\SMS. j5       rSNS/ jr SOS0 jr!SPSQS1 jjr" SP       SRS2 jjr#SSS3 jr$STS4 jr%SJS5 jr&S6r'g)U
BaseClienti~  r  r   r   _versionr   	_base_urlintmax_retrieszUnion[float, Timeout, None]timeoutr   _strict_response_validation
str | None_idempotency_headerNztype[_DefaultStreamT] | None_default_stream_clstuple[MiddlewareInput, ...]_middleware)r
  r  custom_headerscustom_query
middlewarec                  Xl         U R                  [        U5      5      U l        X@l        XPl        U=(       d    0 U l        U=(       d    0 U l        X0l        S U l	        S U l
        [        U=(       d    S5      U l        Uc  [        S5      eg )Nr{   zmax_retries cannot be None. If you want to disable retries, pass `0`; if you want unlimited retries, pass `math.inf` or a very high number; if you want the default behavior, pass `anthropic.DEFAULT_MAX_RETRIES`)r  _enforce_trailing_slashr   r  r
  r  _custom_headers_custom_queryr  r  	_platformtupler  r   )	r}   versionbase_urlr  r
  r  r  r  r  s	            r~   r   BaseClient.__init__  s      55c(mD&-3)/R+F(#' *. !1r2 e  r   c                ~    UR                   R                  S5      (       a  U$ UR                  UR                   S-   S9$ )N   /raw_path)r!  endswithr   r|   s     r~   r  "BaseClient._enforce_trailing_slash  s6    <<  &&J}}cllT&9}::r   c                d   UR                   (       a#  UR                  (       d  S nSUR                   3nOEUR                  R	                  5       nUn [
        R                  " U5      nSUR                   SU 3nU R                  X2US9$ ! [         a    U=(       d    SUR                   3n N4f = f)NzError code: z - )bodyresponse)		is_closedis_stream_consumedstatus_codetextstriprx   loads	Exception_make_status_error)r}   r&  r%  err_msgerr_texts        r~    _make_status_error_from_response+BaseClient._make_status_error_from_response  s     h&A&A D$X%9%9$:;G}}**,HDLzz(+()=)=(>c$H &&wH&MM  L"KX5I5I4J&KLs   (B
 
"B/.B/c                   [        5       erz   )NotImplementedError)r}   r/  r%  r&  s       r~   r.  BaseClient._make_status_error  s     "##r   r   retries_takenc               &   UR                   =(       d    0 n[        S[        UR                  [        5      (       a  [        UR                  R                  5      O[        UR                  5      0U R                  EU5      n[        U5      nU R                  XS5        [        R                  " U5      nU R                  nU(       a$  UR                  (       a  Xv;  a  UR                  Xg'   U Vs/ s H  oR                  5       PM     n	nSU	;  a  [        U5      US'   SU	;  ai  [        UR                  [        5      (       a  U R                  OUR                  n
[        U
[        5      (       a  U
R                  n
U
b  [        U
5      US'   U$ s  snf )Nzx-stainless-timeoutzx-stainless-retry-countzx-stainless-read-timeout)headersmerge_headersr   r  r*   r   readdefault_headers_strip_omit_validate_headersr   r)   r  idempotency_keylowerr+   )r}   r   r7  r  merged_headersheaders_dictr9  idempotency_headerheaderlower_custom_headersr  s              r~   _build_headersBaseClient._build_headers  sS    .B&%goow77 (+7??+?+?'@) &&	 
 #>2|< ---!55'"9"9>P>_*1*A*AG' >LL^6^L$,@@14]1CG-.%-AA&0(&K&KdllQXQ`Q`G'7++!,,"69'l23  Ms   .Fc                    [        U5      nUR                  (       aK  U R                  R                  UR                  R	                  S5      -   nU R                  R                  US9$ U$ )zs
Merge a URL argument together with any 'base_url' on the client,
to create the URL used for the outgoing request.
r  r   )r   is_relative_urlr  r!  lstripr   )r}   rt   	merge_urlmerge_raw_paths       r~   _prepare_urlBaseClient._prepare_url  sZ     H	$$!]]33i6H6H6O6OPT6UUN==**N*CCr   c                    [        5       $ rz   )rQ   r   s    r~   _make_sse_decoderBaseClient._make_sse_decoder  s
    |r   c                  [         R                  [        R                  5      (       a-  [         R	                  S[        US[        (       a  S1O0 S95        0 nUR                  nUR                  b\  Uc  [        [        UR                  5      nO>[        U5      (       a  [        XAR                  5      nO[        S[        U5       S35      eU R                  XS9n[        U R                   UR"                  5      nUR%                  S5      nUR&                  nUb  UR)                  S	5      (       ay  S
U;  a  UR+                  S5        U(       a<  [-        U5      (       d  [/        S[        U5       S35      eU R1                  U5      US'   U(       d  [        [2        [5        5       5      nU R7                  UR8                  5      n	U(       ad  U	R:                  (       aS  0 [=        U	R"                  R?                  5       5      EUEnU	RA                  U	RB                  RE                  SS5      S   S9n	SU	RF                  ;   a!  SU	RF                  RI                  SS5      0US'   URJ                  RM                  5       S:g  n
U
(       a  URN                  b  Ub  [/        S5      eURN                  b  Ub  [/        S5      eURN                  b  URN                  US'   OD[Q        U[R        5      (       a  XCS'   O*U(       d#  [U        U5      (       a  Ub  [W        U5      OS US'   XS'   O$UR+                  SS 5        UR+                  SS 5        U RX                  RZ                  " SU[Q        UR\                  [^        5      (       a  U R\                  OUR\                  URJ                  U	U(       a6  U R`                  Rc                  [        [d        [f        [h        4   U5      5      OS S.UD6$ )NzRequest options: %sTcontent)exclude_unsetexcludezUnexpected JSON data type, z , cannot merge with `extra_body`r6  Content-Typezmultipart/form-databoundaryzGExpected query input to be a dictionary for multipart requests but got z	 instead.data   ?r    r   r   _sni_hostname-
extensionsgetz7Passing both `content` and `json_data` is not supportedz3Passing both `content` and `files` is not supportedfiles)r9  r  methodrt   rv   r{   )5re   isEnabledForloggingDEBUGdebugr?   r=   r   
extra_jsonr   r&   r<   _merge_mappingsr   typerF  default_queryrv   r^  r_  
startswithpopr7   r   _serialize_multipartformr4   ForceMultipartDictrM  rt   queryr   r   r   r!  splithostreplacer`  r@  rS  r   bytesr:   rb   r   build_requestr  r+   qs	stringifyr   r   r   )r}   r   r7  kwargsr   r9  rv   content_typer_  prepared_urlis_body_alloweds              r~   _build_requestBaseClient._build_request  sl    GMM**II%"&
 #{ " 	 "$%%	)  w'9'9:	I&&+I7I7IJ	"%@i@QQq#rss%%g%K !3!3W^^D{{>2 #(?(?@U(V(V- N+ y))#abfgpbqarr{|  "&!>!>y!Iv .0B0DE((5l((D\006689DVDF'11<;P;P;V;VW[]^;_`a;b1cL,###$2L4E4E4M4McSV4W#XF< !....0E9*y/D YZZ*u/@ UVV*$+OOy!Iu--$-y! AI@S@SXaXmM)$<swy!#7OKK-JJvt$ ||)) 
$.w$I$IDLLw>>
 JP477$$T'#s(*;V%DEUY
 
 	
r   c                    U R                   R                  USS9n0 nU HK  u  pEUR                  U5      nU(       d  XSU'   M#  [        U5      (       a  UR	                  U5        MF  Xe/X4'   MM     U$ )Nbrackets)array_format)rs  stringify_itemsr^  r8   append)r}   rX  r   
serializedkeyvalueexistings          r~   rk  #BaseClient._serialize_multipartformh  s|    '' #	 ( 
 )+
JC!~~c*H"'3 x  &#+"3
%  ( r   c                    [        UR                  5      (       d  U$ [        UR                  5      nUR                  [        [
        5      n[        U5      (       a  X2l        [        [        [           U5      $ U$ rz   )	r:   r9  r   rj  rN   r6   r   r
   r,   )r}   cast_tor   r9  override_cast_tos        r~   _maybe_override_cast_to"BaseClient._maybe_override_cast_to  sb    ((N w'
 #;;'>	J$%%%OY)9::r   c           
         [        UR                  UR                  U UR                  UR                  UR
                  UR                  S9$ )zVConvert an `APIResponse` / `AsyncAPIResponse` into the equivalent `LegacyAPIResponse`.)rawr  r   stream
stream_clsr   r7  )rd   http_response_cast_to_is_sse_stream_stream_clsr   r7  )r}   sources     r~   _convert_to_legacy_response&BaseClient._convert_to_legacy_response  sD     $$OO(())OO ..
 	
r   c                F    UR                   R                  [        5      S:H  $ )Nr  )r9  r^  rM   r}   r   s     r~   _should_stream_response_body'BaseClient._should_stream_response_body  s    ""#678CCr   c                  Uc  [        [        S 5      $ U[        L a  [        [        U5      $  [        R                  " U5      (       a2  [        U[        5      (       a  [        [        UR                  X1S95      $ U R                  (       a  [        [        [        X!S95      $ [        [        [        X!S95      $ ! [        R                   a  n[        X1S9UeS nAff = f)N)r&  rX  )type_r  )r&  r%  )r   r,   objectinspectisclass
issubclassr5   buildr  rB   rC   r   ValidationErrorrY   )r}   rX  r  r&  errs        r~   _process_response_data!BaseClient._process_response_data  s     <	4((f	4((		Tw''Jw@T,U,UIw}}h}'RSS//I}7'OPP	>#LMM'' 	T,hJPSS	Ts$   AB: ;'B: #B: :C
CCc                    [        5       $ rz   r"   r   s    r~   rs  BaseClient.qs  s
    }r   c                    g rz   r{   r   s    r~   custom_authBaseClient.custom_auth  s    r   c                    0 $ rz   r{   r   s    r~   auth_headersBaseClient.auth_headers  s    	r   c                r    SSU R                   S.U R                  5       EU R                  EU R                  E$ )Nzapplication/json)AcceptrV  z
User-Agent)
user_agentplatform_headersr  r  r   s    r~   r<  BaseClient.default_headers  sN     ).//
 ##%	

 
 ""
 	
r   c                    0 U R                   E$ rz   )r  r   s    r~   rh  BaseClient.default_query  s    
  
 	
r   c                    g)zQValidate the given default headers and custom headers.

Does nothing by default.
Nr{   )r}   r9  r  s      r~   r>  BaseClient._validate_headers  s     	r   c                L    U R                   R                   SU R                   3$ )Nz/Python )r   r   r  r   s    r~   r  BaseClient.user_agent  s"    ..))*(4==/BBr   c                    U R                   $ rz   )r  r   s    r~   r  BaseClient.base_url  s    ~~r   c                p    U R                  [        U[        5      (       a  UO
[        U5      5      U l        g rz   )r  r   r   r  r|   s     r~   r  r    s)    55ZS=Q=QcWZ[^W_`r   c                    U R                   $ )zThe client-level middleware, outermost first.

To run extra middleware for specific calls, derive a client with
`client.with_options(middleware=[*client.middleware, extra])`.
)r  r   s    r~   r  BaseClient.middleware  s     r   c                >    [        U R                  U R                  S9$ )N)platform)r  r  r  r   s    r~   r  BaseClient.platform_headers  s      GGr   c                d    SnSnX1-  S-  nXT:  d  U(       a  X:  a  [        S5      e[        USS9$ )Ni  iX  i  zStreaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-python#long-requests for more detailsro   )connect)r   r*   )r}   
max_tokensmax_nonstreaming_tokensmaximum_timedefault_timeexpected_times         r~   _calculate_nonstreaming_timeout*BaseClient._calculate_nonstreaming_timeout  sO    $1G;',C
Hlj  
 	
r   c                   Uc  g UR                  SS5      n[        U5      S-  $ ! [        [        4 a     Of = fUR                  S5      n [        U5      $ ! [        [        4 a     Of = f[        R
                  R                  U5      nUc  g[        R
                  R                  U5      n[        U[        R                  " 5       -
  5      $ )a(  Returns a float of the number of seconds (not milliseconds) to wait after retrying, or None if unspecified.

About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
See also  https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After#syntax
Nzretry-after-ms  zretry-after)	r^  floatr   r   emailutilsparsedate_tz	mktime_tztime)r}   response_headersretry_ms_headerretry_headerretry_date_tuple
retry_dates         r~   _parse_retry_after_header$BaseClient._parse_retry_after_header  s     #	.223CTJO)D00:& 		 (++M:	 &&:& 		 !;;33LA#[[**+;<
Z$))+-..s   & 99
A A,+A,c                   UR                  U R                  5      nU R                  U5      nUb  SUs=:  a  S::  a   U$   [        XA-
  S5      n[        [        [        SU5      -  [        5      nSS[        5       -  -
  nXx-  n	U	S:  a  U	$ S$ )Nr   <   r  g       @r    g      ?)get_max_retriesr
  r  minrL   powrJ   r   )
r}   remaining_retriesr   r  r
  retry_after
nb_retriessleep_secondsjitterr  s
             r~   _calculate_retry_timeout#BaseClient._calculate_retry_timeout2  s     --d.>.>? 445EF"q;'<"'< (= 8$?
 /#c:2FFX TFH_$(!Q,w-A-r   c                \   UR                   R                  S5      nUS:X  a  [        R                  S5        gUS:X  a  [        R                  S5        gUR                  S:X  a!  [        R                  S	UR                  5        gUR                  S
:X  a!  [        R                  S	UR                  5        gUR                  S:X  a!  [        R                  S	UR                  5        gUR                  S:  a!  [        R                  S	UR                  5        g[        R                  S5        g)Nzx-should-retrytruez4Retrying as header `x-should-retry` is set to `true`Tfalsez9Not retrying as header `x-should-retry` is set to `false`Fi  zRetrying due to status code %ii  i  i  zNot retrying)r9  r^  re   rd  r)  )r}   r&  should_retry_headers      r~   _should_retryBaseClient._should_retryJ  s    &..223CD &(IILM')IIQR 3&II68L8LM 3&II68L8LM 3&II68L8LM 3&II68L8LM		.!r   c                   [        5       nUnUb  [        U5      U;  a  UR                  [        U5      5        [        U[        5      (       a  g[        U[
        5      (       a'  U R                  UR                  5      UR                  4$ [        U[        5      (       a  gUR                  nUb  [        U5      U;  a  M  g)a,  Whether an exception raised by a request attempt should be retried.

Also returns the HTTP response behind the failure, when there is one, so
retry timing can honor `retry-after` headers.

Exceptions raised by middleware propagate to the caller as-is, except the
ones that opt into the retry policy by type: `APIStatusError` (subject to
the usual status-code policy), `APIConnectionError` / `APITimeoutError`,
and `RetryableError`. The check walks each error's `__cause__` chain, so
wrapping a retryable failure via `raise ... from err` preserves retries.
)TN)FN)
setidaddr   rV   rU   r  r&  rX   	__cause__)r}   r  seencurrents       r~   _should_retry_exception"BaseClient._should_retry_exceptionm  s     (+!bk&=HHR[!'>22!'>22))'*:*:;W=M=MMM'#566!''G !bk&= r   c                2    S[         R                  " 5        3$ )Nzstainless-python-retry-)uuiduuid4r   s    r~   _idempotency_keyBaseClient._idempotency_key  s    (77r   )
r  r  r  r  r  r  r  r  r
  r  )r  r   r  	str | URLr  r   r
  r	  r  zfloat | Timeout | Noner  Mapping[str, str] | Noner  Mapping[str, object] | Noner   Sequence[MiddlewareInput] | Noner   r   )rt   r   r   r   )r&  httpx.Responser   rU   )r/  r   r%  r  r&  r  r   z_exceptions.APIStatusError)r   rA   r7  r	  r   zhttpx.Headers)rt   r   r   r   )r   zSSEDecoder | SSEBytesDecoder)r   rA   r7  r	  r   httpx.Request)rX  zMapping[object, object]r   dict[str, object])r  type[ResponseT]r   rA   r   r  )r  zBaseAPIResponse[Any]r   zLegacyAPIResponse[Any])r   r  r   r   )rX  r  r  r  r&  r  r   r,   )r   r#   )r   zhttpx.Auth | None)r   zdict[str, str])r   zdict[str, str | Omit])r   r  )r9  r)   r  r)   r   r   r   )r   r   )rt   z	URL | strr   r   )r   r  )r   Dict[str, str])r  r	  r  z
int | Noner   r*   rz   )r  Optional[httpx.Headers]r   zfloat | None)r  r	  r   rA   r  r   r   r  )r&  r  r   r   )r  BaseExceptionr   z"tuple[bool, httpx.Response | None])(r   r   r   r   r   r  rK   rI   r   r  r1  r.  rF  rM  rP  ry  rk  r  r  r  r  propertyrs  r  r  r<  rh  r>  r  r  setterr  r  r  r  r  r  r  r  r   r{   r   r~   r  r  ~  s   MN((!%%##8<5<,, /*937487;  	
 &*  ( 1 2 5 
8;
N N 
N,$$ 	$
 !$ 
$$ TU !F 	j
$j
 	j

 
j
X<"

DT T !	T
 !T 
T0       
 
 
 

		  	 
		 C C   __a a    H
 /L 59	.. %. 2	.
 
.0!F28r   r  c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )_DefaultHttpxClienti  c           
     j  > UR                  S[        5        UR                  S[        5        UR                  SS5        SU;  Ga  [        R                  [        R
                  S4/n[        [        SS 5      nUb#  UR                  [        R                  US45        OG[        R                  S:X  a3  [        [        S	S
5      nUR                  [        R                  US45        [        [        SS 5      nUb"  UR                  [        R                  US45        [        [        SS 5      nUb"  UR                  [        R                  US45        [        5       R                  5        VVs0 s H  u  pxXxc  S O[        US9_M     n	nnS V
s0 s H  oU;   d  M
  XU
   _M     nn
X+S'   U	R                  5        VVs0 s H  u  p|X|c  S O[        SSU0UD6_M     nnn[        S0 UD6nUR                  UR!                  S0 5      5        XS'   XS'   ["        TU ]H  " S0 UD6  g s  snnf s  sn
f s  snnf Nr  limitsfollow_redirectsT	transportTCP_KEEPINTVLr  darwinTCP_KEEPALIVE   TCP_KEEPCNT   TCP_KEEPIDLE)rt   )verifycert	trust_envhttp1http2r  socket_optionsproxymountsr{   )
setdefaultrI   rO   socket
SOL_SOCKETSO_KEEPALIVEr   r  IPPROTO_TCPsysr  rc   r   r   r   updater^  superr   r}   ru  r  r  r  r  r  r  rt   	proxy_mapargtransport_kwargsr  proxy_mountsdefault_transportr   s                  r~   r   _DefaultHttpxClient.__init__  s)   )_5($=>,d3f$HNHYHY[a[n[nptGuFvN#FOTBM(%%v'9'9="&MN) ' F%%v'9'9="&MN!&->K&%%v'9'9;&JK"6>4@L'%%v'9'9<&LMVmVoVuVuVwxVw(#kdu~EVwIx -h ,gSrxkx C[ ,g    2@-. #,//"3"3JC ]T0^E0^M]0^^"3   !. A0@ A 

8R 89+8 #4;"6"+ y    .H$	H*	H*>H/r{   ru  r   r   r   r   r   r   r   r   r   __classcell__r   s   @r~   r  r        -# -#r   r  c                      \ rS rSrSS jrSrg)SyncHttpxClientWrapperi  c                j    U R                   (       a  g  U R                  5         g ! [         a     g f = frz   )r'  closer-  r   s    r~   __del__SyncHttpxClientWrapper.__del__  s,    >>	JJL 		s   % 
22r{   Nr   r   r   r   r   r   r3  r   r{   r   r~   r0  r0    s    r   r0  c                    ^  \ rS rSr% S\S'   SrS\S'   SrS\S'   SrS	\S
'   \\	SSSSS.                   S<U 4S jjjr
S=S jrS>S jrS?S jr        S@S jr    SAS jr    SBS jr\          SCS j5       r\SS.       SDS jj5       r\SSS.         SES jj5       rSSS.         SFS jjrSGS jrSHS jrSSS.       SIS jjr          SJS jrSS .             SKS! jjr        SLS" jr\0 SS#.         SMS$ jj5       r\0 S%.           SNS& jj5       r\0 SS'.           SOS( jj5       r0 SSS).           SOS* jjr\SS0 SSS+.               SPS, jj5       r\SS0 SS-.                 SQS. jj5       r\SS0 SSS/.                 SRS0 jj5       rSS0 SSSS1.                 SRS2 jjrSSS0 S3.             SSS4 jjrSSS0 S3.             SSS5 jjrSS0 S6.           STS7 jjrS0 S8S9.             SUS: jjrS;rU =r $ )Vr   i  zhttpx.Clientr   Nztype[Stream[Any]] | Noner  CallNext | None_middleware_chainr  webhook_keyr
  r  http_clientr  r  r  c       	          > [        U5      (       d.  U(       a!  UR                  [        :w  a  UR                  nO[        nUb6  [	        U[
        R                  5      (       d  [        S[        U5       35      e[        U=(       d    S5      nU(       a  [        U5        [        T
U ]1  U[        [        U5      UUUUUU	S9  U R                  5       U l        U=(       d    [#        U[        [        U5      S9U l        g )NzOInvalid `http_client` argument; Expected an instance of `httpx.Client` but got r{   )r  r  r  r
  r  r  r  r  r  r  )r:   r  HTTPX_DEFAULT_TIMEOUTrI   r   r   Clientr   rg  r  r`   r!  r   r   r*   _build_middleware_chainr9  r0  r   )r}   r  r  r
  r  r<  r  r  r  r  r   s             r~   r   SyncAPIClient.__init__  s        {226KK%--)":k5<<+P+Pabfgrbsatu  :+,
$Z0'*#%)!(C 	 
	
 "&!=!=!?" 
&<'*'
r   c                .    U R                   R                  $ rz   r   r'  r   s    r~   r'  SyncAPIClient.is_closed      ||%%%r   c                \    [        U S5      (       a  U R                  R                  5         gg)PClose the underlying HTTPX client.

The client will *not* be usable after this.
r   N)hasattrr   r2  r   s    r~   r2  SyncAPIClient.close  s&     4##LL  $r   c                    U $ rz   r{   r   s    r~   	__enter__SyncAPIClient.__enter__  s    r   c                $    U R                  5         g rz   r2  r}   exc_typeexcexc_tbs       r~   __exit__SyncAPIClient.__exit__   s     	

r   c                    U$ z#Hook for mutating the given optionsr{   r}   r   s     r~   _prepare_optionsSyncAPIClient._prepare_options(  s	    
 r   c                    gzThis method is used as a callback for mutating the `Request` object
after it has been constructed.
This is useful for cases where you want to add certain headers based off of
the request properties, e.g. `url`, `method` etc.
Nr{   r  s     r~   _prepare_requestSyncAPIClient._prepare_request/  s     r   c                   g rz   r{   r}   r  r   r  r  s        r~   r   SyncAPIClient.request:  s     r   Fr  c                   g rz   r{   r}   r  r   r  s       r~   r   ra  D  s     r   r  r  c                   g rz   r{   r`  s        r~   r   ra  M  s      #r   c          
        U R                  X5      n[        U5      nUR                  c3  UR                  R	                  5       S:w  a  U R                  5       Ul        U R                  nUR                  U R                  5      n[        US-   5       GHZ  nXx-
  n	 UcC  U R                  [        U5      X8S9u  pU
R                  (       a  U R                  UUU
UUUS9s  $ O[        [        U5      UUUUS9nU" U5      n[        U[        5      (       a  UR                   R                  (       a.  [#        [$        [&        [(        4   U R+                  X5      5      s  $ UR                   n
 U	S:  aL  U R7                  U
5      (       a6  U
R0                  (       d  U
R3                  5         U R5                  UUUU
S9  GM*  U
R0                  (       d  U
R9                  5         U R;                  U
5      S e   [=        S5      e! [,         ad  nU R/                  U5      u  nnU	S::  d  U(       d  e Ub!  UR0                  (       d  UR3                  5         U R5                  UUUUS9   S nAGM  S nAff = f	Nr^  r    r  r7  r  r   r&  r  r  r7  )r   r  r  r  r7  r   )r7  r
  r   r&  z0could not resolve response (should never happen))r  r>   r?  r`  r@  r  r9  r  r
  range_attempt_request
is_success_process_responserD   r   rF   r  r   r   r,   rl   _finalize_middleware_resultr-  r  r'  r2  _sleep_for_retryr  r;  r1  r   r}   r  r   r  r  input_optionschainr
  r7  r  r&  preparedr   resultr  should_retryfailed_responses                    r~   r   ra  W  sf    ..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)&&#33D4D4DE";?3M + ;(=)-)>)>"=1& *? *&H  **#55$+$,%-#)'1*7  6    + ) *= 9 '%#-&3G #(.F%fo>>&BVBVBaBa#E)X*=$>@`@`ag@qrr%33H& !1$););H)E)E))NN$%%"/ +)%	 &   %%77AtK 4B MNNI  040L0LS0Q-o$)".7P7P#))+%%"/ +),	 &  s'   AG<!A9G<G<<
I*AI%%I*c                   ^  T R                   (       d  gSU 4S jjnSS jnUn[        T R                   5       H  nU" XC5      nM     U$ )Build the middleware invocation chain.

The chain only depends on the immutable `self._middleware` tuple so it is built
once at construction time. It is invoked once per HTTP attempt, inside the
SDK's retry loop, with that attempt's `APIRequest`.
Nc                   > [        U 5      nTR                  XR                  U R                  S9u  p#[	        STR                  U R                  UUU R                  U R                  U R                  S95      $ )Nri  APIResponse[Any]rj  _prepare_middleware_optionsrl  r  r7  r   rn  r  r  reqr   r&  rt  r}   s       r~   base_handler;SyncAPIClient._build_middleware_chain.<locals>.base_handler  sw    1#6G!%!6!6wzzadarar!6!sH"&&KK$%::"~~"%"3"3 ' 
 
r   c                ~   ^^ [        U [        5      (       a  U R                  O[        [        U 5      mSUU4S jjnU$ )Nc                   > T" U T5      $ rz   r{   r  	call_nexthandlers    r~   handleCSyncAPIClient._build_middleware_chain.<locals>.wrap.<locals>.handle  s    sI..r   r  rD   r   r{  )r   r[   r  r   r^   r  r  r  r  s    ` @r~   wrap3SyncAPIClient._build_middleware_chain.<locals>.wrap  s7    +5j*+M+Mj''SWXjlvSwG/ / Mr   r  )r  r]   r  rZ   r   rZ   r  reversedr}   r  r  rs  entrys   `    r~   rA  %SyncAPIClient._build_middleware_chain  sF     		 'd../E&E 0r   c                    [        U[        5      (       d  U$ [        SU5      n[        U5      nUS:X  d  US:X  a  U$ US:X  a  U R	                  U5      $ [        UR                  5      (       a  U$ UR                  5       $ )a  Convert the `APIResponse` returned by the middleware chain into the value the original caller expects.

The middleware chain operates on `APIResponse` objects; the original caller may
have asked for a parsed model (the default), a `LegacyAPIResponse`
(`.with_raw_response`) or the `APIResponse` wrapper itself
(`.with_streaming_response` / a `cast_to` that is itself a response class).
r{  r  r  r  r   rF   r   _middleware_entry_moder  _expects_response_wrapperr  parser}   ru  r   r&  
entry_modes        r~   ro  )SyncAPIClient._finalize_middleware_result  s}     &/22 M*F3+G4
*"8O33H==$W__55O~~r   r   ri  c                  U R                  U5      nU R                  XS9nU R                  U5        0 nU R                  b  U R                  US'   UR                  b  UR                  US'   [
        R                  SUR                  UR                  5         U R                  R                  " U4SU=(       d    U R                  US90UD6n[
        R                  SUR                  UR                  UR&                  UR(                  UR*                  5        [
        R                  SUR*                  R-                  S5      5        Xa4$ ! [        R                   a#  n[
        R                  SS	S
9  [        US9UeSnAf[         a9  n[!        U["        5      (       a  e [
        R                  SS	S
9  [%        US9UeSnAff = f)v  Prepare, build and send a single HTTP attempt.

Returns the response regardless of its status code, along with the prepared
options it was sent with — status handling (the retry policy, raising typed
errors for the caller) happens above, where middleware can inspect error
responses first. Connection failures raise typed errors (`APITimeoutError`,
`APIConnectionError`).
r6  Nauthr	  Sending HTTP Request: %s %sr  r   "Encountered httpx.TimeoutExceptionTexc_infoEncountered ExceptionHTTP Response: %s %s "%i %s" %srequest_id: %s
request-idrY  ry  r]  r  r	  re   rd  r`  rt   r   sendr  r   TimeoutExceptionrW   r-  r   rT   rX   r)  reason_phraser9  r^  r}   r   r  r7  r   ru  r&  r  s           r~   rl  SyncAPIClient._attempt_request  s    ''0%%g%Kg& "'!--F6N##/)0)A)AF%&		/M	?||((S!B!B7!B!S H  			-NNKK  ""	
 			"H$4$4$8$8$FG  + %% 	<II:TIJ!'2; 	?#~..II-I=$W53>	?s$   5E GE==G
4F>>Gc               (   X!-
  nUS:X  a  [         R                  S5        O[         R                  SU5        U R                  XSU(       a  UR                  OS 5      n[         R	                  SUR
                  U5        [        R                  " U5        g Nr    z1 retry leftz%i retries leftz$Retrying request to %s in %f seconds)re   rd  r  r9  r   rt   r  sleepr}   r7  r
  r   r&  r  r  s          r~   rp  SyncAPIClient._sleep_for_retry+  sq     (7!IIn%II'):;//0A`hHL\L\nrs7gN

7r   r6  c               t   UR                   R                  R                  [        5      S:X  a  [	        [
        [        UU UUUUUS95      $ [        U5      =(       d    Un[        R                  " U5      (       a  [        U[        5      (       a  U(       a7  [        UR                   R                  R                  [        5      5      (       aY  [        U[        5      (       d  [        S[         SU 35      e[	        SU5      n[	        [
        U" UU [        U5      UUUUS95      $ U[         R"                  :X  a  [	        [
        U5      $ [        UU [	        SU5      UUUUS9n	[        UR                   R                  R                  [        5      5      (       a  [	        [
        U	5      $ U	R%                  5       $ )Nr  r  r   r  r  r  r   r7  !API Response types must subclass ; Received type[BaseAPIResponse[Any]]r  )r   r9  r^  rM   r   r,   rd   r   r  r  r  rF   r   rE   r   rH   r   Responser  
r}   r  r   r&  r  r  r7  originresponse_clsapi_responses
             r~   rn  SyncAPIClient._process_response9  s    ##''(;<F! #!)#"/  G$/ OOF##6?33 tH$4$4$<$<$@$@AT$UVVfk22"CK=P[\b[c dee <gFL 1,?!)#"/  enn$	8,,"*G4!'
   ((,,-@ABB	<00!!##r   c                L   ^ ^^ SUUU 4S jjnUTl         T R                  UTSS9$ )Nc                *   > U R                  TTTS9  U $ )N)r   r   r   )r   )r   r   r   r}   s    r~   r   0SyncAPIClient._request_api_list.<locals>._parser  s&    (( ) 
 Kr   Frb  )r   rf   r   rf   )r   r   )r}   r   r   r   r   s   `` ` r~   r   SyncAPIClient._request_api_list}  s,    	 	 &||D'%|88r   r   r  c                   g rz   r{   r}   pathr  r   r  s        r~   r^  SyncAPIClient.get  s     r   r   c                   g rz   r{   r}   r  r  r   r  r  s         r~   r^  r    s     r   r   r  c                   g rz   r{   r  s         r~   r^  r    s      #r   r   r  r  c          
     p    [         R                  " SSUS.UD6n[        [        U R	                  X&XES95      $ Nr^  )r`  rt   re  r{   )rA   	constructr   r,   r   r}   r  r  r   r  r  optss          r~   r^  r    s:     #,,OEtOwO It||G&|`aar   )r%  rS  r   r_  r  c                   g rz   r{   )r}   r  r  r%  rS  r   r_  r  s           r~   postSyncAPIClient.post  s     r   )r%  rS  r   r_  c                   g rz   r{   	r}   r  r  r%  rS  r   r_  r  r  s	            r~   r  r    s     r   )r%  rS  r   r_  r  c                   g rz   r{   r  s	            r~   r  r    s      #r   )r%  rS  r   r_  r  r  c          
     (   Ub  Ub  [        S5      eUb  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " S	SXU[        U5      S.UD6n	[        [        U R                  X)XxS95      $ 
N2Passing both `body` and `content` is not supported3Passing both `files` and `content` is not supportedPassing raw bytes as `body` is deprecated and will be removed in a future version. Please pass raw bytes via the `content` parameter instead.   
stacklevelr  r`  rt   r   rS  r_  re  r{   )r   r   rq  warningswarnDeprecationWarningrA   r  r$   r   r,   r   )
r}   r  r  r%  rS  r   r_  r  r  r  s
             r~   r  r    s      3PQQ!4QRRdE""MMM"	 #,, 
tWN[`La
el
 It||G&|`aar   r%  rS  r_  r   c          
        Ub  Ub  [        S5      eUb  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " SSXU[        U5      S.UD6nU R                  X'5      $ 	Nr  r  r  r  r  patchr  r{   
r   r   rq  r  r  r  rA   r  r$   r   r}   r  r  r%  rS  r_  r   r  s           r~   r  SyncAPIClient.patch  s      3PQQ!4QRRdE""MMM"	 #,, 
g^\aMb
fm
 ||G**r   c          
        Ub  Ub  [        S5      eUb  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " SSXU[        U5      S.UD6nU R                  X'5      $ 	Nr  r  r  r  r  putr  r{   r  r  s           r~   r  SyncAPIClient.put  s      3PQQ!4QRRdE""MMM"	 #,, 
dG>Z_K`
dk
 ||G**r   r%  rS  r   c                   Ub  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " SSXUS.UD6nU R                  X&5      $ Nr  r  r  r  delete)r`  rt   r   rS  r{   	r   r   rq  r  r  r  rA   r  r   r}   r  r  r%  rS  r   r  s          r~   r  SyncAPIClient.delete6  so      3PQQdE""MMM"	 #,,sH$`gskrs||G**r   r^  r%  r   r`  c               X    [         R                  " SXaUS.UD6nU R                  X#U5      $ N)r`  rt   r   r{   rA   r  r   r}   r  r   r   r%  r   r`  r  s           r~   get_api_listSyncAPIClient.get_api_listK  3     #,,`FPT`X_`%%e488r   )r   r9  )r  r   r  r  r
  r	  r  !float | Timeout | None | NotGivenr<  zhttpx.Client | Noner  r  r  r  r  r  r  r   r   r   r   r5  r}   ri   r   ri   rQ  ztype[BaseException] | NonerR  zBaseException | NonerS  zTracebackType | Noner   r   r   rA   r   rA   r   r  r   r   )
r  Type[ResponseT]r   rA   r  Literal[True]r  zType[_StreamT]r   rl   r  r  r   rA   r  Literal[False]r   r,   )
r  r  r   rA   r  r   r  zType[_StreamT] | Noner   ResponseT | _StreamT)
r  r  r   rA   r  r   r  type[_StreamT] | Noner   r  )r   r8  ru  r   r   rD   r   r   r   rA   r  r   r7  r	  r   z*tuple[httpx.Response, FinalRequestOptions]
r7  r	  r
  r	  r   rA   r&  zhttpx.Response | Noner   r   r  r  r   rA   r&  r  r  r   r  z1type[Stream[Any]] | type[AsyncStream[Any]] | Noner7  r	  r   r,   )r   Type[object]r   Type[SyncPageT]r   rA   r   rf   
r  r   r  r  r   r2   r  r  r   r,   )r  r   r  r  r   r2   r  r  r  type[_StreamT]r   rl   )r  r   r  r  r   r2   r  r   r  r  r   r  )r  r   r  r  r%  Body | NonerS  BinaryTypes | Noner   r2   r_  RequestFiles | Noner  r  r   r,   )r  r   r  r  r%  r  rS  r  r   r2   r_  r  r  r  r  r  r   rl   )r  r   r  r  r%  r  rS  r  r   r2   r_  r  r  r   r  r  r   r  )r  r   r  r  r%  r  rS  r  r_  r  r   r2   r   r,   )r  r   r  r  r%  r  rS  r  r   r2   r   r,   )r  r   r   r  r   r  r%  r  r   r2   r`  r   r   rf   )!r   r   r   r   r   r  r9  r:  rK   r6   r   r'  r2  rL  rT  rY  r]  r   r   rA  ro  rl  rp  rn  r   r^  r  r  r  r  r  r   r,  r-  s   @r~   r   r     s   4818)--"K" /5>+/37487;6
 6
 	6

 6
 36
 )6
 16
 26
 56
 &*6
 
6
 6
p&!, " %	
 
$ 
		 
	   %
  # 
   "'  %
  
   ,0# # %#
 # *# 
# # ,0VO VO %VO
 VO *VO 
VOp$L @ 8!$8! 	8!
 8! 
48!t #25@S_t	, B$ !B$ %	B$
 !B$ B$ FB$ B$ 
B$H99 9 %	9
 
9$  #%!& !	
    
   #% !	
    # 
   #%,0## !	#
  # # *# 
# # #%,0bb !	b
  b b *b 
b  !&*"$%)!&

 !	

 
 $
  
 #
 
 

 
  !&*"$%) !	
  $   #  # 
   !&*"$%),0## !	#
 # $#  # ## # *# 
# #$ !&*"$%),0bb !	b
 b $b  b #b b *b 
bB !&*%)"$++ !	+
 + $+ #+  + 
+> !&*%)"$++ !	+
 + $+ #+  + 
+> !&*"$++ !	+
 + $+  + 
+6 !"$99 	9
 9 9  9 9 
9 9r   r   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )_DefaultAsyncHttpxClientiY  c           
     j  > UR                  S[        5        UR                  S[        5        UR                  SS5        SU;  Ga  [        R                  [        R
                  S4/n[        [        SS 5      nUb#  UR                  [        R                  US45        OG[        R                  S:X  a3  [        [        S	S
5      nUR                  [        R                  US45        [        [        SS 5      nUb"  UR                  [        R                  US45        [        [        SS 5      nUb"  UR                  [        R                  US45        [        5       R                  5        VVs0 s H  u  pxXxc  S O[        US9_M     n	nnS V
s0 s H  oU;   d  M
  XU
   _M     nn
X+S'   U	R                  5        VVs0 s H  u  p|X|c  S O[        SSU0UD6_M     nnn[        S0 UD6nUR                  UR!                  S0 5      5        XS'   XS'   ["        TU ]H  " S0 UD6  g s  snnf s  sn
f s  snnf r  )r  rI   rO   r  r  r  r   r  r  r  r  rc   r   r   r   r   r^  r!  r   r"  s                  r~   r   !_DefaultAsyncHttpxClient.__init__Z  s*   )_5($=>,d3f$HNHYHY[a[n[nptGuFvN#FOTBM(%%v'9'9="&MN) ' F%%v'9'9="&MN!&->K&%%v'9'9;&JK"6>4@L'%%v'9'9<&LMVmVoVuVuVwxVw(#kdu~EVwIx -h ,gSrxkx C[ ,g    2@-. #,//"3"3JC ]T0B0c0cRb0cc"3   !3 F5E F 

8R 89+8 #4;"6"+ y r)  r{   r*  r+  r-  s   @r~   r  r  Y  r.  r   r  c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )_DefaultAioHttpClienti  c                   > UR                  S[        5        UR                  S[        5        UR                  SS5        [        TU ]  " S0 UD6  g )Nr  r  r	  Tr{   )r  rI   rO   r!  r   )r}   ru  r   s     r~   r   _DefaultAioHttpClient.__init__  sE    i9h(AB0$7G&v&r   r{   r*  r+  r-  s   @r~   r  r    s    	' 	'r   r  c                      \ rS rSrSS jrSrg)r  i  c                    [        S5      e)NzVTo use the aiohttp client you must have installed the package with the `aiohttp` extra)r   )r}   _kwargss     r~   r   r    s    wxxr   r{   N)r  r   r   r   )r   r   r   r   r   r   r{   r   r~   r  r    s    	yr   c                      \ rS rSrSS jrSrg)AsyncHttpxClientWrapperi  c                    U R                   (       a  g  [        R                  " 5       R                  U R	                  5       5        g ! [
         a     g f = frz   )r'  asyncioget_running_loopcreate_taskacloser-  r   s    r~   r3  AsyncHttpxClientWrapper.__del__  s@    >>	$$&224;;=A 		s   2A 
AAr{   Nr5  r6  r{   r   r~   r  r    s    r   r  c                    ^  \ rS rSr% S\S'   SrS\S'   SrS\S'   SrS	\S
'   \\	SSSSS.                   S<U 4S jjjr
S=S jrS>S jrS?S jr        S@S jr    SAS jr    SBS jr\SS.       SCS jj5       r\          SDS j5       r\SS.         SES jj5       rSSS.         SES jjrSFS jrSGS jrSSS.       SHS jjr          SIS  jrSS!.             SJS" jjr        SKS# jr\0 SS$.         SLS% jj5       r\0 S&.           SMS' jj5       r\0 SS(.           SNS) jj5       r0 SSS*.           SNS+ jjr\SSS0 SS,.               SOS- jj5       r\SSS0 S..                 SPS/ jj5       r\SSS0 SS0.                 SQS1 jj5       rSSS0 SSS2.                 SQS3 jjrSSS0 S..             SRS4 jjrSSS0 S..             SRS5 jjrSS0 S6.           SSS7 jjrS0 S8S9.             STS: jjrS;rU =r $ )Ur   i  zhttpx.AsyncClientr   Nztype[AsyncStream[Any]] | Noner  AsyncCallNext | Noner9  r  r:  r;  c       	          > [        U5      (       d.  U(       a!  UR                  [        :w  a  UR                  nO[        nUb6  [	        U[
        R                  5      (       d  [        S[        U5       35      e[        U	=(       d    S5      n	U	(       a  [        U	5        [        T
U ]1  UU[        [        U5      UUUU	US9  U R                  5       U l        U=(       d    [#        U[        [        U5      S9U l        g )NzTInvalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got r{   )r  r  r  r
  r  r  r  r  r>  )r:   r  r?  rI   r   r   AsyncClientr   rg  r  ra   r!  r   r   r*   rA  r9  r  r   )r}   r  r  r  r
  r  r<  r  r  r  r   s             r~   r   AsyncAPIClient.__init__  s        {226KK%--)":k5CTCT+U+Ufgklwgxfyz  :+,
%j1'*#%)!(C 	 
	
 "&!=!=!?" 
&='*'
r   c                .    U R                   R                  $ rz   rD  r   s    r~   r'  AsyncAPIClient.is_closed  rF  r   c                T   #    U R                   R                  5       I Sh  vN   g N7f)rH  N)r   r#  r   s    r~   r2  AsyncAPIClient.close  s     
 ll!!###s   (&(c                   #    U $ 7frz   r{   r   s    r~   
__aenter__AsyncAPIClient.__aenter__   s
        c                @   #    U R                  5       I S h  vN   g  N7frz   rO  rP  s       r~   	__aexit__AsyncAPIClient.__aexit__  s      jjls   c                   #    U$ 7frW  r{   rX  s     r~   rY  AsyncAPIClient._prepare_options  s     
 r1  c                   #    g7fr\  r{   r  s     r~   r]  AsyncAPIClient._prepare_request  s
         Frb  c                  #    g 7frz   r{   rd  s       r~   r   AsyncAPIClient.request  s
      r9  c                  #    g 7frz   r{   r`  s        r~   r   r;  &  s
      r9  )r  c                  #    g 7frz   r{   r`  s        r~   r   r;  0  s
      %(r9  re  c          
       #    U R                   c!  [        [        5      " 5       I S h  vN U l         U R                  X5      n[	        U5      nUR
                  c3  UR                  R                  5       S:w  a  U R                  5       Ul        U R                  nUR                  U R                  5      n[        US-   5       GH  nXx-
  n	 UcS  U R                  [	        U5      X8S9I S h  vN u  pU
R                  (       a  U R                  UUU
UUUS9I S h  vN s  $ O[!        [	        U5      UUUUS9nU" U5      I S h  vN n[#        U[$        5      (       a  UR&                  R                  (       a6  [)        [*        [,        [.        4   U R1                  X5      I S h  vN 5      s  $ UR&                  n
 U	S:  a\  U R=                  U
5      (       aF  U
R6                  (       d  U
R9                  5       I S h  vN   U R;                  UUUU
S9I S h  vN   GMZ  U
R6                  (       d  U
R?                  5       I S h  vN   U RA                  U
5      S e   [C        S5      e GN= GN} GNQ GN+ N! [2         av  nU R5                  U5      u  nnU	S::  d  U(       d  e Ub*  UR6                  (       d  UR9                  5       I S h  vN    U R;                  UUUUS9I S h  vN     S nAGM+  S nAff = f N N N7frh  )"r  r9   get_platformr  r>   r?  r`  r@  r  r9  r  r
  rk  rl  rm  rn  rD   r   rF   r  r   r   r,   rm   ro  r-  r  r'  r#  rp  r  areadr1  r   rq  s                    r~   r   r;  :  s     >>! $,L#9#;;DN..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)&&#33D4D4DE";?3M + ;*=/3/D/D"=1& 0E 0 *&H  **%)%;%;$+$,%-#)'1*7 &< &    + ) *= 9 '%#-&3G ).g"6F%fo>>&BVBVBaBa#!)]":;4CcCcdjCt=t    &33H& !1$););H)E)E))"//+++++"/ +)%	 ,     %%nn&&&77AtKC 4F MNNe <(*   #7 >u  040L0LS0Q-o$)".7P7P)00222++"/ +),	 ,    ( , 's   %K;I$B"K;I2*I'+.I2I*I2K;!!I2I-AI2"I0#I2*K;-I29AK;:K5;K;K7+K; K9$K;'I2*I2-I20I22
K2<A	K-KK- K#!K-&K;-K22K;7K;9K;c                   ^  T R                   (       d  gSU 4S jjnSS jnUn[        T R                   5       H  nU" XC5      nM     U$ )ry  Nc                "  >#    [        U 5      nTR                  XR                  U R                  S9I S h  vN u  p#[	        STR                  U R                  UUU R                  U R                  U R                  S9I S h  vN 5      $  NT N
7f)Nri  AsyncAPIResponse[Any]rj  r|  r~  s       r~   r  <AsyncAPIClient._build_middleware_chain.<locals>.base_handler  s     1#6G'+'<'<

#:K:K (= ( "H ',,KK$%::"~~"%"3"3 -  
 
"
s"   3BBABB
	BBc                ~   ^^ [        U [        5      (       a  U R                  O[        [        U 5      mSUU4S jjnU$ )Nc                2   >#    T" U T5      I S h  vN $  N7frz   r{   r  s    r~   r  DAsyncAPIClient._build_middleware_chain.<locals>.wrap.<locals>.handle  s     $S)4444s   r  rD   r   rC  )r   r[   handle_asyncr   r_   r  s    ` @r~   r  4AsyncAPIClient._build_middleware_chain.<locals>.wrap  s>     j*55 ''1:> 5 5 Mr   rH  )r  r]   r  r\   r   r\   r  r  s   `    r~   rA  &AsyncAPIClient._build_middleware_chain  sF     	"
	  ,d../E&E 0r   c                  #    [        U[        5      (       d  U$ [        SU5      n[        U5      nUS:X  d  US:X  a  U$ US:X  a  U R	                  U5      $ [        UR                  5      (       a  U$ UR                  5       I Sh  vN $  N7f)a  Convert the `AsyncAPIResponse` returned by the middleware chain into the value the original caller expects.

The middleware chain operates on `AsyncAPIResponse` objects; the original caller
may have asked for a parsed model (the default), a `LegacyAPIResponse`
(`.with_raw_response`) or the `AsyncAPIResponse` wrapper itself
(`.with_streaming_response` / a `cast_to` that is itself a response class).
rC  r  r  r  Nr  r  s        r~   ro  *AsyncAPIClient._finalize_middleware_result  s      &/22 M/8+G4
*"8O33H==$W__55O^^%%%%s   BBB
Br   ri  c                 #    U R                  U5      I Sh  vN nU R                  XS9nU R                  U5      I Sh  vN   0 nU R                  b  U R                  US'   UR                  b  UR                  US'   [
        R                  SUR                  UR                  5         U R                  R                  " U4SU=(       d    U R                  US90UD6I Sh  vN n[
        R                  SUR                  UR                  UR&                  UR(                  UR*                  5        [
        R                  SUR*                  R-                  S5      5        Xa4$  GNN GN) N! [        R                   a#  n[
        R                  SS	S
9  [        US9UeSnAf[         a9  n[!        U["        5      (       a  e [
        R                  SS	S
9  [%        US9UeSnAff = f7f)r  Nr6  r  r	  r  r  r  r  Tr  r  r  r  r  r  r  s           r~   rl  AsyncAPIClient._attempt_request  s     --g66%%g%K##G,,, "'!--F6N##/)0)A)AF%&		/M	?!\\..S!B!B7!B!S  H  			-NNKK  ""	
 			"H$4$4$8$8$FG  S 7 	-
 %% 	<II:TIJ!'2; 	?#~..II-I=$W53>	?sd   G(E%'G(E( A)G(*8E- "E+#E- 'A?G((G(+E- -G%FG%,4G  G%%G(c               D  #    X!-
  nUS:X  a  [         R                  S5        O[         R                  SU5        U R                  XSU(       a  UR                  OS 5      n[         R	                  SUR
                  U5        [        R                  " U5      I S h  vN   g  N7fr  )re   rd  r  r9  r   rt   anyior  r  s          r~   rp  AsyncAPIClient._sleep_for_retry  sz      (7!IIn%II'):;//0A`hHL\L\nrs7gNkk'"""s   BB BB r6  c                 #    UR                   R                  R                  [        5      S:X  a  [	        [
        [        UU UUUUUS95      $ [        U5      =(       d    Un[        R                  " U5      (       a  [        U[        5      (       a  U(       a7  [        UR                   R                  R                  [        5      5      (       aU  [        U[        5      (       d  [        S[         SU 35      e[	        SU5      n[	        SU" UU [        U5      UUUUS95      $ U[         R"                  :X  a  [	        [
        U5      $ [        UU [	        SU5      UUUUS9n	[        UR                   R                  R                  [        5      5      (       a  [	        [
        U	5      $ U	R%                  5       I S h  vN $  N7f)Nr  r  r  r  r  r,   r  )r   r9  r^  rM   r   r,   rd   r   r  r  r  rF   r   rG   r   rH   r   r  r  r  s
             r~   rn   AsyncAPIClient._process_response)  s     ##''(;<F! #!)#"/  G$/ OOF##6?33 tH$4$4$<$<$@$@AT$UVVf&677"CDTCUU`ag`h ijj <gFL 1,?!)#"/  enn$	8,,'*G4!'
   ((,,-@ABB	<00!''))))s   F9G;G <Gc                    [        XX!S9$ )N)r   r   r   r   )r   )r}   r   r   r   s       r~   r    AsyncAPIClient._request_api_listm  s     TTWWr   r  c                  #    g 7frz   r{   r  s        r~   r^  AsyncAPIClient.getu  s
      r9  r  c                  #    g 7frz   r{   r  s         r~   r^  rX    s
      r9  r  c                  #    g 7frz   r{   r  s         r~   r^  rX    s
      %(r9  r  c               p   #    [         R                  " SSUS.UD6nU R                  X&XES9I S h  vN $  N7fr  )rA   r  r   r  s          r~   r^  rX    s:      #,,OEtOwO\\'\VVVVs   -646)r%  rS  r_  r   r  c                  #    g 7frz   r{   )r}   r  r  r%  rS  r_  r   r  s           r~   r  AsyncAPIClient.post  s
      r9  r  c                  #    g 7frz   r{   	r}   r  r  r%  rS  r_  r   r  r  s	            r~   r  r]    s
      r9  )r%  rS  r_  r   r  c                  #    g 7frz   r{   r_  s	            r~   r  r]    s
      %(r9  )r%  rS  r_  r   r  r  c          
     <  #    Ub  Ub  [        S5      eUb  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " S	SXU[        U5      I S h  vN S.UD6n	U R                  X)XxS9I S h  vN $  N! N7fr  
r   r   rq  r  r  r  rA   r  r%   r   )
r}   r  r  r%  rS  r_  r   r  r  r  s
             r~   r  r]    s       3PQQ!4QRRdE""MMM"	 #,, 
tWRfglRmLm
qx
 \\'\VVV MnVs$   A4B6B7BBBBc          
     @  #    Ub  Ub  [        S5      eUb  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " SSUUU[        U5      I S h  vN S.UD6nU R                  X'5      I S h  vN $  N" N7fr  rb  r  s           r~   r  AsyncAPIClient.patch  s       3PQQ!4QRRdE""MMM"	 #,, 
,U33
 
 \\'000 4 1s$   A5B7B8BBBBc          
     >  #    Ub  Ub  [        S5      eUb  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " SSXU[        U5      I S h  vN S.UD6nU R                  X'5      I S h  vN $  N" N7fr  rb  r  s           r~   r  AsyncAPIClient.put	  s       3PQQ!4QRRdE""MMM"	 #,, 
dGQefkQlKl
pw
 \\'000 Lm0s$   A4B6B7BBBBr  c                  #    Ub  Ub  [        S5      e[        U[        5      (       a  [        R                  " S[
        SS9  [        R                  " SSXUS.UD6nU R                  X&5      I S h  vN $  N7fr  r  r  s          r~   r  AsyncAPIClient.delete	  sx       3PQQdE""MMM"	 #,,sH$`gskrs\\'0000s   A/A81A62A8r^  r  c               X    [         R                  " SXaUS.UD6nU R                  X#U5      $ r  r  r  s           r~   r  AsyncAPIClient.get_api_list4	  r  r   )r   r9  r  )r  r   r  r  r  r   r
  r	  r  r  r<  zhttpx.AsyncClient | Noner  r  r  r  r  r  r   r   r   r5  r  r  r  r   r  )
r  r  r   rA   r  r  r  type[_AsyncStreamT]r   rm   )
r  r  r   rA   r  r   r  type[_AsyncStreamT] | Noner   ResponseT | _AsyncStreamT)r   r&  r  r  r	  r
  )r   r   r   r   r   rA   r   AsyncPaginator[_T, AsyncPageT]r  )r  r   r  r  r   r2   r  r  r  rk  r   rm   )r  r   r  r  r   r2   r  r   r  rl  r   rm  )r  r   r  r  r%  r  rS  AsyncBinaryTypes | Noner_  r  r   r2   r  r  r   r,   )r  r   r  r  r%  r  rS  ro  r_  r  r   r2   r  r  r  rk  r   rm   )r  r   r  r  r%  r  rS  ro  r_  r  r   r2   r  r   r  rl  r   rm  )r  r   r  r  r%  r  rS  ro  r_  r  r   r2   r   r,   )r  r   r  r  r%  r  rS  ro  r   r2   r   r,   )r  r   r   r   r   r   r%  r  r   r2   r`  r   r   rn  )!r   r   r   r   r   r  r9  r:  rK   r6   r   r'  r2  r/  r3  rY  r]  r   r   rA  ro  rl  rp  rn  r   r^  r  r  r  r  r  r   r,  r-  s   @r~   r   r     s   9=6=.2+2"K" /5>0437487;6
 6
 	6

 &*6
 6
 36
 .6
 16
 26
 56
 
6
 6
p&$, " %	
 
$ 
		 
	  "'  %
  
    %
  ( 
   26( ( %(
 ( /( 
#( ( 15]O ]O %]O
 ]O /]O 
#]O~*X&@ 8!$8! 	8!
 8! 
48!t# ##25#@S#_t#	#, B* !B* %	B*
 !B* B* FB* B* 
B*HXX X %	X
 
(X  #%!& !	
    
   #% !	
    ( 
   #%15(( !	(
  ( ( /( 
#( ( #%15
W
W !	
W
  
W 
W /
W 
#
W  !+/%)"$!&

 !	

 
 )
 #
  
 
 

 
  !+/%)"$ !	
  ) #    ( 
   !+/%)"$15(( !	(
 ( )( #(  ( ( /( 
#( ($ !+/%)"$15WW !	W
 W )W #W  W W /W 
#WB !+/%)"$11 !	1
 1 )1 #1  1 
1H !+/%)"$11 !	1
 1 )1 #1  1 
1> !+/"$11 !	1
 1 )1  1 
16 !"$99 	9
 9 9  9 9 
(9 9r   r   )rm  extra_headersextra_query
extra_bodyr?  r  r   c                    0 nUb  XS'   Ub  [        [        U5      US'   U b  XS'   Ub  0 UR                  S0 5      EUEUS'   [        U[        5      (       d  XWS'   Ub  XGS'   [        U5      (       a  XgS'   U$ )zECreate a dict of type RequestOptions without keys of NotGiven values.r9  re  rv   r  r?  r   )r   r-   r^  r   r+   r:   )rm  rp  rq  rr  r?  r  r   r   s           r~   make_request_optionsrt  B	  s     !G *	 $Z <!Hw{{8R8HKHgx(($	"%4!"!,Nr   c                      \ rS rSrSS jrSrg)rl  ig	  c                    g)NTr{   r   s    r~   __bool__ForceMultipartDict.__bool__h	  s    r   r{   Nr   )r   r   r   r   rw  r   r{   r   r~   rl  rl  g	  s    r   rl  c                  2    \ rS rSrSS jr\SS j5       rSrg)OtherPlatformil	  c                    Xl         g rz   namer}   r}  s     r~   r   OtherPlatform.__init__m	      	r   c                     SU R                    3$ )NzOther:r|  r   s    r~   __str__OtherPlatform.__str__p	      		{##r   r|  Nr}  r   r   r   r   r   r   r   r   r   r   r  r   r{   r   r~   rz  rz  l	       $ $r   rz  )MacOSLinuxWindowsFreeBSDOpenBSDiOSAndroidUnknownc                 n    [         R                  " 5       R                  5       n [         R                   " 5       R                  5       nSU;   d  SU;   a  gU S:X  a  gU S:X  a  gS	U;   a  g
U S:X  a$  [        R
                  " 5       nUS:X  a  gUS:X  a  ggU(       a  [        U5      $ g! [         a     gf = f)Nr  iphoneipadr  r  r  windowsr  androidr  linuxfreebsdr  openbsdr  r  )r  systemr@  r-  distror  rz  )r  platform_name	distro_ids      r~   r?  r?  	  s    "((* ))+113 = Fm$;
 M! IIK		!	!]++G  s   AB' '
B43B4)maxsizec                   SU [        U=(       d
    [        5       5      [        [        5       5      [        5       [	        5       S.$ )Npython)zX-Stainless-LangzX-Stainless-Package-VersionzX-Stainless-OSzX-Stainless-ArchzX-Stainless-RuntimezX-Stainless-Runtime-Version)r   r?  get_architectureget_python_runtimeget_python_version)r  r  s     r~   r  r  	  s;     %'.h8,.9 0 2313'9'; r   c                  2    \ rS rSrSS jr\SS j5       rSrg)	OtherArchi	  c                    Xl         g rz   r|  r~  s     r~   r   OtherArch.__init__	  r  r   c                     SU R                    3$ )Nzother:r|  r   s    r~   r  OtherArch.__str__	  r  r   r|  Nr  r   r  r{   r   r~   r  r  	  r  r   r  )x32x64armarm64unknownc                 N     [         R                  " 5       $ ! [         a     gf = fNr  )r  python_implementationr-  r{   r   r~   r  r  	  s(    --//     
$$c                 N     [         R                  " 5       $ ! [         a     gf = fr  )r  python_versionr-  r{   r   r~   r  r  	  s(    &&(( r  c                      [         R                  " 5       R                  5       n U S;   a  gU S:X  a  gU S:X  a  g[        R
                  S::  a  gU (       a  [        U 5      $ g! [         a     gf = f)	Nr  )r  aarch64r  r  x86_64r  l        r  )r  machiner@  r-  r  r  r  )r  s    r~   r  r  	  sz    ""$**, && %( {{e!!)  s   #A" "
A/.A/c                    U R                  5        VVs0 s H  u  p[        U[        5      (       a  M  X_M      snn$ s  snnf )z5Drop entries whose value is an `Omit` removal marker.)r   r   r'   )mappingr  r  s      r~   r=  r=  	  s0    )0X:3
5RV@WJCJXXXs   ==c                     [        0 U EUE5      $ )zMerge two mappings of the same type, removing any values that are instances of `Omit`.

In cases with duplicate keys the second mapping takes precedence.
)r=  )obj1obj2s     r~   rf  rf  	  s     '$'$'((r   zx-stainless-helperc                   S U R                  S5       5        Vs/ s H  o"(       d  M  UPM     nnS UR                  S5       5        H$  nU(       d  M  X#;  d  M  UR                  U5        M&     SR                  U5      $ s  snf )a  Append `addition` to a comma-separated header value, skipping tokens that
are already present so the same helper isn't recorded twice.

Values are joined with `", "`, the same format `lib._stainless_helpers` uses
when it builds the `x-stainless-helper` header.
c              3  @   #    U  H  oR                  5       v   M     g 7frz   r+  .0r  s     r~   	<genexpr>'_append_header_value.<locals>.<genexpr>
  s     !M9L#))++9L   ,c              3  @   #    U  H  oR                  5       v   M     g 7frz   r  r  s     r~   r  r  
  s     =)<#))++)<r  z, )rn  r  join)r  additiontokentokenss       r~   _append_header_valuer  
  sq     "N9L!MW!MQVe!MFW=)<=5U(MM%  > 99V	 Xs
   
BBc                 >   0 nU  H  nUR                  5        Hs  u  p4UR                  5       nU[        ;  a  XAU'   M%  UR                  U5      n[	        U[
        5      (       a$  [	        U[
        5      (       a  [        Xd5      X'   Mo  XAU'   Mu     M     [        SU5      $ )a  Merge header mappings, with later mappings taking precedence on a key
clash, exactly like `_merge_mappings`.

The exception is the headers in `_APPEND_HEADERS`: those keys are matched
case-insensitively (and stored under their lowercase form) and their string
values accumulate into a single comma-separated, deduplicated value instead
of the later one overriding the earlier one.

`Omit` values are preserved (they mark a header for removal and are only
dropped at request-build time, e.g. with `_strip_omit`); the
`Dict[str, str]` return type is the same fudge the rest of the header
plumbing already uses for `Omit`-bearing header mappings.
r  )r   r@  _APPEND_HEADERSr^  r   r   r  r   )mappingsmergedr  r  r  r@  r  s          r~   r:  r:  
  s     +-F!--/JCIIKEO+#s zz%(H(C((Zs-C-C 4X E !&u * "  &))r   c                    U R                   R                  n[        U5      (       a  UR                  [        5      OSn[        U[        5      (       a  US;   a  U$ g)zLThe raw-response mode the original caller entered the middleware chain with.N)r  r  r  )r   r9  r:   r^  rM   r   r   )r   r9  modes      r~   r  r  8
  sI    oo%%G/7/@/@7;;*+dD$)B!Br   c                    [        U R                  5      n[        UR                  5      (       a  [	        UR                  5      O0 nUR                  [        5      S;  a	  SU[        '   X!l        U$ )a`  Build the options the base middleware handler hands to `_attempt_request()`.

Returns a copy so that mutations made by the request pipeline never leak back
into the `APIRequest` between separate `call_next(...)` invocations, with the
raw-response header set so that the pipeline produces an `APIResponse` /
`AsyncAPIResponse` for the middleware chain.
)r  r  r  )r>   r   r:   r9  r   r^  rM   )r   r   r9  s      r~   r}  r}  B
  sZ     )G'/'@'@d7??#bG{{&'/@@ (-#$ONr   c                    [        U 5      =(       d    U n[        R                  " U5      =(       a    [        U[        5      $ )zFWhether the given `cast_to` asks for the `APIResponse` wrapper itself.)r   r  r  r  rF   )r  r  s     r~   r  r  X
  s,     +GF??6"Jz&/'JJr   )rm  Query | Nonerp  zHeaders | Nonerq  r  rr  r  r?  r  r  z'float | httpx.Timeout | None | NotGivenr   zPostParser | NotGivenr   r2   )r   Platform)r  r   r  zPlatform | Noner   r  r   )r   Arch)r  Mapping[_T_co, Union[_T, Omit]]r   Dict[_T_co, _T])r  r  r  r  r   r  )r  r   r  r   r   r   )r  zMapping[str, Union[str, Omit]]r   r  )r   rD   r   z'Literal['raw', 'stream', 'true'] | None)r   rD   r   rA   )r  r   r   r   )
__future__r   r  rx   r  r  r  r  r   r  rb  r  r  email.utilstypesr   r   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   typing_extensionsr   r   r   rQ  r   r  r   r   r   r   r   r    r!   _qsr#   _filesr$   r%   _typesr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   _utilsr7   r8   r9   r:   r;   r<   _compatr=   r>   r?   _modelsr@   rA   rB   rC   _requestrD   	_responserE   rF   rG   rH   
_constantsrI   rJ   rK   rL   rM   rN   rO   
_streamingrP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r  rZ   r[   r\   r]   r^   r_   r`   ra   _utils._jsonrb   _utils._httpxrc   _legacy_responserd   	getLoggerr   re   r   rf   rh   ri   rj   rl   rm   httpx._configrn   r?  ImportErrorrq   r   r   r   r   r@  r(  r  r  r  r  DefaultHttpxClientr0  r   r  httpx_aiohttpHttpxAiohttpClientr  DefaultAsyncHttpxClientDefaultAioHttpClientr  r   rt  r   rl  rz  r  r?  r  r  r  r  r  r  r=  rf  	frozensetr  r  r:  r  r}  r  r{   r   r~   <module>r     s   " 
                 ( < ;     ? ?     8    & P O 8 8 U U      I H 	 	 	 ( 2 /''1^ 1 K':;	\)=>
 T]4(:VC[1{3/?@ 3-Q0B 0Bf:6|WR[ :6z.a8B< .ab$WR^, $N&gHRL'"+ &gR uU\\5CTCT5T/UV+5kRUFV9V3WXI878 I8X.#%,, .#b  -/ D
9Ju||VC[89 D
9N.#u00 .#b'' @ @ ' #// !,,_60	5 	G
9Z 1 1;s3C CD G
9X $( $""&7@)2"" "" 	"
 "  " 5" '" "Jc4i 
$ $ 		
'T 4 $ $ Y GHHI4Y
)
))
)) )" 123 *F,KiN  - '-P0  yy 1 1 yys$   8O <O& O#"O#&PP