
    f j                       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  d dl!m"Z"m#Z#m$Z$ d dl%Z%d dl&Z&d dl'Z'd dl(Z(d dl&m)Z)m*Z* d d	l(m+Z+ d
dl,m-Z- d
dl.m/Z/ d
dl0m1Z1m2Z2 d
dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD d
dlEmFZFmGZGmHZHmIZI d
dlJmKZKmLZL d
dlMmNZNmOZOmPZPmQZQ d
dlRmSZSmTZTmUZUmVZV d
dlWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^ d
dl_m`Z`maZambZbmcZc d
dl-mdZdmeZemfZfmgZg d
dlhmiZi  ejj        ek          Zldemd<    edd          Zn edd          Zo ed          Zp edd !          Zq ed"e`e                   Zr ed#ebe                   Zserd d$ltmuZv n	 d d$ltmuZv n# ew$ r  e9d%          ZvY nw xY w G d& d'          Zx G d( d)eNeep                   Zy G d* d+eyep         eep                   Zz G d, d-eepeof                   Z{ G d. d/eyep         eep                   Z| ed0ee&j}        e&j~        f                   Z ed1ee`e         ebe         f                   Z G d2 d3eeef                   Z G d4 d5e&j}                  Z G d6 d7ee&j}        e`e         f                   Z G d8 d9e&j~                  Z G d: d;ee&j~        ebe         f                   Zddddde4e4d<dcdLZ G dM dN          Zeee"dO         f         ZdddQZ e dR          dedV            Z G dW dX          Zeee"dY         f         ZdfdZZdfd[Zdgd]ZdhdbZdS )i    )annotationsN)TracebackType)random)TYPE_CHECKINGAnyDictTypeUnionGenericMappingTypeVarIterableIteratorOptional	GeneratorAsyncIteratorcastoverload)	lru_cache)Literaloverride
get_origin)URLLimits)PrivateAttr   )_exceptionsQuerystring)to_httpx_filesasync_to_httpx_files)	NOT_GIVENBodyOmitQueryHeadersTimeoutNotGiven	ResponseT	Transport
AnyMapping
PostParserProxiesTypesRequestFilesHttpxSendArgsAsyncTransportRequestOptionsModelBuilderProtocol)is_dictis_listis_given
is_mapping)
model_copy
model_dump)GenericModelFinalRequestOptionsvalidate_typeconstruct_type)APIResponseBaseAPIResponseAsyncAPIResponseextract_response_type)DEFAULT_LIMITSDEFAULT_TIMEOUTMAX_RETRY_DELAYDEFAULT_MAX_RETRIESINITIAL_RETRY_DELAYRAW_RESPONSE_HEADEROVERRIDE_CAST_TO_HEADER)Stream
SSEDecoderAsyncStreamSSEBytesDecoder)APIStatusErrorAPITimeoutErrorAPIConnectionErrorAPIResponseValidationError)LegacyAPIResponsezlogging.Loggerlog	SyncPageTzBaseSyncPage[Any])bound
AsyncPageTzBaseAsyncPage[Any]_T_T_coT)	covariant_StreamT_AsyncStreamT)DEFAULT_TIMEOUT_CONFIGg      @c                  h    e Zd ZU dZded<   ded<   edd	            Zedd            ZeedddZdS )PageInfozStores the necessary information to build the request to retrieve the next page.

    Either `url` or `params` must be set.
    URL | NotGivenurlQuery | NotGivenparamsr   returnNonec                   d S N selfr^   s     gC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\openai/_base_client.py__init__zPageInfo.__init__{   	     	    r%   c                   d S rd   re   )rg   r`   s     rh   ri   zPageInfo.__init__   rj   rk   r^   r`   c               "    || _         || _        d S rd   rm   )rg   r^   r`   s      rh   ri   zPageInfo.__init__   s     rk   N)r^   r   ra   rb   )r`   r%   ra   rb   )r^   r]   r`   r_   ra   rb   )__name__
__module____qualname____doc____annotations__r   ri   r"   re   rk   rh   r\   r\   r   s          
    X    X (#,	       rk   r\   c                  x    e Zd ZU dZ e            Zded<    e            Zded<   ddZdd
Z	ddZ
ddZddZdS )BasePagea<  
    Defines the core interface for pagination.

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

    Methods:
        has_next_page(): Check if there is another page available
        next_page_info(): Get the necessary information to make a request for the next page
    r:   _optionsType[_T]_modelra   boolc                ^    |                                  }|sdS |                                 d uS )NF)_get_page_itemsnext_page_info)rg   itemss     rh   has_next_pagezBasePage.has_next_page   s7    $$&& 	5""$$D00rk   Optional[PageInfo]c                    d S rd   re   rg   s    rh   r|   zBasePage.next_page_info       rk   Iterable[_T]c                    d S rd   re   r   s    rh   r{   zBasePage._get_page_items   r   rk   r^   r   httpx.QueryParamsc                    t          j        t          t          | j        j                                                |j                  S rd   )httpxQueryParamsr   r   rv   r`   mergerf   s     rh   _params_from_urlzBasePage._params_from_url   s2     c4=+?!@!@AAGG
SSSrk   infor\   c                   t          | j                  }|                                 t          |j        t
                    si |j        |j        |_        |S t          |j        t
                    sd|                     |j                  }|j                            |          }t          |j                  |_        t          |          |_        |S t          d          )N)r`   zUnexpected PageInfo state)r7   rv   _strip_raw_response_header
isinstancer`   r(   r^   r   	copy_withdictstr
ValueError)rg   r   optionsr`   r^   s        rh   _info_to_optionszBasePage._info_to_options   s    T]++**,,,$+x00 	>>$+>GNN$(H-- 	**4844F($$F$33C!#*--GNc((GKN4555rk   Nra   ry   )ra   r   )ra   r   )r^   r   ra   r   )r   r\   ra   r:   )ro   rp   rq   rr   r   rv   rs   rx   r~   r|   r{   r   r   re   rk   rh   ru   ru      s         	 	 %0KMMH1111"{}}F$$$$1 1 1 1      T T T T6 6 6 6 6 6rk   ru   c                  X    e Zd ZU  ej                    Zded<   dd
ZddZddZ	ddZ
dS )BaseSyncPageSyncAPIClient_clientclientmodelrw   r   r:   ra   rb   c                0    || _         || _        || _        d S rd   rx   r   rv   )rg   r   r   r   s       rh   _set_private_attributesz$BaseSyncPage._set_private_attributes        rk   Iterator[_T]c              #  n   K   |                                  D ]}|                                D ]}|V  d S rd   
iter_pagesr{   rg   pageitems      rh   __iter__zBaseSyncPage.__iter__   sT      OO%% 	 	D,,..  



	 	rk   rg   rR   Iterator[SyncPageT]c              #  l   K   | }	 |V  |                                 r|                                }nd S 0rd   r~   get_next_pagerg   r   s     rh   r   zBaseSyncPage.iter_pages   sJ      	JJJ!!## ))++	rk   c                    |                                  }|st          d          |                     |          }| j                            | j        | j        |          S NzYNo next page expected; please check `.has_next_page()` before calling `.get_next_page()`.)r   r   r|   RuntimeErrorr   r   _request_api_listrx   	__class__rg   r   r   s      rh   r   zBaseSyncPage.get_next_page   sg    ""$$ 	k   ''--|--dkX_-```rk   N)r   r   r   rw   r   r:   ra   rb   )ra   r   )rg   rR   ra   r   )rg   rR   ra   rR   )ro   rp   rq   pydanticr   r   rs   r   r   r   r   re   rk   rh   r   r      s         1X133G3333       $   
   a a a a a ark   r   c                  .    e Zd ZddZddZddZddZdS )AsyncPaginatorr   AsyncAPIClientr   r:   page_clsType[AsyncPageT]r   rw   ra   rb   c                >    || _         || _        || _        || _        d S rd   )rx   r   rv   	_page_cls)rg   r   r   r   r   s        rh   ri   zAsyncPaginator.__init__   s$     !rk    Generator[Any, None, AsyncPageT]c                N    |                                                                  S rd   )	_get_page	__await__r   s    rh   r   zAsyncPaginator.__await__  s    ~~))+++rk   rT   c                    K   d fd}| j         _         j                             j         j                    d {V S )NresprT   ra   c                V    |                      j        j        j                   | S )N)r   r   r   )r   rx   rv   r   )r   rg   s    rh   _parserz)AsyncPaginator._get_page.<locals>._parser  s6    ((k| )   
 Krk   )r   rT   ra   rT   )rv   post_parserr   requestr   )rg   r   s   ` rh   r   zAsyncPaginator._get_page  s_      	 	 	 	 	 	 %,!\))$.$-HHHHHHHHHrk   AsyncIterator[_T]c               `   K   t          t          |  d {V           }|2 3 d {V }|W V  6 d S rd   )r   rT   r   s      rh   	__aiter__zAsyncPaginator.__aiter__  sg      JJJJJJ
 
  	 	 	 	 	 	 	$JJJJJ $$s   -N)
r   r   r   r:   r   r   r   rw   ra   rb   )ra   r   )ra   rT   ra   r   )ro   rp   rq   ri   r   r   r   re   rk   rh   r   r      sh        
" 
" 
" 
", , , ,I I I I     rk   r   c                  X    e Zd ZU  ej                    Zded<   dd
ZddZddZ	ddZ
dS )BaseAsyncPager   r   r   rw   r   r   r:   ra   rb   c                0    || _         || _        || _        d S rd   r   )rg   r   r   r   s       rh   r   z%BaseAsyncPage._set_private_attributes  r   rk   r   c               |   K   |                                  2 3 d {V }|                                D ]}|W V  $6 d S rd   r   r   s      rh   r   zBaseAsyncPage.__aiter__(  sp      //++ 	 	 	 	 	 	 	$,,..  




 ,++s   ;rg   rT   AsyncIterator[AsyncPageT]c               z   K   | }	 |W V  |                                 r|                                 d {V }nd S 7rd   r   r   s     rh   r   zBaseAsyncPage.iter_pages-  s^      	JJJJ!!## !//11111111	rk   c                   K   |                                  }|st          d          |                     |          }| j                            | j        | j        |           d {V S r   r   r   s      rh   r   zBaseAsyncPage.get_next_page6  s}      ""$$ 	k   ''--\33DKdn^e3fffffffffrk   N)r   rw   r   r   r   r:   ra   rb   r   )rg   rT   ra   r   )rg   rT   ra   rT   )ro   rp   rq   r   r   r   rs   r   r   r   r   re   rk   rh   r   r     s         2h244G4444          
   g g g g g grk   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ed<   ded<   ded<   dZded<   eeddddbd&Zdcd(Zddd,Z	ded1Z
dfd6Zdgd8Zdhd9Zdid;Zdjd=ZdkdAZdldDZdmdFZdndHZedodJ            ZedpdL            ZedqdN            ZedrdP            ZdsdSZedtdT            ZedudU            Zej        dvdW            ZdwdYZdxdyd]Z	 dxdzd_Zd{d`Z dtdaZ!dS )|
BaseClientr   r   r   _versionr   	_base_urlintmax_retrieszUnion[float, Timeout, None]timeouthttpx.Limits_limitsProxiesTypes | None_proxies!Transport | AsyncTransport | None
_transportry   _strict_response_validation
str | None_idempotency_headerNztype[_DefaultStreamT] | None_default_stream_cls)r   r   custom_headerscustom_queryversionbase_url	str | URLfloat | Timeout | Nonelimits	transportproxiesr   Mapping[str, str] | Noner   Mapping[str, object] | Nonera   rb   c       
            || _         |                     t          |                    | _        || _        || _        || _        || _        || _        |	pi | _	        |
pi | _
        || _        d | _        d S rd   )r   _enforce_trailing_slashr   r   r   r   r   r   r   _custom_headers_custom_queryr   r   )rg   r   r   r   r   r   r   r   r   r   r   s              rh   ri   zBaseClient.__init__R  sz      55c(mmDD&#-3)/R+F(#'   rk   r^   c                v    |j                             d          r|S |                    |j         dz             S )N   /raw_path)r   endswithr   rf   s     rh   r   z"BaseClient._enforce_trailing_slashl  s:    <  && 	J}}clT&9}:::rk   responsehttpx.ResponserL   c                   |j         r|j        sd }d|j         }nZ|j                                        }|}	 t          j        |          }d|j         d| }n# t          $ r |p	d|j         }Y nw xY w|                     |||          S )NzError code: z - )bodyr   )		is_closedis_stream_consumedstatus_codetextstripjsonloads	Exception_make_status_error)rg   r   r   err_msgerr_texts        rh    _make_status_error_from_responsez+BaseClient._make_status_error_from_responseq  s      	Lh&A 	L D;X%9;;GG}**,,HDLz(++H)=HH$HH L L L"K&KX5I&K&KL &&wTH&MMMs   !A A32A3r  r   object_exceptions.APIStatusErrorc                   t                      rd   )NotImplementedError)rg   r  r   r   s       rh   r  zBaseClient._make_status_error  s     "###rk   remaining_retriesOptional[int]r   r:   c                >    ||n|                     | j                  S rd   )get_max_retriesr   )rg   r  r   s      rh   _remaining_retrieszBaseClient._remaining_retries  s'    
 %6p  wG^G^_c_oGpGpprk   httpx.Headersc                &   |j         pi }t          | j        |          }|                     ||           t	          j        |          }| j        }|r?|j                                        dk    r"||vr|j	        p| 
                                ||<   |S )Nget)headers_merge_mappingsdefault_headers_validate_headersr   r&   r   methodloweridempotency_key_idempotency_key)rg   r   r   headers_dictr  idempotency_headers         rh   _build_headerszBaseClient._build_headers  s     .B&t';^LL|^<<< ---!5 	]'."6"6"8"8E"A 	]FX`gFg 	]*1*A*\TEZEZE\E\G&'rk   c                    t          |          }|j        rB| j        j        |j                            d          z   }| j                            |          S |S )z
        Merge a URL argument together with any 'base_url' on the client,
        to create the URL used for the outgoing request.
        r   r   )r   is_relative_urlr   r   lstripr   )rg   r^   	merge_urlmerge_raw_paths       rh   _prepare_urlzBaseClient._prepare_url  s[     HH	$ 	D!]3i6H6O6OPT6U6UUN=**N*CCCrk   SSEDecoder | SSEBytesDecoderc                    t                      S rd   )rI   r   s    rh   _make_sse_decoderzBaseClient._make_sse_decoder  s    ||rk   httpx.Requestc                B   t                               t          j                  r*t                               dt          |d                     i }|j        }|j        b|t          t          |j                  }nEt          |          rt          ||j                  }n t          dt          |           d          |                     |          }t          | j        |j                  }|                    d          }|w|                    d          rbd|vr|                    d           |rGt)          |          s t+          d	t          |           d
          |                     |          |d<    | j        j        d|t3          |j        t6                    r| j        n|j        |j        |                     |j                  |r?| j                             t          tB          tD          tF          f         |                    nd ||j$        d|S )NzRequest options: %sT)exclude_unsetzUnexpected JSON data type, z , cannot merge with `extra_body`Content-Typezmultipart/form-databoundaryzGExpected query input to be a dictionary for multipart requests but got z	 instead.data)r  r   r  r^   r`   r  filesre   )%rQ   isEnabledForloggingDEBUGdebugr8   	json_data
extra_jsonr   r#   r6   r  r   typer  r   r`   r  
startswithpopr3   	TypeError_serialize_multipartformr   build_requestr   r   r(   r  r$  r^   qs	stringifyr   r   r   r.  )rg   r   kwargsr3  r  r`   content_types          rh   _build_requestzBaseClient._build_request  s6    GM** 	VII+Zt-T-T-TUUU!#%	 	t t w'9::		I&& t+Iw7IJJ		"#ri#r#r#rsss%%g.. !3W^DD{{>22  	J(?(?@U(V(V 	J- , N+++  Jy)) #|bfgpbqbq|||   "&!>!>y!I!Iv *t|) 
$.w$I$I^DLLw>!!'+..
 JPY47$$T'#s(*;V%D%DEEEUY-
 
 
 
 	
rk   r-  Mapping[object, object]dict[str, object]c                    | j                             |d          }i }|D ]N\  }}|                    |          }|s|||<   "t          |          r|                    |           G||g||<   O|S )Nbrackets)array_format)r;  stringify_itemsr  r4   append)rg   r-  r}   
serializedkeyvalueexistings          rh   r9  z#BaseClient._serialize_multipartform  s    '' #	 ( 
 
 )+
 	4 	4JC!~~c**H "'
3 x   4&&&&#+U"3
3rk   cast_totype[ResponseT]c                   t          |j                  s|S t          |j                  }|                    t          t
                    }t          |          r'||_        t          t          t                   |          S |S rd   )	r5   r  r   r7  rG   r"   r   r	   r)   )rg   rK  r   r  override_cast_tos        rh   _maybe_override_cast_toz"BaseClient._maybe_override_cast_to  ss    (( 	N w''
 #;;'>	JJ$%% 	;%GOY)9:::rk   r   c                H    |j                             t                    dk    S )Nstream)r  r  rF   rg   r   s     rh   _should_stream_response_bodyz'BaseClient._should_stream_response_body  s    ""#6778CCrk   r)   c                  |t          t          d           S |t          u rt          t          |          S 	 t          j        |          r?t          |t                    r*t          t          |                    ||                    S | j        r$t          t          t          ||                    S t          t          t          ||                    S # t          j        $ r}t          ||          |d }~ww xY w)N)r   r-  )type_rI  )r   r   )r   r)   r  inspectisclass
issubclassr2   buildr   r;   r<   r   ValidationErrorrO   )rg   r-  rK  r   errs        rh   _process_response_dataz!BaseClient._process_response_data!  s     	)	4(((f 	)	4(((		Tw'' TJw@T,U,U TIw}}hT}'R'RSSS/ QI}7$'O'O'OPPP	>t#L#L#LMMM' 	T 	T 	T,hTJJJPSS	Ts$   AC 
*C 5#C C?(C::C?r   c                    t                      S rd   r   r   s    rh   r;  zBaseClient.qs9  s    }}rk   httpx.Auth | Nonec                    d S rd   re   r   s    rh   custom_authzBaseClient.custom_auth=  s    trk   dict[str, str]c                    i S rd   re   r   s    rh   auth_headerszBaseClient.auth_headersA  s    	rk   dict[str, str | Omit]c                \    dd| j         d|                                 | j        | j        S )Nzapplication/json)Acceptr+  z
User-Agent)
user_agentplatform_headersrc  r   r   s    rh   r  zBaseClient.default_headersE  sN     )./
 
 ##%%	

 
 "
 	
rk   r  r&   c                    dS )zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nre   )rg   r  r   s      rh   r  zBaseClient._validate_headersP  s	     	rk   c                .    | j         j         d| j         S )Nz/Python )r   ro   r   r   s    rh   rg  zBaseClient.user_agent[  s    .)BB4=BBBrk   c                    | j         S rd   )r   r   s    rh   r   zBaseClient.base_url_  s
    ~rk   	URL | strc                    |                      t          |t                    r|nt          |                    | _        d S rd   )r   r   r   r   rf   s     rh   r   zBaseClient.base_urlc  s8    55ZS=Q=Q6_ccWZ[^W_W_``rk   Dict[str, str]c                *    t          | j                  S rd   )rh  r   r   s    rh   rh  zBaseClient.platform_headersg  s    ...rk   response_headersOptional[httpx.Headers]float | Nonec                   |dS 	 |                     dd          }t          |          dz  S # t          t          f$ r Y nw xY w|                     d          }	 t          |          S # t          t          f$ r Y nw xY wt          j                            |          }|dS t          j                            |          }t          |t          j                    z
            S )a@  Returns a float of the number of seconds (not milliseconds) to wait after retrying, or None if unspecified.

        About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
        See also  https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After#syntax
        Nzretry-after-msi  zretry-after)	r  floatr8  r   emailutilsparsedate_tz	mktime_tztime)rg   rp  retry_ms_headerretry_headerretry_date_tuple
retry_dates         rh   _parse_retry_after_headerz$BaseClient._parse_retry_after_headerj  s     	4	.223CTJJO))D00:& 	 	 	D	 (++M::	 &&&:& 	 	 	D	 !;33LAA 	4[**+;<<
Z$)++-...s!   '. AAA* *A>=A>rt  c                .   |                     | j                  }|                     |          }|d|cxk     rdk    rn n|S ||z
  }t          t          t          d|          z  t                    }ddt                      z  z
  }||z  }	|	dk    r|	ndS )Nr   <   g       @r   g      ?)r  r   r~  minrE   powrC   r   )
rg   r  r   rp  r   retry_after
nb_retriessleep_secondsjitterr   s
             rh   _calculate_retry_timeoutz#BaseClient._calculate_retry_timeout  s     --d.>?? 445EFF 	q; 	 	 	 	" 	 	 	 	 	 #44
 /#c:2F2FFXX TFHH_$&(!Q,-wwA-rk   c                ^   |j                             d          }|dk    rt                              d           dS |dk    rt                              d           dS |j        dk    r"t                              d	|j                   dS |j        d
k    r"t                              d	|j                   dS |j        dk    r"t                              d	|j                   dS |j        dk    r"t                              d	|j                   dS t                              d           dS )Nzx-should-retrytruez4Retrying as header `x-should-retry` is set to `true`Tfalsez9Not retrying as header `x-should-retry` is set to `false`Fi  zRetrying due to status code %ii  i  i  zNot retrying)r  r  rQ   r2  r   )rg   r   should_retry_headers      rh   _should_retryzBaseClient._should_retry  s9   &.223CDD &( 	IILMMM4') 	IIQRRR5 3& 	II68LMMM4 3& 	II68LMMM4 3& 	II68LMMM4 3& 	II68LMMM4		.!!!urk   c                .    dt          j                     S )Nzstainless-python-retry-)uuiduuid4r   s    rh   r  zBaseClient._idempotency_key  s    7777rk   )r   r   r   r   r   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   rb   )r^   r   ra   r   )r   r   ra   rL   )r  r   r   r  r   r   ra   r	  )r  r  r   r:   ra   r   )r   r:   ra   r  )r^   r   ra   r   )ra   r%  )r   r:   ra   r(  )r-  r@  ra   rA  )rK  rL  r   r:   ra   rL  )r   r(  ra   ry   )r-  r  rK  rL  r   r   ra   r)   )ra   r   )ra   r^  )ra   ra  )ra   rd  )r  r&   r   r&   ra   rb   ra   r   )ra   r   )r^   rl  ra   rb   )ra   rn  rd   )rp  rq  ra   rr  )r  r   r   r:   rp  rq  ra   rt  )r   r   ra   ry   )"ro   rp   rq   rs   r   rD   rB   ri   r   r  r  r  r  r$  r'  r?  r9  rO  rS  r\  propertyr;  r`  rc  r  r  rg  r   setterrh  r~  r  r  r  re   rk   rh   r   r   E  s<        MMMNNN((((!!!!1111%%%%####8<<<<< /*9 4848( ( ( ( ( (4; ; ; ;
N N N N,$ $ $ $q q q q         8
 8
 8
 8
t   <   "D D D DT T T T0    X    X    X 
 
 
 X
	 	 	 	 C C C XC    X _a a a _a/ / / / /  /  /  /  /L 59	. . . . ..! ! ! !F8 8 8 8 8 8rk   r   c                      e Zd ZddZdS )SyncHttpxClientWrapperra   rb   c                R    	 |                                   d S # t          $ r Y d S w xY wrd   )closer  r   s    rh   __del__zSyncHttpxClientWrapper.__del__  s:    	JJLLLLL 	 	 	DD	s    
&&Nra   rb   ro   rp   rq   r  re   rk   rh   r  r    s(             rk   r  c            	      H    e Zd ZU ded<   dZded<   eeddddddddv fdZdwd Zdxd!Z	dyd$Z
dzd+Zd{d.Zd|d1Ze	 d}d~d;            Ze	 d}d<d=dd@            Ze	 d}d<ddAddD            Z	 d}d<ddAddFZddHZddKZddOZddUZei d<dVddY            Zei dZdd\            Zei dd]dd^            Zi d<dd_dd`Zedi dd<daddf            Zedi ddgddh            Zedi dddiddj            Zdi dd<ddkddlZdi dmddnZddi doddpZdi dmddqZdi drdsdduZ xZS )r   zhttpx.Clientr   Nztype[Stream[Any]] | Noner   r   r   r   r   r   http_clientr   r   r   r   r   r   r   r   r   !float | Timeout | None | NotGivenr   Transport | Noner   r   r   Limits | Noner  httpx.Client | Noner   r   r   r   r   ry   ra   rb   c                  |.t          j        dt          d           |t          d          nt          }|-t          j        dt          d           |t          d          |-t          j        dt          d           |t          d          t          |          s!|r|j        t          k    r|j        }nt          }|9t          |t          j                  st          d	t          |                     t                                          ||t!          t"          |          |||||
|	|

  
         |p't%          |t!          t"          |          |||d          | _        d S )NhThe `connection_pool_limits` argument is deprecated. The `http_client` argument should be passed instead   category
stacklevelNThe `http_client` argument is mutually exclusive with `connection_pool_limits`[The `transport` argument is deprecated. The `http_client` argument should be passed insteadAThe `http_client` argument is mutually exclusive with `transport`YThe `proxies` argument is deprecated. The `http_client` argument should be passed instead?The `http_client` argument is mutually exclusive with `proxies`zOInvalid `http_client` argument; Expected an instance of `httpx.Client` but got )
r   r   r   r   r   r   r   r   r   r   Tr   r   r   r   r   follow_redirects)warningswarnDeprecationWarningr   rA   r5   r   HTTPX_DEFAULT_TIMEOUTrB   r   r   Clientr8  r5  superri   r   r'   r  r   )rg   r   r   r   r   r   r   r   r  r   r   r   r   s               rh   ri   zSyncAPIClient.__init__  s     		$Mz+   
  s !qrrrs $F 	fMm+   
  f !deee 	dMk+   
  d !bccc   	*  *{26KK *%-) 	:k5<+P+P 	ubfgrbsbsuu   	'**#%)(C 	 	
 	
 	
 # 
&<'**!'
 '
 '
rk   c                    | j         j        S rd   r   r   r   s    rh   r   zSyncAPIClient.is_closed+      |%%rk   c                \    t          | d          r| j                                         dS dS )`Close the underlying HTTPX client.

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

rk   r   r:   c                    dS z#Hook for mutating the given optionsNre   rg   r   s     rh   _prepare_optionszSyncAPIClient._prepare_optionsC  s	    
 trk   r   r(  c                    dS a  This method is used as a callback for mutating the `Request` object
        after it has been constructed.
        This is useful for cases where you want to add certain headers based off of
        the request properties, e.g. `url`, `method` etc.
        Nre   rR  s     rh   _prepare_requestzSyncAPIClient._prepare_requestJ  s	     trk   rK  Type[ResponseT]r  r  rQ  Literal[True]
stream_clsType[_StreamT]rX   c                   d S rd   re   rg   rK  r   r  rQ  r  s         rh   r   zSyncAPIClient.requestU  	     	rk   FrQ  Literal[False]r)   c                   d S rd   re   )rg   rK  r   r  rQ  s        rh   r   zSyncAPIClient.requesta  	     	rk   rQ  r  Type[_StreamT] | NoneResponseT | _StreamTc                   d S rd   re   r  s         rh   r   zSyncAPIClient.requestl  r  rk   type[_StreamT] | Nonec               6    |                      |||||          S N)rK  r   rQ  r  r  _requestr  s         rh   r   zSyncAPIClient.requestx  s.     }}!/  
 
 	
rk   
int | Nonec          	        |                      ||          }|                     |           |                     ||          }|                     |          }|                     |           i }| j        
| j        |d<   	  | j        j        |fd|p|                     |          i|}	n# t          j
        $ rr}
t                              dd           |dk    r |                     |||||d           cY d }
~
S t                              d	           t          |          |
d }
~
wt          $ rr}
t                              d
d           |dk    r |                     |||||d           cY d }
~
S t                              d           t!          |          |
d }
~
ww xY wt                              d|j        |j        |	j        |	j                   	 |	                                 n# t          j        $ r}
t                              dd           |dk    r]|                     |
j                  rC|
j                                         |                     ||||
j        j        ||          cY d }
~
S |
j        j        s|
j                                         t                              d           |                     |
j                  d d }
~
ww xY w|                     |||	||          S NauthrQ  )r   z"Encountered httpx.TimeoutExceptionT)exc_infor   )rQ  r  rp  zRaising timeout errorzEncountered ExceptionzRaising connection errorzHTTP Request: %s %s "%i %s"z!Encountered httpx.HTTPStatusErrorr  zRe-raising status error)rK  r   r   rQ  r  )rO  r  r  r?  r  r`  r   sendrS  r   TimeoutExceptionrQ   r2  _retry_requestrM   r  rN   r  r^   r   reason_phraseraise_for_statusHTTPStatusErrorr  r   r  r  r   readr  _process_response)rg   rK  r   r  rQ  r  retriesr   r=  r   r[  s              rh   r  zSyncAPIClient._request  s    ..w@@g&&&))*;WEE%%g..g&&& " 	.!-F6N#	?(t|( S!B!B7!B!S!S  HH
 % 	< 	< 	<II:TIJJJ{ **!)%) +         II-...!'222; 	? 	? 	?II-I==={ **!)%) +         II0111$W5553>	?  			)7>7;H\^f^t	
 	
 	
	P%%''''$ 	P 	P 	PII9DIIII{ 	t11#,?? 	""$$$**L(!) +         <) $!!###II/00077EE4O)	P, %%! & 
 
 	
sb    +B, ,F';<D(7F'=+D((F'5<F"1F'7+F""F'G2 2KA9K:K AKKrp  httpx.Headers | Nonec               P   |dz
  }|dk    rt                               d           nt                               d|           |                     |||          }t                               d|j        |           t          j        |           |                     |||||          S Nr   z1 retry leftz%i retries leftz$Retrying request to %s in %f seconds)r   rK  r  rQ  r  )rQ   r2  r  r   r^   ry  sleepr  	rg   r   rK  r  rp  rQ  r  	remainingr   s	            rh   r  zSyncAPIClient._retry_request  s     &)	> 	4IIn%%%%II'333//	7DTUU7gNNN 	
7}}'!  
 
 	
rk   r   r   1type[Stream[Any]] | type[AsyncStream[Any]] | Nonec               :   |j         j                            t                    dk    r(t	          t
          t          || ||||                    S t          |          p|}t          j	        |          rt          |t                    rpt          |t                    st          dt           d|           t	          d|          }t	          t
           ||| t          |          |||                    S |t          j        k    rt	          t
          |          S t          || t	          d|          |||          }t#          |j         j                            t                              rt	          t
          |          S |                                S )Nr  rawr   rK  rQ  r  r   !API Response types must subclass ; Received type[BaseAPIResponse[Any]]rL  )r   r  r  rF   r   r)   rP   r   rV  rW  rX  r>   r=   r8  r@   r   Responsery   parse	rg   rK  r   r   rQ  r  originresponse_clsapi_responses	            rh   r  zSyncAPIClient._process_response  s    #''(;<<F 	! #!)#  
 
 
 G$$/?6"" 	z&/'J'J 	fk22 f dK d d\b d deee <gFFL 1,??!)#  
 
 
 en$ 	-	8,,,"*G44!
 
 
  (,,-@AABB 	1	<000!!###rk   r   Type[object]r   Type[SyncPageT]rR   c                V     d fd}|_                              |d          S )Nr   rR   ra   c                8    |                                 | S )N)r   r   r   )r   )r   r   r   rg   s    rh   r   z0SyncAPIClient._request_api_list.<locals>._parserD  s0    (( )   
 Krk   Fr  )r   rR   ra   rR   )r   r   )rg   r   r   r   r   s   `` ` rh   r   zSyncAPIClient._request_api_list>  sO    	 	 	 	 	 	 	 	 &||D'%|888rk   r   rQ  pathr1   c                   d S rd   re   rg   r  rK  r   rQ  s        rh   r  zSyncAPIClient.getP  r  rk   r   type[_StreamT]c                   d S rd   re   rg   r  rK  r   rQ  r  s         rh   r  zSyncAPIClient.get[  r  rk   r   r  c                   d S rd   re   r  s         rh   r  zSyncAPIClient.getg  r  rk   r   rQ  r  c          	         t          j        dd|d|}t          t          |                     ||||                    S Nr  )r  r^   r  re   )r:   	constructr   r)   r   rg   r  rK  r   rQ  r  optss          rh   r  zSyncAPIClient.gets  sH     #,OEtOOwOO It||GT&U_|``aaark   )r   r   r.  rQ  r   Body | Noner.  RequestFiles | Nonec                   d S rd   re   )rg   r  rK  r   r   r.  rQ  s          rh   postzSyncAPIClient.post  s	     	rk   )r   r   r.  c                   d S rd   re   rg   r  rK  r   r   r.  rQ  r  s           rh   r  zSyncAPIClient.post  	     	rk   )r   r   r.  r  c                   d S rd   re   r  s           rh   r  zSyncAPIClient.post  r  rk   )r   r   r.  rQ  r  c          	         t          j        dd||t          |          d|}t          t          |                     ||||                    S Nr  r  r^   r3  r.  r  re   )r:   r  r    r   r)   r   )	rg   r  rK  r   r   r.  rQ  r  r  s	            rh   r  zSyncAPIClient.post  s`     #, 
tt>%;P;P
 
T[
 
 It||GT&U_|``aaark   r   r   c               X    t          j        dd||d|}|                     ||          S Npatchr  r^   r3  re   r:   r  r   rg   r  rK  r   r   r  s         rh   r$  zSyncAPIClient.patch  s9     #,aGQUaaY`aa||GT***rk   r   r.  r   c          	     t    t          j        dd||t          |          d|}|                     ||          S Nputr   re   )r:   r  r    r   rg   r  rK  r   r.  r   r  s          rh   r+  zSyncAPIClient.put  sO     #, 
dd.:O:O
 
SZ
 
 ||GT***rk   c               X    t          j        dd||d|}|                     ||          S Ndeleter%  re   r&  r'  s         rh   r/  zSyncAPIClient.delete  s9     #,bH$RVbbZabb||GT***rk   r  r   r   r  r  c               Z    t          j        d|||d|}|                     |||          S Nr%  re   r:   r  r   rg   r  r   r   r   r   r  r  s           rh   get_api_listzSyncAPIClient.get_api_list  =     #,`FPT``X_``%%eT4888rk   )r   r   r   r   r   r   r   r  r   r  r   r   r   r  r  r  r   r   r   r   r   ry   ra   rb   r   r  rg   rU   ra   rU   r  r  r  r  r  r  ra   rb   r   r:   ra   rb   r   r(  ra   rb   rd   )rK  r  r   r:   r  r  rQ  r  r  r  ra   rX   )
rK  r  r   r:   r  r  rQ  r  ra   r)   )rK  r  r   r:   r  r  rQ  ry   r  r  ra   r  )rK  r  r   r:   r  r  rQ  ry   r  r  ra   r  )rK  r  r   r:   r  r  rQ  ry   r  r  ra   r  )r   r:   rK  r  r  r   rp  r  rQ  ry   r  r  ra   r  rK  r  r   r:   r   r   rQ  ry   r  r  ra   r)   )r   r  r   r  r   r:   ra   rR   
r  r   rK  r  r   r1   rQ  r  ra   r)   )r  r   rK  r  r   r1   rQ  r  r  r  ra   rX   )r  r   rK  r  r   r1   rQ  ry   r  r  ra   r  )r  r   rK  r  r   r  r   r1   r.  r  rQ  r  ra   r)   )r  r   rK  r  r   r  r   r1   r.  r  rQ  r  r  r  ra   rX   )r  r   rK  r  r   r  r   r1   r.  r  rQ  ry   r  r  ra   r  
r  r   rK  r  r   r  r   r1   ra   r)   r  r   rK  r  r   r  r.  r  r   r1   ra   r)   )r  r   r   r  r   r  r   r  r   r1   r  r   ra   rR   )ro   rp   rq   rs   r   rD   r"   ri   r   r  r  r  r  r  r   r   r  r  r  r   r  r  r$  r+  r/  r5  __classcell__r   s   @rh   r   r     sa        488888 /5>&*'+ $+/3748S
 S
 S
 S
 S
 S
 S
 S
j& & & &! ! ! !         	 	 	 	 
 ,0		 	 	 	 X	 
 ,0	 "'     X 
 ,0		 ,0	 	 	 	 	 X	 ,0	
 ,0
 
 
 
 
 
"[
 [
 [
 [
z
 
 
 
>7$ 7$ 7$ 7$r9 9 9 9$  #%!&     X  #%	 	 	 	 	 X	  #%,0	 	 	 	 	 X	  #%,0b b b b b b  !"$%)!&
 
 
 
 
 X
  !"$%)     X  !"$%),0     X$ !"$%),0b b b b b b* !"$	+ 	+ 	+ 	+ 	+ 	+  !%)"$+ + + + + +& !"$	+ 	+ 	+ 	+ 	+ 	+" !"$9 9 9 9 9 9 9 9 9 9rk   r   c                      e Zd ZddZdS )AsyncHttpxClientWrapperra   rb   c                    	 t          j                                        |                                            d S # t          $ r Y d S w xY wrd   )asyncioget_running_loopcreate_taskacloser  r   s    rh   r  zAsyncHttpxClientWrapper.__del__  sT    	$&&224;;==AAAAA 	 	 	DD	s   8< 
A
	A
Nr  r  re   rk   rh   rB  rB    s(             rk   rB  c            	      B    e Zd ZU ded<   dZded<   eeddddddddu fdZdvd Zdwd!Z	dxd$Z
dyd+Zdzd.Zd{d1Zed2dd3d|d;            Zedd<d}dA            ZedddBd~dE            Zd2dddFd~dGZddIZddLZddPZddVZei d2dWddZ            Zei d[dd\            Zei dd]dd^            Zi d2dd_dd`Zeddi d2daddf            Zeddi dgddh            Zeddi ddiddj            Zddi d2ddkddlZdi dmddnZddi dgddoZdi dmddpZdi dqdrddtZ xZS )r   zhttpx.AsyncClientr   Nztype[AsyncStream[Any]] | Noner   r  r   r   r   r   r   ry   r   r   r   r  r   AsyncTransport | Noner   r   r   r  r  httpx.AsyncClient | Noner   r   r   r   ra   rb   c                  |.t          j        dt          d           |	t          d          nt          }|-t          j        dt          d           |	t          d          |-t          j        dt          d           |	t          d          t          |          s!|	r|	j        t          k    r|	j        }nt          }|	9t          |	t          j                  st          d	t          |	                     t                                          |||t!          t"          |          |||||
|

  
         |	p't%          |t!          t"          |          |||d          | _        d S )Nr  r  r  r  r  r  r  r  zTInvalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got )
r   r   r   r   r   r   r   r   r   r   Tr  )r  r  r  r   rA   r5   r   r  rB   r   r   AsyncClientr8  r5  r  ri   r   r'   rB  r   )rg   r   r   r   r   r   r   r   r   r  r   r   r   s               rh   ri   zAsyncAPIClient.__init__  s     		$Mz+   
  s !qrrrs $F 	fMm+   
  f !deee 	dMk+   
  d !bccc   	*  *{26KK *%-) 	:k5CT+U+U 	zgklwgxgxzz   	'**#%)(C 	 	
 	
 	
 # 
&='**!'
 '
 '
rk   c                    | j         j        S rd   r  r   s    rh   r   zAsyncAPIClient.is_closedN  r  rk   c                H   K   | j                                          d{V  dS )r  N)r   rG  r   s    rh   r  zAsyncAPIClient.closeQ  s4      
 l!!###########rk   rg   rU   c                
   K   | S rd   re   r   s    rh   
__aenter__zAsyncAPIClient.__aenter__X  s      rk   r  r  r  r  r  r  c                >   K   |                                   d {V  d S rd   r  r  s       rh   	__aexit__zAsyncAPIClient.__aexit__[  s.       jjllrk   r   r:   c                
   K   dS r  re   r  s     rh   r  zAsyncAPIClient._prepare_optionsc  s      
 trk   r   r(  c                
   K   dS r  re   rR  s     rh   r  zAsyncAPIClient._prepare_requestj  s       trk   F)rQ  r  rK  r  rQ  r  r  r  r)   c               
   K   d S rd   re   )rg   rK  r   rQ  r  s        rh   r   zAsyncAPIClient.requestu         	rk   )r  r  r  type[_AsyncStreamT]rY   c               
   K   d S rd   re   rg   rK  r   rQ  r  r  s         rh   r   zAsyncAPIClient.request         	rk   )r  r  type[_AsyncStreamT] | NoneResponseT | _AsyncStreamTc               
   K   d S rd   re   rY  s         rh   r   zAsyncAPIClient.request  rZ  rk   )rQ  r  r  c               F   K   |                      |||||           d {V S r  r  rY  s         rh   r   zAsyncAPIClient.request  sP       ]]!/ # 
 
 
 
 
 
 
 
 	
rk   r  c          	     l  K   |                      ||          }|                     |           d {V  |                     ||          }|                     |          }|                     |           d {V  i }| j        
| j        |d<   	  | j        j        |fd|p|                     |          i| d {V }	n
# t          j
        $ rx}
t                              dd           |dk    r&|                     |||||d            d {V cY d }
~
S t                              d	           t          |          |
d }
~
wt          $ rx}
t                              d
d           |dk    r&|                     |||||d            d {V cY d }
~
S t                              d           t!          |          |
d }
~
ww xY wt                              d|j        |j        |	j        |	j                   	 |	                                 n# t          j        $ r}
t                              dd           |dk    ri|                     |
j                  rO|
j                                         d {V  |                     ||||
j        j        ||           d {V cY d }
~
S |
j        j        s|
j                                         d {V  t                              d           |                     |
j                  d d }
~
ww xY w|                     |||	||           d {V S r  )rO  r  r  r?  r  r`  r   r  rS  r   r  rQ   r2  r  rM   r  rN   r  r^   r   r  r  r  r  r   rG  r  r   areadr  r  )rg   rK  r   rQ  r  r  r  r   r=  r   r[  s              rh   r  zAsyncAPIClient._request  s      ..w@@##G,,,,,,,,,))*;WEE%%g..##G,,,,,,,,, " 	.!-F6N#	?.T\. S!B!B7!B!S!S        HH
 % 	< 	< 	<II:TIJJJ{ !00!)%) 1               II-...!'222; 	? 	? 	?II-I==={ !00!)%) 1               II0111$W5553>	?  			)7>7;H\^f^t	
 	
 	
	P%%''''$ 	P 	P 	PII9DIIII{ 	t11#,?? 	l))+++++++++!00L(!) 1               <) +l((*********II/00077EE4O)	P, ++! , 
 
 
 
 
 
 
 
 	
sd   1C GAEG+EGAGG+GG>H L#BL(L.A LLrp  r  c               l  K   |dz
  }|dk    rt                               d           nt                               d|           |                     |||          }t                               d|j        |           t          j        |           d {V  |                     |||||           d {V S r  )rQ   r2  r  r   r^   anyior  r  r  s	            rh   r  zAsyncAPIClient._retry_request  s       &)	> 	4IIn%%%%II'333//	7DTUU7gNNNk'"""""""""]]'! # 
 
 
 
 
 
 
 
 	
rk   r   r   r  c               @  K   |j         j                            t                    dk    r(t	          t
          t          || ||||                    S t          |          p|}t          j	        |          rt          |t                    rkt          |t                    st          dt           d|           t	          d|          }t	          d ||| t          |          |||                    S |t          j        k    rt	          t
          |          S t          || t	          d|          |||          }t#          |j         j                            t                              rt	          t
          |          S |                                 d {V S )Nr  r  r  r  r  r)   rL  )r   r  r  rF   r   r)   rP   r   rV  rW  rX  r>   r?   r8  r@   r   r  ry   r  r  s	            rh   r  z AsyncAPIClient._process_response#  s      #''(;<<F 	! #!)#  
 
 
 G$$/?6"" 	z&/'J'J 	f&677 k iDT i iag i ijjj <gFFL 1,??!)#  
 
 
 en$ 	-	8,,,'*G44!
 
 
  (,,-@AABB 	1	<000!'')))))))))rk   r   rw   r   r   AsyncPaginator[_T, AsyncPageT]c                (    t          | |||          S )N)r   r   r   r   )r   )rg   r   r   r   s       rh   r   z AsyncAPIClient._request_api_list\  s     T7TQVWWWWrk   r  r  r1   c               
   K   d S rd   re   r	  s        rh   r  zAsyncAPIClient.getd  rV  rk   r
  c               
   K   d S rd   re   r  s         rh   r  zAsyncAPIClient.geto  rZ  rk   r  c               
   K   d S rd   re   r  s         rh   r  zAsyncAPIClient.get{  rZ  rk   r  c               l   K   t          j        dd|d|}|                     ||||           d {V S r  r&  r  s          rh   r  zAsyncAPIClient.get  sQ       #,OEtOOwOO\\'4:\VVVVVVVVVrk   )r   r.  r   rQ  r   r  r.  r  c               
   K   d S rd   re   )rg   r  rK  r   r.  r   rQ  s          rh   r  zAsyncAPIClient.post  s       	rk   r(  c               
   K   d S rd   re   rg   r  rK  r   r.  r   rQ  r  s           rh   r  zAsyncAPIClient.post         	rk   )r   r.  r   r  c               
   K   d S rd   re   rl  s           rh   r  zAsyncAPIClient.post  rm  rk   )r   r.  r   rQ  r  c          	        K   t          j        dd||t          |           d {V d|}|                     ||||           d {V S r  r:   r  r!   r   )	rg   r  rK  r   r.  r   rQ  r  r  s	            rh   r  zAsyncAPIClient.post  s       #, 
ttAUV[A\A\;\;\;\;\;\;\
 
`g
 
 \\'4:\VVVVVVVVVrk   r!  c               h   K   t          j        dd||d|}|                     ||           d {V S r#  r&  r'  s         rh   r$  zAsyncAPIClient.patch  sO       #,aGQUaaY`aa\\'4000000000rk   c          	        K   t          j        dd||t          |           d {V d|}|                     ||           d {V S r*  rp  r,  s          rh   r+  zAsyncAPIClient.put  sy       #, 
dd@TUZ@[@[:[:[:[:[:[:[
 
_f
 
 \\'4000000000rk   c               h   K   t          j        dd||d|}|                     ||           d {V S r.  r&  r'  s         rh   r/  zAsyncAPIClient.delete  sO       #,bH$RVbbZabb\\'4000000000rk   r  r0  r  c               Z    t          j        d|||d|}|                     |||          S r2  r3  r4  s           rh   r5  zAsyncAPIClient.get_api_list  r6  rk   )r   r   r   r   r   ry   r   r   r   r  r   rI  r   r   r   r  r  rJ  r   r   r   r   ra   rb   r   r  r7  r8  r9  r:  )
rK  r  r   r:   rQ  r  r  r  ra   r)   )rK  r  r   r:   rQ  r  r  rW  r  r  ra   rY   )rK  r  r   r:   rQ  ry   r  r[  r  r  ra   r\  )rK  r  r   r:   rQ  ry   r  r[  r  r  ra   r\  )r   r:   rK  r  r  r   rp  r  rQ  ry   r  r[  ra   r\  r;  )r   rw   r   r   r   r:   ra   rd  r<  )r  r   rK  r  r   r1   rQ  r  r  rW  ra   rY   )r  r   rK  r  r   r1   rQ  ry   r  r[  ra   r\  )r  r   rK  r  r   r  r.  r  r   r1   rQ  r  ra   r)   )r  r   rK  r  r   r  r.  r  r   r1   rQ  r  r  rW  ra   rY   )r  r   rK  r  r   r  r.  r  r   r1   rQ  ry   r  r[  ra   r\  r=  r>  )r  r   r   rw   r   r   r   r  r   r1   r  r   ra   rd  )ro   rp   rq   rs   r   rD   r"   ri   r   r  rP  rR  r  r  r   r   r  r  r  r   r  r  r$  r+  r/  r5  r?  r@  s   @rh   r   r     sR        9===== /5>+/'+ $043748S
 S
 S
 S
 S
 S
 S
 S
j& & & &$ $ $ $         	 	 	 	  "'+/     X  ,0	 	 	 	 	 X	  26+/	 	 	 	 	 X	  15+/
 
 
 
 
 
"[
 [
 [
 [
z
 
 
 
:7* 7* 7* 7*rX X X X  #%!&     X  #%	 	 	 	 	 X	  #%15	 	 	 	 	 X	  #%15
W 
W 
W 
W 
W 
W  !%)"$!&
 
 
 
 
 X
  !%)"$     X  !%)"$15     X$ !%)"$15W W W W W W* !"$	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 9 9 9rk   r   )queryextra_headersextra_query
extra_bodyr  r   r   ru  Query | Nonerv  Headers | Nonerw  rx  r  r  r   r   'float | httpx.Timeout | None | NotGivenr   PostParser | NotGivenra   r1   c                   i }|||d<   |t          t          |          |d<   | | |d<   |i |                    di           ||d<   t          |t                    s||d<   |||d<   t          |          r||d<   |S )zECreate a dict of type RequestOptions without keys of NotGiven values.Nr  r4  r`   r   r  r   )r   r+   r  r   r(   r5   )ru  rv  rw  rx  r  r   r   r   s           rh   make_request_optionsr~    s     !G +*	 = $Z < < "! IHw{{8R88HKHgx(( %$	 5%4!" -!,Nrk   c                  .    e Zd ZddZed	d            ZdS )
OtherPlatformnamer   ra   rb   c                    || _         d S rd   r  rg   r  s     rh   ri   zOtherPlatform.__init__$      			rk   c                    d| j          S )NzOther:r  r   s    rh   __str__zOtherPlatform.__str__'      #	###rk   Nr  r   ra   rb   r  ro   rp   rq   ri   r   r  re   rk   rh   r  r  #  H            $ $ $ X$ $ $rk   r  )MacOSLinuxWindowsFreeBSDOpenBSDiOSAndroidUnknownPlatformc                 x   	 t          j                                                    } t          j                                                     }n# t          $ r Y dS w xY wd|v sd|v rdS | dk    rdS | dk    rdS d	|v rd
S | dk    r%t	          j                    }|dk    rdS |dk    rdS dS |rt          |          S dS )Nr  iphoneipadr  darwinr  windowsr  androidr  linuxfreebsdr  openbsdr  r  )platformsystemr  r  distroidr  )r  platform_name	distro_ids      rh   get_platformr  ;  s   ""((** )++1133   yy =  Fm$; 
 u w yM!  y 	IKK		! 	9	! 	9w ,]+++9s   A
A 
AA)maxsizer   r   rn  c                    d| t          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   s    rh   rh  rh  e  sL     %'.lnn-- 0 2 233133'9';';  rk   c                  .    e Zd ZddZed	d            ZdS )
	OtherArchr  r   ra   rb   c                    || _         d S rd   r  r  s     rh   ri   zOtherArch.__init__r  r  rk   c                    d| j          S )Nzother:r  r   s    rh   r  zOtherArch.__str__u  r  rk   Nr  r  r  re   rk   rh   r  r  q  r  rk   r  )x32x64armarm64unknownc                 L    	 t          j                    S # t          $ r Y dS w xY wNr  )r  python_implementationr  re   rk   rh   r  r  }  s8    -///   yy    
##c                 L    	 t          j                    S # t          $ r Y dS w xY wr  )r  python_versionr  re   rk   rh   r  r    s8    &(((   yyr  Archc                     	 t          j                    \  } }t          j                                                    }n# t          $ r Y dS w xY w|dv rdS |dk    rdS |dk    rdS | dk    rdS |rt          |          S dS )	Nr  )r  aarch64r  r  x86_64r  32bitr  )r  architecturemachiner  r  r  )python_bitness_r  s      rh   r  r    s    $133"$$**,,   yy && w % u( u   u "!!!9s   ;> 
AAobj1Mapping[_T_co, Union[_T, Omit]]obj2Dict[_T_co, _T]c                J    i | |}d |                                 D             S )zMerge two mappings of the same type, removing any values that are instances of `Omit`.

    In cases with duplicate keys the second mapping takes precedence.
    c                D    i | ]\  }}t          |t                    ||S re   )r   r$   ).0rH  rI  s      rh   
<dictcomp>z#_merge_mappings.<locals>.<dictcomp>  s.    WWW:3z%QU?V?VWCWWWrk   )r}   )r  r  mergeds      rh   r  r    s/     FWWWWWWrk   )ru  ry  rv  rz  rw  ry  rx  r  r  r   r   r{  r   r|  ra   r1   )ra   r  )r   r   ra   rn  r  )ra   r  )r  r  r  r  ra   r  )
__future__r   r  ry  r  ru  rD  rV  r0  r  r  email.utilstypesr   r   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   	functoolsr   typing_extensionsr   r   r   rb  r   r  r   r   r   r    r   _qsr   _filesr    r!   _typesr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   _utilsr3   r4   r5   r6   _compatr7   r8   _modelsr9   r:   r;   r<   	_responser=   r>   r?   r@   
_constantsrA   rB   rC   rD   rE   rF   rG   
_streamingrH   rI   rJ   rK   rL   rM   rN   rO   _legacy_responserP   	getLoggerro   rQ   rs   rR   rT   rU   rV   rX   rY   httpx._configrZ   r  ImportErrorr\   ru   r   r   r   r  rL  r   r   r   r  r   rB  r   r~  r  r  r  rh  r  r  r  r  r  r  re   rk   rh   <module>r     s	   " " " " " " "                                                          "        ; ; ; ; ; ; ; ; ; ;                                     8 8 8 8 8 8 8 8                                     & ; : : : : : : : : : : : + + + + + + + + U U U U U U U U U U U U                             I H H H H H H H H H H H            0 / / / / /'g'11 1 1 1 1 GK':;;;	W\)=>>>
 WT]]4(((7:VC[111{3/?@@@ -MMMMMMM-QQQQQQQ - - - '-
               F.6 .6 .6 .6 .6|WR[ .6 .6 .6b+a +a +a +a +a8B< +a +a +a\$ $ $ $ $WR^, $ $ $N#g #g #g #g #gHRL'"+ #g #g #gL uU\5CT5T/UVVV'+5kRUFV9V3WXXXB8 B8 B8 B8 B878 B8 B8 B8J    U\   W9 W9 W9 W9 W9Ju|VC[89 W9 W9 W9t    e/   F9 F9 F9 F9 F9Z 1;s3C CD F9 F9 F9V $( $""&7@)2" " " " " "J$ $ $ $ $ $ $ $ 		
' ' ' 'T 4   $ $ $ $ $ $ $ $ Y GHHI         6	X 	X 	X 	X 	X 	Xs   F   F32F3