
    >'hJ                       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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" 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-m.Z.m/Z/ d	dl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? d	dl@mAZAmBZBmCZCmDZDmEZEmFZF d	dlGmHZHmIZImJZJ d	dlKmLZLmMZMmNZNmOZO d	dlPmQZQmRZRmSZSmTZT d	dlUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ d	dl]m^Z^m_Z_m`Z`maZa d	dl*mbZbmcZcmdZdmeZe  e	j                  eg      Zhdeid<    edd      Zj edd      Zk ed      Zl edd      Zm ed e^e         Zn ed!e`e         Zoer	d d"lpmqZq eqZrn	 d d"lpmqZr  G d$ d%      Zt G d& d'eLeel         Zu G d( d)euel   eel         Zv G d* d+eelekf         Zw G d, d-euel   eel         Zx ed.ee$j                  e$j                  f         Z{ ed/ee^e   e`e   f         Z| G d0 d1ee{e|f         Z} G d2 d3e$j                        Z~ere$j                  Zne~Z G d4 d5e      Z G d6 d7e}e$j                  e^e   f         Z G d8 d9e$j                        Zere$j                  ZneZ G d: d;e      Z G d< d=e}e$j                  e`e   f         Zddddde1e1d>	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dOd?Z G d@ dAeedf         Z G dB dC      Zeee dD   f   ZdPdEZ eEdF      dQdG       Z G dH dI      Zeee dJ   f   ZdRdKZdRdLZdSdMZ	 	 	 	 	 	 dTdNZy# es$ r  e6d#      ZrY w xY w)U    )annotationsN)TracebackType)random)TYPE_CHECKINGAnyDictTypeUnionGenericMappingTypeVarIterableIteratorOptional	GeneratorAsyncIteratorcastoverload)Literaloverride
get_origin)URL)PrivateAttr   )_exceptionsQuerystring)to_httpx_filesasync_to_httpx_files)	NOT_GIVENBodyOmitQueryHeadersTimeoutNotGiven	ResponseT
AnyMapping
PostParserRequestFilesHttpxSendArgsRequestOptionsHttpxRequestFilesModelBuilderProtocol)is_dictis_listasyncifyis_given	lru_cache
is_mapping)PYDANTIC_V2
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APIResponseValidationErrorz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 selfr\   s     X/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/groq/_base_client.py__init__zPageInfo.__init__|       
     c                    y rb   rc   )re   r^   s     rf   rg   zPageInfo.__init__   rh   ri   c                    y rb   rc   )re   r`   s     rf   rg   zPageInfo.__init__   rh   ri   r\   r`   r^   c               .    || _         || _        || _        y rb   rl   )re   r\   r`   r^   s       rf   rg   zPageInfo.__init__   s     	ri   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=)r\   	__class____name__r`   r^   re   s    rf   __repr__zPageInfo.__repr__   sv    88nn--.eDHH:Q??99nn--.fTYYKqAA..))*(4;;-qAAri   N)r\   r   returnNone)r^   r#   rt   ru   )r`   r!   rt   ru   )r\   r[   r`   r_   r^   r]   rt   ru   rt   str)
rq   
__module____qualname____doc____annotations__r   rg   r    r   rs   rc   ri   rf   rZ   rZ   r   s    
 

  
	    
	    
	  ( )#,	 	 		
 !	 
	 B Bri   rZ   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
    r9   _optionsType[_T]_modelc                L    | j                         }|sy| j                         d uS )NF)_get_page_itemsnext_page_info)re   itemss     rf   has_next_pagezBasePage.has_next_page   s*    $$&""$D00ri   c                     y rb   rc   rr   s    rf   r   zBasePage.next_page_info   s    ri   c                     y rb   rc   rr   s    rf   r   zBasePage._get_page_items   s    ri   c                    t        j                  t        t        | j                  j
                              j                  |j
                        S rb   )httpxQueryParamsr   r   r~   r^   mergerd   s     rf   _params_from_urlzBasePage._params_from_url   s3      c4==+?+?!@AGG

SSri   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)r^   z*Pagination is only supported with mappingszUnexpected PageInfo state)r6   r~   _strip_raw_response_header
isinstancer^   r&   r\   r   	copy_withdictrw   r`   r4   	TypeError	json_data
ValueError)re   infooptionsr^   r\   s        rf   _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5ri   Nrt   bool)rt   zOptional[PageInfo])rt   zIterable[_T])r\   r   rt   zhttpx.QueryParams)r   rZ   rt   r9   )rq   rx   ry   rz   r   r~   r{   r   r   r   r   r   r   rc   ri   rf   r}   r}      s<    	 %0MH!1"}FH$1 8T6ri   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         rt        | dd       i | _        || _        || _        || _        y N__pydantic_private__r5   getattrr   r   r   r~   )re   clientmodelr   s       rf   _set_private_attributesz$BaseSyncPage._set_private_attributes   3     74)?FN(*D%ri   c              #  h   K   | j                         D ]  }|j                         D ]  }|   y wrb   
iter_pagesr   re   pageitems      rf   __iter__zBaseSyncPage.__iter__   s9     OO% 	D,,. 
	s   02c              #  ^   K   | }	 | |j                         r|j                         }ny 'wrb   r   get_next_pagere   r   s     rf   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   rp   re   r   r   s      rf   r   zBaseSyncPage.get_next_page  sZ    ""$k  ''-||--dkkX_-``ri   N)r   r   r   r   r   r9   rt   ru   )rt   zIterator[_T])re   rP   rt   zIterator[SyncPageT])re   rP   rt   rP   )rq   rx   ry   pydanticr   r   r{   r   r   r   r   rc   ri   rf   r   r      sR    1X113G]3     %	 
 
 *
ari   r   c                  @    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZddZd	dZy)
AsyncPaginatorc                <    || _         || _        || _        || _        y rb   )r   r   r~   	_page_cls)re   r   r   page_clsr   s        rf   rg   zAsyncPaginator.__init__  s      !ri   c                >    | j                         j                         S rb   )	_get_page	__await__rr   s    rf   r   zAsyncPaginator.__await__   s    ~~))++ri   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   )respre   s    rf   _parserz)AsyncPaginator._get_page.<locals>._parser$  s2    ((kk|| ) 
 Kri   )r   rR   rt   rR   )r~   post_parserr   requestr   )re   r   s   ` rf   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rb   )r   rR   r   s      rf   	__aiter__zAsyncPaginator.__aiter__0  s<     J
  	 	$J 	$s$   2,

20.0202N)
r   AsyncAPIClientr   r9   r   Type[AsyncPageT]r   r   rt   ru   )rt   z Generator[Any, None, AsyncPageT])rt   rR   rt   zAsyncIterator[_T])rq   rx   ry   rg   r   r   r   rc   ri   rf   r   r     sG    
"
" %
" #	
"
 
" 

",Iri   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         rt        | dd       i | _        || _        || _        || _        y r   r   )re   r   r   r   s       rf   r   z%BaseAsyncPage._set_private_attributes=  r   ri   c               z   K   | j                         2 3 d {   }|j                         D ]  }| 	 $7 6 y wrb   r   r   s      rf   r   zBaseAsyncPage.__aiter__J  sB     //+ 	 	$,,. 
	+s   ;979;9;c               t   K   | }	 | |j                         r|j                          d {   }ny 07 wrb   r   r   s     rf   r   zBaseAsyncPage.iter_pagesO  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      rf   r   zBaseAsyncPage.get_next_pageX  sd     ""$k  ''-\\33DKKdnn^e3ffffs   A$A-&A+'A-N)r   r   r   r   r   r9   rt   ru   r   )re   rR   rt   zAsyncIterator[AsyncPageT])re   rR   rt   rR   )rq   rx   ry   r   r   r   r{   r   r   r   r   rc   ri   rf   r   r   :  sR    2h224G^4     %	 
 
 
gri   r   _HttpxClientT_DefaultStreamTc                     e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   dZded<   eeddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d/dZd0dZ	 	 	 	 d1dZ		 	 	 	 	 	 	 	 d2dZ
ddd3dZd4dZd5dZdd	 	 	 	 	 d6dZd7dZd8dZd9dZ	 	 	 	 	 	 	 	 d:d Zed;d!       Zed<d"       Zed=d#       Zed>d$       Zed?d%       Z	 	 	 	 	 	 d@d&ZedAd'       ZedBd(       Zej8                  dCd)       ZdDd*ZdEdFd+Z	 dE	 	 	 	 	 	 	 dGd,ZdHd-Z dAd.Z!y)I
BaseClientr   r   rw   _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 `groq.DEFAULT_MAX_RETRIES`)r   _enforce_trailing_slashr   r   r   r   _custom_headers_custom_queryr   r   	_platformr   )re   versionbase_urlr   r   r   r   r   s           rf   rg   zBaseClient.__init__q  s      55c(mD&-3)/R+F(#' *. `  ri   c                z    |j                   j                  d      r|S |j                  |j                   dz         S )N   /raw_path)r   endswithr   rd   s     rf   r   z"BaseClient._enforce_trailing_slash  s3    <<  &J}}cllT&9}::ri   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stripr`   loads	Exception_make_status_error)re   r   r   err_msgerr_texts        rf    _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               rb   )NotImplementedError)re   r   r   r   s       rf   r   zBaseClient._make_status_error  s     "##ri   r   retries_takenc               &   |j                   xs i }t        | 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-retry-countzx-stainless-read-timeout)headers_merge_mappingsdefault_headers_validate_headersr   r$   r   idempotency_keylowerrw   r   r   r&   r%   read)
re   r   r   r   headers_dictr   idempotency_headerheaderlower_custom_headersr   s
             rf   _build_headerszBaseClient._build_headers  s    .B&t';';^L|^< ---!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   ?D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   )re   r\   	merge_urlmerge_raw_paths       rf   _prepare_urlzBaseClient._prepare_url  sZ     H	$$!]]33i6H6H6O6OPT6UUN==**N*CCri   c                    t               S rb   )rH   rr   s    rf   _make_sse_decoderzBaseClient._make_sse_decoder  s
    |ri   c                  t         j                  t        j                        r!t         j	                  dt        |d             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      | j/                  |      |d<   |st        t0        t3                     }| j5                  |j6                        }	d|	j8                  v r!d|	j8                  j;                  dd      i|d<    | j<                  j>                  d|tA        |jB                  tD              r| jB                  n|jB                  |jF                  |	|r6| jH                  jK                  t        tL        tN        tP        f   |            nd tS        |      r|nd |d|S )NzRequest options: %sT)exclude_unsetz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)r   r   methodr\   r^   r`   filesrc   )*rO   isEnabledForloggingDEBUGdebugr7   r   
extra_jsonr   r!   r4   r  r   typer  default_queryr^   getr  
startswithpopr/   r   _serialize_multipartformr-   ForceMultipartDictr  r\   hostreplacer   build_requestr   r   r&   r  qs	stringifyr   rw   r   r2   )
re   r   r   kwargsr   r   r^   content_typer  prepared_urls
             rf   _build_requestzBaseClient._build_request  s.    GMM*II+Zt-TU!#%%	)  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<  *t||)) 
$.w$IDLLw>>
 JP477$$T'#s(*;V%DEUY&y1t
 
 	
ri   c                    | j                   j                  |d      }i }|D ]B  \  }}|j                  |      }|s|||<   t        |      r|j	                  |       <||g||<   D |S )Nbrackets)array_format)r.  stringify_itemsr&  r0   append)re   r  r   
serializedkeyvalueexistings          rf   r)  z#BaseClient._serialize_multipartform$  s    '' #	 ( 
 )+
 	4JC!~~c*H"'
3 x &#+U"3
3%	4( ri   c                    t        |j                        s|S t        |j                        }|j                  t        t
              }t        |      r||_        t        t        t           |      S |S rb   )	r2   r   r   r(  rE   r    r   r	   r'   )re   cast_tor   r   override_cast_tos        rf   _maybe_override_cast_toz"BaseClient._maybe_override_cast_toB  s^    (N w'
 #;;'>	J$%%GOY)9::ri   c                F    |j                   j                  t              dk(  S )Nstream)r   r&  rD   re   r   s     rf   _should_stream_response_bodyz'BaseClient._should_stream_response_bodyS  s    ""#678CCri   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_r;  )r   r   )r   r'   objectinspectisclass
issubclassr.   buildr   r:   r;   r   ValidationErrorrN   )re   r  r>  r   errs        rf   _process_response_dataz!BaseClient._process_response_dataV  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 rb   r   rr   s    rf   r.  zBaseClient.qsn  s
    }ri   c                     y rb   rc   rr   s    rf   custom_authzBaseClient.custom_authr  s    ri   c                    i S rb   rc   rr   s    rf   auth_headerszBaseClient.auth_headersv  s    	ri   c                r    dd| j                   d| j                         | j                  | j                  S )Nzapplication/json)Acceptr  z
User-Agent)
user_agentplatform_headersrS  r   rr   s    rf   r  zBaseClient.default_headersz  sN     ).//
 ##%	

 
 ""
 	
ri   c                    i | j                   S rb   )r   rr   s    rf   r%  zBaseClient.default_query  s    
  
 	
ri   c                     y)zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nrc   )re   r   r   s      rf   r  zBaseClient._validate_headers  s     	ri   c                L    | j                   j                   d| j                   S )Nz/Python )rp   rq   r   rr   s    rf   rV  zBaseClient.user_agent  s"    ..))*(4==/BBri   c                    | j                   S rb   )r   rr   s    rf   r   zBaseClient.base_url  s    ~~ri   c                z    | j                  t        |t              r|      | _        y t        |            | _        y rb   )r   r   r   r   rd   s     rf   r   zBaseClient.base_url  s-    55ZS=Qc`WZ[^W_`ri   c                D    t        | j                  | j                        S )N)platform)rW  r   r   rr   s    rf   rW  zBaseClient.platform_headers  s      GGri   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)re   response_headersretry_ms_headerretry_headerretry_date_tuple
retry_dates         rf   _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   rl  minrC   powrA   r   )
re   remaining_retriesr   rg  r   retry_after
nb_retriessleep_secondsjitterr   s
             rf   _calculate_retry_timeoutz#BaseClient._calculate_retry_timeout  s     --d.>.>? 445EF"q;'<"'< (= '88$?
 /#c:2FFX TFH_$&(!Q,w-A-ri   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&  rO   r"  r   )re   r   should_retry_headers      rf   _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		.!ri   c                0    dt        j                          S )Nzstainless-python-retry-)uuiduuid4rr   s    rf   _idempotency_keyzBaseClient._idempotency_key  s    (77ri   )r   rw   r   	str | URLr   r   r   r   r   zfloat | Timeout | Noner   Mapping[str, str] | Noner   Mapping[str, object] | Nonert   ru   )r\   r   rt   r   )r   httpx.Responsert   rK   )r   rw   r   rG  r   r  rt   z_exceptions.APIStatusError)r   r9   r   r   rt   zhttpx.Headers)r\   rw   rt   r   )rt   zSSEDecoder | SSEBytesDecoder)r   r9   r   r   rt   httpx.Request)r  zMapping[object, object]rt   dict[str, object])r>  type[ResponseT]r   r9   rt   r  )r   r  rt   r   )r  rG  r>  r  r   r  rt   r'   )rt   r   )rt   zhttpx.Auth | None)rt   zdict[str, str])rt   zdict[str, str | Omit])rt   r  )r   r$   r   r$   rt   ru   rv   )rt   r   )r\   z	URL | strrt   ru   )rt   Dict[str, str]rb   )rg  Optional[httpx.Headers]rt   zfloat | None)rr  r   r   r9   rg  r  rt   ra  )r   r  rt   r   )"rq   rx   ry   r{   r   rB   r@   rg   r   r   r   r  r  r  r3  r)  r@  rD  rN  propertyr.  rQ  rS  r  r%  r  rV  r   setterrW  rl  rw  r|  r  rc   ri   rf   r   r   g  sv   MN((!%%##8<5< /*93748  	
 &*  ( 1 2 
4;
N N 
N,$$ 	$
 !$ 
$$ TU 4 	I
$I
 	I

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

		  	 
		 C C   __a aH /L 59	.. %. 2	.
 
.0!F8ri   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_redirectsTrc   
setdefaultr@   rF   superrg   re   r0  rp   s     rf   rg   z_DefaultHttpxClient.__init__
  E    )_5($=>,d3"6"ri   r0  r   rt   ru   rq   rx   ry   rg   __classcell__rp   s   @rf   r  r  	      # #ri   r  c                      e Zd ZddZy)SyncHttpxClientWrapperc                ^    | j                   ry 	 | j                          y # t        $ r Y y w xY wrb   )r   closer   rr   s    rf   __del__zSyncHttpxClientWrapper.__del__  s,    >>	JJL 		s     	,,Nrt   ru   rq   rx   ry   r  rc   ri   rf   r  r    s    ri   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i ddd"	 	 	 	 	 	 	 	 	 	 	 	 	 dCd#       Zedi dd$	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd%       Zedi ddd&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd'       Zdi dddd(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd)Zdi d*	 	 	 	 	 	 	 	 	 dFd+Zddi d,	 	 	 	 	 	 	 	 	 	 	 dGd-Zdi d*	 	 	 	 	 	 	 	 	 dFd.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   )r2   r   HTTPX_DEFAULT_TIMEOUTr@   r   r   Clientr   r$  r  rg   r   r%   r  r   )
re   r   r   r   r   r  r   r   r   rp   s
            rf   rg   zSyncAPIClient.__init__,  s       {226KK%--)":k5<<+Pabfgrbsatu  	'*#%)(C 	 		
 # 
&<'*'
ri   c                .    | j                   j                  S rb   r   r   rr   s    rf   r   zSyncAPIClient.is_closedZ      ||%%%ri   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  rr   s    rf   r  zSyncAPIClient.close]  s#     4#LL  $ri   c                    | S rb   rc   rr   s    rf   	__enter__zSyncAPIClient.__enter__g  s    ri   c                $    | j                          y rb   r  re   exc_typeexcexc_tbs       rf   __exit__zSyncAPIClient.__exit__j  s     	

ri   c                    |S z#Hook for mutating the given optionsrc   re   r   s     rf   _prepare_optionszSyncAPIClient._prepare_optionsr  s	    
 ri   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.
        Nrc   rC  s     rf   _prepare_requestzSyncAPIClient._prepare_requesty  s     ri   c                    y rb   rc   re   r>  r   rB  
stream_clss        rf   r   zSyncAPIClient.request  s     ri   FrB  c                    y rb   rc   re   r>  r   rB  s       rf   r   zSyncAPIClient.request  s     ri   rB  r  c                    y rb   rc   r  s        rf   r   zSyncAPIClient.request  s      #ri   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                  |d<   t        j                  d|
j                  |
j                         d }	  | j                   j"                  |
fd|xs | j%                  |
      i|}t        j                  d|
j                  |
j                  |j2                  |j4                  |j6                         	 |j9                           n |J d       | jI                  ||||||      S # t&        j(                  $ r^}t        j                  d	d
       |	dkD  r| j+                  |||d        Y d }~t        j                  d       t-        |
      |d }~wt.        $ r^}t        j                  dd
       |	dkD  r| j+                  |||d        Y d }~t        j                  d       t1        |
      |d }~ww xY w# t&        j:                  $ r}t        j                  dd
       |	dkD  rP| j=                  |j>                        r5|j>                  jA                          | j+                  ||||       Y d }~|j>                  jB                  s|j>                  jE                          t        j                  d       | jG                  |j>                        d d }~ww xY wNr&  r   r   r   authzSending HTTP Request: %s %srB  )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!Encountered httpx.HTTPStatusErrorzRe-raising status errorz0could not resolve response (should never happen))r>  r   r   rB  r  r   )%r@  r6   r  r  r  r  ro  r   ranger  r3  r  rQ  rO   r"  r\   r   sendrD  r   TimeoutException_sleep_for_retryrL   r   rM   r   reason_phraser   raise_for_statusHTTPStatusErrorr|  r   r  r   r  r   _process_responsere   r>  r   rB  r  input_optionsr   r   r   rr  r   r0  rM  s                rf   r   zSyncAPIClient.request  sy    ..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)*.#33D4D4DE";?3 R	M /G++G4G +m ;))')OG!!'*$&F+!%!1!1vII3W^^W[[QH!C,4<<,,!WT%F%Fw%F%W D II1$$&&  T))+, eR	h #W%WW#%%!' & 
 	
A )) @		>	N$q())&3$/ -!%	 *  		12%g6C? C		1D	A$q())&3$/ -!%	 *  		45(9sBC4 (( T		=	M$q(T-?-?-MLL&&())&3$/ -!)	 *   ||--LL%%'		34;;CLLItS'TsP   3GJ)J&#1H<"H<<J&1J!?"J!!J&)N<A&N	(A!N		N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)rO   r"  rw  r   r   r\   rf  sleepre   r   r   r   r   rr  r   s          rf   r  zSyncAPIClient._sleep_for_retry  su     (-7!IIn%II'):;//0A7`hHL\L\nrs7gN

7ri   r   r   c               :   t        |      xs |}t        j                  |      rgt        |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 )N!API Response types must subclass ; Received type[BaseAPIResponse[Any]]rawr   r>  rB  r  r   r   r  )r   rH  rI  rJ  r=   r<   r   r   r'   r?   r   Responser   r   r   r&  rD   parse
re   r>  r   r   rB  r  r   originresponse_clsapi_responses
             rf   r  zSyncAPIClient._process_response#  s    G$/??6"z&/'Jfk2"CK=P[\b[c dee <gFL 1,?!)#"/  enn$	8,,"*G4!'
   ((,,-@AB	<00!!##ri   c                N     d fd}|_          j                  |d      S )Nc                0    | j                         | S )N)r   r   r   )r   )r   r   r   re   s    rf   r   z0SyncAPIClient._request_api_list.<locals>._parserX  s&    (( ) 
 Kri   Fr  )r   rP   rt   rP   )r   r   )re   r   r   r   r   s   `` ` rf   r   zSyncAPIClient._request_api_listR  s'    	 &||D'%|88ri   r   rB  c                    y rb   rc   re   pathr>  r   rB  s        rf   r&  zSyncAPIClient.getd  s     ri   r   c                    y rb   rc   re   r  r>  r   rB  r  s         rf   r&  zSyncAPIClient.getn  s     ri   r   r  c                    y rb   rc   r  s         rf   r&  zSyncAPIClient.gety  s      #ri   r   rB  r  c          	     x    t        j                  dd|d|}t        t        | j	                  ||||            S Nr&  )r  r\   r  rc   )r9   	constructr   r'   r   re   r  r>  r   rB  r  optss          rf   r&  zSyncAPIClient.get  s?     #,,OEtOwO It||GT&U_|`aari   )r   r   r  rB  c                    y rb   rc   )re   r  r>  r   r   r  rB  s          rf   postzSyncAPIClient.post  s     ri   )r   r   r  c                    y rb   rc   re   r  r>  r   r   r  rB  r  s           rf   r  zSyncAPIClient.post  s     ri   )r   r   r  r  c                    y rb   rc   r  s           rf   r  zSyncAPIClient.post  s      #ri   )r   r   r  rB  r  c          	         t        j                  dd||t        |      d|}t        t        | j                  ||||            S Nr  r  r\   r   r  r  rc   )r9   r  r   r   r'   r   )	re   r  r>  r   r   r  rB  r  r  s	            rf   r  zSyncAPIClient.post  sP     #,, 
tt>%;P
T[
 It||GT&U_|`aari   r   r   c               X    t        j                  dd||d|}| j                  ||      S Npatchr  r\   r   rc   r9   r  r   re   r  r>  r   r   r  s         rf   r  zSyncAPIClient.patch  s3     #,,aGQUaY`a||GT**ri   r   r  r   c          	     l    t        j                  dd||t        |      d|}| j                  ||      S Nputr  rc   )r9   r  r   r   re   r  r>  r   r  r   r  s          rf   r	  zSyncAPIClient.put  sB     #,, 
dd.:O
SZ
 ||GT**ri   c               X    t        j                  dd||d|}| j                  ||      S Ndeleter  rc   r  r  s         rf   r  zSyncAPIClient.delete  s3     #,,bH$RVbZab||GT**ri   r&  r   r   r  c               Z    t        j                  d|||d|}| j                  |||      S Nr  rc   r9   r  r   re   r  r   r   r   r   r  r  s           rf   get_api_listzSyncAPIClient.get_api_list  7     #,,`FPT`X_`%%eT488ri   )r   rw   r   r  r   r   r   !float | Timeout | None | NotGivenr  zhttpx.Client | Noner   r  r   r  r   r   rt   ru   r   r  re   rS   rt   rS   r  ztype[BaseException] | Noner  zBaseException | Noner  zTracebackType | Nonert   ru   r   r9   rt   r9   r   r  rt   ru   )
r>  Type[ResponseT]r   r9   rB  Literal[True]r  zType[_StreamT]rt   rV   r>  r  r   r9   rB  Literal[False]rt   r'   )
r>  r  r   r9   rB  r   r  zType[_StreamT] | Nonert   ResponseT | _StreamT)
r>  r  r   r9   rB  r   r  type[_StreamT] | Nonert   r  
r   r   r   r   r   r9   r   zhttpx.Response | Nonert   ru   r>  r  r   r9   r   r  rB  r   r  z1type[Stream[Any]] | type[AsyncStream[Any]] | Noner   r   rt   r'   )r   Type[object]r   Type[SyncPageT]r   r9   rt   rP   
r  rw   r>  r  r   r,   rB  r  rt   r'   )r  rw   r>  r  r   r,   rB  r  r  type[_StreamT]rt   rV   )r  rw   r>  r  r   r,   rB  r   r  r  rt   r  )r  rw   r>  r  r   Body | Noner   r,   r  RequestFiles | NonerB  r  rt   r'   )r  rw   r>  r  r   r&  r   r,   r  r'  rB  r  r  r%  rt   rV   )r  rw   r>  r  r   r&  r   r,   r  r'  rB  r   r  r  rt   r  
r  rw   r>  r  r   r&  r   r,   rt   r'   r  rw   r>  r  r   r&  r  r'  r   r,   rt   r'   )r  rw   r   r"  r   r#  r   r&  r   r,   r  rw   rt   rP   )rq   rx   ry   r{   r   rB   r    rg   r   r  r  r  r  r  r   r   r  r  r   r&  r  r  r	  r  r  r  r  s   @rf   r   r   (  s   4818 /5>+/3748,
 ,
 	,

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

 r
 *r
 
r
h #25@S_t	, -$ !-$ %	-$
 !-$ -$ F-$ -$ 
-$^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* !"$	+	+ !		+
 	+  	+ 
	+  !%)"$++ !	+
 + #+  + 
+& !"$	+	+ !		+
 	+  	+ 
	+" !"$99 	9
 9 9  9 9 
9ri   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     rf   rg   z!_DefaultAsyncHttpxClient.__init__  r  ri   r  r  r  s   @rf   r+  r+    r  ri   r+  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rb   )r   asyncioget_running_loopcreate_taskacloser   rr   s    rf   r  zAsyncHttpxClientWrapper.__del__  s@    >>	$$&224;;=A 		s   1A 	AANr  r  rc   ri   rf   r.  r.    s    ri   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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i dd#	 	 	 	 	 	 	 	 	 	 	 	 	 dBd$       Zeddi d%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dCd&       Zeddi dd'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd(       Zddi ddd)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd*Zdi d+	 	 	 	 	 	 	 	 	 dEd,Zddi d%	 	 	 	 	 	 	 	 	 	 	 dFd-Zdi d+	 	 	 	 	 	 	 	 	 dEd.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  )r2   r   r  r@   r   r   AsyncClientr   r$  r  rg   r   r%   r.  r   )
re   r   r   r   r   r   r  r   r   rp   s
            rf   rg   zAsyncAPIClient.__init__  s       {226KK%--)":k5CTCT+Ufgklwgxfyz  	'*#%)(C 	 		
 # 
&='*'
ri   c                .    | j                   j                  S rb   r  rr   s    rf   r   zAsyncAPIClient.is_closedL  r  ri   c                T   K   | j                   j                          d{    y7 w)r  N)r   r3  rr   s    rf   r  zAsyncAPIClient.closeO  s     
 ll!!###s   (&(c                   K   | S wrb   rc   rr   s    rf   
__aenter__zAsyncAPIClient.__aenter__V  s        c                @   K   | j                          d {    y 7 wrb   r  r  s       rf   	__aexit__zAsyncAPIClient.__aexit__Y  s      jjls   c                   K   |S wr  rc   r  s     rf   r  zAsyncAPIClient._prepare_optionsa  s     
 r;  c                   K   ywr  rc   rC  s     rf   r  zAsyncAPIClient._prepare_requesth  s         Fr  c                  K   y wrb   rc   r  s       rf   r   zAsyncAPIClient.requests  s      r@  c                  K   y wrb   rc   r  s        rf   r   zAsyncAPIClient.request|  s      r@  )r  c                  K   y wrb   rc   r  s        rf   r   zAsyncAPIClient.request  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<   t         j#                  d|
j                  |
j$                         d }	  | j&                  j(                  |
fd|xs | j+                  |
      i| d {   }t         j#                  d|
j                  |
j$                  |j8                  |j:                  |j<                         	 |j?                           n |J d       | jO                  ||||||       d {   S 7 7 G7 7 # t,        j.                  $ rg}t         j#                  d	d
       |	dkD  r$| j1                  |||d        d {  7   Y d }~t         j#                  d       t3        |
      |d }~wt4        $ rg}t         j#                  dd
       |	dkD  r$| j1                  |||d        d {  7   Y d }~3t         j#                  d       t7        |
      |d }~ww xY w# t,        j@                  $ r}t         j#                  dd
       |	dkD  rb| jC                  |jD                        rG|jD                  jG                          d {  7   | j1                  ||||       d {  7   Y d }~|jD                  jH                  s#|jD                  jK                          d {  7   t         j#                  d       | jM                  |jD                        d d }~ww xY w7 wr  )(r   r1   get_platformr@  r6   r  r  r  r  ro  r   r  r  r3  r  rQ  rO   r"  r\   r   r  rD  r   r  r  rL   r   rM   r   r  r   r  r  r|  r   r3  r   areadr   r  r  s                rf   r   zAsyncAPIClient.request  s     >>! $:8L#9#;;DN..w@
 #7+((0]5I5I5O5O5QUZ5Z,0,A,A,CM)*.#33D4D4DE";?3 R	M /G 11'::G +m ;))')OG''000$&F+!%!1!1vII3W^^W[[QH!C!2!2!2"!WT%F%Fw%F%W" " D II1$$&&  T))+, eR	h #W%WW#++!' , 
 
 	
K <$ ; 1
 )) @		>	N$q(//&3$/ -!%	 0    		12%g6C? C		1D	A$q(//&3$/ -!%	 0    		45(9sBC4 (( T		=	M$q(T-?-?-M,,--/////&3$/ -!)	 0     ||--,,,,...		34;;CLLItS'T0
s	  $PHB4PH"0PH%AP6H*H(H*AP$L4&PPP"P%P(H**L=4J1I42J7P="JL+4LK" L%P+"LLPP(AP<M?=PNP P&3PO6PPP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  )rO   r"  rw  r   r   r\   anyior  r  s          rf   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   t        |      xs |}t        j                  |      rct        |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   rH  rI  rJ  r=   r>   r   r   r?   r   r  r'   r   r   r   r&  rD   r  r  s
             rf   r  z AsyncAPIClient._process_response  s     G$/??6"z&/'Jf&67"CDTCUU`ag`h ijj <gFL 1,?!)#"/  enn$	8,,'*G4!'
   ((,,-@AB	<00!''))))s   DD%D#D%c                     t        | |||      S )N)r   r   r   r   )r   )re   r   r   r   s       rf   r   z AsyncAPIClient._request_api_listF  s     T7TQVWWri   r  c                  K   y wrb   rc   r  s        rf   r&  zAsyncAPIClient.getN  s      r@  r  c                  K   y wrb   rc   r  s         rf   r&  zAsyncAPIClient.getX  s      r@  r  c                  K   y wrb   rc   r  s         rf   r&  zAsyncAPIClient.getc  s      %(r@  r  c               x   K   t        j                  dd|d|}| j                  ||||       d {   S 7 wr  r  r  s          rf   r&  zAsyncAPIClient.getn  s?      #,,OEtOwO\\'4:\VVVVs   1:8:)r   r  r   rB  c                  K   y wrb   rc   )re   r  r>  r   r  r   rB  s          rf   r  zAsyncAPIClient.postz  s      r@  r  c                  K   y wrb   rc   re   r  r>  r   r  r   rB  r  s           rf   r  zAsyncAPIClient.post  s      r@  )r   r  r   r  c                  K   y wrb   rc   rQ  s           rf   r  zAsyncAPIClient.post  s      %(r@  )r   r  r   rB  r  c          	        K   t        j                  dd||t        |       d {   d|}| j                  ||||       d {   S 7 &7 wr  r9   r  r   r   )	re   r  r>  r   r  r   rB  r  r  s	            rf   r  zAsyncAPIClient.post  s^      #,, 
ttAUV[A\;\
`g
 \\'4:\VVV <]Vs!   "AA!AAAAr  c               t   K   t        j                  dd||d|}| j                  ||       d {   S 7 wr  r  r  s         rf   r  zAsyncAPIClient.patch  s=      #,,aGQUaY`a\\'40000   /868c          	        K   t        j                  dd||t        |       d {   d|}| j                  ||       d {   S 7 #7 wr  rT  r
  s          rf   r	  zAsyncAPIClient.put  sX      #,, 
dd@TUZ@[:[
_f
 \\'4000 ;\0s!   "AAAA
A
Ac               t   K   t        j                  dd||d|}| j                  ||       d {   S 7 wr  r  r  s         rf   r  zAsyncAPIClient.delete  s=      #,,bH$RVbZab\\'40000rV  r&  r  c               Z    t        j                  d|||d|}| j                  |||      S r  r  r  s           rf   r  zAsyncAPIClient.get_api_list  r  ri   )r   rw   r   r  r   r   r   r   r   r  r  zhttpx.AsyncClient | Noner   r  r   r  rt   ru   r   r  r  r  r  r  r  )
r>  r  r   r9   rB  r  r  type[_AsyncStreamT]rt   rW   )
r>  r  r   r9   rB  r   r  type[_AsyncStreamT] | Nonert   ResponseT | _AsyncStreamTr   r!  )r   r   r   r   r   r9   rt   AsyncPaginator[_T, AsyncPageT]r$  )r  rw   r>  r  r   r,   rB  r  r  rZ  rt   rW   )r  rw   r>  r  r   r,   rB  r   r  r[  rt   r\  )r  rw   r>  r  r   r&  r  r'  r   r,   rB  r  rt   r'   )r  rw   r>  r  r   r&  r  r'  r   r,   rB  r  r  rZ  rt   rW   )r  rw   r>  r  r   r&  r  r'  r   r,   rB  r   r  r[  rt   r\  r(  r)  )r  rw   r   r   r   r   r   r&  r   r,   r  rw   rt   r]  )rq   rx   ry   r{   r   rB   r    rg   r   r  r:  r=  r  r  r   r   r  r  r   r&  r  r  r	  r  r  r  r  s   @rf   r   r     s   9=6= /5>043748,
 ,
 	,

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

 w
 /w
 
#w
r# ##25#@S#_t#	#, -* !-* %	-*
 !-* -* F-* -* 
-*^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* !"$	1	1 !		1
 	1  	1 
	1  !%)"$11 !	1
 1 #1  1 
1& !"$	1	1 !		1
 	1  	1 
	1" !"$99 	9
 9 9  9 9 
(9ri   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   r#  r^   r   r  r   )r   r(   r&  r   r&   r2   )r^  r_  r`  ra  r  r   r   r   s           rf   make_request_optionsrc    s     !G *	 $Z <!Hw{{8R8HKHgx($	"%4!"!,Nri   c                      e Zd ZddZy)r*  c                     y)NTrc   rr   s    rf   __bool__zForceMultipartDict.__bool__  s    ri   Nr   )rq   rx   ry   rf  rc   ri   rf   r*  r*    s    ri   r*  c                  &    e Zd ZddZedd       Zy)OtherPlatformc                    || _         y rb   namere   rk  s     rf   rg   zOtherPlatform.__init__  	    	ri   c                     d| j                    S )NzOther:rj  rr   s    rf   __str__zOtherPlatform.__str__      		{##ri   Nrk  rw   rt   ru   rv   rq   rx   ry   rg   r   ro  rc   ri   rf   rh  rh         $ $ri   rh  )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ipadry  darwinrt  windowsrv  androidrz  linuxfreebsdrw  openbsdrx  ru  )r^  systemr  r   distroidrh  )r  platform_name	distro_ids      rf   rE  rE  $  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)rw   rE  get_architectureget_python_runtimeget_python_version)r   r^  s     rf   rW  rW  N  s;     %'.h8,.9 0 2313'9'; ri   c                  &    e Zd ZddZedd       Zy)	OtherArchc                    || _         y rb   rj  rl  s     rf   rg   zOtherArch.__init__[  rm  ri   c                     d| j                    S )Nzother:rj  rr   s    rf   ro  zOtherArch.__str__^  rp  ri   Nrq  rv   rr  rc   ri   rf   r  r  Z  rs  ri   r  )x32x64armarm64unknownc                 J    	 t        j                         S # t        $ r Y yw xY wNr  )r^  python_implementationr   rc   ri   rf   r  r  f  s(    --//     	""c                 J    	 t        j                         S # t        $ r Y yw xY wr  )r^  python_versionr   rc   ri   rf   r  r  m  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    rf   r  r  t  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        rf   r  r    s?     F)/W:3z%QU?VCJWWWs   <<)r^  Query | Noner_  zHeaders | Noner`  r  ra  r&  r  r   r   z'float | httpx.Timeout | None | NotGivenr   zPostParser | NotGivenrt   r,   )rt   Platform)r   rw   r^  zPlatform | Nonert   r  rv   )rt   Arch)r  Mapping[_T_co, Union[_T, Omit]]r  r  rt   zDict[_T_co, _T])
__future__r   r  r`   rf  r~  rb  r0  rH  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   rH  r   r  r   r   r    r   _qsr   _filesr   r   _typesr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   _utilsr/   r0   r1   r2   r3   r4   _compatr5   r6   r7   _modelsr8   r9   r:   r;   	_responser<   r=   r>   r?   
_constantsr@   rA   rB   rC   rD   rE   rF   
_streamingrG   rH   rI   rJ   rK   rL   rM   rN   	getLoggerrq   rO   r{   rP   rR   rS   rT   rV   rW   httpx._configrX   r  ImportErrorrZ   r}   r   r   r   r  r6  r   r   r   r  DefaultHttpxClientr  r   r+  DefaultAsyncHttpxClientr.  r   rc  rw   r*  rh  r  rE  rW  r  r  r  r  r  r  rc   ri   rf   <module>r     s   " 
               " < ;          8    " P O 8 8 U U    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 _8D#%,, #  -/ O9Ju||VC[89 O9d#u00 # #// 7	5 	E9Z 1 1;s3C CD E9T $( $""&7@)2"" "" 	"
 "  " 5" '" "Jc4i 
$ $ 		
'T 4 $ $ Y GHHI4	X
)	X
)	X 	XC9  - '-s   9L/ /M ?M 