
    "hj2             
         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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 d dl m!Z!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) d dl(m*Z* d	d
l+m,Z, d	dl-m.Z. d	dl/m0Z0m1Z1 d	dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d	dlDmEZEmFZFmGZGmHZHmIZImJZJmKZK d	dlLmMZMmNZNmOZO d	dlPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZX d	dlYmZZZm[Z[m\Z\m]Z]m^Z^ d	dl_m`Z`maZambZbmcZc d	dldmeZemfZfmgZgmhZhmiZimjZjmkZk d	dllmmZmmnZnmoZompZp d	dl,mqZqmrZrmsZsmtZtmuZu d	dlvmwZw d	dlxmyZy  e	j                  e{      Z|de}d<   e|j                   eE               edd      Z edd      Z ed      Z ed d!"      Z ed#eme         Z ed$eoe         Zer	d d%lmZ eZn	 d d%lmZ  G d' d(      Z G d) d*eZee         Z G d+ d,ee   ee         Z G d- d.eeef         Z G d/ d0ee   ee         Z ed1ee&j                  e&j                  f         Z ed2eeme   eoe   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                  eme   f         Z G d; d<e&j                        Zej0                  d=k  r G d> d?e&j                        Zn	 d dlZ G d@ d?ej6                        Zere&j                  Z	 e&j                  ZneZeZ G dB dCe      Z G dD dEee&j                  eoe   f         ZdddddeCeCdddF		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dWdGZ G dH dIeedf         Z G dJ dK      Zeee"dL   f   ZdXdMZ eJdN      dYdO       Z G dP dQ      Zeee"dR   f   ZdZdSZdZdTZd[dUZ	 	 	 	 	 	 d\dVZy# e$ r  e7d&      ZY  w xY w# e$ r  G dA d?e&j                        ZY w xY w)]    )annotationsN)TracebackType)random)TYPE_CHECKINGAnyDictTypeUnionGenericMappingTypeVarIterableIteratorOptional	GeneratorAsyncIteratorcastoverload)UnpackLiteraloverride
get_origin)URL)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)SensitiveHeadersFilteris_dictis_listasyncifyis_given	lru_cache
is_mapping)PYDANTIC_V1
model_copy
model_dump)status_exceptionstimeout_exceptionsnormalize_httpx_urlis_httpx2_sync_clientnormalize_httpx2_authis_httpx2_async_clientnormalize_httpx_timeoutnormalize_httpx2_timeout)GenericModelSecurityOptions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)OpenAIErrorAPIStatusErrorAPITimeoutErrorAPIConnectionErrorAPIResponseValidationError)openapi_dumps)LegacyAPIResponsezlogging.Loggerlog	SyncPageTzBaseSyncPage[Any])bound
AsyncPageTzBaseAsyncPage[Any]_T_T_coT)	covariant_StreamT_AsyncStreamT)DEFAULT_TIMEOUT_CONFIGg      @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 selfrl   s     Q/root/.hermes/SkillClaw/.venv/lib/python3.12/site-packages/openai/_base_client.py__init__zPageInfo.__init__       
     c                    y rr   rs   )ru   rn   s     rv   rw   zPageInfo.__init__   rx   ry   c                    y rr   rs   )ru   rp   s     rv   rw   zPageInfo.__init__   rx   ry   rl   rp   rn   c               .    || _         || _        || _        y rr   r|   )ru   rl   rp   rn   s       rv   rw   zPageInfo.__init__   s     	ry   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=)rl   	__class____name__rp   rn   ru   s    rv   __repr__zPageInfo.__repr__   sv    88nn--.eDHH:Q??99nn--.fTYYKqAA..))*(4;;-qAAry   N)rl   r   returnNone)rn   r#   r   r   )rp   r!   r   r   )rl   rk   rp   ro   rn   rm   r   r   r   str)
r   
__module____qualname____doc____annotations__r   rw   r1   r   r   rs   ry   rv   rj   rj      s    
 

  
	    
	    
	  ( )#,	 	 		
 !	 
	 B Bry   rj   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
    rF   _optionsType[_T]_modelc                L    | j                         }|sy| j                         d uS )NF)_get_page_itemsnext_page_info)ru   itemss     rv   has_next_pagezBasePage.has_next_page   s*    $$&""$D00ry   c                     y rr   rs   r   s    rv   r   zBasePage.next_page_info   s    ry   c                     y rr   rs   r   s    rv   r   zBasePage._get_page_items   s    ry   c                    t        j                  t        t        | j                  j
                              j                  |j
                        S rr   )httpxQueryParamsr   r   r   rn   mergert   s     rv   _params_from_urlzBasePage._params_from_url   s3      c4==+?+?!@AGG

SSry   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)rn   z*Pagination is only supported with mappingszUnexpected PageInfo state)r:   r   _strip_raw_response_header
isinstancern   r&   rl   r   	copy_withdictr   rp   r8   	TypeError	json_data
ValueError)ru   infooptionsrn   rl   s        rv   _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5ry   Nr   bool)r   zOptional[PageInfo])r   zIterable[_T])rl   r   r   zhttpx.QueryParams)r   rj   r   rF   )r   r   r   r   r   r   r   r   r   r   r   r   r   rs   ry   rv   r   r      s<    	 %0MH!1"}FH$1 8T6ry   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__r9   getattrr   r   r   r   )ru   clientmodelr   s       rv   _set_private_attributesz$BaseSyncPage._set_private_attributes   3     /Et!L!T(*D%ry   c              #  h   K   | j                         D ]  }|j                         D ]  }|   y wrr   
iter_pagesr   ru   pageitems      rv   __iter__zBaseSyncPage.__iter__  s9     OO% 	D,,. 
	s   02c              #  ^   K   | }	 | |j                         r|j                         }ny 'wrr   r   get_next_pageru   r   s     rv   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   r   ru   r   r   s      rv   r   zBaseSyncPage.get_next_page  sZ    ""$k  ''-||--dkkX_-``ry   N)r   r   r   r   r   rF   r   r   )r   zIterator[_T])ru   r`   r   zIterator[SyncPageT])ru   r`   r   r`   )r   r   r   pydanticr   r   r   r   r   r   r   rs   ry   rv   r   r      sR    1X113G]3     %	 
 
 *
ary   r   c                  @    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZddZd	dZy)
AsyncPaginatorc                <    || _         || _        || _        || _        y rr   )r   r   r   	_page_cls)ru   r   r   page_clsr   s        rv   rw   zAsyncPaginator.__init__%  s      !ry   c                >    | j                         j                         S rr   )	_get_page	__await__r   s    rv   r   zAsyncPaginator.__await__1  s    ~~))++ry   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   )respru   s    rv   _parserz)AsyncPaginator._get_page.<locals>._parser5  s2    ((kk|| ) 
 Kry   )r   rb   r   rb   )r   post_parserr   requestr   )ru   r   s   ` rv   r   zAsyncPaginator._get_page4  s?     	 %,!\\))$..$--HHHHs   AAAAc               h   K   t        t        |  d {         }|2 3 d {   }| 7 7 6 y wrr   )r   rb   r   s      rv   	__aiter__zAsyncPaginator.__aiter__A  s<     J
  	 	$J 	$s$   2,

20.0202N)
r   AsyncAPIClientr   rF   r   Type[AsyncPageT]r   r   r   r   )r   z Generator[Any, None, AsyncPageT])r   rb   r   zAsyncIterator[_T])r   r   r   rw   r   r   r   rs   ry   rv   r   r   $  sG    
"
" %
" #	
"
 
" 

",Iry   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   )ru   r   r   r   s       rv   r   z%BaseAsyncPage._set_private_attributesN  r   ry   c               z   K   | j                         2 3 d {   }|j                         D ]  }| 	 $7 6 y wrr   r   r   s      rv   r   zBaseAsyncPage.__aiter__[  sB     //+ 	 	$,,. 
	+s   ;979;9;c               t   K   | }	 | |j                         r|j                          d {   }ny 07 wrr   r   r   s     rv   r   zBaseAsyncPage.iter_pages`  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      rv   r   zBaseAsyncPage.get_next_pagei  sd     ""$k  ''-\\33DKKdnn^e3ffffs   A$A-&A+'A-N)r   r   r   r   r   rF   r   r   r   )ru   rb   r   zAsyncIterator[AsyncPageT])ru   rb   r   rb   )r   r   r   r   r   r   r   r   r   r   r   rs   ry   rv   r   r   K  sR    2h224G^4     %	 
 
 
gry   r   _HttpxClientT_DefaultStreamTc                  N   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	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2dZd3dZ	 	 	 	 d4dZ		 	 	 	 	 	 	 	 d5dZ
	 	 	 	 d6dZ	 	 	 	 d6dZ	 	 	 	 d7dZddd8dZd9dZd:dZdd	 	 	 	 	 d;dZd<d Zd=d!Zd>d"Z	 	 	 	 	 	 	 	 d?d#Zed@d$       ZedAd%       ZedBd&       ZedCd'       ZedDd(       Z	 	 	 	 	 	 dEd)ZedFd*       ZedGd+       Zej>                  dHd,       ZdId-Z dJdKd.Z!	 dJ	 	 	 	 	 	 	 dLd/Z"dMd0Z#dFd1Z$y)N
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 `openai.DEFAULT_MAX_RETRIES`)r   _enforce_trailing_slashr>   r   r   r   _custom_headers_custom_queryr   r   	_platformr   )ru   versionbase_urlr   r   r   r   r   s           rv   rw   zBaseClient.__init__  s      556I(6ST&-3)/R+F(#' *. b  ry   c                z    |j                   j                  d      r|S |j                  |j                   dz         S )N   /raw_path)r   endswithr   rt   s     rv   r   z"BaseClient._enforce_trailing_slash  s3    <<  &J}}cllT&9}::ry   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striprp   loads	Exception_make_status_error)ru   r   r   err_msgerr_texts        rv    _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               rr   )NotImplementedError)ru   r  r   r   s       rv   r  zBaseClient._make_status_error  s     "##ry   c                    i S rr   rs   ru   securitys     rv   _auth_headerszBaseClient._auth_headers  	     	ry   c                    i S rr   rs   r  s     rv   _auth_queryzBaseClient._auth_query  r  ry   c                     y rr   rs   r  s     rv   _custom_authzBaseClient._custom_auth  s     ry   r   retries_takenc               r   |j                   xs i }t        i | j                  |j                        | j                  |      }| j                  ||       t        j                  |      }| j                  }|r|j                  r||vr|j                  ||<   |D cg c]  }|j                          }}d|vrt        |      |d<   d|vrgt        t        |j                  t              r| j                  n|j                        }	t        |	t               r|	j"                  }	|	t        |	      |d<   |S c c}w )Nzx-stainless-retry-countzx-stainless-read-timeout)headers_merge_mappingsr  r  default_headers_validate_headersr   r$   r   idempotency_keylowerr   rB   r   r   r&   r%   read)
ru   r   r  r   headers_dictr  idempotency_headerheaderlower_custom_headersr   s
             rv   _build_headerszBaseClient._build_headers  s)    .B&'g$*<*<W=M=M*N'gRVRfRf'giwx|^< ---!55'"9"9>PX_>_*1*A*AG&' >LL6LL$,@@14]1CG-.%-AA- *7??H E7??G '7+!,,"69'l23  Ms   D4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   )ru   rl   	merge_urlmerge_raw_paths       rv   _prepare_urlzBaseClient._prepare_url  sZ     H	$$!]]33i6H6H6O6OPT6UUN==**N*CCry   c                    t               S rr   )rU   r   s    rv   _make_sse_decoderzBaseClient._make_sse_decoder  s
    |ry   c               *   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        i | j!                  |j"                        | j$                  |j&                        }|j)                  d      }|j*                  }|y|j-                  d	      rhd
|vr|j/                  d       |r7t1        |      st3        dt        |       d      | j5                  |      |d<   |st        t6        t9                     }| j;                  |j<                        }	|rb|	j>                  rVi tA        |	j&                  jC                               |}|	jE                  |	jF                  jI                  dd      d         }	d|	jJ                  v r!d|	jJ                  jM                  dd      i|d<   |jN                  jQ                         dk7  }
|
r|jR                  |t3        d      |jR                  |t3        d      |jR                  |jR                  |d<   n5tU        |tV              r||d<   n|stY        |      r|t[        |      nd |d<   ||d<   n$|j/                  dd        |j/                  dd        tU        |j\                  t^              r| j\                  n|j\                  }|	}|}ta        | jb                        ste        | jb                        r/tg        |	      }ti        |jk                               }tm        |      } | jb                  jn                  d|||jN                  ||r6| jp                  js                  t        tt        tf        tv        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   ?r   r   r   _sni_hostname-
extensionsgetz7Passing both `content` and `json_data` is not supportedz3Passing both `content` and `files` is not supportedfiles)r  r   methodrl   rn   rs   )<r_   isEnabledForloggingDEBUGdebugr;   r9   r   
extra_jsonr   r!   r8   r  r   typer$  r  r  default_queryrn   r9  r:  
startswithpopr3   r   _serialize_multipartformr/   ForceMultipartDictr*  rl   queryr   r   r   r   splithostreplacer;  r  r.  r   bytesr6   r]   r   r&   r?   r   rA   r   listmulti_itemsrC   build_requestqs	stringifyr   r   )ru   r   r  kwargsr   r  rn   content_typer:  prepared_urlis_body_allowedr   request_urlrequest_headerss                 rv   _build_requestzBaseClient._build_request  s    GMM*II%"&
 # " 	 "$%%	)  w'9'9:	I&+Iw7I7IJ	"%@i@QQq#rss%%g]%K !]D$4$4W5E5E$F!]$J\J\!]_f_m_mn{{>2 #(?(?@U(V- N+ y)#abfgpbqarr{|  "&!>!>y!Iv .0B0DE((5l((D\006689DVDF'11<;P;P;V;VW[]^;_`a;b1cL,###$2L4E4E4M4McSV4W#XF< !....0E9*y/D YZZ*u/@ UVV*$+OOy!Iu-$-y! AI@SXaXmM)$<swy!#F7OKK-JJvt$",W__h"G$,,W__!-AH .2H2Vl+K"7#6#6#89O.w7G *t||)) 
#>>
 JP477$$T'#s(*;V%DEUY
 
 	
ry   c                    | j                   j                  |d      }i }|D ]B  \  }}|j                  |      }|s|||<   t        |      r|j	                  |       <||g||<   D |S )Nbrackets)array_format)rO  stringify_itemsr9  r4   append)ru   r3  r   
serializedkeyvalueexistings          rv   rE  z#BaseClient._serialize_multipartformr  s    '' #	 ( 
 )+
 	4JC!~~c*H"'
3 x &#+U"3
3%	4( ry   c                    t        |j                        s|S t        |j                        }|j                  t        t
              }t        |      r||_        t        t        t           |      S |S rr   )	r6   r  r   rD  rR   r1   r   r	   r'   )ru   cast_tor   r  override_cast_tos        rv   _maybe_override_cast_toz"BaseClient._maybe_override_cast_to  s^    (N w'
 #;;'>	J$%%GOY)9::ry   c                F    |j                   j                  t              dk(  S Nstream)r  r9  rQ   ru   r   s     rv   _should_stream_response_bodyz'BaseClient._should_stream_response_body  s    ""#678CCry   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   r3  )type_r_  )r   r   )r   r'   objectinspectisclass
issubclassr0   buildr   rG   rH   r   ValidationErrorr\   )ru   r3  rb  r   errs        rv   _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 rr   r   r   s    rv   rO  zBaseClient.qs  s
    }ry   c                     y rr   rs   r   s    rv   custom_authzBaseClient.custom_auth  s    ry   c                    i S rr   rs   r   s    rv   auth_headerszBaseClient.auth_headers  s    	ry   c                Z    dd| j                   d| j                         | j                  S )Nzapplication/json)Acceptr1  z
User-Agent)
user_agentplatform_headersr   r   s    rv   r  zBaseClient.default_headers  s>     ).//
 ##%	

 ""
 	
ry   c                    i | j                   S rr   )r   r   s    rv   rB  zBaseClient.default_query  s    
  
 	
ry   c                     y)zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nrs   )ru   r  r   s      rv   r  zBaseClient._validate_headers  s     	ry   c                L    | j                   j                   d| j                   S )Nz/Python )r   r   r   r   s    rv   r{  zBaseClient.user_agent  s"    ..))*(4==/BBry   c                    | j                   S rr   )r   r   s    rv   r   zBaseClient.base_url  s    ~~ry   c                B    | j                  t        |            | _        y rr   )r   r>   r   rt   s     rv   r   zBaseClient.base_url  s    556I#6NOry   c                D    t        | j                  | j                        S )N)platform)r|  r   r   r   s    rv   r|  zBaseClient.platform_headers  s      GGry   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)	r9  floatr   r   emailutilsparsedate_tz	mktime_tztime)ru   response_headersretry_ms_headerretry_headerretry_date_tuple
retry_dates         rv   _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   <   r  g       @r   g      ?)get_max_retriesr   r  minrP   powrN   r   )
ru   remaining_retriesr   r  r   retry_after
nb_retriessleep_secondsjitterr   s
             rv   _calculate_retry_timeoutz#BaseClient._calculate_retry_timeout  s     --d.>.>? 445EF"q;'<"'< (= '88$?
 /#c:2FFX TFH_$&(!Q,w-A-ry   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  r9  r_   r?  r  )ru   r   should_retry_headers      rv   _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		.!ry   c                0    dt        j                          S )Nzstainless-python-retry-)uuiduuid4r   s    rv   _idempotency_keyzBaseClient._idempotency_keyR  s    (77ry   )r   r   r   	str | URLr   r   r   r   r   zfloat | Timeout | Noner   Mapping[str, str] | Noner   Mapping[str, object] | Noner   r   )rl   r   r   r   )r   httpx.Responser   rY   )r  r   r   rl  r   r  r   z_exceptions.APIStatusError)r  rE   r   dict[str, str])r  rE   r   httpx.Auth | None)r   rF   r  r   r   zhttpx.Headers)rl   r   r   r   )r   zSSEDecoder | SSEBytesDecoder)r   rF   r  r   r   httpx.Request)r3  zMapping[object, object]r   dict[str, object])rb  type[ResponseT]r   rF   r   r  )r   r  r   r   )r3  rl  rb  r  r   r  r   r'   )r   r   )r   r  )r   r  )r   zdict[str, str | Omit])r   r  )r  r$   r   r$   r   r   r   )r   r   )rl   z	URL | strr   r   )r   Dict[str, str]rr   )r  Optional[httpx.Headers]r   zfloat | None)r  r   r   rF   r  r  r   r  )r   r  r   r   )%r   r   r   r   r   rO   rM   rw   r   r
  r  r  r  r  r$  r*  r,  rW  rE  rd  ri  rs  propertyrO  rv  rx  r  rB  r  r{  r   setterr|  r  r  r  r  rs   ry   rv   r   r   x  s   MN((!%%##8<5< /*93748  	
 &*  ( 1 2 
4;
N N 
N,$$ 	$
 !$ 
$$! 
! 
! 
 TU 8 	r
$r
 	r

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

		  	 
		 C C   __P PH /L 59	.. %. 2	.
 
.0!F8ry   r   c                        e Zd Zd fdZ xZS )_DefaultHttpxClientc                    |j                  dt               |j                  dt               |j                  dd       t        |   di | y Nr   limitsfollow_redirectsTrs   
setdefaultrM   rS   superrw   ru   rQ  r   s     rv   rw   z_DefaultHttpxClient.__init__W  E    )_5($=>,d3"6"ry   rQ  r   r   r   r   r   r   rw   __classcell__r   s   @rv   r  r  V      # #ry   r  c                      e Zd ZddZy)SyncHttpxClientWrapperc                ^    | j                   ry 	 | j                          y # t        $ r Y y w xY wrr   )r   closer  r   s    rv   __del__zSyncHttpxClientWrapper.__del__k  s,    >>	JJL 		s     	,,Nr   r   r   r   r   r  rs   ry   rv   r  r  j  s    ry   r  c                  $    e Zd ZU ded<   dZded<   eedddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3 fdZd4dZd5d	Z	d6d
Z
	 	 	 	 	 	 	 	 d7dZ	 	 	 	 d8dZ	 	 	 	 d9dZ	 	 	 	 	 	 	 	 d:dZe	 	 	 	 	 	 	 	 	 	 d;d       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	 	 	 	 	 	 	 	 dAdZei dd	 	 	 	 	 	 	 	 	 dBd       Zei d	 	 	 	 	 	 	 	 	 	 	 dCd       Zei dd	 	 	 	 	 	 	 	 	 	 	 dDd        Zi ddd!	 	 	 	 	 	 	 	 	 	 	 dDd"Zeddi ddd#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd$       Zeddi dd%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dFd&       Zeddi ddd'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dGd(       Zddi dddd)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dGd*Zdddi d+	 	 	 	 	 	 	 	 	 	 	 	 	 dHd,Zdddi d+	 	 	 	 	 	 	 	 	 	 	 	 	 dHd-Zddi d.	 	 	 	 	 	 	 	 	 	 	 dId/Zdi d0d1	 	 	 	 	 	 	 	 	 	 	 	 	 dJd2Z xZS )Kr   zhttpx.Clientr   Nztype[Stream[Any]] | Noner   r   r   http_clientr   r   c          	        t        |      s-|rt        |j                        nd }	|r|	t        k7  r|	}nt        }|<t        |      s1t        |t        j                        st        dt        |             t        
| 1  |t        t        |      |||||       |xs t        |t        t        |            | _        y )NzbInvalid `http_client` argument; Expected an instance of `httpx.Client` or `httpx2.Client` but got )r   r   r   r   r   r   r   r   r   )r6   rB   r   HTTPX_DEFAULT_TIMEOUTrM   r?   r   r   Clientr   rA  r  rw   r   r%   r  r   )ru   r   r   r   r   r  r   r   r   client_timeoutr   s             rv   rw   zSyncAPIClient.__init__y  s       NY4[5H5HI^bN~1FF() #)+6{ELL9,-/ 
 	'*#%)(C 	 		
 # 
&<'*'
ry   c                .    | j                   j                  S rr   r   r   r   s    rv   r   zSyncAPIClient.is_closed      ||%%%ry   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    rv   r  zSyncAPIClient.close  s#     4#LL  $ry   c                    | S rr   rs   r   s    rv   	__enter__zSyncAPIClient.__enter__  s    ry   c                $    | j                          y rr   r  ru   exc_typeexcexc_tbs       rv   __exit__zSyncAPIClient.__exit__  s     	

ry   c                    |S z#Hook for mutating the given optionsrs   ru   r   s     rv   _prepare_optionszSyncAPIClient._prepare_options  s	    
 ry   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.
        Nrs   rh  s     rv   _prepare_requestzSyncAPIClient._prepare_request  s     ry   c               @     | j                   j                  |fd|i|S rf  r   sendru   r   rg  rQ  s       rv   _send_requestzSyncAPIClient._send_request  s%     !t||  BB6BBry   c                    y rr   rs   ru   rb  r   rg  
stream_clss        rv   r   zSyncAPIClient.request  s     ry   Frg  c                    y rr   rs   ru   rb  r   rg  s       rv   r   zSyncAPIClient.request  s     ry   rg  r  c                    y rr   rs   r  s        rv   r   zSyncAPIClient.request  s      #ry   c          	        | j                  ||      }t        |      }|j                  2|j                  j	                         dk7  r| j                         |_        d }|j                  | j                        }d}t        |dz         D ]  }t        |      }| j                  |      }||z
  }	| j                  ||      }
| j                  |
       i }| j                  |j                        }|%t        | j                        rt!        |      n||d<   |j"                  |j"                  |d<   t$        j'                  d|
j                  |
j(                         d }	  | j*                  |
fd|xs | j-                  |
	      i|}t$        j'                  d|
j                  |
j(                  |j:                  |j<                  |j>                         t$        j'                  d|j>                  jA                  d             	 |jC                           n |J d       | jS                  ||||||      S # t/               $ r^}t$        j'                  d
d       |	dkD  r| j1                  |||d        Y d }~t$        j'                  d       t3        |
	      |d }~wt4        $ r}|d }~wt6        $ r^}t$        j'                  dd       |	dkD  r| j1                  |||d        Y d }~et$        j'                  d       t9        |
	      |d }~ww xY w# tE               $ r}t$        j'                  dd       |	dkD  rP| jG                  |jH                        r5|jH                  jK                          | j1                  ||||       Y d }~|jH                  jL                  s|jH                  jO                          t$        j'                  d       | jQ                  |jH                        d d }~ww xY wNr9  r   r   r  authr  zSending HTTP Request: %s %srg  )r   zEncountered a timeout exceptionT)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x-request-idz Encountered an HTTP status errorzRe-raising status errorz0could not resolve response (should never happen))rb  r   r   rg  r  r  )*rd  r:   r  r;  r  r  r  r   ranger  rW  r  r  r  r?   r   r@   r  r_   r?  rl   r  ri  r=   _sleep_for_retryrZ   rX   r  r[   r  reason_phraser  r9  raise_for_statusr<   r  r   r  r   r  r
  _process_response)ru   rb  r   rg  r  input_optionsr   r   r  r  r   rQ  rv  rr  s                 rv   r   zSyncAPIClient.request  s    ..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)*.#33D4D4DE";?3 \	M /G++G4G +m ;))')OG!!'*$&F++G,<,<=K&:OPTP\P\:])+6cn v ''3-4-E-E)*II3W^^W[[QH$C-4--!WT%F%Fw%F%W J II1$$&&   II&(8(8(<(<^(LMT))+, y\	| #W%WW#%%!' & 
 	
I &' @		;d	K$q())&3$/ -!%	 *  		12%g6C? 	 C		1D	A$q())&3$/ -!%	 *  		45(9sBC6 %& T		<t	L$q(T-?-?-MLL&&())&3$/ -!)	 *   ||--LL%%'		34;;CLLItS'Ts\   )H7L7L1J;"JL)J++L71L."LLO7%A&O2A!O22O7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)r_   r?  r  r  r   rl   r  sleepru   r  r   r   r   r  r   s          rv   r  zSyncAPIClient._sleep_for_retry{  su     (-7!IIn%II'):;//0A7`hHL\L\nrs7gN

7ry   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   rb  rg  r  r   r  !API Response types must subclass ; Received type[BaseAPIResponse[Any]]r  )r   r  r9  rQ   r   r'   r^   r   rm  rn  ro  rJ   r   rI   r   rL   r   Responseparse
ru   rb  r   r   rg  r  r  originresponse_clsapi_responses
             rv   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!!##ry   c                N     d fd}|_          j                  |d      S )Nc                0    | j                         | S )N)r   r   r   )r   )r   r   r   ru   s    rv   r   z0SyncAPIClient._request_api_list.<locals>._parser  s&    (( ) 
 Kry   Fr  )r   r`   r   r`   )r   r   )ru   r   r   r   r   s   `` ` rv   r   zSyncAPIClient._request_api_list  s'    	 &||D'%|88ry   r   rg  c                    y rr   rs   ru   pathrb  r   rg  s        rv   r9  zSyncAPIClient.get  s     ry   r   c                    y rr   rs   ru   r  rb  r   rg  r  s         rv   r9  zSyncAPIClient.get  s     ry   r   r  c                    y rr   rs   r  s         rv   r9  zSyncAPIClient.get  s      #ry   r   rg  r  c          	     x    t        j                  dd|d|}t        t        | j	                  ||||            S Nr9  )r;  rl   r  rs   )rF   	constructr   r'   r   ru   r  rb  r   rg  r  optss          rv   r9  zSyncAPIClient.get  s?     #,,OEtOwO It||GT&U_|`aary   )r   r.  r   r:  rg  c                    y rr   rs   )ru   r  rb  r   r.  r   r:  rg  s           rv   postzSyncAPIClient.post  s     ry   )r   r.  r   r:  c                    y rr   rs   	ru   r  rb  r   r.  r   r:  rg  r  s	            rv   r!  zSyncAPIClient.post  s     ry   )r   r.  r   r:  r  c                    y rr   rs   r#  s	            rv   r!  zSyncAPIClient.post(  s      #ry   )r   r.  r   r:  rg  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;  rl   r   r.  r:  r  rs   )r   r   rK  warningswarnDeprecationWarningrF   r  r   r   r'   r   )
ru   r  rb  r   r.  r   r:  rg  r  r  s
             rv   r!  zSyncAPIClient.post6  s      3PQQ!4QRRdE"MMM"	 #,, 
ttWN[`La
el
 It||GT&U_|`aary   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(  r)  r*  r+  patchr-  rs   
r   r   rK  r.  r/  r0  rF   r  r   r   ru   r  rb  r   r.  r:  r   r  s           rv   r4  zSyncAPIClient.patchR  s      3PQQ!4QRRdE"MMM"	 #,, 
g^\aMb
fm
 ||GT**ry   c          
        ||t        d      ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||t        |      d|}| j                  ||      S 	Nr'  r(  r)  r*  r+  putr-  rs   r5  r6  s           rv   r9  zSyncAPIClient.putl  s      3PQQ!4QRRdE"MMM"	 #,, 
ddG>Z_K`
dk
 ||GT**ry   r   r.  r   c                   ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||d|}| j                  ||      S Nr'  r)  r*  r+  delete)r;  rl   r   r.  rs   	r   r   rK  r.  r/  r0  rF   r  r   ru   r  rb  r   r.  r   r  s          rv   r=  zSyncAPIClient.delete  sq      3PQQdE"MMM"	 #,,sH$RV`gskrs||GT**ry   r9  r   r   r;  c               Z    t        j                  d|||d|}| j                  |||      S N)r;  rl   r   rs   rF   r  r   ru   r  r   r   r   r   r;  r  s           rv   get_api_listzSyncAPIClient.get_api_list  7     #,,`FPT`X_`%%eT488ry   )r   r   r   r  r   r   r   !float | Timeout | None | NotGivenr  zhttpx.Client | Noner   r  r   r  r   r   r   r   r   r  ru   rc   r   rc   r  ztype[BaseException] | Noner  zBaseException | Noner  zTracebackType | Noner   r   r   rF   r   rF   r   r  r   r   r   r  rg  r   rQ  zUnpack[HttpxSendArgs]r   r  )
rb  Type[ResponseT]r   rF   rg  Literal[True]r  zType[_StreamT]r   rf   rb  rM  r   rF   rg  Literal[False]r   r'   )
rb  rM  r   rF   rg  r   r  zType[_StreamT] | Noner   ResponseT | _StreamT)
rb  rM  r   rF   rg  r   r  type[_StreamT] | Noner   rQ  
r  r   r   r   r   rF   r   zhttpx.Response | Noner   r   rb  rM  r   rF   r   r  rg  r   r  z1type[Stream[Any]] | type[AsyncStream[Any]] | Noner  r   r   r'   )r   Type[object]r   Type[SyncPageT]r   rF   r   r`   
r  r   rb  rM  r   r-   rg  rP  r   r'   )r  r   rb  rM  r   r-   rg  rN  r  type[_StreamT]r   rf   )r  r   rb  rM  r   r-   rg  r   r  rR  r   rQ  )r  r   rb  rM  r   Body | Noner.  BinaryTypes | Noner   r-   r:  RequestFiles | Nonerg  rP  r   r'   )r  r   rb  rM  r   rY  r.  rZ  r   r-   r:  r[  rg  rN  r  rX  r   rf   )r  r   rb  rM  r   rY  r.  rZ  r   r-   r:  r[  rg  r   r  rR  r   rQ  )r  r   rb  rM  r   rY  r.  rZ  r:  r[  r   r-   r   r'   )r  r   rb  rM  r   rY  r.  rZ  r   r-   r   r'   )r  r   r   rU  r   rV  r   rY  r   r-   r;  r   r   r`   )r   r   r   r   r   rO   r1   rw   r   r  r  r  r  r  r  r   r   r  r  r   r9  r!  r4  r9  r=  rE  r  r  s   @rv   r   r   u  s[   4818 /5>+/37482
 2
 	2

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

 |
 *|
 
|
| #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 
9ry   r   c                        e Zd Zd fdZ xZS )_DefaultAsyncHttpxClientc                    |j                  dt               |j                  dt               |j                  dd       t        |   di | y r  r  r  s     rv   rw   z!_DefaultAsyncHttpxClient.__init__  r  ry   r  r  r  s   @rv   r]  r]    r  ry   r]  )   
   c                      e Zd ZddZy)_DefaultAioHttpClientc                    t        d      )Nz0The aiohttp client requires Python 3.10 or laterr   ru   _kwargss     rv   rw   z_DefaultAioHttpClient.__init__  s    QRRry   Nrf  r   r   r   r   r   r   rw   rs   ry   rv   rb  rb    s    	Sry   rb  c                        e Zd Zd fdZ xZS )rb  c                    |j                  dt               |j                  dt               |j                  dd       t        |   di | y r  r  r  s     rv   rw   z_DefaultAioHttpClient.__init__  sE    !!)_=!!(,EF!!"4d; *6*ry   r  r  r  s   @rv   rb  rb    s    + +ry   c                      e Zd ZddZy)rb  c                    t        d      )NzVTo use the aiohttp client you must have installed the package with the `aiohttp` extrard  re  s     rv   rw   z_DefaultAioHttpClient.__init__  s    "l ry   Nrg  rh  rs   ry   rv   rb  rb    s    ry   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rr   )r   asyncioget_running_loopcreate_taskacloser  r   s    rv   r  zAsyncHttpxClientWrapper.__del__  s@    >>	$$&224;;=A 		s   1A 	AANr  r  rs   ry   rv   rn  rn    s    ry   rn  c                  "    e Zd ZU ded<   dZded<   eedddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3 fdZd4dZd5d	Z	d6d
Z
	 	 	 	 	 	 	 	 d7dZ	 	 	 	 d8dZ	 	 	 	 d9dZ	 	 	 	 	 	 	 	 d:dZedd	 	 	 	 	 	 	 d;d       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	 	 	 	 	 	 	 	 	 dAd       Zei d	 	 	 	 	 	 	 	 	 	 	 dBd       Zei dd 	 	 	 	 	 	 	 	 	 	 	 dCd!       Zi ddd"	 	 	 	 	 	 	 	 	 	 	 dCd#Zedddi dd$	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd%       Zedddi d&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd'       Zedddi dd(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dFd)       Zdddi ddd*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dFd+Zdddi d&	 	 	 	 	 	 	 	 	 	 	 	 	 dGd,Zdddi d&	 	 	 	 	 	 	 	 	 	 	 	 	 dGd-Zddi d.	 	 	 	 	 	 	 	 	 	 	 dHd/Zdi d0d1	 	 	 	 	 	 	 	 	 	 	 	 	 dId2Z xZS )Jr   zhttpx.AsyncClientr   Nztype[AsyncStream[Any]] | Noner   r  c          	        t        |      s-|rt        |j                        nd }	|r|	t        k7  r|	}nt        }|<t        |      s1t        |t        j                        st        dt        |             t        
| 1  ||t        t        |      ||||       |xs t        |t        t        |            | _        y )NzlInvalid `http_client` argument; Expected an instance of `httpx.AsyncClient` or `httpx2.AsyncClient` but got )r   r   r   r   r   r   r   r  )r6   rB   r   r  rM   rA   r   r   AsyncClientr   rA  r  rw   r   r%   rn  r   )ru   r   r   r   r   r   r  r   r   r  r   s             rv   rw   zAsyncAPIClient.__init__  s       NY4[5H5HI^bN~1FF() #*;7{E,=,=>004[0A/BD 
 	'*#%)(C 	 		
 # 
&='*'
ry   c                .    | j                   j                  S rr   r  r   s    rv   r   zAsyncAPIClient.is_closed  r  ry   c                T   K   | j                   j                          d{    y7 w)r  N)r   rs  r   s    rv   r  zAsyncAPIClient.close"  s     
 ll!!###s   (&(c                   K   | S wrr   rs   r   s    rv   
__aenter__zAsyncAPIClient.__aenter__)  s        c                @   K   | j                          d {    y 7 wrr   r  r  s       rv   	__aexit__zAsyncAPIClient.__aexit__,  s      jjls   c                   K   |S wr  rs   r  s     rv   r  zAsyncAPIClient._prepare_options4  s     
 r{  c                   K   ywr  rs   rh  s     rv   r  zAsyncAPIClient._prepare_request;  s         c               \   K    | j                   j                  |fd|i| d {   S 7 wrf  r  r  s       rv   r  zAsyncAPIClient._send_requestF  s/      'T\\&&wHvHHHHHs   #,*,Fr  c                  K   y wrr   rs   r  s       rv   r   zAsyncAPIClient.requestO  s      r  c                  K   y wrr   rs   r  s        rv   r   zAsyncAPIClient.requestX  s      r  )r  c                  K   y wrr   rs   r  s        rv   r   zAsyncAPIClient.requestb  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                  9t!        | j"                        rt%        | j                        n| j                  |d<   |j&                  |j&                  |d<   t(        j+                  d|
j                  |
j,                         d }	  | j.                  |
fd|xs | j1                  |
	      i| d {   }t(        j+                  d|
j                  |
j,                  |j>                  |j@                  |jB                         t(        j+                  d|jB                  jE                  d             	 |jG                           n |J d       | jW                  ||||||       d {   S 7 c7 7 7 # t3               $ rg}t(        j+                  d
d       |	dkD  r$| j5                  |||d        d {  7   Y d }~)t(        j+                  d       t7        |
	      |d }~wt8        $ r}|d }~wt:        $ rg}t(        j+                  dd       |	dkD  r$| j5                  |||d        d {  7   Y d }~t(        j+                  d       t=        |
	      |d }~ww xY w# tI               $ r}t(        j+                  dd       |	dkD  rb| jK                  |jL                        rG|jL                  jO                          d {  7   | j5                  ||||       d {  7   Y d }~Z|jL                  jP                  s#|jL                  jS                          d {  7   t(        j+                  d       | jU                  |jL                        d d }~ww xY w7  wr  ),r   r5   get_platformrd  r:   r  r;  r  r  r  r   r  r  rW  r  rv  rA   r   r@   r  r_   r?  rl   r  ri  r=   r  rZ   rX   r  r[   r  r  r  r9  r  r<   r  r   rs  r   areadr
  r  )ru   rb  r   rg  r  r  r   r   r  r  r   rQ  rr  s                rv   r   zAsyncAPIClient.requestl  s\     >>! $:8L#9#;;DN..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)*.#33D4D4DE";?3 ]	M /G 11'::G +m ;))')OG''000$&F+ .dll; *$*:*:;)) v ''3-4-E-E)*II3W^^W[[QH$C!3!3!3"!WT%F%Fw%F%W" " J II1$$&&   II&(8(8(<(<^(LMT))+, {]	~ #W%WW#++!' , 
 
 	
a <$ ; 1"
 &' @		;d	K$q(//&3$/ -!%	 0    		12%g6C? 	 C		1D	A$q(//&3$/ -!%	 0    		45(9sBC6 %& T		<t	L$q(T-?-?-M,,--/////&3$/ -!)	 0     ||--,,,,...		34;;CLLItS'T0
s  $RJ	B4RJ0RJBR!,JJJA;RN&RRRRRJN!4LKLR!"LNLN4M?MM?R"M??NRRAQ<(O+)Q<P	Q<R3Q<Q6Q<<RR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   )r_   r?  r  r  r   rl   anyior  r  s          rv   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  r9  rQ   r   r'   r^   r   rm  rn  ro  rJ   r   rK   r   rL   r   r	  r
  r  s
             rv   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   )ru   r   r   r   s       rv   r   z AsyncAPIClient._request_api_listB  s     T7TQVWWry   r  c                  K   y wrr   rs   r  s        rv   r9  zAsyncAPIClient.getJ  s      r  r  c                  K   y wrr   rs   r  s         rv   r9  zAsyncAPIClient.getT  s      r  r  c                  K   y wrr   rs   r  s         rv   r9  zAsyncAPIClient.get_  s      %(r  r  c               x   K   t        j                  dd|d|}| j                  ||||       d {   S 7 wr  )rF   r  r   r  s          rv   r9  zAsyncAPIClient.getj  s?      #,,OEtOwO\\'4:\VVVVs   1:8:)r   r.  r:  r   rg  c                  K   y wrr   rs   )ru   r  rb  r   r.  r:  r   rg  s           rv   r!  zAsyncAPIClient.postv  s      r  r1  c                  K   y wrr   rs   	ru   r  rb  r   r.  r:  r   rg  r  s	            rv   r!  zAsyncAPIClient.post  s      r  )r   r.  r:  r   r  c                  K   y wrr   rs   r  s	            rv   r!  zAsyncAPIClient.post  s      %(r  )r   r.  r:  r   rg  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   rK  r.  r/  r0  rF   r  r    r   )
ru   r  rb  r   r.  r:  r   rg  r  r  s
             rv   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r3  r  r6  s           rv   r4  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r8  r  r6  s           rv   r9  zAsyncAPIClient.put  s       3PQQ!4QRRdE"MMM"	 #,, 
ddGQefkQlKl
pw
 \\'4000 Lm0r  r:  c                  K   ||t        d      t        |t              rt        j                  dt
        d       t        j                  dd|||d|}| j                  ||       d {   S 7 wr<  r>  r?  s          rv   r=  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r9  r@  c               Z    t        j                  d|||d|}| j                  |||      S rB  rC  rD  s           rv   rE  zAsyncAPIClient.get_api_list	  rF  ry   )r   r   r   r  r   r   r   r   r   rG  r  zhttpx.AsyncClient | Noner   r  r   r  r   r   r   r  rH  rI  rJ  rK  rL  rO  )
rb  rM  r   rF   rg  rN  r  type[_AsyncStreamT]r   rg   )
rb  rM  r   rF   rg  r   r  type[_AsyncStreamT] | Noner   ResponseT | _AsyncStreamTrS  rT  )r   r   r   r   r   rF   r   AsyncPaginator[_T, AsyncPageT]rW  )r  r   rb  rM  r   r-   rg  rN  r  r  r   rg   )r  r   rb  rM  r   r-   rg  r   r  r  r   r  )r  r   rb  rM  r   rY  r.  AsyncBinaryTypes | Noner:  r[  r   r-   rg  rP  r   r'   )r  r   rb  rM  r   rY  r.  r  r:  r[  r   r-   rg  rN  r  r  r   rg   )r  r   rb  rM  r   rY  r.  r  r:  r[  r   r-   rg  r   r  r  r   r  )r  r   rb  rM  r   rY  r.  r  r:  r[  r   r-   r   r'   )r  r   rb  rM  r   rY  r.  r  r   r-   r   r'   )r  r   r   r   r   r   r   rY  r   r-   r;  r   r   r  )r   r   r   r   r   rO   r1   rw   r   r  rz  r}  r  r  r  r   r   r  r  r   r9  r!  r4  r9  r=  rE  r  r  s   @rv   r   r     s^   9=6= /5>0437482
 2
 	2

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

 B
 /B
 
#B
H# ##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 
(9ry   r   )	rG  extra_headersextra_query
extra_bodyr  r   r   r  synthesize_event_and_datac        	            i }	|||	d<   |t        t        |      |	d<   | | |	d<   |i |	j                  di       ||	d<   t        |t              s||	d<   |||	d<   t        |      r||	d<   |||	d<   |||	d<   |	S )	zECreate a dict of type RequestOptions without keys of NotGiven values.r  r@  rn   r   r  r   r  r  )r   r(   r9  r   r&   r6   )
rG  r  r  r  r  r   r   r  r  r   s
             rv   make_request_optionsr    s     !G *	 $Z <!Hw{{8R8HKHgx($	"%4!"!,&
 ,/H+,Nry   c                      e Zd ZddZy)rF  c                     y)NTrs   r   s    rv   __bool__zForceMultipartDict.__bool__E  s    ry   Nr   )r   r   r   r  rs   ry   rv   rF  rF  D  s    ry   rF  c                  &    e Zd ZddZedd       Zy)OtherPlatformc                    || _         y rr   nameru   r  s     rv   rw   zOtherPlatform.__init__J  	    	ry   c                     d| j                    S )NzOther:r  r   s    rv   __str__zOtherPlatform.__str__M      		{##ry   Nr  r   r   r   r   r   r   r   rw   r   r  rs   ry   rv   r  r  I       $ $ry   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  darwinr  windowsr  androidr  linuxfreebsdr  openbsdr  r  )r  systemr  r  distroidr  )r  platform_name	distro_ids      rv   r  r  a  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   r  s     rv   r|  r|    s;     %'.h8,.9 0 2313'9'; ry   c                  &    e Zd ZddZedd       Zy)	OtherArchc                    || _         y rr   r  r  s     rv   rw   zOtherArch.__init__  r  ry   c                     d| j                    S )Nzother:r  r   s    rv   r  zOtherArch.__str__  r  ry   Nr  r   r  rs   ry   rv   r  r    r  ry   r  )x32x64armarm64unknownc                 J    	 t        j                         S # t        $ r Y yw xY wNr  )r  python_implementationr  rs   ry   rv   r  r    s(    --//     	""c                 J    	 t        j                         S # t        $ r Y yw xY wr  )r  python_versionr  rs   ry   rv   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  )r  machiner  r  sysr  r  )r  s    rv   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mergedr^  r_  s        rv   r  r    s?     F)/W:3z%QU?VCJWWWs   <<)rG  Query | Noner  zHeaders | Noner  r  r  rY  r  r   r   z'float | httpx.Timeout | None | NotGivenr   zPostParser | NotGivenr  zSecurityOptions | Noner  zbool | Noner   r-   )r   Platform)r   r   r  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  rp   r  r  r  rp  rm  r=  r  r.  email.utilstypesr   r   typingr   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   _qsr   _filesr   r    _typesr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   _utilsr2   r3   r4   r5   r6   r7   r8   _compatr9   r:   r;   _httpx2r<   r=   r>   r?   r@   rA   rB   rC   _modelsrD   rE   rF   rG   rH   	_responserI   rJ   rK   rL   
_constantsrM   rN   rO   rP   rQ   rR   rS   
_streamingrT   rU   rV   rW   rX   rY   rZ   r[   r\   _utils._jsonr]   _legacy_responser^   	getLoggerr   r_   r   	addFilterr`   rb   rc   rd   rf   rg   httpx._configrh   r  ImportErrorrj   r   r   r   r   r  rv  r   r   r   r  DefaultHttpxClientr  r   r]  version_inforb  httpx_aiohttpHttpxAiohttpClientDefaultAsyncHttpxClientDefaultAioHttpClientrn  r   r  r   rF  r  r  r  r|  r  r  r  r  r  r  rs   ry   rv   <module>r
     s   " 
                " D C          8    & h g g 8 8	 	 	 g f    I H  ( /'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[878 [8|#%,, #  -/ q9Ju||VC[89 q9h#u00 # gS 1 1 S+	+M$D$D 	+ #// !,,_60	5 	m9Z 1 1;s3C CD m9d $( $""&7@)2'+-1** "* 	*
 *  * 5* '* %*  +* *Zc4i 
$ $ 		
'T 4 $ $ Y GHHI4	X
)	X
)	X 	X[B  - '-v)  	E$5$5 	s$   ?O +O) O&%O&)PP