
     `i6                      U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dl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mZ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'Z'd dl(Z(d dl)Z)d dl*Z*d dl(m+Z+m,Z,m-Z-m.Z. d dl*m/Z/ d	d
l0m1Z1 d	dl2m3Z3 d	dl4m5Z5m6Z6 d	dl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZH d	dlImJZJmKZKmLZLmMZMmNZNmOZO d	dlPmQZQmRZRmSZS d	dlTmUZUmVZVmWZWmXZX d	dlYmZZZm[Z[m\Z\m]Z] d	dl^m_Z_m`Z`maZambZbmcZcmdZdmeZe d	dlfmgZgmhZhmiZimjZj d	dl1mkZkmlZlmmZmmnZn d	dlompZp d	dlqmrZr d	dlsmtZt  e
ju        ev          Zwdexd<    edd          Zy edd          Zz ed          Z{ ed d!"          Z| ed#ege                   Z} ed$eie                   Z~er	d d%lmZ eZn	 d d%lmZ n# e$ r  e<d&          ZY nw xY w G d' d(          Z G d) d*eUee{                   Z G d+ d,ee{         ee{                   Z G d- d.ee{ezf                   Z G d/ d0ee{         ee{                   Z ed1ee(j        e(j        f                   Z ed2eege         eie         f                   Z G d3 d4eeef                   Z G d5 d6e(j                  Zere(j        ZneZ G d7 d8e          Z G d9 d:ee(j        ege         f                   Z G d; d<e(j                  Z	 d dlZ G d= d>ej                  Zn# e$ r  G d? d>e(j                  ZY nw xY were(j        Z	 e(j        ZneZeZ G d@ dAe          Z G dB dCee(j        eie         f                   ZdddddeHeHdDdodTZ G dU dVeedf                   Z G dW dX          Zeee$dY         f         Zdpd[Z eNd\          dqdb            Z G dc dd          Zeee$de         f         ZdrdfZdrdgZdsdiZdtdnZdS )u    )annotationsN)TracebackType)random)TYPE_CHECKINGAnyDictListTypeTupleUnionGenericMappingTypeVarIterableIteratorOptional	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)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)APIStatusErrorAPITimeoutErrorAPIConnectionErrorAPIResponseValidationError)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                      e Zd ZU dZded<   ded<   ded<   edd            Zedd            Zedd            ZeeedddZedd            Z	dS )PageInfozStores 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jsonr   returnNonec                   d S N selfrg   s     j/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/anthropic/_base_client.py__init__zPageInfo.__init__   	    
 s    r'   c                   d S ro   rp   )rr   ri   s     rs   rt   zPageInfo.__init__   ru   rv   r%   c                   d S ro   rp   )rr   rk   s     rs   rt   zPageInfo.__init__   ru   rv   rg   rk   ri   c               0    || _         || _        || _        d S ro   ry   )rr   rg   rk   ri   s       rs   rt   zPageInfo.__init__   s     	rv   strc                    | j         r| j        j         d| j          dS | j        r| j        j         d| j         dS | j        j         d| j         dS )Nz(url=)z(json=z(params=)rg   	__class____name__rk   ri   rr   s    rs   __repr__zPageInfo.__repr__   sr    8 	@n-??DH????9 	Bn-AATYAAAA.)AA4;AAAArv   N)rg   r   rl   rm   )ri   r'   rl   rm   )rk   r%   rl   rm   )rg   rf   rk   rj   ri   rh   rl   rm   rl   r{   )
r   
__module____qualname____doc____annotations__r   rt   r5   r   r   rp   rv   rs   re   re   {   s          
    X    X    X ( )#,	 	 	 	 	 	 B B B XB B Brv   re   c                  x    e Zd ZU dZ e            Zded<    e            Zded<   ddZdd
Z	ddZ
ddZddZdS )BasePagea<  
    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
    r@   _optionsType[_T]_modelrl   boolc                ^    |                                  }|sdS |                                 d uS )NF)_get_page_itemsnext_page_info)rr   itemss     rs   has_next_pagezBasePage.has_next_page   s7    $$&& 	5""$$D00rv   Optional[PageInfo]c                    d S ro   rp   r   s    rs   r   zBasePage.next_page_info   s      rv   Iterable[_T]c                    d S ro   rp   r   s    rs   r   zBasePage._get_page_items   s    rv   rg   r   httpx.QueryParamsc                    t          j        t          t          | j        j                                                |j                  S ro   )httpxQueryParamsr   r   r   ri   mergerq   s     rs   _params_from_urlzBasePage._params_from_url   s2     c4=+?!@!@AAGG
SSSrv   infore   c                   t          | j                  }|                                 t          |j        t
                    si |j        |j        |_        |S t          |j        t
                    sd|                     |j                  }|j                            |          }t          |j                  |_        t          |          |_        |S t          |j        t
                    sst          |j                  st          d          |j        si |j        |_        n8t          |j                  st          d          i |j        |j        |_        |S t          d          )N)ri   z*Pagination is only supported with mappingszUnexpected PageInfo state)r=   r   _strip_raw_response_header
isinstanceri   r*   rg   r   	copy_withdictr{   rk   r;   	TypeError	json_data
ValueError)rr   r   optionsri   rg   s        rs   _info_to_optionszBasePage._info_to_options   sV   T]++**,,,$+x00 	>>$+>GNN$(H-- 	**4844F($$F$33C!#*--GNc((GKN$)X.. 	di(( N LMMM$ G$1tyM!!!'"344 R#$PQQQ$Fw'8$FDI$F!N4555rv   Nrl   r   )rl   r   )rl   r   )rg   r   rl   r   )r   re   rl   r@   )r   r   r   r   r   r   r   r   r   r   r   r   r   rp   rv   rs   r   r      s         	 	 %0KMMH1111"{}}F$$$$1 1 1 1 8777   T T T T6 6 6 6 6 6rv   r   c                  X    e Zd ZU  ej                    Zded<   dd
ZddZddZ	ddZ
dS )BaseSyncPageSyncAPIClient_clientclientmodelr   r   r@   rl   rm   c                n    t           st          | dd           i | _        || _        || _        || _        d S N__pydantic_private__r<   getattrr   r   r   r   )rr   r   r   r   s       rs   _set_private_attributesz$BaseSyncPage._set_private_attributes   ?      	+/Et!L!L!T(*D%rv   Iterator[_T]c              #  n   K   |                                  D ]}|                                D ]}|V  d S ro   
iter_pagesr   rr   pageitems      rs   __iter__zBaseSyncPage.__iter__  sT      OO%% 	 	D,,..  



	 	rv   rr   rZ   Iterator[SyncPageT]c              #  l   K   | }	 |V  |                                 r|                                }nd S 0ro   r   get_next_pagerr   r   s     rs   r   zBaseSyncPage.iter_pages  sJ      	JJJ!!## ))++	rv   c                    |                                  }|st          d          |                     |          }| j                            | j        | j        |          S NzYNo next page expected; please check `.has_next_page()` before calling `.get_next_page()`.)r   r   r   RuntimeErrorr   r   _request_api_listr   r~   rr   r   r   s      rs   r   zBaseSyncPage.get_next_page  sg    ""$$ 	k   ''--|--dkX_-```rv   N)r   r   r   r   r   r@   rl   rm   )rl   r   )rr   rZ   rl   r   )rr   rZ   rl   rZ   )r   r   r   pydanticr   r   r   r   r   r   r   rp   rv   rs   r   r      s         1X133G3333       *   
   a a a a a arv   r   c                  .    e Zd ZddZddZddZddZdS )AsyncPaginatorr   AsyncAPIClientr   r@   page_clsType[AsyncPageT]r   r   rl   rm   c                >    || _         || _        || _        || _        d S ro   )r   r   r   	_page_cls)rr   r   r   r   r   s        rs   rt   zAsyncPaginator.__init__  s$     !rv    Generator[Any, None, AsyncPageT]c                N    |                                                                  S ro   )	_get_page	__await__r   s    rs   r   zAsyncPaginator.__await__)  s    ~~))+++rv   r\   c                    K   d fd}| j         _         j                             j         j                    d {V S )Nrespr\   rl   c                V    |                      j        j        j                   | S )N)r   r   r   )r   r   r   r   )r   rr   s    rs   _parserz)AsyncPaginator._get_page.<locals>._parser-  s6    ((k| )   
 Krv   )r   r\   rl   r\   )r   post_parserr   requestr   )rr   r   s   ` rs   r   zAsyncPaginator._get_page,  s_      	 	 	 	 	 	 %,!\))$.$-HHHHHHHHHrv   AsyncIterator[_T]c               `   K   t          t          |  d {V           }|2 3 d {V }|W V  6 d S ro   )r   r\   r   s      rs   	__aiter__zAsyncPaginator.__aiter__9  sg      JJJJJJ
 
  	 	 	 	 	 	 	$JJJJJ $$s   -N)
r   r   r   r@   r   r   r   r   rl   rm   )rl   r   )rl   r\   rl   r   )r   r   r   rt   r   r   r   rp   rv   rs   r   r     sh        
" 
" 
" 
", , , ,I I I I     rv   r   c                  X    e Zd ZU  ej                    Zded<   dd
ZddZddZ	ddZ
dS )BaseAsyncPager   r   r   r   r   r   r@   rl   rm   c                n    t           st          | dd           i | _        || _        || _        || _        d S r   r   )rr   r   r   r   s       rs   r   z%BaseAsyncPage._set_private_attributesF  r   rv   r   c               |   K   |                                  2 3 d {V }|                                D ]}|W V  $6 d S ro   r   r   s      rs   r   zBaseAsyncPage.__aiter__S  sp      //++ 	 	 	 	 	 	 	$,,..  




 ,++s   ;rr   r\   AsyncIterator[AsyncPageT]c               z   K   | }	 |W V  |                                 r|                                 d {V }nd S 7ro   r   r   s     rs   r   zBaseAsyncPage.iter_pagesX  s^      	JJJJ!!## !//11111111	rv   c                   K   |                                  }|st          d          |                     |          }| j                            | j        | j        |           d {V S r   r   r   s      rs   r   zBaseAsyncPage.get_next_pagea  s}      ""$$ 	k   ''--\33DKdn^e3fffffffffrv   N)r   r   r   r   r   r@   rl   rm   r   )rr   r\   rl   r   )rr   r\   rl   r\   )r   r   r   r   r   r   r   r   r   r   r   rp   rv   rs   r   r   C  s         2h244G4444          
   g g g g g grv   r   _HttpxClientT_DefaultStreamTc                     e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   dZded<   eedddd`dZdadZdbd#Z	dcd(Z
d)d*ddd/Zded0Zdfd2Zd)d*dgd4Zdhd8Zdid;Zdjd=Zdkd?ZedldA            ZedmdC            ZedndE            ZedodG            ZedpdH            ZdqdKZedrdL            ZedsdM            Zej        dtdO            ZdudQZdvdVZdwdxdZZ	 dwdyd]Z dzd^Z!drd_Z"dS ){
BaseClientr   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)r   r   custom_headerscustom_queryversionbase_url	str | URLfloat | Timeout | Noner   Mapping[str, str] | Noner   Mapping[str, object] | Nonerl   rm   c                   || _         |                     t          |                    | _        || _        || _        |pi | _        |pi | _        || _        d | _	        d | _
        |t          d          d S )Nzmax_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   	_platformr   )rr   r   r   r   r   r   r   r   s           rs   rt   zBaseClient.__init__z  s      55c(mmDD&-3)/R+F(#' *. e   rv   rg   c                v    |j                             d          r|S |                    |j         dz             S )N   /raw_path)r  endswithr   rq   s     rs   r   z"BaseClient._enforce_trailing_slash  s:    <  && 	J}}clT&9}:::rv   responsehttpx.ResponserR   c                   |j         r|j        sd }d|j         }nZ|j                                        }|}	 t          j        |          }d|j         d| }n# t          $ r |p	d|j         }Y nw xY w|                     |||          S )NzError code: z - )bodyr  )		is_closedis_stream_consumedstatus_codetextstriprk   loads	Exception_make_status_error)rr   r  r  err_msgerr_texts        rs    _make_status_error_from_responsez+BaseClient._make_status_error_from_response  s      	Lh&A 	L D;X%9;;GG}**,,HDLz(++H)=HH$HH L L L"K&KX5I&K&KL &&wTH&MMMs   !A A32A3r  r  object_exceptions.APIStatusErrorc                   t                      ro   )NotImplementedError)rr   r  r  r  s       rs   r  zBaseClient._make_status_error  s     "###rv   r   retries_takenr   r@   r  httpx.Headersc               `   |j         pi }t          dt          |j        t                    rt          |j        j                  nt          |j                  i| j        |          }|                     ||           t          j
        |          }| j        }|r|j        r||vr
|j        ||<   d |D             }d|vrt          |          |d<   d|vrXt          |j        t                    r| j        n|j        }t          |t                    r|j        }|t          |          |d<   |S )Nzx-stainless-timeoutc                6    g | ]}|                                 S rp   )lower).0headers     rs   
<listcomp>z-BaseClient._build_headers.<locals>.<listcomp>  s     LLL6LLLrv   zx-stainless-retry-countzx-stainless-read-timeout)headers_merge_mappingsr   r   r)   r{   readdefault_headers_validate_headersr   r(   r   idempotency_keyr*   )	rr   r   r  r   headers_dictr   idempotency_headerlower_custom_headersr   s	            rs   _build_headerszBaseClient._build_headers  sa    .B&%gow77(*s7?+?'@'@'@)) &	 
 
 	|^<<< ---!5 	B'"9 	B>PX_>_>_*1*AG&'  ML^LLL$,@@@14]1C1CG-.%-AAA&0(&K&K`dllQXQ`G'7++ '!,"69'll23rv   c                    t          |          }|j        rB| j        j        |j                            d          z   }| j                            |          S |S )z
        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   )rr   rg   	merge_urlmerge_raw_paths       rs   _prepare_urlzBaseClient._prepare_url  s[     HH	$ 	D!]3i6H6O6OPT6U6UUN=**N*CCCrv   SSEDecoder | SSEBytesDecoderc                    t                      S ro   )rO   r   s    rs   _make_sse_decoderzBaseClient._make_sse_decoder  s    ||rv   httpx.Requestc                  t                               t          j                  r5t                               dt          |dt          rdhni                      i }|j        }|j        b|t          t          |j                  }nEt          |          rt          ||j                  }n t          dt          |           d          |                     ||          }t          | j        |j                  }|                    d          }|j        }||                    d	          rd
|vr|                    d           |rGt-          |          s t/          dt          |           d          |                     |          |d<   |s!t          t2          t5                                }|                     |j                  }	d|	j        v r d|	j                            dd          i|d<   |j                                         dk    }
|
r|j!        |t/          d          |j!        |t/          d          |j!        |j!        |d<   nBtE          |tF                    r||d<   n'|s%tI          |          r|tK          |          nd |d<   ||d<   n,|                    dd            |                    dd             | j&        j'        d|tE          |j(        tR                    r| j(        n|j(        |j        |	|r?| j*        +                    t          tX          tZ          t\          f         |                    nd d|S )NzRequest options: %sTcontent)exclude_unsetexcludezUnexpected JSON data type, z , cannot merge with `extra_body`r  Content-Typezmultipart/form-databoundaryzGExpected query input to be a dictionary for multipart requests but got z	 instead.data_sni_hostname-
extensionsgetz7Passing both `content` and `json_data` is not supportedz3Passing both `content` and `files` is not supportedfiles)r   r   methodrg   ri   rp   )/rY   isEnabledForloggingDEBUGdebugr>   r<   r   
extra_jsonr   r%   r;   r!  r   typer)  default_queryri   r?  r@  
startswithpopr6   r   _serialize_multipartformr3   ForceMultipartDictr/  rg   hostreplacerA  r  r5  r   bytesr9   rV   r   build_requestr   r*   qs	stringifyr   r{   r   )rr   r   r  kwargsr   r   ri   content_typer@  prepared_urlis_body_alloweds              rs   _build_requestzBaseClient._build_request  s    GM** 	II%"&
 #!  	 	 	   "$%	)  w'9::		I&& t+Iw7IJJ		"#ri#r#r#rsss%%g]%KK !3W^DD{{>22 #(?(?@U(V(V#-- N+++  Jy)) #|bfgpbqbq|||   "&!>!>y!I!Iv  F.0B0D0DEE((55,###$2L4E4M4McSV4W4W#XF< !...00E9 	%*y/D YZZZ*u/@ UVVV*$+Oy!!Iu-- x$-y!! x AI@S@S$wXaXmM)$<$<$<swy!#F7OOKK---JJvt$$$ *t|) 
$.w$I$I^DLLw>
 JPY47$$T'#s(*;V%D%DEEEUY
 
 
 
 	
rv   r:  Mapping[object, object]dict[str, object]c                    | j                             |d          }i }|D ]N\  }}|                    |          }|s|||<   "t          |          r|                    |           G||g||<   O|S )Nbrackets)array_format)rQ  stringify_itemsr?  r7   append)rr   r:  r   
serializedkeyvalueexistings          rs   rK  z#BaseClient._serialize_multipartformR  s    '' #	 ( 
 
 )+
 	4 	4JC!~~c**H "'
3 x   4&&&&#+U"3
3rv   cast_totype[ResponseT]c                   t          |j                  s|S t          |j                  }|                    t          t
                    }t          |          r'||_        t          t          t                   |          S |S ro   )	r9   r   r   rJ  rL   r5   r   r
   r+   )rr   rc  r   r   override_cast_tos        rs   _maybe_override_cast_toz"BaseClient._maybe_override_cast_top  ss    (( 	N w''
 #;;'>	JJ$%% 	;%GOY)9:::rv   r   c                H    |j                             t                    dk    S )Nstream)r   r?  rK   rr   r   s     rs   _should_stream_response_bodyz'BaseClient._should_stream_response_body  s    ""#6778CCrv   r+   c                  |t          t          d           S |t          u rt          t          |          S 	 t          j        |          r?t          |t                    r*t          t          |                    ||                    S | j        r$t          t          t          ||                    S t          t          t          ||                    S # t          j        $ r}t          ||          |d }~ww xY w)N)r  r:  )type_ra  )r  r  )r   r+   r  inspectisclass
issubclassr4   buildr   rA   rB   r   ValidationErrorrU   )rr   r:  rc  r  errs        rs   _process_response_dataz!BaseClient._process_response_data  s    <	4(((f	4(((		Tw'' TJw@T,U,U TIw}}hT}'R'RSSS/ QI}7$'O'O'OPPP	>t#L#L#LMMM' 	T 	T 	T,hTJJJPSS	Ts$   AC 
*C 5#C C?(C::C?r"   c                    t                      S ro   r!   r   s    rs   rQ  zBaseClient.qs  s    }}rv   httpx.Auth | Nonec                    d S ro   rp   r   s    rs   custom_authzBaseClient.custom_auth  s    trv   dict[str, str]c                    i S ro   rp   r   s    rs   auth_headerszBaseClient.auth_headers  s    	rv   dict[str, str | Omit]c                \    dd| j         d|                                 | j        | j        S )Nzapplication/json)Acceptr8  z
User-Agent)
user_agentplatform_headersr{  r   r   s    rs   r#  zBaseClient.default_headers  sN     )./
 
 ##%%	

 
 "
 	
rv   c                    i | j         S ro   )r   r   s    rs   rH  zBaseClient.default_query  s    
 
 	
rv   r   r(   c                    dS )zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nrp   )rr   r   r   s      rs   r$  zBaseClient._validate_headers  s	     	rv   c                .    | j         j         d| j         S )Nz/Python )r~   r   r   r   s    rs   r  zBaseClient.user_agent  s    .)BB4=BBBrv   c                    | j         S ro   )r   r   s    rs   r   zBaseClient.base_url  s
    ~rv   	URL | strc                    |                      t          |t                    r|nt          |                    | _        d S ro   )r   r   r   r   rq   s     rs   r   zBaseClient.base_url  s8    55ZS=Q=Q6_ccWZ[^W_W_``rv   Dict[str, str]c                8    t          | j        | j                  S )N)platform)r  r   r   r   s    rs   r  zBaseClient.platform_headers  s      GGGGrv   
max_tokensmax_nonstreaming_tokens
int | Noner)   c                v    d}d}||z  dz  }||k    s|r||k    rt          d          t          |d          S )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 detailsrc   )connect)r   r)   )rr   r  r  maximum_timedefault_timeexpected_times         rs   _calculate_nonstreaming_timeoutz*BaseClient._calculate_nonstreaming_timeout  sn    $z1G;<'',C'
UlHlHlj   
 
 
 	
rv   response_headersOptional[httpx.Headers]float | Nonec                   |dS 	 |                     dd          }t          |          dz  S # t          t          f$ r Y nw xY w|                     d          }	 t          |          S # t          t          f$ r Y nw xY wt          j                            |          }|dS t          j                            |          }t          |t          j                    z
            S )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)rr   r  retry_ms_headerretry_headerretry_date_tuple
retry_dates         rs   _parse_retry_after_headerz$BaseClient._parse_retry_after_header  s    #4	.223CTJJO))D00:& 	 	 	D	 (++M::	 &&&:& 	 	 	D	 !;33LAA#4[**+;<<
Z$)++-...s!   '. AAA* *A>=A>remaining_retriesr  c                J   |                     | j                  }|                     |          }|d|cxk     rdk    rn n|S t          ||z
  d          }t          t          t          d|          z  t                    }ddt                      z  z
  }||z  }	|	dk    r|	ndS )Nr   <   r  g       @r   g      ?)get_max_retriesr   r  minrJ   powrH   r   )
rr   r  r   r  r   retry_after
nb_retriessleep_secondsjitterr   s
             rs   _calculate_retry_timeoutz#BaseClient._calculate_retry_timeout  s     --d.>?? 445EFF"q;'<'<'<'<"'<'<'<'<'< '88$??
 /#c:2F2FFXX TFHH_$&(!Q,,wwA-rv   c                ^   |j                             d          }|dk    rt                              d           dS |dk    rt                              d           dS |j        dk    r"t                              d	|j                   dS |j        d
k    r"t                              d	|j                   dS |j        dk    r"t                              d	|j                   dS |j        dk    r"t                              d	|j                   dS t                              d           dS )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)r   r?  rY   rE  r
  )rr   r  should_retry_headers      rs   _should_retryzBaseClient._should_retry  s-   &.223CDD &((IILMMM4'))IIQRRR5 3&&II68LMMM4 3&&II68LMMM4 3&&II68LMMM4 3&&II68LMMM4		.!!!urv   c                .    dt          j                     S )Nzstainless-python-retry-)uuiduuid4r   s    rs   _idempotency_keyzBaseClient._idempotency_keyB  s    7777rv   )r   r{   r   r   r   r   r   r   r   r   r   r   r   r   rl   rm   )rg   r   rl   r   )r  r  rl   rR   )r  r{   r  r  r  r  rl   r  )r   r@   r  r   rl   r  )rg   r{   rl   r   )rl   r0  )r   r@   r  r   rl   r3  )r:  rX  rl   rY  )rc  rd  r   r@   rl   rd  )r   r3  rl   r   )r:  r  rc  rd  r  r  rl   r+   )rl   r"   )rl   rv  )rl   ry  )rl   r|  )rl   rY  )r   r(   r   r(   rl   rm   r   )rl   r   )rg   r  rl   rm   )rl   r  )r  r   r  r  rl   r)   ro   )r  r  rl   r  )r  r   r   r@   r  r  rl   r  )r  r  rl   r   )#r   r   r   r   r   rI   rG   rt   r   r  r  r)  r/  r2  rW  rK  rg  rk  rt  propertyrQ  rx  r{  r#  rH  r$  r  r   setterr  r  r  r  r  r  rp   rv   rs   r   r   p  s]        MMMNNN((((%%%%####8<<<<< /*93748     4; ; ; ;
N N N N,$ $ $ $ TU            D       	f
 f
 f
 f
 f
 f
P   <   "D D D DT T T T0    X    X    X 
 
 
 X
 
 
 
 X

	 	 	 	 C C C XC    X _a a a _aH H H H
 
 
 
 /  /  /  /  /L 59	. . . . .0! ! ! !F8 8 8 8 8 8rv   r   c                        e Zd Zd fdZ xZS )_DefaultHttpxClientrS  r   rl   rm   c                :  
                      dt                                          dt                                          dd           dvrt          j        t          j        dfg}t          t          dd           }|#|                    t          j        |df           nHt          j
        dk    r8t          t          d	d
          }|                    t          j        |df           t          t          dd           }|"|                    t          j        |df           t          t          dd           }|"|                    t          j        |df           d t                                                      D             }fddD             
|
d<   
fd|                                D             }t          di 
}	|                                        di                      |d<   |	d<    t!                      j        di  d S )Nr   limitsfollow_redirectsT	transportTCP_KEEPINTVLr  darwinTCP_KEEPALIVE   TCP_KEEPCNT   TCP_KEEPIDLEc                >    i | ]\  }}||d nt          |          S N)rg   r   r  r`  rg   s      rs   
<dictcomp>z0_DefaultHttpxClient.__init__.<locals>.<dictcomp>_  .    xxx(#sckddu~~~xxxrv   c                *    i | ]}|v ||         S rp   rp   r  argrS  s     rs   r  z0_DefaultHttpxClient.__init__.<locals>.<dictcomp>a  2          %(knrxkxkxVC[kxkxkxrv   verifycert	trust_envhttp1http2r  socket_optionsc                <    i | ]\  }}||d nt          dd|iS Nproxyrp   )r   r  r`  r  transport_kwargss      rs   r  z0_DefaultHttpxClient.__init__.<locals>.<dictcomp>g  sK       C U]TT0^0^E0^M]0^0^  rv   mountsrp   )
setdefaultrG   rM   socket
SOL_SOCKETSO_KEEPALIVEr   r^  IPPROTO_TCPsysr  rW   r   r   updater?  superrt   rr   rS  r  r  r  r  r  	proxy_mapproxy_mountsdefault_transportr  r~   s    `        @rs   rt   z_DefaultHttpxClient.__init__G  sM   )_555($=>>>,d333f$$HNHY[a[nptGuFvN#FOTBBM(%%v'9="&MNNNN)) ' F F%%v'9="&MNNN!&->>K&%%v'9;&JKKK"6>4@@L'%%v'9<&LMMMxxVmVoVoVuVuVwVwxxxI       ,g      2@-.   "+//"3"3  L !. A A0@ A A 

8R 8 8999+F8 #4F;""6"""""rv   rS  r   rl   rm   r   r   r   rt   __classcell__r~   s   @rs   r  r  F  =        -# -# -# -# -# -# -# -# -# -#rv   r  c                      e Zd ZddZdS )SyncHttpxClientWrapperrl   rm   c                d    | j         rd S 	 |                                  d S # t          $ r Y d S w xY wro   )r  closer  r   s    rs   __del__zSyncHttpxClientWrapper.__del__  sI    > 	F	JJLLLLL 	 	 	DD	s   ! 
//Nrl   rm   r   r   r   r  rp   rv   rs   r  r    s(             rv   r  c                  @    e Zd ZU ded<   dZded<   eedddddp fdZdqdZdrdZ	dsdZ
dtd%Zdud(Zdvd+Zedwd3            Zed4d5dxd8            Zed4dd9dyd<            Zd4dd9dzd>Zd{dBZdCdDd|dGZd}dMZei d4dNd~dQ            Zei dRddT            Zei ddUddV            Zi d4ddWddXZeddi dd4dYdd`            Zeddi ddaddb            Zeddi dddcddd            Zddi dd4ddeddfZdddi dgddhZdddi dgddiZddi djddkZdi dldmddoZ xZS )r   zhttpx.Clientr   Nztype[Stream[Any]] | Noner   r   r   http_clientr   r   r   r{   r   r   r   r   r   !float | Timeout | None | NotGivenr  httpx.Client | Noner   r   r   r   r   r   rl   rm   c          	        t          |          s!|r|j        t          k    r|j        }nt          }|9t	          |t
          j                  st          dt          |                     t                      
                    |t          t          |          |||||           |p#t          |t          t          |                    | _        d S )NzOInvalid `http_client` argument; Expected an instance of `httpx.Client` but got )r   r   r   r   r   r   r   r   r   )r9   r   HTTPX_DEFAULT_TIMEOUTrG   r   r   Clientr   rG  r  rt   r   r)   r  r   )
rr   r   r   r   r   r  r   r   r   r~   s
            rs   rt   zSyncAPIClient.__init__  s        	*  *{26KKK%-)":k5<+P+P"ubfgrbsbsuu   	'**#%)(C 	 		
 		
 		
 # 
&<'**'
 '
 '
rv   c                    | j         j        S ro   r   r  r   s    rs   r  zSyncAPIClient.is_closed      |%%rv   c                \    t          | d          r| j                                         dS dS )`Close the underlying HTTPX client.

        The client will *not* be usable after this.
        r   N)hasattrr   r  r   s    rs   r  zSyncAPIClient.close  s:     4## 	!L     	! 	!rv   rr   r]   c                    | S ro   rp   r   s    rs   	__enter__zSyncAPIClient.__enter__  s    rv   exc_typetype[BaseException] | NoneexcBaseException | Noneexc_tbTracebackType | Nonec                .    |                                   d S ro   r  rr   r  r  r
  s       rs   __exit__zSyncAPIClient.__exit__  s     	

rv   r   r@   c                    |S z#Hook for mutating the given optionsrp   rr   r   s     rs   _prepare_optionszSyncAPIClient._prepare_options  s	    
 rv   r   r3  c                    dS a  This 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.
        Nrp   rj  s     rs   _prepare_requestzSyncAPIClient._prepare_request  s	     trv   rc  Type[ResponseT]ri  Literal[True]
stream_clsType[_StreamT]r`   c                   d S ro   rp   rr   rc  r   ri  r  s        rs   r   zSyncAPIClient.request  s	     3rv   Fri  Literal[False]r+   c                   d S ro   rp   rr   rc  r   ri  s       rs   r   zSyncAPIClient.request  s	     Crv   ri  r  Type[_StreamT] | NoneResponseT | _StreamTc                   d S ro   rp   r  s        rs   r   zSyncAPIClient.request  s	      #srv   type[_StreamT] | Nonec          	        |                      ||          }t          |          }|j        6|j                                        dk    r|                                 |_        d }|                    | j                  }d}t          |dz             D ]2}t          |          }| 	                    |          }||z
  }	| 
                    ||          }
|                     |
           i }| j        
| j        |d<   |j        
|j        |d<   t                              d|
j        |
j                   d }	  | j        j        |
fd|p|                     |
	          i|}n# t(          j        $ rq}t                              d
d           |	dk    r|                     |||d            Y d }~!t                              d           t/          |
	          |d }~wt0          $ rq}t                              dd           |	dk    r|                     |||d            Y d }~t                              d           t3          |
	          |d }~ww xY wt                              d|
j        |
j        |j        |j        |j                   t                              d|j                            d                     	 |                                 n# t(          j        $ r}t                              dd           |	dk    rR|                      |j!                  r8|j!        "                                 |                     ||||           Y d }~|j!        j#        s|j!        $                                 t                              d           | %                    |j!                  d d }~ww xY w |
J d            | &                    ||||||          S Nr?  r   r   r  authr  zSending HTTP Request: %s %sri  )r   z"Encountered httpx.TimeoutExceptionT)exc_info)r  r   r   r  zRaising timeout errorzEncountered ExceptionzRaising connection errorzHTTP Response: %s %s "%i %s" %szrequest_id: %sz
request-idz!Encountered httpx.HTTPStatusErrorzRe-raising status errorz0could not resolve response (should never happen))rc  r   r  ri  r  r  )'rg  r=   r%  rA  r  r  r  r   ranger  rW  r  rx  r  rY   rE  rg   r   sendrk  r   TimeoutException_sleep_for_retryrS   r  rT   r
  reason_phraser   r?  raise_for_statusHTTPStatusErrorr  r  r  r  r"  r  _process_responserr   rc  r   ri  r  input_optionsr  r   r  r  r   rS  rs  s                rs   r   zSyncAPIClient.request  s    ..w@@
 #7++(0]5I5O5O5Q5QUZ5Z5Z,0,A,A,C,CM)*.#33D4DEE";?33 V	 V	M //G++G44G +m ;))')OOG!!'***$&F+!%!1v'3-4-E)*II3W^W[QQQH!C,4<, !WT%F%Fw%F%W%W  
 ) @ @ @		>	NNN$q(())&3$/ -!%	 *    HHHH		1222%g666C? C C C		1D	AAA$q(())&3$/ -!%	 *    HHHH		4555(999sBC II1$&    II&(8(<(<\(J(JKKKT))++++( T T T		=	MMM$q((T-?-?-M-M(L&&((())&3$/ -!)	 *    HHHH |- (L%%'''		3444;;CLIItS'T* ##%W###%%!' & 
 
 	
sP   8+E$$I3;G4+GI,;I-+IIK!!O0A.N>$AN>>Or  r  httpx.Response | Nonec               2   ||z
  }|dk    rt                               d           nt                               d|           |                     |||r|j        nd           }t                               d|j        |           t          j        |           d S Nr   z1 retry leftz%i retries leftz$Retrying request to %s in %f seconds)rY   rE  r  r   r   rg   r  sleeprr   r  r   r   r  r  r   s          rs   r-  zSyncAPIClient._sleep_for_retry  s     (-7!!IIn%%%%II'):;;;//0A7`hLrHL\L\nrss7gNNN
7rv   r   r  r  1type[Stream[Any]] | type[AsyncStream[Any]] | Nonec                  |j         j                            t                    dk    r)t	          t
          t          || |||||                    S t          |          p|}t          j	        |          rt          |t                    r|r1t          |j         j                            t                              rqt          |t                    st          dt           d|           t	          d|          }t	          t
           ||| t          |          ||||                    S |t           j        k    rt	          t
          |          S t          || t	          d|          ||||          }	t          |j         j                            t                              rt	          t
          |	          S |	                                S )Nr  rawr   rc  ri  r  r   r  !API Response types must subclass ; Received type[BaseAPIResponse[Any]]rd  )r   r   r?  rK   r   r+   rX   r   rn  ro  rp  rD   r   rC   r   rF   r   Responseparse
rr   rc  r   r  ri  r  r  originresponse_clsapi_responses
             rs   r1  zSyncAPIClient._process_response  s    #''(;<<FF! #!)#"/     G$$/ OF##	6?33	 	  $H$4$<$@$@AT$U$UVV	 fk22 f dK d d\b d deee <gFFL 1,??!)#"/     en$$	8,,,"*G44!'
 
 
  (,,-@AABB 	1	<000!!###rv   r   Type[object]r   Type[SyncPageT]rZ   c                V     d fd}|_                              |d          S )Nr   rZ   rl   c                8    |                                 | S )N)r   r   r   )r   )r   r   r   rr   s    rs   r   z0SyncAPIClient._request_api_list.<locals>._parser  s0    (( )   
 Krv   Fr  )r   rZ   rl   rZ   )r   r   )rr   r   r   r   r   s   `` ` rs   r   zSyncAPIClient._request_api_list  sO    	 	 	 	 	 	 	 	 &||D'%|888rv   r   ri  pathr1   c                   d S ro   rp   rr   rK  rc  r   ri  s        rs   r?  zSyncAPIClient.get  s	     Crv   r   type[_StreamT]c                   d S ro   rp   rr   rK  rc  r   ri  r  s         rs   r?  zSyncAPIClient.get  s	     3rv   r   r  c                   d S ro   rp   rQ  s         rs   r?  zSyncAPIClient.get  s	      #srv   r   ri  r  c          	         t          j        dd|d|}t          t          |                     ||||                    S Nr?  )rA  rg   r!  rp   )r@   	constructr   r+   r   rr   rK  rc  r   ri  r  optss          rs   r?  zSyncAPIClient.get  sH     #,OEtOOwOO It||GT&U_|``aaarv   )r  r5  r   r@  ri  r  Body | Noner5  BinaryTypes | Noner@  RequestFiles | Nonec                   d S ro   rp   )rr   rK  rc  r  r5  r   r@  ri  s           rs   postzSyncAPIClient.post  s	     Crv   )r  r5  r   r@  c                   d S ro   rp   	rr   rK  rc  r  r5  r   r@  ri  r  s	            rs   r^  zSyncAPIClient.post  s	     3rv   )r  r5  r   r@  r  c                   d S ro   rp   r`  s	            rs   r^  zSyncAPIClient.post,  s	      #srv   )r  r5  r   r@  ri  r  c          
     P   ||t          d          ||t          d          t          |t                    rt          j        dt
          d           t          j        d	d|||t          |          d|}	t          t          |                     ||	||                    S 
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^  rA  rg   r   r5  r@  r!  rp   )r   r   rO  warningswarnDeprecationWarningr@   rW  r#   r   r+   r   )
rr   rK  rc  r  r5  r   r@  ri  r  rY  s
             rs   r^  zSyncAPIClient.post:  s      3PQQQ!4QRRRdE"" 	MM"	    #, 
ttWN[`LaLa
 
el
 
 It||GT&U_|``aaarv   r  r5  r@  r   c          
     $   ||t          d          ||t          d          t          |t                    rt          j        dt
          d           t          j        dd|||t          |          d|}| 	                    ||          S 	Nrd  re  rf  rg  rh  patchrj  rp   
r   r   rO  rk  rl  rm  r@   rW  r#   r   rr   rK  rc  r  r5  r@  r   rY  s           rs   rq  zSyncAPIClient.patchV  s      3PQQQ!4QRRRdE"" 	MM"	    #, 
g^\aMbMb
 
fm
 
 ||GT***rv   c          
     $   ||t          d          ||t          d          t          |t                    rt          j        dt
          d           t          j        dd|||t          |          d|}| 	                    ||          S 	Nrd  re  rf  rg  rh  putrj  rp   rr  rs  s           rs   rv  zSyncAPIClient.putp  s      3PQQQ!4QRRRdE"" 	MM"	    #, 
ddG>Z_K`K`
 
dk
 
 ||GT***rv   r  r5  r   c                   ||t          d          t          |t                    rt          j        dt
          d           t          j        dd|||d|}|                     ||          S Nrd  rf  rg  rh  delete)rA  rg   r   r5  rp   	r   r   rO  rk  rl  rm  r@   rW  r   rr   rK  rc  r  r5  r   rY  s          rs   rz  zSyncAPIClient.delete  s      3PQQQdE"" 	MM"	    #,sH$RV`gsskrss||GT***rv   r?  r  r   rA  rA  c               Z    t          j        d|||d|}|                     |||          S N)rA  rg   r   rp   r@   rW  r   rr   rK  r   r   r  r   rA  rY  s           rs   get_api_listzSyncAPIClient.get_api_list  =     #,`FPT``X_``%%eT4888rv   )r   r{   r   r   r   r   r   r  r  r  r   r   r   r   r   r   rl   rm   r   r  rr   r]   rl   r]   r  r  r  r	  r
  r  rl   rm   r   r@   rl   r@   r   r3  rl   rm   )
rc  r  r   r@   ri  r  r  r  rl   r`   rc  r  r   r@   ri  r  rl   r+   )
rc  r  r   r@   ri  r   r  r"  rl   r#  )
rc  r  r   r@   ri  r   r  r%  rl   r#  
r  r   r   r   r   r@   r  r4  rl   rm   rc  r  r   r@   r  r  ri  r   r  r9  r  r   rl   r+   )r   rF  r   rG  r   r@   rl   rZ   
rK  r{   rc  r  r   r1   ri  r  rl   r+   )rK  r{   rc  r  r   r1   ri  r  r  rO  rl   r`   )rK  r{   rc  r  r   r1   ri  r   r  r%  rl   r#  )rK  r{   rc  r  r  rZ  r5  r[  r   r1   r@  r\  ri  r  rl   r+   )rK  r{   rc  r  r  rZ  r5  r[  r   r1   r@  r\  ri  r  r  rO  rl   r`   )rK  r{   rc  r  r  rZ  r5  r[  r   r1   r@  r\  ri  r   r  r%  rl   r#  )rK  r{   rc  r  r  rZ  r5  r[  r@  r\  r   r1   rl   r+   )rK  r{   rc  r  r  rZ  r5  r[  r   r1   rl   r+   )rK  r{   r   rF  r   rG  r  rZ  r   r1   rA  r{   rl   rZ   )r   r   r   r   r   rI   r5   rt   r  r  r  r  r  r  r   r   r-  r1  r   r?  r^  rq  rv  rz  r  r  r  s   @rs   r   r     sD        488888 /5>+/3748,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
\& & & &! ! ! !         	 	 	 	    X  "'     X  ,0# # # # # X# ,0v
 v
 v
 v
 v
 v
p   , B$ B$ B$ B$ B$ B$H9 9 9 9$  #%!&     X  #%     X  #%,0# # # # # X# #%,0b b b b b b  !&*"$%)!&
 
 
 
 
 X
  !&*"$%)     X  !&*"$%),0# # # # # X#$ !&*"$%),0b b b b b bB !&*%)"$+ + + + + +> !&*%)"$+ + + + + +> !&*"$+ + + + + +6 !"$9 9 9 9 9 9 9 9 9 9rv   r   c                        e Zd Zd fdZ xZS )_DefaultAsyncHttpxClientrS  r   rl   rm   c                :  
                      dt                                          dt                                          dd           dvrt          j        t          j        dfg}t          t          dd           }|#|                    t          j        |df           nHt          j
        dk    r8t          t          d	d
          }|                    t          j        |df           t          t          dd           }|"|                    t          j        |df           t          t          dd           }|"|                    t          j        |df           d t                                                      D             }fddD             
|
d<   
fd|                                D             }t          di 
}	|                                        di                      |d<   |	d<    t!                      j        di  d S )Nr   r  r  Tr  r  r  r  r  r  r  r  r  c                >    i | ]\  }}||d nt          |          S r  r  r  s      rs   r  z5_DefaultAsyncHttpxClient.__init__.<locals>.<dictcomp>  r  rv   c                *    i | ]}|v ||         S rp   rp   r  s     rs   r  z5_DefaultAsyncHttpxClient.__init__.<locals>.<dictcomp>  r  rv   r  r  c                <    i | ]\  }}||d nt          dd|iS r  )r   r  s      rs   r  z5_DefaultAsyncHttpxClient.__init__.<locals>.<dictcomp>  sL       C U]TT0B0c0c0cRb0c0c  rv   r  rp   )r  rG   rM   r  r  r  r   r^  r  r  r  rW   r   r   r  r?  r  rt   r  s    `        @rs   rt   z!_DefaultAsyncHttpxClient.__init__  sM   )_555($=>>>,d333f$$HNHY[a[nptGuFvN#FOTBBM(%%v'9="&MNNNN)) ' F F%%v'9="&MNNN!&->>K&%%v'9;&JKKK"6>4@@L'%%v'9<&LMMMxxVmVoVoVuVuVwVwxxxI       ,g      2@-.   "+//"3"3  L !3 F F5E F F 

8R 8 8999+F8 #4F;""6"""""rv   r  r  r  s   @rs   r  r    r  rv   r  c                        e Zd Zd fdZ xZS )_DefaultAioHttpClientrS  r   rl   rm   c                    |                     dt                     |                     dt                     |                     dd            t                      j        di | d S )Nr   r  r  Trp   )r  rG   rM   r  rt   )rr   rS  r~   s     rs   rt   z_DefaultAioHttpClient.__init__  sj    i999h(ABBB0$777EGG&&v&&&&&rv   r  r  r  s   @rs   r  r    s=        	' 	' 	' 	' 	' 	' 	' 	' 	' 	'rv   r  c                      e Zd ZddZdS )r  _kwargsr   rl   rm   c                     t          d          )NzVTo use the aiohttp client you must have installed the package with the `aiohttp` extra)r   )rr   r  s     rs   rt   z_DefaultAioHttpClient.__init__  s    wxxxrv   N)r  r   rl   rm   )r   r   r   rt   rp   rv   rs   r  r    s.        	y 	y 	y 	y 	y 	yrv   c                      e Zd ZddZdS )AsyncHttpxClientWrapperrl   rm   c                    | j         rd S 	 t          j                                        |                                            d S # t
          $ r Y d S w xY wro   )r  asyncioget_running_loopcreate_taskacloser  r   s    rs   r  zAsyncHttpxClientWrapper.__del__  sc    > 	F	$&&224;;==AAAAA 	 	 	DD	s   8A 
AANr  r  rp   rv   rs   r  r     s(             rv   r  c                  >    e Zd ZU ded<   dZded<   eedddddn fdZdodZdpdZ	dqdZ
drd%Zdsd(Zdtd+Zed,d-dud3            Zedvd8            Zedd9dwd<            Zd,dd=dwd>ZdxdBZdCdDdydGZdzdMZei d,dNd{dQ            Zei dRd|dS            Zei ddTd}dU            Zi d,ddVd}dWZedddi d,dXd~d_            Zedddi d`dda            Zedddi ddbddc            Zdddi d,dddddeZdddi d`ddfZdddi d`ddgZddi dhddiZdi djdkddmZ xZS )r   zhttpx.AsyncClientr   Nztype[AsyncStream[Any]] | Noner   r  r   r{   r   r   r   r   r   r   r   r  r  httpx.AsyncClient | Noner   r   r   r   rl   rm   c          	        t          |          s!|r|j        t          k    r|j        }nt          }|9t	          |t
          j                  st          dt          |                     t                      
                    ||t          t          |          ||||           |p#t          |t          t          |                    | _        d S )NzTInvalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got )r   r   r   r   r   r   r   r  )r9   r   r  rG   r   r   AsyncClientr   rG  r  rt   r   r)   r  r   )
rr   r   r   r   r   r   r  r   r   r~   s
            rs   rt   zAsyncAPIClient.__init__  s        	*  *{26KKK%-)":k5CT+U+U"zgklwgxgxzz   	'**#%)(C 	 		
 		
 		
 # 
&='**'
 '
 '
rv   c                    | j         j        S ro   r  r   s    rs   r  zAsyncAPIClient.is_closed>  r   rv   c                H   K   | j                                          d{V  dS )r  N)r   r  r   s    rs   r  zAsyncAPIClient.closeA  s4      
 l!!###########rv   rr   r]   c                
   K   | S ro   rp   r   s    rs   
__aenter__zAsyncAPIClient.__aenter__H  s      rv   r  r  r  r	  r
  r  c                >   K   |                                   d {V  d S ro   r  r  s       rs   	__aexit__zAsyncAPIClient.__aexit__K  s.       jjllrv   r   r@   c                
   K   |S r  rp   r  s     rs   r  zAsyncAPIClient._prepare_optionsS  s      
 rv   r   r3  c                
   K   dS r  rp   rj  s     rs   r  zAsyncAPIClient._prepare_requestZ  s       trv   Fr  rc  r  ri  r  r+   c               
   K   d S ro   rp   r   s       rs   r   zAsyncAPIClient.requeste  s       Crv   r  r  type[_AsyncStreamT]ra   c               
   K   d S ro   rp   r  s        rs   r   zAsyncAPIClient.requestn  s       rv   )r  type[_AsyncStreamT] | NoneResponseT | _AsyncStreamTc               
   K   d S ro   rp   r  s        rs   r   zAsyncAPIClient.requestx  s       %(Crv   r!  c          	       K   | j         ' t          t                                 d {V | _         |                     ||          }t	          |          }|j        6|j                                        dk    r|                                 |_        d }|	                    | j
                  }d}t          |dz             D ]c}t	          |          }|                     |           d {V }||z
  }	|                     ||          }
|                     |
           d {V  i }| j        
| j        |d<   |j        
|j        |d<   t"                              d|
j        |
j                   d }	  | j        j        |
fd|p|                     |
	          i| d {V }n# t.          j        $ rw}t"                              d
d           |	dk    r%|                     |||d            d {V  Y d }~:t"                              d           t5          |
	          |d }~wt6          $ rw}t"                              dd           |	dk    r%|                     |||d            d {V  Y d }~t"                              d           t9          |
	          |d }~ww xY wt"                              d|
j        |
j        |j        |j        |j                   t"                              d|j                             d                     	 |!                                 n# t.          j"        $ r}t"                              dd           |	dk    r^| #                    |j$                  rD|j$        %                                 d {V  |                     ||||           d {V  Y d }~|j$        j&        s|j$        '                                 d {V  t"                              d           | (                    |j$                  d d }~ww xY w |
J d            | )                    ||||||           d {V S r'  )*r   r8   get_platformrg  r=   r%  rA  r  r  r  r   r*  r  rW  r  rx  r  rY   rE  rg   r   r+  rk  r   r,  r-  rS   r  rT   r
  r.  r   r?  r/  r0  r  r  r  r  areadr  r1  r2  s                rs   r   zAsyncAPIClient.request  s      >! $:8L#9#9#;#;;;;;;;DN..w@@
 #7++(0]5I5O5O5Q5QUZ5Z5Z,0,A,A,C,CM)*.#33D4DEE";?33 V	 V	M //G 11'::::::::G +m ;))')OOG''000000000$&F+!%!1v'3-4-E)*II3W^W[QQQH!C!2!2" "!WT%F%Fw%F%W%W" " "      
 ) @ @ @		>	NNN$q((//&3$/ -!%	 0          HHHH		1222%g666C? C C C		1D	AAA$q((//&3$/ -!%	 0          HHHH		4555(999sBC II1$&    II&(8(<(<\(J(JKKKT))++++( T T T		=	MMM$q((T-?-?-M-M(,--///////////&3$/ -!)	 0          HHHH |- /,,,.........		3444;;CLIItS'T* ##%W###++!' , 
 
 
 
 
 
 
 
 	
sR   41F''J,6AH(=+H((J,5AJ'<+J''J,L00P$?A:P?A PP$r  r  r4  c               B  K   ||z
  }|dk    rt                               d           nt                               d|           |                     |||r|j        nd           }t                               d|j        |           t          j        |           d {V  d S r6  )rY   rE  r  r   r   rg   anyior7  r8  s          rs   r-  zAsyncAPIClient._sleep_for_retry  s       (-7!!IIn%%%%II'):;;;//0A7`hLrHL\L\nrss7gNNNk'"""""""""""rv   r   r  r  r9  c                 K   |j         j                            t                    dk    r)t	          t
          t          || |||||                    S t          |          p|}t          j	        |          rt          |t                    r|r1t          |j         j                            t                              rlt          |t                    st          dt           d|           t	          d|          }t	          d ||| t          |          ||||                    S |t           j        k    rt	          t
          |          S t          || t	          d|          ||||          }	t          |j         j                            t                              rt	          t
          |	          S |	                                 d {V S )Nr  r;  r=  r>  r?  r+   rd  )r   r   r?  rK   r   r+   rX   r   rn  ro  rp  rD   r   rE   r   rF   r   r@  rA  rB  s
             rs   r1  z AsyncAPIClient._process_response  s
      #''(;<<FF! #!)#"/     G$$/ OF##	6?33	 	  $H$4$<$@$@AT$U$UVV	 f&677 k iDT i iag i ijjj <gFFL 1,??!)#"/     en$$	8,,,'*G44!'
 
 
  (,,-@AABB 	1	<000!'')))))))))rv   r   r   r   r   AsyncPaginator[_T, AsyncPageT]c                (    t          | |||          S )N)r   r   r   r   )r   )rr   r   r   r   s       rs   r   z AsyncAPIClient._request_api_listQ  s     T7TQVWWWWrv   rJ  rK  r1   c               
   K   d S ro   rp   rM  s        rs   r?  zAsyncAPIClient.getY  s       Crv   rN  c               
   K   d S ro   rp   rQ  s         rs   r?  zAsyncAPIClient.getc  s       rv   rR  c               
   K   d S ro   rp   rQ  s         rs   r?  zAsyncAPIClient.getn  s       %(Crv   rT  c               l   K   t          j        dd|d|}|                     ||||           d {V S rV  )r@   rW  r   rX  s          rs   r?  zAsyncAPIClient.gety  sQ       #,OEtOOwOO\\'4:\VVVVVVVVVrv   )r  r5  r@  r   ri  r  rZ  r5  AsyncBinaryTypes | Noner@  r\  c               
   K   d S ro   rp   )rr   rK  rc  r  r5  r@  r   ri  s           rs   r^  zAsyncAPIClient.post  s       Crv   rn  c               
   K   d S ro   rp   	rr   rK  rc  r  r5  r@  r   ri  r  s	            rs   r^  zAsyncAPIClient.post  s       rv   )r  r5  r@  r   r  c               
   K   d S ro   rp   r  s	            rs   r^  zAsyncAPIClient.post  s       %(Crv   )r  r5  r@  r   ri  r  c          
     F  K   ||t          d          ||t          d          t          |t                    rt          j        dt
          d           t          j        d	d|||t          |           d {V d|}	| 	                    ||	||           d {V S rc  
r   r   rO  rk  rl  rm  r@   rW  r$   r   )
rr   rK  rc  r  r5  r@  r   ri  r  rY  s
             rs   r^  zAsyncAPIClient.post  s        3PQQQ!4QRRRdE"" 	MM"	    #, 
ttWRfglRmRmLmLmLmLmLmLm
 
qx
 
 \\'4:\VVVVVVVVVrv   c          
     @  K   ||t          d          ||t          d          t          |t                    rt          j        dt
          d           t          j        dd|||t          |           d {V d|}| 	                    ||           d {V S rp  r  rs  s           rs   rq  zAsyncAPIClient.patch  s        3PQQQ!4QRRRdE"" 	MM"	    #, 
,U33333333
 
 
 
 \\'4000000000rv   c          
     @  K   ||t          d          ||t          d          t          |t                    rt          j        dt
          d           t          j        dd|||t          |           d {V d|}| 	                    ||           d {V S ru  r  rs  s           rs   rv  zAsyncAPIClient.put  s        3PQQQ!4QRRRdE"" 	MM"	    #, 
ddGQefkQlQlKlKlKlKlKlKl
 
pw
 
 \\'4000000000rv   rw  c                  K   ||t          d          t          |t                    rt          j        dt
          d           t          j        dd|||d|}|                     ||           d {V S ry  r{  r|  s          rs   rz  zAsyncAPIClient.delete  s        3PQQQdE"" 	MM"	    #,sH$RV`gsskrss\\'4000000000rv   r?  r}  rA  c               Z    t          j        d|||d|}|                     |||          S r  r  r  s           rs   r  zAsyncAPIClient.get_api_list  r  rv   )r   r{   r   r   r   r   r   r   r   r  r  r  r   r   r   r   rl   rm   r   r  r  r  r  r  r  )
rc  r  r   r@   ri  r  r  r  rl   ra   )
rc  r  r   r@   ri  r   r  r  rl   r  r  r  )r   r   r   r   r   r@   rl   r  r  )rK  r{   rc  r  r   r1   ri  r  r  r  rl   ra   )rK  r{   rc  r  r   r1   ri  r   r  r  rl   r  )rK  r{   rc  r  r  rZ  r5  r  r@  r\  r   r1   ri  r  rl   r+   )rK  r{   rc  r  r  rZ  r5  r  r@  r\  r   r1   ri  r  r  r  rl   ra   )rK  r{   rc  r  r  rZ  r5  r  r@  r\  r   r1   ri  r   r  r  rl   r  )rK  r{   rc  r  r  rZ  r5  r  r@  r\  r   r1   rl   r+   )rK  r{   rc  r  r  rZ  r5  r  r   r1   rl   r+   )rK  r{   r   r   r   r   r  rZ  r   r1   rA  r{   rl   r  )r   r   r   r   r   rI   r5   rt   r  r  r  r  r  r  r   r   r-  r1  r   r?  r^  rq  rv  rz  r  r  r  s   @rs   r   r     sF        9===== /5>043748,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
\& & & &$ $ $ $         	 	 	 	  "'     X    X  26( ( ( ( ( X( 15{
 {
 {
 {
 {
 {
z# # # #, B* B* B* B* B* B*HX X X X  #%!&     X  #%     X  #%15( ( ( ( ( X( #%15
W 
W 
W 
W 
W 
W  !+/%)"$!&
 
 
 
 
 X
  !+/%)"$     X  !+/%)"$15( ( ( ( ( X($ !+/%)"$15W W W W W WB !+/%)"$1 1 1 1 1 1H !+/%)"$1 1 1 1 1 1> !+/"$1 1 1 1 1 16 !"$9 9 9 9 9 9 9 9 9 9rv   r   )queryextra_headersextra_query
extra_bodyr%  r   r   r  Query | Noner  Headers | Noner  r  rZ  r%  r   r   'float | httpx.Timeout | None | NotGivenr   PostParser | NotGivenrl   r1   c                   i }|||d<   |t          t          |          |d<   | | |d<   |i |                    di           ||d<   t          |t                    s||d<   |||d<   t          |          r||d<   |S )zECreate a dict of type RequestOptions without keys of NotGiven values.Nr   rF  ri   r   r%  r   )r   r,   r?  r   r*   r9   )r  r  r  r  r%  r   r   r   s           rs   make_request_optionsr  &  s     !G *	 $Z < <!Hw{{8R88HKHgx(( %$	"%4!" -!,Nrv   c                      e Zd ZddZdS )rL  rl   r   c                    dS )NTrp   r   s    rs   __bool__zForceMultipartDict.__bool__L  s    trv   Nr   )r   r   r   r  rp   rv   rs   rL  rL  K  s(             rv   rL  c                  .    e Zd ZddZed	d            ZdS )
OtherPlatformnamer{   rl   rm   c                    || _         d S ro   r  rr   r  s     rs   rt   zOtherPlatform.__init__Q      			rv   c                    d| j          S )NzOther:r  r   s    rs   __str__zOtherPlatform.__str__T      #	###rv   Nr  r{   rl   rm   r   r   r   r   rt   r   r  rp   rv   rs   r  r  P  H            $ $ $ X$ $ $rv   r  )MacOSLinuxWindowsFreeBSDOpenBSDiOSAndroidUnknownPlatformc                 x   	 t          j                                                    } t          j                                                     }n# t          $ r Y dS w xY wd|v sd|v rdS | dk    rdS | dk    rdS d	|v rd
S | dk    r%t	          j                    }|dk    rdS |dk    rdS dS |rt          |          S dS )Nr  iphoneipadr  r  r  windowsr  androidr  linuxfreebsdr  openbsdr  r  )r  systemr  r  distroidr  )r  platform_name	distro_ids      rs   r  r  h  s   ""((** )++1133   yy =  Fm$;$;
 uwyM!! yIKK		!!9	!!9w ,]+++9s   A
A 
AA)maxsizer   r{   r  Platform | Noner  c                   d| t          |pt                                t          t                                t                      t	                      d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     rs   r  r    sQ     %'.h8,..99 0 2 233133'9';';  rv   c                  .    e Zd ZddZed	d            ZdS )
	OtherArchr  r{   rl   rm   c                    || _         d S ro   r  r  s     rs   rt   zOtherArch.__init__  r  rv   c                    d| j          S )Nzother:r  r   s    rs   r  zOtherArch.__str__  r  rv   Nr  r   r  rp   rv   rs   r   r     r  rv   r   )x32x64armarm64unknownc                 L    	 t          j                    S # t          $ r Y dS w xY wNr  )r  python_implementationr  rp   rv   rs   r  r    s8    -///   yy    
##c                 L    	 t          j                    S # t          $ r Y dS w xY wr	  )r  python_versionr  rp   rv   rs   r  r    s8    &(((   yyr  Archc                     	 t          j                                                    } n# t          $ r Y dS w xY w| dv rdS | dk    rdS | dk    rdS t          j        dk    rdS | rt          |           S dS )	Nr  )r  aarch64r  r  x86_64r  l        r  )r  machiner  r  r  r  r   )r  s    rs   r  r    s    "$$**,,   yy &&&w %u(u {eu "!!!9s   %( 
66obj1Mapping[_T_co, Union[_T, Omit]]obj2Dict[_T_co, _T]c                J    i | |}d |                                 D             S )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.
    c                D    i | ]\  }}t          |t                    ||S rp   )r   r&   )r  r`  ra  s      rs   r  z#_merge_mappings.<locals>.<dictcomp>  s.    WWW:3z%QU?V?VWCWWWrv   )r   )r  r  mergeds      rs   r!  r!    s/     FWWWWWWrv   )r  r  r  r  r  r  r  rZ  r%  r   r   r  r   r  rl   r1   )rl   r  )r   r{   r  r  rl   r  r   )rl   r  )r  r  r  r  rl   r  )
__future__r   r  rk   r  r  r  r  r  rn  rC  r  rk  email.utilstypesr   r   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   typing_extensionsr   r   r   r  r   r  r   r   r   r   r   r    r    _qsr"   _filesr#   r$   _typesr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   _utilsr6   r7   r8   r9   r:   r;   _compatr<   r=   r>   _modelsr?   r@   rA   rB   	_responserC   rD   rE   rF   
_constantsrG   rH   rI   rJ   rK   rL   rM   
_streamingrN   rO   rP   rQ   rR   rS   rT   rU   _utils._jsonrV   _utils._httpxrW   _legacy_responserX   	getLoggerr   rY   r   rZ   r\   r]   r^   r`   ra   httpx._configrb   r  ImportErrorre   r   r   r   r   r  r  r   r   r   r  DefaultHttpxClientr  r   r  httpx_aiohttpHttpxAiohttpClientr  DefaultAsyncHttpxClientDefaultAioHttpClientr  r   r  r{   rL  r  r  r  r  r   r  r  r  r  r!  rp   rv   rs   <module>r4     s
   " " " " " " " 



                                                               & < ; ; ; ; ; ; ; ; ;     ? ? ? ? ? ? ? ? ? ? ? ?                         8 8 8 8 8 8 8 8                                     & P O O O O O O O O O O O O O O O 8 8 8 8 8 8 8 8 8 8 U U U U U U U U U U U U                             I H H H H H H H H H H H            ( ' ' ' ' ' 2 2 2 2 2 2 / / / / / /'g'11 1 1 1 1 GK':;;;	W\)=>>>
 WT]]4(((7:VC[111{3/?@@@ -      3-QQQQQQQ - - - '-
0B 0B 0B 0B 0B 0B 0B 0Bf:6 :6 :6 :6 :6|WR[ :6 :6 :6z.a .a .a .a .a8B< .a .a .ab$ $ $ $ $WR^, $ $ $N&g &g &g &g &gHRL'"+ &g &g &gR uU\5CT5T/UVVV'+5kRUFV9V3WXXXS8 S8 S8 S8 S878 S8 S8 S8l.# .# .# .# .#%, .# .# .#b  	- -    /   \9 \9 \9 \9 \9Ju|VC[89 \9 \9 \9~.# .# .# .# .#u0 .# .# .#b'' ' ' ' ' @ ' ' ' '  y y yy y y y y 1 y y y y yy   1#/ !,_60	 	 	 	 	5 	 	 	W9 W9 W9 W9 W9Z 1;s3C CD W9 W9 W9x $( $""&7@)2" " " " " "J    c4i   
$ $ $ $ $ $ $ $ 		
' ' ' 'T 4   $ $ $ $ $ $ $ $ Y GHHI         4	X 	X 	X 	X 	X 	Xs$   7F> >GG:L L-,L-