
    ~i3                    4   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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 d dlmZ d dlZd dlZd dlZd dlmZ d dlmZmZm Z  d d	l!m"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/ d
dl$m0Z0m1Z1m2Z2m3Z3 d
dl4m5Z5m6Z6 d
dl7m8Z8m9Z9 d
dl:m;Z;m<Z< d
dl=m>Z>m?Z? d
dl@mAZAmBZBmCZCmDZD d
dlEmFZFmGZGmHZHmIZImJZJmKZKmLZL d
dlMmNZNmOZOmPZPmQZQmRZR d
dlSmTZTmUZUmVZV  edd          ZW edd          ZX ed          ZY edd          ZZ ed eCe                   Z[ ed!eDe                   Z\ ej]        e^          Z_d"e`d#<    G d$ d%eja                  Zbe
reja        ZcnebZc G d& d'ec          ZddddddeHd(dRd5Ze ed6eeja        ejf        f                   Zg G d7 d8eeg                   Zh G d9 d:eh          Zi G d; d<ejf                  Zje
rejf        ZknejZk G d= d>ek          Zl G d? d@eh          Zm G dA dB          Zn G dC dDe9eeY                   Zo G dE dFeoeY         eeY                   Zp G dG dHeeYeXf                   Zq G dI dJeoeY         eeY                   Zr G dK dLeesdf                   ZtdSdQZudS )T    )annotationsN)random)TracebackType)TYPE_CHECKINGAnyDictTypeUnionGenericMappingTypeVarIterableIteratorOptional	GeneratorAsyncIteratorcast)override)PrivateAttr)URLTimeoutLimits)RequestFiles   )_exceptionsQuerystring)DEFAULT_MAX_RETRIESDEFAULT_TIMEOUTINITIAL_RETRY_DELAYMAX_RETRY_DELAYRAW_RESPONSE_HEADERDEFAULT_CONNECTION_LIMITSCLIENT_REQUEST_HEADERVERSION)ArkAPITimeoutErrorArkAPIConnectionErrorArkAPIStatusErrorArkAPIResponseValidationError)to_httpx_filesasync_to_httpx_files)construct_typeGenericModel)RequestOptionsExtraRequestOptions)ArkAPIResponseArkAsyncAPIResponse)
SSEDecoderSSEBytesDecoderStreamAsyncStream)	ResponseTNotGiven	NOT_GIVEN
PostParserBodyQueryHttpxRequestFiles)_gen_request_idis_given
is_mappingis_dictis_list)
model_copyPYDANTIC_V2
model_dump	SyncPageTzBaseSyncPage[Any])bound
AsyncPageTzBaseAsyncPage[Any]_T_T_coT)	covariant_StreamT_AsyncStreamTzlogging.Loggerlogc                        e Zd Zd fdZ xZS )_DefaultHttpxClientkwargsr   returnNonec                    |                     dt                     |                     dt                     |                     dd            t                      j        di | d S Ntimeoutlimitsfollow_redirectsT 
setdefaultr   r#   super__init__selfrP   	__class__s     m/root/.openclaw/workspace/.venvs/ark-sdk/lib/python3.11/site-packages/volcenginesdkarkruntime/_base_client.pyr\   z_DefaultHttpxClient.__init__^   j    )_555($=>>>,d333""6"""""    rP   r   rQ   rR   __name__
__module____qualname__r\   __classcell__r_   s   @r`   rO   rO   ]   =        # # # # # # # # # #rb   rO   c                      e Zd ZddZdS )SyncHttpxClientWrapperrQ   rR   c                R    	 |                                   d S # t          $ r Y d S w xY wN)close	Exceptionr^   s    r`   __del__zSyncHttpxClientWrapper.__del__r   s:    	JJLLLLL 	 	 	DD	s    
&&NrQ   rR   re   rf   rg   rr   rX   rb   r`   rl   rl   q   s(             rb   rl   )queryextra_headersextra_query
extra_bodyrU   post_parserru   Dict[str, Any] | Nonerv   Dict[str, str] | Nonerw   rx   rU   float | httpx.Timeout | Nonery   PostParser | NotGivenrQ   r/   c                    i }|||d<   |||d<   | | |d<   |i |                     di           ||d<   |r||d<   t          |          r||d<   |S )Nheadersrx   paramsrU   ry   )getr>   )ru   rv   rw   rx   rU   ry   optionss          r`   make_request_optionsr   y   s     $&G *	 *!Hw{{8R88HKH %$	 -!,Nrb   _HttpxClientTc                     e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   eedddddKdZedLd            ZedMd            Z	edNd            Z
dOd ZdPd"ZdQd&ZdRd(ZdSd,Zd-d.dTd0ZdUd4Z	 dVdWd9ZdXd<ZdYdBZdZdCZd[dDZd\dHZd]dJZdS )^
BaseClientr   _clientr   	_base_urlintmax_retrieszUnion[float, Timeout, None]rU   zUnion[httpx.Limits, None]_limitsN)r   rU   rV   custom_headerscustom_querybase_url	str | URLfloat | Timeout | NonerV   Limits | Noner   r{   r   rz   rQ   rR   c                   |                      t          |                    | _        || _        || _        || _        |pi | _        |pi | _        |t          d          d S )Nzmax_retries cannot be None. If you want to disable retries, pass `0`; if you want unlimited retries, pass `math.inf` or a very high number`)	_enforce_trailing_slashr   r   r   rU   r   _custom_headers_custom_query	TypeError)r^   r   r   rU   rV   r   r   s          r`   r\   zBaseClient.__init__   su     55c(mmDD&-3)/R ^   rb   r   c                    t                      S rn   r   rq   s    r`   qszBaseClient.qs   s    }}rb   dict[str, str]c                    i S rn   rX   rq   s    r`   auth_headerszBaseClient.auth_headers   s    	rb   strc                    dt           z   S )Nzvolc-sdk-python/)r%   rq   s    r`   
user_agentzBaseClient.user_agent   s    !G++rb   Dict[str, str]c           	     ^    ddddd| j         t          t                      i| j        | j        S )NAcceptzapplication/jsonContent-Typez
User-Agent)r   r$   r=   r   r   rq   s    r`   default_headerszBaseClient.default_headers   sD    (.$/!?#4#4	

 
 "
 	
rb   SSEDecoder | SSEBytesDecoderc                    t                      S rn   )r2   rq   s    r`   _make_sse_decoderzBaseClient._make_sse_decoder   s    ||rb   r   r.   httpx.Headersc                p    |j         pi }i |                                 |}t          j        |          }|S rn   )r   r   httpxHeaders)r^   r   r   headers_dictr   s        r`   _build_headerszBaseClient._build_headers   s=     .BC$..00CNC---rb   urlc                    t          |          }|j        rB| j        j        |j                            d          z   }| j                            |          S |S N   /)raw_path)r   is_relative_urlr   r   lstrip	copy_with)r^   r   	merge_urlmerge_raw_paths       r`   _prepare_urlzBaseClient._prepare_url   sY    HH	$ 	E!^4y7I7P7PQU7V7VVN>++^+DDDrb   requesthttpx.Requestboolc                H    |j                             t                    dk    S )Nstream)r   r   r"   )r^   r   s     r`   _should_stream_response_bodyz'BaseClient._should_stream_response_body   s    ""#6778CCrb   r   )retries_takenr   c                  t                               t          j                  r*t                               dt          |d                     i }|j        }|j        K||j        }nAt          |t                    ri ||j        }n t          dt          |           d          |                     |          }|j        }|                    d          }|j        }||                    d          rd|vr|                    d           |rGt%          |          s t'          d	t          |           d
          |                     |          |d<   |s!t+          t,          t/                                }|                     |j                  }	d|	j        v r d|	j                            dd          i|d<   |j                                        dk    }
|
r7t          |t<                    r||d<   nt?          |          r|nd |d<   ||d<   n,|                    dd            |                    dd             | j         j!        d|t          |j"        tF                    r| j"        n|j"        |j        |	|r?| j$        %                    t+          tL          tN          tP          f         |                    nd d|S )NzRequest options: %sT)exclude_unsetzUnexpected JSON data type, z , cannot merge with `extra_body`r   zmultipart/form-databoundaryzGExpected query input to be a dictionary for multipart requests but got z	 instead.data_sni_hostname-
extensionsr   contentjsonfiles)r   rU   methodr   r   rX   ))rM   isEnabledForloggingDEBUGdebugrD   bodyrx   
isinstancer   RuntimeErrortyper   r   r   r   
startswithpopr@   r   _serialize_multipartformr   r<   ForceMultipartDictr   r   hostreplacer   lowerbytesr>   r   build_requestrU   r7   r   	stringifyr   r   r   )r^   r   r   rP   r   r   r   content_typer   prepared_urlis_body_alloweds              r`   _build_requestzBaseClient._build_request   s    GM** 	VII+Zt-T-T-TUUU!#|)|)D$'' 5$5'"45"^$t**^^^   %%g..{{>22 #(?(?@U(V(V#-- N+++  Et}} #wbfgkblblwww   "&!>!>t!D!Dv  F.0B0D0DEE((55,###$2L4E4M4McSV4W4W#XF< !...00E9 	%$&& B$(y!!)1$!ATv#F7OOKK---JJvt$$$ *t|) 
'/844!DLL> 47$$T'#s(*;V%D%DEEE
 
 
 
 	
rb   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   rA   append)r^   r   items
serializedkeyvalueexistings          r`   r   z#BaseClient._serialize_multipartform?  s     '' #	 ( 
 
 )+
 	4 	4JC!~~c**H "'
3 x   4&&&&#+U"3
3rb   remaining_retriesresponse_headersOptional[httpx.Headers]floatc                    |j         r|j         n| j         }||z
  }t          t          t          d|          z  t                    }ddt                      z  z
  }||z  }|dk    r|ndS )Ng       @r   g      ?r   )r   minr    powr!   r   )	r^   r   r   r   r   
nb_retriessleep_secondsjitterrU   s	            r`   _calculate_retry_timeoutz#BaseClient._calculate_retry_timeout_  sx     .5-@Vg))dFV #44
 /#c:2F2FFXX TFHH_$&(!Q,,wwA-rb   responsehttpx.Responsec                ^   |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 %i      zNot retrying)r   r   rM   r   status_code)r^   r   should_retry_headers      r`   _should_retryzBaseClient._should_retryq  s-   &.223CDD &((IILMMM4'))IIQRRR5 3&&II68LMMM4 3&&II68LMMM4 3&&II68LMMM4 3&&II68LMMM4		.!!!urb   err_msgr   object
request_idr(   c                  t          |t                    r|                    d|          n|}|j        dk    rt	          j        ||||          S |j        dk    rt	          j        ||||          S |j        dk    rt	          j        ||||          S |j        dk    rt	          j        ||||          S |j        dk    rt	          j	        ||||          S |j        dk    rt	          j
        ||||          S |j        d	k    rt	          j        ||||          S |j        d
k    rt	          j        ||||          S t          ||||          S )Nerrori  r   r   r  i  i  i  r   i  r   r   )r   r   r   r   r   ArkBadRequestErrorArkAuthenticationErrorArkPermissionDeniedErrorArkNotFoundErrorArkConflictErrorArkUnprocessableEntityErrorArkRateLimitErrorArkInternalServerErrorr(   )r^   r  r   r   r  r   s         r`   _make_status_errorzBaseClient._make_status_error  s    +5T4*@*@Jtxx&&&d3&&1(*    3&&5(*    3&&7(*    3&&/(*    3&&/(*    3&&:(*    3&&0(*    3&&5(*    !hTj
 
 
 	
rb   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 - )r   r   r  )		is_closedis_stream_consumedr   textstripr   loadsrp   r  )r^   r   r  r   r  err_texts         r`    _make_status_error_from_responsez+BaseClient._make_status_error_from_response  s      	Lh&A 	LD;X%9;;GG}**,,HDLz(++H)=HH$HH L L L"K&KX5I&K&KL &&$j ' 
 
 	
s   !A A32A3c                v    |j                             d          r|S |                    |j         dz             S r   )r   endswithr   r^   r   s     r`   r   z"BaseClient._enforce_trailing_slash  s:    <  && 	J}}clT&9}:::rb   cast_totype[ResponseT]r6   c               R   |r |j                             t          d          nd }|t          t          d           S |t
          u rt          t          |          S 	 t          t          t          ||                    S # t          j        $ r}t          |||          |d }~ww xY w)N )type_r   r  )
r   r   r$   r   r6   r  r,   pydanticValidationErrorr)   )r^   r   r  r   r  errs         r`   _process_response_dataz!BaseClient._process_response_data  s     @HQH  !6;;;T 	 <	4(((f	4(((		>t#L#L#LMMM' 	 	 	/!  	s   #A? ?B&B!!B&Optional[int]c                >    ||n|                     | j                  S rn   )get_max_retriesr   )r^   r   r   s      r`   _remaining_retrieszBaseClient._remaining_retries  s+     !, (()9::	
rb   )r   r   r   r   rU   r   rV   r   r   r{   r   rz   rQ   rR   )rQ   r   )rQ   r   rQ   r   )rQ   r   )rQ   r   )r   r.   rQ   r   )r   r   rQ   r   )r   r   rQ   r   )r   r.   r   r   rQ   r   )r   r   rQ   r   rn   )r   r   r   r.   r   r   rQ   r   )r   r   rQ   r   )
r  r   r   r  r   r   r  r   rQ   r(   )r   r   r  r   rQ   r(   )r   r   rQ   r   )r   r  r  r  r   r   rQ   r6   )r   r&  r   r.   rQ   r   )re   rf   rg   __annotations__r   r   r\   propertyr   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r%  r)  rX   rb   r`   r   r      s        NNN((((&&&& /*9 $04.2     ,    X    X , , , X,
 
 
 
         D D D D 	Y
 Y
 Y
 Y
 Y
 Y
v   H 59	. . . . .$! ! ! !F-
 -
 -
 -
^
 
 
 
(; ; ; ;
   .	
 	
 	
 	
 	
 	
rb   r   c                       e Zd ZU ded<   eedddddS fdZdTdZdUd"ZdVd'Z	di dd(dd)dWd1Z
di d(dd2dXd5Zdi d6dYd7Zdi dd(dd)dWd8Zdi d9d:dZdBZd[dCZ	 d\d(ddDd]dFZd^dGZd_dHZd`dKZdadRZ xZS )bSyncAPIClientzhttpx.Clientr   Nr   rU   http_clientr   r   r   r   r   r   rU   !float | Timeout | None | NotGivenr0  httpx.Client | Noner   r{   r   Dict[str, object] | NonerQ   rR   c                  |9t          |t          j                  st          dt	          |                     t                                          |t          t          |          |||           |pCt          | 
                    t          |                    t          t          |                    | _        d S NzOInvalid `http_client` argument; Expected an instance of `httpx.Client` but got )r   rU   r   r   r   )r   rU   )r   r   Clientr   r   r[   r\   r   r   rl   r   r   r   r^   r   r   rU   r0  r   r   r_   s          r`   r\   zSyncAPIClient.__init__  s     ":k5<+P+P"ubfgrbsbsuu   	'**#%) 	 	
 	
 	
 # 
&<11#h--@@'**'
 '
 '
rb   r  Type[ResponseT]r   r.   r   
int | Noner   r   
stream_clstype[_StreamT] | NoneResponseT | _StreamTc          	     p   |                      ||          }|                     |          }|j                            t          d          }	 | j                            ||p|                     |                    }	n# t          j	        $ rW}
|dk    r | 
                    |||||d           cY d }
~
S t                              d           t          ||          |
d }
~
wt          $ rs}
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 Nr   )r   r   r   )r   r:  r   zRaising timeout error)r   r  zEncountered ExceptionT)exc_infozRaising connection errorzHTTP Request: %s %s "%i %s"z!Encountered httpx.HTTPStatusErrorr   r:  zRe-raising status error)r  )r  r   r   r:  r   )r)  r   r   r   r$   r   sendr   r   TimeoutException_retry_requestrM   r   r&   rp   r'   r   r   r   reason_phraseraise_for_statusHTTPStatusErrorr  r   ro   r  readr  _process_responser^   r  r   r   r   r:  retriesr   req_idr   r$  s              r`   _requestzSyncAPIClient._request  sa    ))*;WEE%%g..$$%:B?? 	U|((S!B!B7!B!S!S )  HH % 	R 	R 	R{{**!)%) +         II-...$WHHHcQ 	U 	U 	UII-I==={{**!)%) +         II0111'FKKKQTT	U  			)NK "	
 	
 	
	%%''''$ 	 	 	II9DIIII{{t11#,??{""$$$**L(!) +         <) $!!###II/00077 8  )	0 %%! & 
 
 	
sb   2B   E! C!/E!5,C!!E!.<E*E!0,EE!F, ,J;A9J4J:AJJr   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   r  r   r   r:  )rM   infor   r   timesleeprM  	r^   r   r  r   r   r   r:  	remainingrU   s	            r`   rD  zSyncAPIClient._retry_requestv  s     &)	>>HH^$$$$HH&	222//	7DTUU7gNNN 	
7}}'!  
 
 	
rb   r   r   1type[Stream[Any]] | type[AsyncStream[Any]] | Noner6   c               F   |t           j        k    rt          t          |          S t	          || t          d|          |||          }t          |j        j                            t                              rt          t          |          S |
                                S Nr  )rawclientr  r   r:  r   )r   Responser   r6   r0   r   r   r   r   r"   parser^   r  r   r   r   r:  api_responses          r`   rI  zSyncAPIClient._process_response  s     en$$	8,,,%*G44!
 
 
  (,,-@AABB 	1	<000!!###rb   Fr   r   r   r   r:  pathr   r   Dict | Noner/   r   RequestFiles | Nonec          	         t          j        dd|t          |          |d|}t          t          |                     ||||                    S )Npost)r   r   r   r   rA  rX   )r.   	constructr*   r   r6   r   	r^   r`  r  r   r   r   r   r:  optss	            r`   rd  zSyncAPIClient.post  sk     ' 
 ''	
 

 
 
 t||GT&Z|XX
 
 	
rb   r   r   r   r:  r   list[tuple[str, str]] | Nonec          	         t          j        dd||d|}t          t          |                     ||||                    S Nr   r   r   r   rA  rX   r.   re  r   r6   r   r^   r`  r  r   r   r   r:  rg  s           r`   r   zSyncAPIClient.get  s`     ' 

 
 	
 
 t||GT&Z|XX
 
 	
rb   r   r   c               ~    t          j        dd||d|}t          t          |                     ||                    S Ndeleterl  rX   rm  r^   r`  r  r   r   rg  s         r`   rr  zSyncAPIClient.delete  sS     ' 

 
 	
 
 It||GT::;;;rb   c          
         t          j        dd|||d|}t          t          |                     ||d||                    S Nrd  r   r   r   r   r   )r   r   r:  rX   rm  rf  s	            r`   post_without_retryz SyncAPIClient.post_without_retry  sn     ' 
	
 

 
 
 LL6j   
 
 	
rb   r   r   r   r   modelType[object]pageType[SyncPageT]Body | Noner   rG   c               Z    t          j        d|||d|}|                     |||          S N)r   r   	json_datarX   r.   re  _request_api_listr^   r`  ry  r{  r   r   r   rg  s           r`   get_api_listzSyncAPIClient.get_api_list  sI     ' 
tt
 
7>
 
 %%eT4888rb   c                V     d fd}|_                              |d          S )	NresprG   rQ   rE   c                8    |                                 | S N)rZ  ry  r   _set_private_attributesr  ry  r   r^   s    r`   _parserz0SyncAPIClient._request_api_list.<locals>._parser  0    (( )   
 Krb   Fr?  r  rG   rQ   rE   ry   r   r^   ry  r{  r   r  s   `` ` r`   r  zSyncAPIClient._request_api_list  sO    	 	 	 	 	 	 	 	 &||D'%|888rb   rA  r&  c               6    |                      |||||          S N)r  r   r   r:  r   rM  r^   r  r   r   r   r:  s         r`   r   zSyncAPIClient.request%  s.     }}!/  
 
 	
rb   c                    | j         j        S rn   r   r  rq   s    r`   r  zSyncAPIClient.is_closed6      |%%rb   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   ro   rq   s    r`   ro   zSyncAPIClient.close9  s:     4## 	!L     	! 	!rb   r^   rH   c                    | S rn   rX   rq   s    r`   	__enter__zSyncAPIClient.__enter__C  s    rb   exc_typetype[BaseException] | NoneexcBaseException | Noneexc_tbTracebackType | Nonec                .    |                                   d S rn   ro   r^   r  r  r  s       r`   __exit__zSyncAPIClient.__exit__F  s     	

rb   )r   r   r   r   rU   r1  r0  r2  r   r{   r   r3  rQ   rR   )r  r8  r   r.   r   r9  r   r   r:  r;  rQ   r<  )r   r.   r  r8  r   r   r   rN  r   r   r:  r;  rQ   r<  r  r8  r   r.   r   r   r   r   r:  rV  rQ   r6   )r`  r   r  r8  r   ra  r   r/   r   rb  r   r   r:  r;  rQ   r<  )r`  r   r  r8  r   ri  r   r/   r   r   r:  r;  rQ   r<  
r`  r   r  r8  r   ri  r   r/   rQ   r6   )r`  r   ry  rz  r{  r|  r   r}  r   r/   r   r   rQ   rG   )ry  rz  r{  r|  r   r.   rQ   rG   rn   r  r8  r   r.   r   r&  r   r   r:  r;  rQ   r<  rQ   r   rs   r^   rH   rQ   rH   r  r  r  r  r  r  rQ   rR   )re   rf   rg   r+  r   r8   r\   rM  rD  rI  rd  r   rr  rw  r  r  r   r  ro   r  r  rh   ri   s   @r`   r.  r.    s         /5>+/0415
 
 
 
 
 
 
 
8V
 V
 V
 V
p
 
 
 
>$ $ $ $< !')%),0
 
 
 
 
 
8 04'),0
 
 
 
 
 
4 04')< < < < < <, !')%),0
 
 
 
 
 
@ !')9 9 9 9 9 99 9 9 9* ,0	
 ,0
 
 
 
 
 
"& & & &! ! ! !          rb   r.  c                        e Zd Zd fdZ xZS )_DefaultAsyncHttpxClientrP   r   rQ   rR   c                    |                     dt                     |                     dt                     |                     dd            t                      j        di | d S rT   rY   r]   s     r`   r\   z!_DefaultAsyncHttpxClient.__init__P  ra   rb   rc   rd   ri   s   @r`   r  r  O  rj   rb   r  c                      e Zd ZddZdS )AsyncHttpxClientWrapperrQ   rR   c                    	 t          j                                        |                                            d S # t          $ r Y d S w xY wrn   )asyncioget_running_loopcreate_taskacloserp   rq   s    r`   rr   zAsyncHttpxClientWrapper.__del__d  sT    	$&&224;;==AAAAA 	 	 	DD	s   8< 
A
	A
Nrs   rt   rX   rb   r`   r  r  c  s(             rb   r  c                       e Zd ZU ded<   eedddddU fdZdi dddddVd%Zdi ddd&dWd)Zdi d*dXd,Z	di dddddVd-Z
di d.d/dYd7ZdZd9Z	 d[ddd:d\d?Zd]dAZd^dDZd_dHZd`dIZdadJZdbdMZdcdTZ xZS )dAsyncAPIClientzhttpx.AsyncClientr   Nr/  r   r   r   r   rU   r1  r0  httpx.AsyncClient | Noner   r{   r   r3  rQ   rR   c                  |9t          |t          j                  st          dt	          |                     t                                          |t          t          |          |||           |pCt          | 
                    t          |                    t          t          |                    | _        d S r5  )r   r   AsyncClientr   r   r[   r\   r   r   r  r   r   r   r7  s          r`   r\   zAsyncAPIClient.__init__o  s     ":k5CT+U+U"ubfgrbsbsuu   	'**#%) 	 	
 	
 	
 # 
&=11#h--@@'**'
 '
 '
rb   Fr_  r`  r   r  r8  r   ra  r   r/   r   rb  r   r   r:  type[_AsyncStreamT] | NoneResponseT | _AsyncStreamTc          	        K   t          j        dd||t          |           d {V d|}|                     ||||           d {V S )Nrd  rv  rA  rX   )r.   re  r+   r   rf  s	            r`   rd  zAsyncAPIClient.post  s       ' 
,U33333333	
 

 
 
 \\'4:\VVVVVVVVVrb   rh  r   ri  c               n   K   t          j        dd||d|}|                     ||||           d {V S rk  r.   re  r   rn  s           r`   r   zAsyncAPIClient.get  se       ' 

 
 	
 
 \\'4:\VVVVVVVVVrb   ro  r6   c               h   K   t          j        dd||d|}|                     ||           d {V S rq  r  rs  s         r`   rr  zAsyncAPIClient.delete  s_       ' 

 
 	
 
 \\'4000000000rb   c               r   K   t          j        dd|||d|}|                     ||d||           d {V S ru  r  rf  s	            r`   rw  z!AsyncAPIClient.post_without_retry  s       ' 
	
 

 
 
 \\TQv* " 
 
 
 
 
 
 
 
 	
rb   r   rx  ry  rz  r{  Type[AsyncPageT]r}  r   rG   c               j   K   t          j        d|||d|}|                     |||           d {V S r  r  r  s           r`   r  zAsyncAPIClient.get_api_list  s_       ' 
tt
 
7>
 
 ++E4>>>>>>>>>rb   r.   c                f    K   d fd}|_                              |d           d {V S )	Nr  rG   rQ   rE   c                8    |                                 | S r  r  r  s    r`   r  z1AsyncAPIClient._request_api_list.<locals>._parser  r  rb   Fr?  r  r  r  s   `` ` r`   r  z AsyncAPIClient._request_api_list  se      	 	 	 	 	 	 	 	 &\\$\>>>>>>>>>rb   rA  r   r&  r;  r<  c               F   K   |                      |||||           d {V S r  r  r  s         r`   r   zAsyncAPIClient.request  sP       ]]!/ # 
 
 
 
 
 
 
 
 	
rb   r9  c          	       K   |                      ||          }|                     |          }|j                            t          d          }	 | j                            ||p|                     |                     d {V }	n# t          j	        $ r]}
|dk    r&| 
                    |||||d            d {V cY d }
~
S t                              d           t          ||          |
d }
~
wt          $ ry}
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>  )r)  r   r   r   r$   r   rB  r   r   rC  rD  rM   r   r&   rp   r'   r   r   r   rE  rF  rG  r  r   r  r  areadr  rI  rJ  s              r`   rM  zAsyncAPIClient._request  s      ))*;WEE%%g..$$%:B?? 	U!\..S!B!B7!B!S!S /        HH % 	R 	R 	R{{!00!)%) 1               II-...$WHHHcQ 	U 	U 	UII-I==={{!00!)%) 1               II0111'FKKKQTT	U  			)NK "	
 	
 	
	%%''''$ 	 	 	II9DIIII{{t11#,??{l))+++++++++!00L(!) 1               <) +l((*********II/00077 8  )	0 ++! , 
 
 
 
 
 
 
 
 	
sc   8B E5&C/=E5,C//E5<AE0>E5,E00E5+G KBJ=KA"J==Kr   rN  c               l  K   |dz
  }|dk    rt                               d           nt                               d|           |                     |||          }t                               d|j        |           t          j        |           d {V  |                     |||||           d {V S rP  )rM   r   r   rQ  r   anyiorS  rM  rT  s	            r`   rD  zAsyncAPIClient._retry_requeste  s       &)	>>IIn%%%%II'333//	7DTUU7gNNNk'"""""""""]]'! # 
 
 
 
 
 
 
 
 	
rb   r   r   rV  c               V  K   |t           j        k    rt          t          |          S t	          || t          d|          |||          }t          |j        j                            t                              rt          t          |          S |
                                 d {V S rX  )r   r[  r   r6   r1   r   r   r   r   r"   r\  r]  s          r`   rI  z AsyncAPIClient._process_response  s       en$$	8,,,**G44!
 
 
  (,,-@AABB 	1	<000!'')))))))))rb   c                    | j         j        S rn   r  rq   s    r`   r  zAsyncAPIClient.is_closed  r  rb   c                H   K   | j                                          d{V  dS )r  N)r   r  rq   s    r`   ro   zAsyncAPIClient.close  s4      
 l!!###########rb   r^   rH   c                
   K   | S rn   rX   rq   s    r`   
__aenter__zAsyncAPIClient.__aenter__  s      rb   r  r  r  r  r  r  c                >   K   |                                   d {V  d S rn   r  r  s       r`   	__aexit__zAsyncAPIClient.__aexit__  s.       jjllrb   )r   r   r   r   rU   r1  r0  r  r   r{   r   r3  rQ   rR   )r`  r   r  r8  r   ra  r   r/   r   rb  r   r   r:  r  rQ   r  )r`  r   r  r8  r   ri  r   r/   r   r   r:  r  rQ   r  r  )r`  r   ry  rz  r{  r  r   r}  r   r/   r   r   rQ   rG   )ry  rz  r{  r  r   r.   rQ   rG   rn   r  )r  r8  r   r.   r   r9  r   r   r:  r  rQ   r  )r   r.   r  r8  r   r   r   rN  r   r   r:  r  rQ   r  r  r  rs   r  r  )re   rf   rg   r+  r   r8   r\   rd  r   rr  rw  r  r  r   rM  rD  rI  r  ro   r  r  rh   ri   s   @r`   r  r  l  s!         /5>040415
 
 
 
 
 
 
 
B !')%)15W W W W W W4 04')15W W W W W W0 04')1 1 1 1 1 1, !')%)15
 
 
 
 
 
: !')? ? ? ? ? ?? ? ? ?, ,0	
 ,0
 
 
 
 
 
"V
 V
 V
 V
p
 
 
 
:* * * *2& & & &$ $ $ $          rb   r  c                  \    e Zd ZU dZded<   ded<   ded<   eeedddZedd            ZdS )PageInfozStores the necessary information to build the request to retrieve the next page.

    Either `url` or `params` must be set.
    URL | NotGivenr   Query | NotGivenr   Body | NotGivenr   r   r   r   rQ   rR   c               0    || _         || _        || _        d S rn   r  )r^   r   r   r   s       r`   r\   zPageInfo.__init__  s     	rb   r   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   r_   re   r   r   rq   s    r`   __repr__zPageInfo.__repr__  sr    8 	@n-??DH????9 	Bn-AATYAAAA.)AA4;AAAArb   N)r   r  r   r  r   r  rQ   rR   r*  )	re   rf   rg   __doc__r+  r8   r\   r   r  rX   rb   r`   r  r    s          
 
 ( )#,	 	 	 	 	 	 B B B XB B Brb   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]_modelrQ   r   c                ^    |                                  }|sdS |                                 d uS )NF)_get_page_itemsnext_page_info)r^   r   s     r`   has_next_pagezBasePage.has_next_page  s7    $$&& 	5""$$D00rb   Optional[PageInfo]c                    d S rn   rX   rq   s    r`   r  zBasePage.next_page_info  s      rb   Iterable[_T]c                    d S rn   rX   rq   s    r`   r  zBasePage._get_page_items  s    rb   r   r   httpx.QueryParamsc                    t          j        t          t          | j        j                                                |j                  S rn   )r   QueryParamsr   r   r  r   merger  s     r`   _params_from_urlzBasePage._params_from_url  s2     c4=+?!@!@AAGG
SSSrb   rQ  r  c                   t          | j                  }|                                 t          |j        t
                    si |j        |j        |_        |S t          |j        t
                    sd|                     |j                  }|j                            |          }t          |j                  |_        t          |          |_        |S t          |j        t
                    sst          |j                  st          d          |j        si |j        |_        n8t          |j                  st          d          i |j        |j        |_        |S t          d          )N)r   z*Pagination is only supported with mappingszUnexpected PageInfo state)rB   r  _strip_raw_response_headerr   r   r7   r   r  r   dictr   r   r?   r   r  
ValueError)r^   rQ  r   r   r   s        r`   _info_to_optionszBasePage._info_to_options  sV   T]++**,,,$+x00 	>>$+>GNN$(H-- 	**4844F($$F$33C!#*--GNc((GKN$)X.. 	di(( N LMMM$ G$1tyM!!!'"344 R#$PQQQ$Fw'8$FDI$F!N4555rb   Nr  )rQ   r  )rQ   r  )r   r   rQ   r  )rQ  r  rQ   r.   )re   rf   rg   r  r   r  r+  r  r  r  r  r  r  rX   rb   r`   r  r    s         	 	  +{}}H,,,,"{}}F$$$$1 1 1 1 8777   T T T T6 6 6 6 6 6rb   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 )BaseSyncPager.  r   rZ  ry  r  r   r.   rQ   rR   c                n    t           rt          | dd           i | _        || _        || _        || _        d S N__pydantic_private__rC   getattrr  r  r   r  )r^   rZ  ry  r   s       r`   r  z$BaseSyncPage._set_private_attributes  ?      	+74)?FFN(*D%rb   Iterator[_T]c              #  n   K   |                                  D ]}|                                D ]}|V  d S rn   
iter_pagesr  r^   r{  items      r`   __iter__zBaseSyncPage.__iter__$  sT      OO%% 	 	D,,..  



	 	rb   r^   rE   Iterator[SyncPageT]c              #  l   K   | }	 |V  |                                 r|                                }nd S 0rn   r  get_next_pager^   r{  s     r`   r   zBaseSyncPage.iter_pages)  sJ      	JJJ!!## ))++	rb   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  r   r  r   r  r  r_   r^   rQ  r   s      r`   r  zBaseSyncPage.get_next_page2  so    ""$$ 	k   ''--|--Kdng . 
 
 	
rb   N)rZ  r.  ry  r  r   r.   rQ   rR   )rQ   r  )r^   rE   rQ   r  )r^   rE   rQ   rE   )re   rf   rg   r"  r   r   r+  r  r  r   r  rX   rb   r`   r  r    s         1X133G3333       *   
   

 

 

 

 

 

rb   r  c                  .    e Zd ZddZddZddZddZdS )AsyncPaginatorrZ  r  r   r.   page_clsr  ry  r  rQ   rR   c                >    || _         || _        || _        || _        d S rn   )r  r   r  	_page_cls)r^   rZ  r   r  ry  s        r`   r\   zAsyncPaginator.__init__@  s$     !rb    Generator[Any, None, AsyncPageT]c                N    |                                                                  S rn   )	_get_page	__await__rq   s    r`   r  zAsyncPaginator.__await__L  s    ~~))+++rb   rG   c                    K   d fd}| j         _         j                             j         j                    d {V S )Nr  rG   rQ   c                V    |                      j        j        j                   | S )N)ry  r   rZ  )r  r  r  r   )r  r^   s    r`   r  z)AsyncPaginator._get_page.<locals>._parserP  s6    ((k| )   
 Krb   )r  rG   rQ   rG   )r  ry   r   r   r  )r^   r  s   ` r`   r  zAsyncPaginator._get_pageO  s_      	 	 	 	 	 	 %,!\))$.$-HHHHHHHHHrb   AsyncIterator[_T]c               `   K   t          t          |  d {V           }|2 3 d {V }|W V  6 d S rn   )r   rG   r  s      r`   	__aiter__zAsyncPaginator.__aiter__\  sg      JJJJJJ
 
  	 	 	 	 	 	 	$JJJJJ $$s   -N)
rZ  r  r   r.   r  r  ry  r  rQ   rR   )rQ   r  )rQ   rG   rQ   r  )re   rf   rg   r\   r  r  r  rX   rb   r`   r  r  ?  sh        
" 
" 
" 
", , , ,I I I I     rb   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   ry  r  rZ  r   r.   rQ   rR   c                n    t           rt          | dd           i | _        || _        || _        || _        d S r  r  )r^   ry  rZ  r   s       r`   r  z%BaseAsyncPage._set_private_attributesi  r  rb   r  c               |   K   |                                  2 3 d {V }|                                D ]}|W V  $6 d S rn   r  r  s      r`   r  zBaseAsyncPage.__aiter__v  sp      //++ 	 	 	 	 	 	 	$,,..  




 ,++s   ;r^   rG   AsyncIterator[AsyncPageT]c               z   K   | }	 |W V  |                                 r|                                 d {V }nd S 7rn   r  r  s     r`   r   zBaseAsyncPage.iter_pages{  s^      	JJJJ!!## !//11111111	rb   c                   K   |                                  }|st          d          |                     |          }| j                            | j        | j        |           d {V S r
  r  r  s      r`   r  zBaseAsyncPage.get_next_page  s      ""$$ 	k   ''--\33Kdng 4 
 
 
 
 
 
 
 
 	
rb   N)ry  r  rZ  r  r   r.   rQ   rR   r  )r^   rG   rQ   r   )r^   rG   rQ   rG   )re   rf   rg   r"  r   r   r+  r  r  r   r  rX   rb   r`   r  r  f  s         2h244G4444          
   

 

 

 

 

 

rb   r  c                      e Zd ZddZdS )r   rQ   r   c                    dS )NTrX   rq   s    r`   __bool__zForceMultipartDict.__bool__  s    trb   Nr  )re   rf   rg   r%  rX   rb   r`   r   r     s(             rb   r   obj1Mapping[_T_co, Union[_T, None]]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                    i | ]
\  }}|||S rn   rX   ).0r   r   s      r`   
<dictcomp>z#_merge_mappings.<locals>.<dictcomp>  s#    MMM:35;LC;L;L;Lrb   )r   )r&  r(  mergeds      r`   _merge_mappingsr/    s/     FMMMMMMrb   )ru   rz   rv   r{   rw   rz   rx   rz   rU   r|   ry   r}   rQ   r/   )r&  r'  r(  r'  rQ   r)  )v
__future__r   r  r   r   rR  r   typesr   typingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   typing_extensionsr   r  r   r"  r   r   r   r   httpx._typesr   r   r   _qsr   
_constantsr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   _filesr*   r+   _modelsr,   r-   _request_optionsr.   r/   	_responser0   r1   
_streamingr2   r3   r4   r5   _typesr6   r7   r8   r9   r:   r;   r<   _utils._utilsr=   r>   r?   r@   rA   _compatrB   rC   rD   rE   rG   rH   rI   rK   rL   	getLoggerre   rM   r+  r6  rO   DefaultHttpxClientrl   r   r  r   r   r.  r  DefaultAsyncHttpxClientr  r  r  r  r  r  r  r   r   r/  rX   rb   r`   <module>rB     s7   # " " " " " "                                                 ' & & & & &                & & & & & & & & & & % % % % % %            	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	            9 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 A A A A A A A A : : : : : : : : H H H H H H H H H H H H                  S R R R R R R R R R R R R R 8 8 8 8 8 8 8 8 8 8GK':;;;	W\)=>>>
WT]]4(((7:VC[111{3/?@@@'g'11 1 1 1 1# # # # #%, # # #  	- -    /    $(+/)-(,,0)2     @ uU\5CT5T/UVVV`
 `
 `
 `
 `
' `
 `
 `
FM M M M MJ M M M`
# # # # #u0 # # #  	7#/ 7    5   B B B B BZ B B BJ
B B B B B B B B<:6 :6 :6 :6 :6|WR[ :6 :6 :6z0
 0
 0
 0
 0
8B< 0
 0
 0
f$ $ $ $ $WR^, $ $ $N(
 (
 (
 (
 (
HRL'"+ (
 (
 (
V    c4i   
	N 	N 	N 	N 	N 	Nrb   