
    pi5                   r   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  e
j                  et      Zudevd<    edd      Zw edd      Zx ed      Zy edd !      Zz ed"ege         Z{ ed#eie         Z|er	d d$l}m~Z~ e~Zn	 d d$l}m~Z  G d& d'      Z G d( d)eUeey         Z G d* d+eey   eey         Z G d, d-eeyexf         Z G d. d/eey   eey         Z ed0ee(j                  e(j                  f         Z ed1eege   eie   f         Z G d2 d3eeef         Z G d4 d5e(j                        Zere(j                  ZneZ G d6 d7e      Z G d8 d9ee(j                  ege   f         Z G d: d;e(j                        Z	 d dlZ G d< d=ej"                        Zere(j                  Z	 e(j                  ZneZeZ G d? d@e      Z G dA dBee(j                  eie   f         ZdddddeHeHdC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dTdDZ G dE dFeedf         Z G dG dH      Zeee$dI   f   ZdUdJZ eNdK      dVdL       Z G dM dN      Zeee$dO   f   ZdWdPZdWdQZdXdRZ	 	 	 	 	 	 dYdSZy# e$ r  e<d%      ZY w xY w# e$ r  G d> d=e(j                        ZY w xY w)Z    )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)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	y)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jsonc                    y N selfrf   s     X/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/anthropic/_base_client.py__init__zPageInfo.__init__       
     c                    y rl   rm   )ro   rh   s     rp   rq   zPageInfo.__init__   rr   rs   c                    y rl   rm   )ro   rj   s     rp   rq   zPageInfo.__init__   rr   rs   rf   rj   rh   c               .    || _         || _        || _        y rl   rv   )ro   rf   rj   rh   s       rp   rq   zPageInfo.__init__   s     	rs   c                   | 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=)rf   	__class____name__rj   rh   ro   s    rp   __repr__zPageInfo.__repr__   sv    88nn--.eDHH:Q??99nn--.fTYYKqAA..))*(4;;-qAArs   N)rf   r   returnNone)rh   r'   r~   r   )rj   r%   r~   r   )rf   re   rj   ri   rh   rg   r~   r   r~   str)
r{   
__module____qualname____doc____annotations__r   rq   r5   r   r}   rm   rs   rp   rd   rd   z   s    
 

  
	    
	    
	  ( )#,	 	 		
 !	 
	 B Brs   rd   c                  j    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y)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]_modelc                L    | j                         }|sy| j                         d uS )NF)_get_page_itemsnext_page_info)ro   itemss     rp   has_next_pagezBasePage.has_next_page   s*    $$&""$D00rs   c                     y rl   rm   r|   s    rp   r   zBasePage.next_page_info   s    rs   c                     y rl   rm   r|   s    rp   r   zBasePage._get_page_items   s    rs   c                    t        j                  t        t        | j                  j
                              j                  |j
                        S rl   )httpxQueryParamsr   r   r   rh   mergern   s     rp   _params_from_urlzBasePage._params_from_url   s3      c4==+?+?!@AGG

SSrs   c                
   t        | j                        }|j                          t        |j                  t
              s!i |j                  |j                  |_        |S t        |j                  t
              sc| j                  |j                        }|j                  j                  |      }t        |j                        |_        t        |      |_        |S t        |j                  t
              st        |j                        st        d      |j                  si |j                  |_        |S t        |j                        st        d      i |j                  |j                  |_        |S t        d      )N)rh   z*Pagination is only supported with mappingszUnexpected PageInfo state)r=   r   _strip_raw_response_header
isinstancerh   r*   rf   r   	copy_withdictr   rj   r;   	TypeError	json_data
ValueError)ro   infooptionsrh   rf   s        rp   _info_to_optionszBasePage._info_to_options   s0   T]]+**,$++x0>>$++>GNN$((H-**4884F(($$F$3C!#**-GNc(GKN$))X.dii( LMM$$$1tyyM! N	 "'"3"34#$PQQ$Fw'8'8$FDII$F!N455rs   Nr~   bool)r~   zOptional[PageInfo])r~   zIterable[_T])rf   r   r~   zhttpx.QueryParams)r   rd   r~   r@   )r{   r   r   r   r   r   r   r   r   r   r   r   r   rm   rs   rp   r   r      s<    	 %0MH!1"}FH$1 8T6rs   r   c                  j    e Zd ZU  ej                         Zded<   	 	 	 	 	 	 	 	 ddZd	dZd
dZ	ddZ
y)BaseSyncPageSyncAPIClient_clientc                b    t         st        | dd       i | _        || _        || _        || _        y N__pydantic_private__r<   getattrr   r   r   r   )ro   clientmodelr   s       rp   _set_private_attributesz$BaseSyncPage._set_private_attributes   3     /Et!L!T(*D%rs   c              #  h   K   | j                         D ]  }|j                         D ]  }|   y wrl   
iter_pagesr   ro   pageitems      rp   __iter__zBaseSyncPage.__iter__  s9     OO% 	D,,. 
	s   02c              #  ^   K   | }	 | |j                         r|j                         }ny 'wrl   r   get_next_pagero   r   s     rp   r   zBaseSyncPage.iter_pages  s5     J!!#))+ s   +-c                    | j                         }|st        d      | j                  |      }| j                  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   rz   ro   r   r   s      rp   r   zBaseSyncPage.get_next_page  sZ    ""$k  ''-||--dkkX_-``rs   N)r   r   r   r   r   r@   r~   r   )r~   zIterator[_T])ro   rY   r~   zIterator[SyncPageT])ro   rY   r~   rY   )r{   r   r   pydanticr   r   r   r   r   r   r   rm   rs   rp   r   r      sR    1X113G]3     %	 
 
 *
ars   r   c                  @    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZddZd	dZy)
AsyncPaginatorc                <    || _         || _        || _        || _        y rl   )r   r   r   	_page_cls)ro   r   r   page_clsr   s        rp   rq   zAsyncPaginator.__init__  s      !rs   c                >    | j                         j                         S rl   )	_get_page	__await__r|   s    rp   r   zAsyncPaginator.__await__(  s    ~~))++rs   c                    K   d fd}| j                   _         j                  j                   j                   j                          d {   S 7 w)Nc                l    | j                  j                  j                  j                         | S )N)r   r   r   )r   r   r   r   )respro   s    rp   _parserz)AsyncPaginator._get_page.<locals>._parser,  s2    ((kk|| ) 
 Krs   )r   r[   r~   r[   )r   post_parserr   requestr   )ro   r   s   ` rp   r   zAsyncPaginator._get_page+  s?     	 %,!\\))$..$--HHHHs   AAAAc               h   K   t        t        |  d {         }|2 3 d {   }| 7 7 6 y wrl   )r   r[   r   s      rp   	__aiter__zAsyncPaginator.__aiter__8  s<     J
  	 	$J 	$s$   2,

20.0202N)
r   AsyncAPIClientr   r@   r   Type[AsyncPageT]r   r   r~   r   )r~   z Generator[Any, None, AsyncPageT])r~   r[   r~   zAsyncIterator[_T])r{   r   r   rq   r   r   r   rm   rs   rp   r   r     sG    
"
" %
" #	
"
 
" 

",Irs   r   c                  j    e Zd ZU  ej                         Zded<   	 	 	 	 	 	 	 	 ddZd	dZd
dZ	ddZ
y)BaseAsyncPager   r   c                b    t         st        | dd       i | _        || _        || _        || _        y r   r   )ro   r   r   r   s       rp   r   z%BaseAsyncPage._set_private_attributesE  r   rs   c               z   K   | j                         2 3 d {   }|j                         D ]  }| 	 $7 6 y wrl   r   r   s      rp   r   zBaseAsyncPage.__aiter__R  sB     //+ 	 	$,,. 
	+s   ;979;9;c               t   K   | }	 | |j                         r|j                          d {   }ny 07 wrl   r   r   s     rp   r   zBaseAsyncPage.iter_pagesW  s=     J!!#!//11  2s   ,868c                   K   | j                         }|st        d      | j                  |      }| j                  j	                  | j
                  | j                  |       d {   S 7 wr   r   r   s      rp   r   zBaseAsyncPage.get_next_page`  sd     ""$k  ''-\\33DKKdnn^e3ffffs   A$A-&A+'A-N)r   r   r   r   r   r@   r~   r   r   )ro   r[   r~   zAsyncIterator[AsyncPageT])ro   r[   r~   r[   )r{   r   r   r   r   r   r   r   r   r   r   rm   rs   rp   r   r   B  sR    2h224G^4     %	 
 
 
grs   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0dZd1dZ	 	 	 	 d2dZ		 	 	 	 	 	 	 	 d3dZ
ddd4dZd5dZd6dZdd	 	 	 	 	 d7dZd8dZd9dZd:dZ	 	 	 	 	 	 	 	 d;d Zed<d!       Zed=d"       Zed>d#       Zed?d$       Zed@d%       Z	 	 	 	 	 	 dAd&ZedBd'       ZedCd(       Zej8                  dDd)       ZdEd*ZdFd+ZdGdHd,Z	 dG	 	 	 	 	 	 	 dId-Z dJd.Z!dBd/Z"y)K
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_queryc                   || _         | j                  t        |            | _        || _        || _        |xs i | _        |xs i | _        || _        d | _	        d | _
        |t        d      y )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   )ro   versionbase_urlr   r   r   r   r   s           rp   rq   zBaseClient.__init__y  s      55c(mD&-3)/R+F(#' *. e  rs   c                z    |j                   j                  d      r|S |j                  |j                   dz         S )N   /raw_path)r   endswithr   rn   s     rp   r   z"BaseClient._enforce_trailing_slash  s3    <<  &J}}cllT&9}::rs   c                J   |j                   r|j                  sd }d|j                   }nD|j                  j	                         }|}	 t        j                  |      }d|j                   d| }| j                  |||      S # t        $ r |xs d|j                   }Y 2w xY w)NzError code: z - )bodyresponse)		is_closedis_stream_consumedstatus_codetextstriprj   loads	Exception_make_status_error)ro   r   r   err_msgerr_texts        rp    _make_status_error_from_responsez+BaseClient._make_status_error_from_response  s     h&A&A D$X%9%9$:;G}}**,HDLzz(+()=)=(>c$H &&wTH&MM  L"KX5I5I4J&KLs   'B B"!B"c                   t               rl   )NotImplementedError)ro   r  r   r   s       rp   r  zBaseClient._make_status_error  s     "##rs   r   retries_takenc                  |j                   xs i }t        dt        |j                  t              rt        |j                  j                        nt        |j                        i| j                  |      }| j                  ||       t        j                  |      }| j                  }|r|j                  r||vr|j                  ||<   |D cg c]  }|j                          }}d|vrt        |      |d<   d|vr^t        |j                  t              r| j                  n|j                  }	t        |	t              r|	j                  }	|	t        |	      |d<   |S c c}w )Nzx-stainless-timeoutzx-stainless-retry-countzx-stainless-read-timeout)headers_merge_mappingsr   r   r)   r   readdefault_headers_validate_headersr   r(   r   idempotency_keylowerr*   )
ro   r   r  r   headers_dictr
  idempotency_headerheaderlower_custom_headersr   s
             rp   _build_headerszBaseClient._build_headers  sI    .B&%goow7 (+7??+?+?'@) &&	 
 	|^< ---!55'"9"9>PX_>_*1*A*AG&' >LL6LL$,@@14]1CG-.%-AA&0(&KdllQXQ`Q`G'7+!,,"69'l23  Ms   Ec                    t        |      }|j                  rN| j                  j                  |j                  j	                  d      z   }| j                  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   )ro   rf   	merge_urlmerge_raw_paths       rp   _prepare_urlzBaseClient._prepare_url  sZ     H	$$!]]33i6H6H6O6OPT6UUN==**N*CCrs   c                    t               S rl   )rO   r|   s    rp   _make_sse_decoderzBaseClient._make_sse_decoder  s
    |rs   c               P   t         j                  t        j                        r+t         j	                  dt        |dt        rdhni              i }|j                  }|j                  W|t        t        |j                        }n:t        |      rt        ||j                        }nt        dt        |       d      | j                  ||      }t        | j                   |j"                        }|j%                  d      }|j&                  }|y|j)                  d	      rhd
|vr|j+                  d       |r7t-        |      st/        dt        |       d      | j1                  |      |d<   |st        t2        t5                     }| j7                  |j8                        }	d|	j:                  v r!d|	j:                  j=                  dd      i|d<   |j>                  jA                         dk7  }
|
r||jB                  |t/        d      |jB                  |t/        d      |jB                  |jB                  |d<   n(tE        |tF              r||d<   ntI        |      r|nd |d<   ||d<   n$|j+                  dd        |j+                  dd         | jJ                  jL                  d|tE        |jN                  tP              r| jN                  n|jN                  |j>                  |	|r6| jR                  jU                  t        tV        tX        tZ        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 supportedrj   files)r
  r   methodrf   rh   rm   ).rX   isEnabledForloggingDEBUGdebugr>   r<   r   
extra_jsonr   r%   r;   r  r   typer  default_queryrh   r)  r*  
startswithpopr6   r   _serialize_multipartformr3   ForceMultipartDictr  rf   hostreplacer+  r  r  r   bytesr9   r   build_requestr   r*   qs	stringifyr   r   r   )ro   r   r  kwargsr   r
  rh   content_typer*  prepared_urlis_body_alloweds              rp   _build_requestzBaseClient._build_request  s    GMM*II%"&
 # " 	 "$%%	)  w'9'9:	I&+Iw7I7IJ	"%@i@QQq#rss%%g]%K !3!3W^^D{{>2 #(?(?@U(V- N+ y)#abfgpbqarr{|  "&!>!>y!Iv .0B0DE((5,###$2L4E4E4M4McSV4W#XF< !....0E9*y/D YZZ*u/@ UVV*$+OOy!Iu-$-y!.6y.Atv#F7OKK-JJvt$ *t||)) 
$.w$IDLLw>>
 JP477$$T'#s(*;V%DEUY
 
 	
rs   c                    | j                   j                  |d      }i }|D ]B  \  }}|j                  |      }|s|||<   t        |      r|j	                  |       <||g||<   D |S )Nbrackets)array_format)r;  stringify_itemsr)  r7   append)ro   r$  r   
serializedkeyvalueexistings          rp   r5  z#BaseClient._serialize_multipartformO  s    '' #	 ( 
 )+
 	4JC!~~c*H"'
3 x &#+U"3
3%	4( rs   c                    t        |j                        s|S t        |j                        }|j                  t        t
              }t        |      r||_        t        t        t           |      S |S rl   )	r9   r
  r   r4  rL   r5   r   r
   r+   )ro   cast_tor   r
  override_cast_tos        rp   _maybe_override_cast_toz"BaseClient._maybe_override_cast_tom  s^    (N w'
 #;;'>	J$%%GOY)9::rs   c                F    |j                   j                  t              dk(  S )Nstream)r
  r)  rK   ro   r   s     rp   _should_stream_response_bodyz'BaseClient._should_stream_response_body~  s    ""#678CCrs   c                  |t        t        d       S |t        u rt        t        |      S 	 t        j                  |      r1t        |t              r!t        t        |j                  ||            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_rI  )r   r   )r   r+   objectinspectisclass
issubclassr4   buildr   rA   rB   r   ValidationErrorrU   )ro   r$  rL  r   errs        rp   _process_response_dataz!BaseClient._process_response_data  s     <	4((f	4((		Tw'Jw@T,UIw}}hT}'RSS//I}7$'OPP	>t#LMM'' 	T,hTJPSS	Ts$   AB4 2&B4 B4 4CCCc                    t               S rl   r!   r|   s    rp   r;  zBaseClient.qs  s
    }rs   c                     y rl   rm   r|   s    rp   custom_authzBaseClient.custom_auth  s    rs   c                    i S rl   rm   r|   s    rp   auth_headerszBaseClient.auth_headers  s    	rs   c                r    dd| j                   d| j                         | j                  | j                  S )Nzapplication/json)Acceptr"  z
User-Agent)
user_agentplatform_headersra  r   r|   s    rp   r  zBaseClient.default_headers  sN     ).//
 ##%	

 
 ""
 	
rs   c                    i | j                   S rl   )r   r|   s    rp   r2  zBaseClient.default_query  s    
  
 	
rs   c                     y)zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nrm   )ro   r
  r   s      rp   r  zBaseClient._validate_headers  s     	rs   c                L    | j                   j                   d| j                   S )Nz/Python )rz   r{   r   r|   s    rp   rd  zBaseClient.user_agent  s"    ..))*(4==/BBrs   c                    | j                   S rl   )r   r|   s    rp   r   zBaseClient.base_url  s    ~~rs   c                z    | j                  t        |t              r|      | _        y t        |            | _        y rl   )r   r   r   r   rn   s     rp   r   zBaseClient.base_url  s-    55ZS=Qc`WZ[^W_`rs   c                D    t        | j                  | j                        S )N)platform)re  r   r   r|   s    rp   re  zBaseClient.platform_headers  s      GGrs   c                b    d}d}||z  dz  }||kD  s|r||kD  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 detailsrb   )connect)r   r)   )ro   
max_tokensmax_nonstreaming_tokensmaximum_timedefault_timeexpected_times         rp   _calculate_nonstreaming_timeoutz*BaseClient._calculate_nonstreaming_timeout  sV    $z1G;<',C
UlHlj  
 	
rs   c                   |y	 |j                  dd      }t        |      dz  S # t        t        f$ r Y nw xY w|j                  d      }	 t        |      S # t        t        f$ r Y nw xY wt        j
                  j                  |      }|yt        j
                  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)ro   response_headersretry_ms_headerretry_headerretry_date_tuple
retry_dates         rp   _parse_retry_after_headerz$BaseClient._parse_retry_after_header  s     #	.223CTJO)D00:& 		 (++M:	 &&:& 		 !;;33LA#[[**+;<
Z$))+-..s   % 77
A A)(A)c                   |j                  | j                        }| j                  |      }|d|cxk  rdk  r|S  t        ||z
  d      }t        t        t        d|      z  t              }ddt               z  z
  }||z  }	|	dk\  r|	S dS )Nr   <   rv  g       @r   g      ?)get_max_retriesr   r  minrJ   powrH   r   )
ro   remaining_retriesr   r}  r   retry_after
nb_retriessleep_secondsjitterr   s
             rp   _calculate_retry_timeoutz#BaseClient._calculate_retry_timeout  s     --d.>.>? 445EF"q;'<"'< (= '88$?
 /#c:2FFX TFH_$&(!Q,w-A-rs   c                P   |j                   j                  d      }|dk(  rt        j                  d       y|dk(  rt        j                  d       y|j                  dk(  r!t        j                  d	|j                         y|j                  d
k(  r!t        j                  d	|j                         y|j                  dk(  r!t        j                  d	|j                         y|j                  dk\  r!t        j                  d	|j                         yt        j                  d       y)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)  rX   r/  r   )ro   r   should_retry_headers      rp   _should_retryzBaseClient._should_retry  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		.!rs   c                0    dt        j                          S )Nzstainless-python-retry-)uuiduuid4r|   s    rp   _idempotency_keyzBaseClient._idempotency_key?  s    (77rs   )r   r   r   	str | URLr   r   r   r   r   zfloat | Timeout | Noner   Mapping[str, str] | Noner   Mapping[str, object] | Noner~   r   )rf   r   r~   r   )r   httpx.Responser~   rR   )r  r   r   rU  r   r  r~   z_exceptions.APIStatusError)r   r@   r  r   r~   zhttpx.Headers)rf   r   r~   r   )r~   zSSEDecoder | SSEBytesDecoder)r   r@   r  r   r~   httpx.Request)r$  zMapping[object, object]r~   dict[str, object])rL  type[ResponseT]r   r@   r~   r  )r   r  r~   r   )r$  rU  rL  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  )r
  r(   r   r(   r~   r   r   )r~   r   )rf   z	URL | strr~   r   )r~   Dict[str, str])ro  r   rp  z
int | Noner~   r)   rl   )r}  Optional[httpx.Headers]r~   zfloat | None)r  r   r   r@   r}  r  r~   rw  )r   r  r~   r   )#r{   r   r   r   r   rI   rG   rq   r   r  r  r  r  r  rA  r5  rN  rR  r\  propertyr;  r_  ra  r  r2  r  rd  r   setterre  rt  r  r  r  r  rm   rs   rp   r   r   o  s|   MN((!%%##8<5< /*93748  	
 &*  ( 1 2 
4;
N N 
N,$$ 	$
 !$ 
$$ TU  D 	d
$d
 	d

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

		  	 
		 C C   __a aH
 /L 59	.. %. 2	.
 
.0!F8rs   r   c                        e Zd Zd fdZ xZS )_DefaultHttpxClientc           
     X   |j                  dt               |j                  dt               |j                  dd       d|vrt        j                  t        j
                  dfg}t        t        dd       }|#|j                  t        j                  |df       nFt        j                  dk(  r3t        t        d	d
      }|j                  t        j                  |df       t        t        dd       }|"|j                  t        j                  |df       t        t        dd       }|"|j                  t        j                  |df       t               j                         D ci c]  \  }}||d nt        |       }	}}dD 
ci c]  }
|
|v s|
||
    }}
||d<   |	j                         D ci c]  \  }}||d nt        dd|i| }}}t        di |}|j                  |j!                  di              ||d<   ||d<   t#        | H  di | y c c}}w c c}
w c c}}w Nr   limitsfollow_redirectsT	transportTCP_KEEPINTVLr  darwinTCP_KEEPALIVE   TCP_KEEPCNT   TCP_KEEPIDLE)rf   )verifycert	trust_envhttp1http2r  socket_optionsproxymountsrm   )
setdefaultrG   rM   socket
SOL_SOCKETSO_KEEPALIVEr   rF  IPPROTO_TCPsysrl  rV   r   r   r   updater)  superrq   ro   r=  r  r  r  r  r  rH  rf   	proxy_mapargtransport_kwargsr  proxy_mountsdefault_transportrz   s                  rp   rq   z_DefaultHttpxClient.__init__D  s2   )_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x(#sckdu~ExIx -h %(knrxkxVC[     2@-. #,//"3C U]T0^E0^M]0^^L  !. A0@ A 

8R 89+F8 #4F;"6"+ y    (H
	H!H!6H&r=  r   r~   r   r{   r   r   rq   __classcell__rz   s   @rp   r  r  C      -# -#rs   r  c                      e Zd ZddZy)SyncHttpxClientWrapperc                ^    | j                   ry 	 | j                          y # t        $ r Y y w xY wrl   )r   closer   r|   s    rp   __del__zSyncHttpxClientWrapper.__del__  s,    >>	JJL 		s     	,,Nr~   r   r{   r   r   r  rm   rs   rp   r  r    s    rs   r  c                      e Zd ZU ded<   dZded<   eedddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2 fdZd3dZd4d	Z	d5d
Z
	 	 	 	 	 	 	 	 d6dZ	 	 	 	 d7dZ	 	 	 	 d8dZe	 	 	 	 	 	 	 	 	 	 d9d       Zedd	 	 	 	 	 	 	 d:d       Zeddd	 	 	 	 	 	 	 	 	 d;d       Zddd	 	 	 	 	 	 	 	 	 d<dZ	 	 	 	 	 	 	 	 	 	 d=dZdd	 	 	 	 	 	 	 	 	 	 	 	 	 d>dZ	 	 	 	 	 	 	 	 d?dZei dd	 	 	 	 	 	 	 	 	 d@d       Zei d	 	 	 	 	 	 	 	 	 	 	 dAd       Zei dd	 	 	 	 	 	 	 	 	 	 	 dBd       Zi ddd 	 	 	 	 	 	 	 	 	 	 	 dBd!Zeddi ddd"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dCd#       Zeddi dd$	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd%       Zeddi ddd&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd'       Zddi dddd(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd)Zdddi d*	 	 	 	 	 	 	 	 	 	 	 	 	 dFd+Zdddi d*	 	 	 	 	 	 	 	 	 	 	 	 	 dFd,Zddi d-	 	 	 	 	 	 	 	 	 	 	 dGd.Zdi d/d0	 	 	 	 	 	 	 	 	 	 	 	 	 dHd1Z xZS )Ir   zhttpx.Clientr   Nztype[Stream[Any]] | Noner   r   r   http_clientr   r   c          	     b   t        |      s(|r |j                  t        k7  r|j                  }nt        }|1t	        |t
        j                        st        dt        |             t        	| )  |t        t        |      |||||       |xs t        |t        t        |            | _        y )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   r1  r  rq   r   r)   r  r   )
ro   r   r   r   r   r  r   r   r   rz   s
            rp   rq   zSyncAPIClient.__init__  s       {226KK%--)":k5<<+Pabfgrbsatu  	'*#%)(C 	 		
 # 
&<'*'
rs   c                .    | j                   j                  S rl   r   r   r|   s    rp   r   zSyncAPIClient.is_closed      ||%%%rs   c                R    t        | d      r| j                  j                          yy)`Close the underlying HTTPX client.

        The client will *not* be usable after this.
        r   N)hasattrr   r  r|   s    rp   r  zSyncAPIClient.close  s#     4#LL  $rs   c                    | S rl   rm   r|   s    rp   	__enter__zSyncAPIClient.__enter__  s    rs   c                $    | j                          y rl   r  ro   exc_typeexcexc_tbs       rp   __exit__zSyncAPIClient.__exit__  s     	

rs   c                    |S z#Hook for mutating the given optionsrm   ro   r   s     rp   _prepare_optionszSyncAPIClient._prepare_options  s	    
 rs   c                     y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.
        Nrm   rQ  s     rp   _prepare_requestzSyncAPIClient._prepare_request  s     rs   c                    y rl   rm   ro   rL  r   rP  
stream_clss        rp   r   zSyncAPIClient.request  s     rs   FrP  c                    y rl   rm   ro   rL  r   rP  s       rp   r   zSyncAPIClient.request  s     rs   rP  r  c                    y rl   rm   r  s        rp   r   zSyncAPIClient.request  s      #rs   c          	        | j                  ||      }t        |      }|j                  2|j                  j	                         dk7  r| j                         |_        d }|j                  | j                        }d}t        |dz         D ]m  }t        |      }| j                  |      }||z
  }	| j                  ||      }
| j                  |
       i }| j                  | j                  |d<   |j                  |j                  |d<   t        j                  d|
j                  |
j                          d }	  | j"                  j$                  |
fd|xs | j'                  |
	      i|}t        j                  d|
j                  |
j                   |j4                  |j6                  |j8                         t        j                  d|j8                  j;                  d             	 |j=                           n |J d       | jM                  ||||||      S # t(        j*                  $ r^}t        j                  d
d       |	dkD  r| j-                  |||d        Y d }~t        j                  d       t/        |
	      |d }~wt0        $ r^}t        j                  dd       |	dkD  r| j-                  |||d        Y d }~@t        j                  d       t3        |
	      |d }~ww xY w# t(        j>                  $ r}t        j                  dd       |	dkD  rP| jA                  |jB                        r5|jB                  jE                          | j-                  ||||       Y d }~|jB                  jF                  s|jB                  jI                          t        j                  d       | jK                  |jB                        d d }~ww xY wNr)  r   r   r  authr  zSending HTTP Request: %s %srP  )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))rL  r   r   rP  r  r  )'rN  r=   r  r+  r  r  r  r   ranger  rA  r  r_  r  rX   r/  rf   r   sendrR  r   TimeoutException_sleep_for_retryrS   r   rT   r   reason_phraser
  r)  raise_for_statusHTTPStatusErrorr  r   r  r   r  r  _process_responsero   rL  r   rP  r  input_optionsr   r   r  r  r   r=  r[  s                rp   r   zSyncAPIClient.request  s    ..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)*.#33D4D4DE";?3 V	M /G++G4G +m ;))')OG!!'*$&F+!%!1!1v''3-4-E-E)*II3W^^W[[QH!C,4<<,,!WT%F%Fw%F%W D II1$$&&   II&(8(8(<(<\(JKT))+, mV	p #W%WW#%%!' & 
 	
C )) @		>	N$q())&3$/ -!%	 *  		12%g6C? C		1D	A$q())&3$/ -!%	 *  		45(9sBC6 (( T		=	M$q(T-?-?-MLL&&())&3$/ -!)	 *   ||--LL%%'		34;;CLLItS'TsP   83H'K3K0-1J$"JK01K+	"K++K03OA&O2A!OOc                  ||z
  }|dk(  rt         j                  d       nt         j                  d|       | j                  |||r|j                  nd       }t         j	                  d|j
                  |       t        j                  |       y Nr   z1 retry leftz%i retries leftz$Retrying request to %s in %f seconds)rX   r/  r  r
  r   rf   r|  sleepro   r  r   r   r   r  r   s          rp   r  zSyncAPIClient._sleep_for_retry|  su     (-7!IIn%II'):;//0A7`hHL\L\nrs7gN

7rs   r   r  c               :   |j                   j                  j                  t              dk(  r t	        t
        t        || |||||            S t        |      xs |}t        j                  |      rt        |t              r|r2t        |j                   j                  j                  t                    rWt        |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                  j                  t                    rt	        t
        |	      S |	j%                         S )Nr  rawr   rL  rP  r  r   r  !API Response types must subclass ; Received type[BaseAPIResponse[Any]]r  )r   r
  r)  rK   r   r+   rW   r   rV  rW  rX  rD   r   rC   r   rF   r   Responseparse
ro   rL  r   r   rP  r  r  originresponse_clsapi_responses
             rp   r  zSyncAPIClient._process_response  s    ##''(;<F! #!)#"/  G$/ OOF#6?3 tH$4$4$<$<$@$@AT$UVfk2"CK=P[\b[c dee <gFL 1,?!)#"/  enn$	8,,"*G4!'
   ((,,-@AB	<00!!##rs   c                N     d fd}|_          j                  |d      S )Nc                0    | j                         | S )N)r   r   r   )r   )r   r   r   ro   s    rp   r   z0SyncAPIClient._request_api_list.<locals>._parser  s&    (( ) 
 Krs   Fr  )r   rY   r~   rY   )r   r   )ro   r   r   r   r   s   `` ` rp   r   zSyncAPIClient._request_api_list  s'    	 &||D'%|88rs   r   rP  c                    y rl   rm   ro   pathrL  r   rP  s        rp   r)  zSyncAPIClient.get  s     rs   r   c                    y rl   rm   ro   r  rL  r   rP  r  s         rp   r)  zSyncAPIClient.get  s     rs   r   r  c                    y rl   rm   r  s         rp   r)  zSyncAPIClient.get  s      #rs   r   rP  r  c          	     x    t        j                  dd|d|}t        t        | j	                  ||||            S Nr)  )r+  rf   r  rm   )r@   	constructr   r+   r   ro   r  rL  r   rP  r  optss          rp   r)  zSyncAPIClient.get   s?     #,,OEtOwO It||GT&U_|`aars   )r   r  r   r*  rP  c                    y rl   rm   )ro   r  rL  r   r  r   r*  rP  s           rp   postzSyncAPIClient.post  s     rs   )r   r  r   r*  c                    y rl   rm   	ro   r  rL  r   r  r   r*  rP  r  s	            rp   r(  zSyncAPIClient.post  s     rs   )r   r  r   r*  r  c                    y rl   rm   r*  s	            rp   r(  zSyncAPIClient.post)  s      #rs   )r   r  r   r*  rP  r  c          
     $   ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  d	d|||t        |      d|}	t        t        | j                  ||	||            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(  r+  rf   r   r  r*  r  rm   )r   r   r9  warningswarnDeprecationWarningr@   r$  r#   r   r+   r   )
ro   r  rL  r   r  r   r*  rP  r  r&  s
             rp   r(  zSyncAPIClient.post7  s      3PQQ!4QRRdE"MMM"	 #,, 
ttWN[`La
el
 It||GT&U_|`aars   r   r  r*  r   c          
        ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||t        |      d|}| j                  ||      S 	Nr.  r/  r0  r1  r2  patchr4  rm   
r   r   r9  r5  r6  r7  r@   r$  r#   r   ro   r  rL  r   r  r*  r   r&  s           rp   r;  zSyncAPIClient.patchS  s      3PQQ!4QRRdE"MMM"	 #,, 
g^\aMb
fm
 ||GT**rs   c          
        ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||t        |      d|}| j                  ||      S 	Nr.  r/  r0  r1  r2  putr4  rm   r<  r=  s           rp   r@  zSyncAPIClient.putm  s      3PQQ!4QRRdE"MMM"	 #,, 
ddG>Z_K`
dk
 ||GT**rs   r   r  r   c                   ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||d|}| j                  ||      S Nr.  r0  r1  r2  delete)r+  rf   r   r  rm   	r   r   r9  r5  r6  r7  r@   r$  r   ro   r  rL  r   r  r   r&  s          rp   rD  zSyncAPIClient.delete  sq      3PQQdE"MMM"	 #,,sH$RV`gskrs||GT**rs   r)  r   r   r+  c               Z    t        j                  d|||d|}| j                  |||      S N)r+  rf   r   rm   r@   r$  r   ro   r  r   r   r   r   r+  r&  s           rp   get_api_listzSyncAPIClient.get_api_list  7     #,,`FPT`X_`%%eT488rs   )r   r   r   r  r   r   r   !float | Timeout | None | NotGivenr  zhttpx.Client | Noner   r  r   r  r   r   r~   r   r   r  ro   r\   r~   r\   r  ztype[BaseException] | Noner  zBaseException | Noner  zTracebackType | Noner~   r   r   r@   r~   r@   r   r  r~   r   )
rL  Type[ResponseT]r   r@   rP  Literal[True]r  zType[_StreamT]r~   r_   rL  rS  r   r@   rP  Literal[False]r~   r+   )
rL  rS  r   r@   rP  r   r  zType[_StreamT] | Noner~   ResponseT | _StreamT)
rL  rS  r   r@   rP  r   r  type[_StreamT] | Noner~   rW  
r  r   r   r   r   r@   r   zhttpx.Response | Noner~   r   rL  rS  r   r@   r   r  rP  r   r  z1type[Stream[Any]] | type[AsyncStream[Any]] | Noner  r   r~   r+   )r   Type[object]r   Type[SyncPageT]r   r@   r~   rY   
r  r   rL  rS  r   r1   rP  rV  r~   r+   )r  r   rL  rS  r   r1   rP  rT  r  type[_StreamT]r~   r_   )r  r   rL  rS  r   r1   rP  r   r  rX  r~   rW  )r  r   rL  rS  r   Body | Noner  BinaryTypes | Noner   r1   r*  RequestFiles | NonerP  rV  r~   r+   )r  r   rL  rS  r   r_  r  r`  r   r1   r*  ra  rP  rT  r  r^  r~   r_   )r  r   rL  rS  r   r_  r  r`  r   r1   r*  ra  rP  r   r  rX  r~   rW  )r  r   rL  rS  r   r_  r  r`  r*  ra  r   r1   r~   r+   )r  r   rL  rS  r   r_  r  r`  r   r1   r~   r+   )r  r   r   r[  r   r\  r   r_  r   r1   r+  r   r~   rY   )r{   r   r   r   r   rI   r5   rq   r   r  r  r  r  r  r   r   r  r  r   r)  r(  r;  r@  rD  rL  r  r  s   @rp   r   r     s+   4818 /5>+/3748,
 ,
 	,

 ,
 3,
 ),
 1,
 2,
 &*,
 
,
\&!, " %	
 
$ 
		 
	   %
  # 
   "'  %
  
   ,0# # %#
 # *# 
# # ,0v
 v
 %v

 v
 *v
 
v
p #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 
9rs   r   c                        e Zd Zd fdZ xZS )_DefaultAsyncHttpxClientc           
     X   |j                  dt               |j                  dt               |j                  dd       d|vrt        j                  t        j
                  dfg}t        t        dd       }|#|j                  t        j                  |df       nFt        j                  dk(  r3t        t        d	d
      }|j                  t        j                  |df       t        t        dd       }|"|j                  t        j                  |df       t        t        dd       }|"|j                  t        j                  |df       t               j                         D ci c]  \  }}||d nt        |       }	}}dD 
ci c]  }
|
|v s|
||
    }}
||d<   |	j                         D ci c]  \  }}||d nt        dd|i| }}}t        di |}|j                  |j!                  di              ||d<   ||d<   t#        | H  di | y c c}}w c c}
w c c}}w r  )r  rG   rM   r  r  r  r   rF  r  r  rl  rV   r   r   r   r  r)  r  rq   r  s                  rp   rq   z!_DefaultAsyncHttpxClient.__init__  s3   )_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x(#sckdu~ExIx -h %(knrxkxVC[     2@-. #,//"3C U]T0B0c0cRb0ccL  !3 F5E F 

8R 89+F8 #4F;"6"+ y r  r  r  r  s   @rp   rc  rc    r  rs   rc  c                        e Zd Zd fdZ xZS )_DefaultAioHttpClientc                    |j                  dt               |j                  dt               |j                  dd       t        |   di | y )Nr   r  r  Trm   )r  rG   rM   r  rq   )ro   r=  rz   s     rp   rq   z_DefaultAioHttpClient.__init__  sE    i9h(AB0$7G&v&rs   r  r  r  s   @rp   rf  rf    s    	' 	'rs   rf  c                      e Zd ZddZy)rf  c                    t        d      )NzVTo use the aiohttp client you must have installed the package with the `aiohttp` extra)r   )ro   _kwargss     rp   rq   z_DefaultAioHttpClient.__init__  s    wxxrs   N)rj  r   r~   r   )r{   r   r   rq   rm   rs   rp   rf  rf    s    	yrs   c                      e Zd ZddZy)AsyncHttpxClientWrapperc                    | j                   ry 	 t        j                         j                  | j	                                y # t
        $ r Y y w xY wrl   )r   asyncioget_running_loopcreate_taskacloser   r|   s    rp   r  zAsyncHttpxClientWrapper.__del__  s@    >>	$$&224;;=A 		s   1A 	AANr  r  rm   rs   rp   rl  rl    s    rs   rl  c                  
    e Zd ZU ded<   dZded<   eedddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2 fdZd3dZd4d	Z	d5d
Z
	 	 	 	 	 	 	 	 d6dZ	 	 	 	 d7dZ	 	 	 	 d8dZedd	 	 	 	 	 	 	 d9d       Ze	 	 	 	 	 	 	 	 	 	 d:d       Zedd	 	 	 	 	 	 	 	 	 d;d       Zddd	 	 	 	 	 	 	 	 	 d;dZ	 	 	 	 	 	 	 	 	 	 d<dZdd	 	 	 	 	 	 	 	 	 	 	 	 	 d=dZ	 	 	 	 	 	 	 	 d>dZei dd	 	 	 	 	 	 	 	 	 d?d       Zei d	 	 	 	 	 	 	 	 	 	 	 d@d       Zei dd	 	 	 	 	 	 	 	 	 	 	 dAd        Zi ddd!	 	 	 	 	 	 	 	 	 	 	 dAd"Zedddi dd#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dBd$       Zedddi d%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dCd&       Zedddi dd'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd(       Zdddi ddd)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd*Zdddi d%	 	 	 	 	 	 	 	 	 	 	 	 	 dEd+Zdddi d%	 	 	 	 	 	 	 	 	 	 	 	 	 dEd,Zddi d-	 	 	 	 	 	 	 	 	 	 	 dFd.Zdi d/d0	 	 	 	 	 	 	 	 	 	 	 	 	 dGd1Z xZS )Hr   zhttpx.AsyncClientr   Nztype[AsyncStream[Any]] | Noner   r  c          	     b   t        |      s(|r |j                  t        k7  r|j                  }nt        }|1t	        |t
        j                        st        dt        |             t        	| )  ||t        t        |      ||||       |xs t        |t        t        |            | _        y )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   r1  r  rq   r   r)   rl  r   )
ro   r   r   r   r   r   r  r   r   rz   s
            rp   rq   zAsyncAPIClient.__init__  s       {226KK%--)":k5CTCT+Ufgklwgxfyz  	'*#%)(C 	 		
 # 
&='*'
rs   c                .    | j                   j                  S rl   r  r|   s    rp   r   zAsyncAPIClient.is_closed;  r  rs   c                T   K   | j                   j                          d{    y7 w)r  N)r   rq  r|   s    rp   r  zAsyncAPIClient.close>  s     
 ll!!###s   (&(c                   K   | S wrl   rm   r|   s    rp   
__aenter__zAsyncAPIClient.__aenter__E  s        c                @   K   | j                          d {    y 7 wrl   r  r  s       rp   	__aexit__zAsyncAPIClient.__aexit__H  s      jjls   c                   K   |S wr  rm   r  s     rp   r  zAsyncAPIClient._prepare_optionsP  s     
 ry  c                   K   ywr  rm   rQ  s     rp   r  zAsyncAPIClient._prepare_requestW  s         Fr  c                  K   y wrl   rm   r  s       rp   r   zAsyncAPIClient.requestb  s      r~  c                  K   y wrl   rm   r  s        rp   r   zAsyncAPIClient.requestk  s      r~  )r  c                  K   y wrl   rm   r  s        rp   r   zAsyncAPIClient.requestu  s      %(r~  r  c          	       K   | j                   ! t        t                      d {   | _         | j                  ||      }t	        |      }|j
                  2|j                  j                         dk7  r| j                         |_        d }|j                  | j                        }d}t        |dz         D ]  }t	        |      }| j                  |       d {   }||z
  }	| j                  ||      }
| j                  |
       d {    i }| j                  | j                  |d<   |j                   |j                   |d<   t"        j%                  d|
j                  |
j&                         d }	  | j(                  j*                  |
fd|xs | j-                  |
	      i| d {   }t"        j%                  d|
j                  |
j&                  |j:                  |j<                  |j>                         t"        j%                  d|j>                  jA                  d             	 |jC                           n |J d       | jS                  ||||||       d {   S 7 C7 7 c7 # t.        j0                  $ rg}t"        j%                  d
d       |	dkD  r$| j3                  |||d        d {  7   Y d }~t"        j%                  d       t5        |
	      |d }~wt6        $ rg}t"        j%                  dd       |	dkD  r$| j3                  |||d        d {  7   Y d }~}t"        j%                  d       t9        |
	      |d }~ww xY w# t.        jD                  $ r}t"        j%                  dd       |	dkD  rb| jG                  |jH                        rG|jH                  jK                          d {  7   | j3                  ||||       d {  7   Y d }~8|jH                  jL                  s#|jH                  jO                          d {  7   t"        j%                  d       | jQ                  |jH                        d d }~ww xY w7 wr  )*r   r8   get_platformrN  r=   r  r+  r  r  r  r   r  r  rA  r  r_  r  rX   r/  rf   r   r  rR  r   r  r  rS   r   rT   r   r   r
  r)  r  r  r  r   rq  r   areadr  r  r  s                rp   r   zAsyncAPIClient.request  s5     >>! $:8L#9#;;DN..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)*.#33D4D4DE";?3 V	M /G 11'::G +m ;))')OG''000$&F+!%!1!1v''3-4-E-E)*II3W^^W[[QH!C!2!2!2"!WT%F%Fw%F%W" " D II1$$&&   II&(8(8(<(<\(JKT))+, mV	p #W%WW#++!' , 
 
 	
S <$ ; 1
 )) @		>	N$q(//&3$/ -!%	 0    		12%g6C? C		1D	A$q(//&3$/ -!%	 0    		45(9sBC6 (( T		=	M$q(T-?-?-M,,--/////&3$/ -!)	 0     ||--,,,,...		34;;CLLItS'T0
s	  $Q%I)B4Q%I,0Q%I/A)Q%76I4-I2.I42A;Q%.M>&Q%$Q"%Q%,Q%/Q%2I44M4K);J><K)Q%"K))M54M)L,*M/Q%5"MMQ%Q2AQO	Q$O'%Q*Q%03Q#P&$6QQQ%c               :  K   ||z
  }|dk(  rt         j                  d       nt         j                  d|       | j                  |||r|j                  nd       }t         j	                  d|j
                  |       t        j                  |       d {    y 7 wr  )rX   r/  r  r
  r   rf   anyior  r	  s          rp   r  zAsyncAPIClient._sleep_for_retry  s      (-7!IIn%II'):;//0A7`hHL\L\nrs7gNkk'"""s   BBBBr   r  c               N  K   |j                   j                  j                  t              dk(  r t	        t
        t        || |||||            S t        |      xs |}t        j                  |      rt        |t              r|r2t        |j                   j                  j                  t                    rSt        |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                  j                  t                    rt	        t
        |	      S |	j%                          d {   S 7 w)Nr  r  r  r  r  r+   r  )r   r
  r)  rK   r   r+   rW   r   rV  rW  rX  rD   r   rE   r   rF   r   r  r  r  s
             rp   r  z AsyncAPIClient._process_response
  s     ##''(;<F! #!)#"/  G$/ OOF#6?3 tH$4$4$<$<$@$@AT$UVf&67"CDTCUU`ag`h ijj <gFL 1,?!)#"/  enn$	8,,'*G4!'
   ((,,-@AB	<00!''))))s   FF%F#F%c                     t        | |||      S )N)r   r   r   r   )r   )ro   r   r   r   s       rp   r   z AsyncAPIClient._request_api_listN  s     T7TQVWWrs   r  c                  K   y wrl   rm   r  s        rp   r)  zAsyncAPIClient.getV  s      r~  r  c                  K   y wrl   rm   r  s         rp   r)  zAsyncAPIClient.get`  s      r~  r  c                  K   y wrl   rm   r  s         rp   r)  zAsyncAPIClient.getk  s      %(r~  r!  c               x   K   t        j                  dd|d|}| j                  ||||       d {   S 7 wr#  )r@   r$  r   r%  s          rp   r)  zAsyncAPIClient.getv  s?      #,,OEtOwO\\'4:\VVVVs   1:8:)r   r  r*  r   rP  c                  K   y wrl   rm   )ro   r  rL  r   r  r*  r   rP  s           rp   r(  zAsyncAPIClient.post  s      r~  r8  c                  K   y wrl   rm   	ro   r  rL  r   r  r*  r   rP  r  s	            rp   r(  zAsyncAPIClient.post  s      r~  )r   r  r*  r   r  c                  K   y wrl   rm   r  s	            rp   r(  zAsyncAPIClient.post  s      %(r~  )r   r  r*  r   rP  r  c          
     8  K   ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  d	d|||t        |       d {   d|}	| j                  ||	||       d {   S 7 &7 wr-  
r   r   r9  r5  r6  r7  r@   r$  r$   r   )
ro   r  rL  r   r  r*  r   rP  r  r&  s
             rp   r(  zAsyncAPIClient.post  s       3PQQ!4QRRdE"MMM"	 #,, 
ttWRfglRmLm
qx
 \\'4:\VVV MnVs$   A-B/B0!BBBBc          
     2  K   ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||t        |       d {   d|}| j                  ||       d {   S 7 #7 wr:  r  r=  s           rp   r;  zAsyncAPIClient.patch  s       3PQQ!4QRRdE"MMM"	 #,, 
,U33
 
 \\'4000 4 1$   A-B/B0BBBBc          
     2  K   ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||t        |       d {   d|}| j                  ||       d {   S 7 #7 wr?  r  r=  s           rp   r@  zAsyncAPIClient.put  s       3PQQ!4QRRdE"MMM"	 #,, 
ddGQefkQlKl
pw
 \\'4000 Lm0r  rA  c                  K   ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||d|}| j                  ||       d {   S 7 wrC  rE  rF  s          rp   rD  zAsyncAPIClient.delete   s{       3PQQdE"MMM"	 #,,sH$RV`gskrs\\'40000s   A+A4-A2.A4r)  rG  c               Z    t        j                  d|||d|}| j                  |||      S rI  rJ  rK  s           rp   rL  zAsyncAPIClient.get_api_list  rM  rs   )r   r   r   r  r   r   r   r   r   rN  r  zhttpx.AsyncClient | Noner   r  r   r  r~   r   r   r  rO  rP  rQ  rR  rU  )
rL  rS  r   r@   rP  rT  r  type[_AsyncStreamT]r~   r`   )
rL  rS  r   r@   rP  r   r  type[_AsyncStreamT] | Noner~   ResponseT | _AsyncStreamTrY  rZ  )r   r   r   r   r   r@   r~   AsyncPaginator[_T, AsyncPageT]r]  )r  r   rL  rS  r   r1   rP  rT  r  r  r~   r`   )r  r   rL  rS  r   r1   rP  r   r  r  r~   r  )r  r   rL  rS  r   r_  r  AsyncBinaryTypes | Noner*  ra  r   r1   rP  rV  r~   r+   )r  r   rL  rS  r   r_  r  r  r*  ra  r   r1   rP  rT  r  r  r~   r`   )r  r   rL  rS  r   r_  r  r  r*  ra  r   r1   rP  r   r  r  r~   r  )r  r   rL  rS  r   r_  r  r  r*  ra  r   r1   r~   r+   )r  r   rL  rS  r   r_  r  r  r   r1   r~   r+   )r  r   r   r   r   r   r   r_  r   r1   r+  r   r~   r  )r{   r   r   r   r   rI   r5   rq   r   r  rx  r{  r  r  r   r   r  r  r   r)  r(  r;  r@  rD  rL  r  r  s   @rp   r   r   	  s.   9=6= /5>043748,
 ,
 	,

 &*,
 ,
 3,
 .,
 1,
 2,
 
,
\&$, " %	
 
$ 
		 
	  "'  %
  
    %
  ( 
   26( ( %(
 ( /( 
#( ( 15{
 {
 %{

 {
 /{
 
#{
z# ##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 
(9rs   r   )queryextra_headersextra_query
extra_bodyr  r   r   c                    i }|||d<   |t        t        |      |d<   | | |d<   |i |j                  di       ||d<   t        |t              s||d<   |||d<   t        |      r||d<   |S )zECreate a dict of type RequestOptions without keys of NotGiven values.r
  r0  rh   r   r  r   )r   r,   r)  r   r*   r9   )r  r  r  r  r  r   r   r   s           rp   make_request_optionsr  #  s     !G *	 $Z <!Hw{{8R8HKHgx($	"%4!"!,Nrs   c                      e Zd ZddZy)r6  c                     y)NTrm   r|   s    rp   __bool__zForceMultipartDict.__bool__I  s    rs   Nr   )r{   r   r   r  rm   rs   rp   r6  r6  H  s    rs   r6  c                  &    e Zd ZddZedd       Zy)OtherPlatformc                    || _         y rl   namero   r  s     rp   rq   zOtherPlatform.__init__N  	    	rs   c                     d| j                    S )NzOther:r  r|   s    rp   __str__zOtherPlatform.__str__Q      		{##rs   Nr  r   r~   r   r   r{   r   r   rq   r   r  rm   rs   rp   r  r  M       $ $rs   r  )MacOSLinuxWindowsFreeBSDOpenBSDiOSAndroidUnknownc                 F   	 t        j                         j                         } t        j                          j                         }d|v sd|v ry| dk(  ry| dk(  ryd	|v ry
| dk(  r!t	        j
                         }|dk(  ry|dk(  ryy|rt        |      S y# t        $ r Y yw xY w)Nr  iphoneipadr  r  r  windowsr  androidr  linuxfreebsdr  openbsdr  r  )rl  systemr  r   distroidr  )r  platform_name	distro_ids      rp   r  r  e  s    "((* ))+113 = Fm$;
 M! IIK		!	!]++G  s   AB 	B B )maxsizec                   d| t        |xs
 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   rl  s     rp   re  re    s;     %'.h8,.9 0 2313'9'; rs   c                  &    e Zd ZddZedd       Zy)	OtherArchc                    || _         y rl   r  r  s     rp   rq   zOtherArch.__init__  r  rs   c                     d| j                    S )Nzother:r  r|   s    rp   r  zOtherArch.__str__  r  rs   Nr  r   r  rm   rs   rp   r  r    r  rs   r  )x32x64armarm64unknownc                 J    	 t        j                         S # t        $ r Y yw xY wNr  )rl  python_implementationr   rm   rs   rp   r  r    s(    --//     	""c                 J    	 t        j                         S # t        $ r Y yw xY wr  )rl  python_versionr   rm   rs   rp   r  r    s(    &&(( r  c                     	 t        j                         j                         } | dv ry| dk(  ry| dk(  ryt        j
                  dk  ry| rt        |       S y# t        $ r Y yw xY w)	Nr  )r  aarch64r  r  x86_64r  l        r  )rl  machiner  r   r  r  r  )r  s    rp   r  r    sz    ""$**, && %( {{e!!)  s   "A 	A#"A#c                    i | |}|j                         D ci c]  \  }}t        |t              r|| c}}S c c}}w )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   r   r&   )obj1obj2mergedrH  rI  s        rp   r  r    s?     F)/W:3z%QU?VCJWWWs   <<)r  Query | Noner  zHeaders | Noner  r  r  r_  r  r   r   z'float | httpx.Timeout | None | NotGivenr   zPostParser | NotGivenr~   r1   )r~   Platform)r   r   rl  zPlatform | Noner~   r  r   )r~   Arch)r  Mapping[_T_co, Union[_T, Omit]]r  r  r~   zDict[_T_co, _T])
__future__r   r  rj   r|  r  rx  r  rn  rV  r-  rl  r5  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._httpxrV   _legacy_responserW   	getLoggerr{   rX   r   rY   r[   r\   r]   r_   r`   httpx._configra   r  ImportErrorrd   r   r   r   r   r  rt  r   r   r   r  DefaultHttpxClientr  r   rc  httpx_aiohttpHttpxAiohttpClientrf  DefaultAsyncHttpxClientDefaultAioHttpClientrl  r   r  r   r6  r  r  r  re  r  r  r  r  r  r  rm   rs   rp   <module>r     sf   " 
                 & < ;     ? ?     8    & P O 8 8 U U    I H  3 /'g''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Q878 Q8h.#%,, .#b  -/ \9Ju||VC[89 \9~.#u00 .#b'' @ @ ' #// !,,_60	5 	W9Z 1 1;s3C CD W9x $( $""&7@)2"" "" 	"
 "  " 5" '" "Jc4i 
$ $ 		
'T 4 $ $ Y GHHI4	X
)	X
)	X 	XuB  - '-P+  yy 1 1 yys$   N  N NNN65N6