o
    ùT·jA ã                
   @  s  U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  d dl!m"Z"m#Z#m$Z$m%Z% d dl&Z&d dl'Z'd dl(Z(d dl'm)Z) d dl(m*Z* d	d
l+m,Z, d	dl-m.Z. d	dl/m0Z0m1Z1 d	dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d	dlDmEZEmFZFmGZGmHZHmIZImJZJmKZK d	dlLmMZMmNZN d	dlOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z] d	dl^m_Z_m`Z`maZambZbmcZc d	dldmeZemfZfmgZgmhZh d	dlimjZjmkZkmlZlmmZmmnZnmoZompZpmqZq d	dlrmsZsmtZtmuZumvZv d	dl,mwZwmxZxmyZymzZzm{Z{ d	dl|m}Z} d	dl~mZ d	dl€m�Z� e
 ‚eƒ¡Z„de…d< e„ †eEƒ ¡ G dd„ dƒZ‡d‹d!d"„Zˆed#d$d%�Z‰ed&d'd%�ZŠed(ƒZ‹ed)d*d+�ZŒed,ese d%�Z�ed-eue d%�ZŽe�r¤d d.l�m�Z� e�Z‘nzd d.l�m�Z‘ W n e’�yº   e7d/ƒZ‘Y nw G d0d1„ d1ƒZ“G d2d3„ d3e_ee‹ ƒZ”G d4d5„ d5e”e‹ ee‹ ƒZ•G d6d7„ d7ee‹eŠf ƒZ–G d8d9„ d9e”e‹ ee‹ ƒZ—ed:ee'j˜e'j™f d%�Zšed;eese eue f d%�Z›G d<d=„ d=eeše›f ƒZœG d>d?„ d?e'j˜ƒZ�e�r)e'j˜Zžne�ZžG d@dA„ dAežƒZŸG dBdC„ dCeœe'j˜ese f ƒZ G dDdE„ dEe'j™ƒZ¡dFe…dG< zd	dHl¢m£Z£ W n e’�yl   G dIdJ„ dJe'j™ƒZ¤e¤Z¥Y nw G dKdL„ dLe£ƒZ¦e¦Z¥e�r‚e'j™Z§	 e'j™Z¨ne¡Z§e¥Z¨G dMdN„ dNe§ƒZ©G dOdP„ dPeœe'j™eue f ƒZªdddddeCeCdddQœ	dŒddde„Z«G dfdg„ dgee¬df ƒZ­G dhdi„ diƒZ®ee®e#dj f Z¯d�dldm„Z°eJddn�dŽdtdu„ƒZ±G dvdw„ dwƒZ²ee²e#dx f Z³d�dydz„Z´d�d{d|„Zµd�d~d„Z¶d‘d„d…„Z·d’d‰dŠ„Z¸dS )“é    )ÚannotationsN)ÚTracebackType)Úrandom)ÚTYPE_CHECKINGÚAnyÚDictÚTypeÚUnionÚGenericÚMappingÚTypeVarÚIterableÚIteratorÚOptionalÚ	GeneratorÚAsyncIteratorÚcastÚoverload)ÚUnpackÚLiteralÚoverrideÚ
get_origin)ÚURL)ÚPrivateAttré   )Ú_exceptions©ÚQuerystring)Úto_httpx_filesÚasync_to_httpx_files)ÚBodyÚOmitÚQueryÚHeadersÚTimeoutÚNotGivenÚ	ResponseTÚ
AnyMappingÚ
PostParserÚBinaryTypesÚRequestFilesÚHttpxSendArgsÚRequestOptionsÚAsyncBinaryTypesÚHttpxRequestFilesÚModelBuilderProtocolÚ	not_given)ÚSensitiveHeadersFilterÚis_dictÚis_listÚasyncifyÚis_givenÚ	lru_cacheÚ
is_mapping)ÚPYDANTIC_V1Ú
model_copy)Ústatus_exceptionsÚrequest_exceptionsÚtimeout_exceptionsÚhttp_response_typesÚnormalize_httpx_urlÚis_httpx2_sync_clientÚnormalize_httpx2_authÚis_httpx2_async_clientÚnormalize_httpx_timeoutÚnormalize_httpx2_timeoutÚis_legacy_httpx_sync_clientÚnormalize_legacy_httpx_authÚis_legacy_httpx_async_clientÚnormalize_legacy_httpx_timeout)ÚGenericModelÚSecurityOptionsÚFinalRequestOptionsÚvalidate_typeÚconstruct_type)ÚAPIResponseÚBaseAPIResponseÚAsyncAPIResponseÚextract_response_type)ÚDEFAULT_TIMEOUTÚMAX_RETRY_DELAYÚDEFAULT_MAX_RETRIESÚINITIAL_RETRY_DELAYÚRAW_RESPONSE_HEADERÚMAX_RETRY_AFTER_DELAYÚOVERRIDE_CAST_TO_HEADERÚDEFAULT_CONNECTION_LIMITS)ÚStreamÚ
SSEDecoderÚAsyncStreamÚSSEBytesDecoder)ÚOpenAIErrorÚAPIStatusErrorÚAPITimeoutErrorÚAPIConnectionErrorÚAPIResponseValidationError)Úopenapi_dumps)Úget_http_method_for_logging)ÚLegacyAPIResponsezlogging.LoggerÚlogc                   @  s*   e Zd Zddd„Zdd
d„Zddd„ZdS )Ú_RequestBodyReplayÚoptionsrJ   ÚreturnÚNonec                   s2   g ˆ _ t‡ fdd„|jgt|jƒ¢R D ƒƒˆ _d S )Nc                 3  s   � | ]}ˆ   |¡V  qd S ©N)Ú_capture)Ú.0Úcontent©Úself© úV/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/openai/_base_client.pyÚ	<genexpr>v   s   € 

ÿz._RequestBodyReplay.__init__.<locals>.<genexpr>)Ú
_positionsÚallrm   Ú_iter_file_contentsÚfilesÚ_replayable©ro   rg   rp   rn   rq   Ú__init__t   s   ÿz_RequestBodyReplay.__init__rm   ÚobjectÚboolc              	   C  sÌ   |d u st |ttfƒrdS tt|dd ƒƒst|ƒttfv S t|dd ƒ}t|dd ƒ}t|dd ƒ}t|ƒr;t|ƒr;t|ƒs=dS z|ƒ sDW dS |ƒ }W n tt	fyT   Y dS w t |t
ƒs\dS | j ||f¡ dS )NTÚreadÚseekableÚtellÚseekF)Ú
isinstanceÚbytesÚ	bytearrayÚcallableÚgetattrÚtypeÚlistÚtupleÚOSErrorÚ
ValueErrorÚintrs   Úappend)ro   rm   r}   r~   r   Úpositionrp   rp   rq   rk   z   s(   
ÿ
z_RequestBodyReplay._capturec              
   C  s^   | j sdS | jD ]$\}}t|dd ƒ}t|ƒs dS z||ƒ W q ttfy,   Y  dS w dS )NFr   T)rw   rs   r„   rƒ   rˆ   r‰   )ro   rm   rŒ   r   rp   rp   rq   Úrewind“   s   ÿz_RequestBodyReplay.rewindN)rg   rJ   rh   ri   )rm   rz   rh   r{   ©rh   r{   )Ú__name__Ú
__module__Ú__qualname__ry   rk   r�   rp   rp   rp   rq   rf   s   s    

rf   rv   úHttpxRequestFiles | Nonerh   úIterator[object]c                 c  s^   � | d u rd S t | tƒr|  ¡ n| }|D ]\}}t |tƒr)t|ƒdkr)|d V  q|V  qd S )Nr   )r€   r   Úitemsr‡   Úlen)rv   ÚentriesÚ_Úfilerp   rp   rq   ru   ¢   s   €üru   Ú	SyncPageTzBaseSyncPage[Any])ÚboundÚ
AsyncPageTzBaseAsyncPage[Any]Ú_TÚ_T_coT)Ú	covariantÚ_StreamTÚ_AsyncStreamT)ÚDEFAULT_TIMEOUT_CONFIGg      @c                   @  sv   e Zd ZU dZded< ded< ded< eddd„ƒZeddd„ƒZeddd„ƒZeeedœddd„Zeddd„ƒZ	dS )ÚPageInfoz€Stores the necessary information to build the request to retrieve the next page.

    Either `url` or `params` must be set.
    úURL | NotGivenÚurlúQuery | NotGivenÚparamsúBody | NotGivenÚjsonr   rh   ri   c                C  ó   d S rj   rp   ©ro   r¤   rp   rp   rq   ry   Ñ   ó   zPageInfo.__init__r"   c                C  r©   rj   rp   )ro   r¦   rp   rp   rq   ry   Ø   r«   r    c                C  r©   rj   rp   )ro   r¨   rp   rp   rq   ry   ß   r«   ©r¤   r¨   r¦   c                C  s   || _ || _|| _d S rj   r¬   )ro   r¤   r¨   r¦   rp   rp   rq   ry   æ   s   
Ústrc                 C  sN   | j r| jj› d| j › d�S | jr| jj› d| j› d�S | jj› d| j› d�S )Nz(url=ú)z(json=z(params=)r¤   Ú	__class__r�   r¨   r¦   rn   rp   rp   rq   Ú__repr__ñ   s
   zPageInfo.__repr__N)r¤   r   rh   ri   )r¦   r"   rh   ri   )r¨   r    rh   ri   )r¤   r£   r¨   r§   r¦   r¥   rh   ri   ©rh   r­   )
r�   r�   r‘   Ú__doc__Ú__annotations__r   ry   r0   r   r°   rp   rp   rp   rq   r¢   Ç   s"   
 	ûr¢   c                   @  s`   e Zd ZU dZeƒ Zded< eƒ Zded< ddd	„Zddd„Z	ddd„Z
ddd„Zd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
    rJ   Ú_optionsúType[_T]Ú_modelrh   r{   c                 C  s   |   ¡ }|sdS |  ¡ d uS )NF)Ú_get_page_itemsÚnext_page_info)ro   r”   rp   rp   rq   Úhas_next_page	  s   zBasePage.has_next_pageúOptional[PageInfo]c                 C  r©   rj   rp   rn   rp   rp   rq   r¹     s    zBasePage.next_page_infoúIterable[_T]c                 C  r©   rj   rp   rn   rp   rp   rq   r¸     ó   zBasePage._get_page_itemsr¤   r   úhttpx2.QueryParamsc                 C  s   t  tt| jjƒ¡ |j¡S rj   )Úhttpx2ÚQueryParamsr   r   rµ   r¦   Úmergerª   rp   rp   rq   Ú_params_from_url  s   zBasePage._params_from_urlÚinfor¢   c                 C  sØ   t | jƒ}| ¡  t|jtƒsi |j¥|j¥|_|S t|jtƒs:|  |j¡}|jj|d�}t	|jƒ|_t
|ƒ|_|S t|jtƒsht|jƒsItdƒ‚|jsTi |j¥|_|S t|jƒs]tdƒ‚i |j¥|j¥|_|S tdƒ‚)N)r¦   z*Pagination is only supported with mappingszUnexpected PageInfo state)r9   rµ   Ú_strip_raw_response_headerr€   r¦   r%   r¤   rÂ   Ú	copy_withÚdictr­   r¨   r7   Ú	TypeErrorÚ	json_datar‰   )ro   rÃ   rg   r¦   r¤   rp   rp   rq   Ú_info_to_options  s,   



üzBasePage._info_to_optionsNrŽ   )rh   r»   )rh   r¼   )r¤   r   rh   r¾   )rÃ   r¢   rh   rJ   )r�   r�   r‘   r²   r   rµ   r³   r·   rº   r¹   r¸   rÂ   rÉ   rp   rp   rp   rq   r´   ú   s   
 



r´   c                   @  óF   e Zd ZU e ¡ Zded< dd
d„Zddd„Zddd„Z	ddd„Z
dS )ÚBaseSyncPageÚSyncAPIClientÚ_clientÚclientÚmodelr¶   rg   rJ   rh   ri   c                 C  s0   t st| dd ƒd u ri | _|| _|| _|| _d S ©NÚ__pydantic_private__©r8   r„   rÑ   r·   rÍ   rµ   )ro   rÎ   rÏ   rg   rp   rp   rq   Ú_set_private_attributes:  ó
   
z$BaseSyncPage._set_private_attributesúIterator[_T]c                 c  s(   � |   ¡ D ]}| ¡ D ]}|V  qqd S rj   ©Ú
iter_pagesr¸   ©ro   ÚpageÚitemrp   rp   rq   Ú__iter__O  s   €ÿÿzBaseSyncPage.__iter__ro   r™   úIterator[SyncPageT]c                 c  s&   � | }	 |V  |  ¡ r| ¡ }nd S qrj   ©rº   Úget_next_page©ro   rÙ   rp   rp   rq   r×   T  s   €
ûzBaseSyncPage.iter_pagesc                 C  s4   |   ¡ }|s
tdƒ‚|  |¡}| jj| j| j|d�S ©NzYNo next page expected; please check `.has_next_page()` before calling `.get_next_page()`.)rÙ   rg   ©r¹   ÚRuntimeErrorrÉ   rÍ   Ú_request_api_listr·   r¯   ©ro   rÃ   rg   rp   rp   rq   rÞ   ]  s   ÿ
zBaseSyncPage.get_next_pageN)rÎ   rÌ   rÏ   r¶   rg   rJ   rh   ri   )rh   rÕ   )ro   r™   rh   rÜ   )ro   r™   rh   r™   )r�   r�   r‘   Úpydanticr   rÍ   r³   rÓ   rÛ   r×   rÞ   rp   rp   rp   rq   rË   7  s   
 


	rË   c                   @  s4   e Zd Zddd„Zddd„Zddd„Zddd„ZdS )ÚAsyncPaginatorrÎ   ÚAsyncAPIClientrg   rJ   Úpage_clsúType[AsyncPageT]rÏ   r¶   rh   ri   c                 C  s   || _ || _|| _|| _d S rj   )r·   rÍ   rµ   Ú	_page_cls)ro   rÎ   rg   rè   rÏ   rp   rp   rq   ry   i  s   
zAsyncPaginator.__init__ú Generator[Any, None, AsyncPageT]c                 C  s   |   ¡  ¡ S rj   )Ú	_get_pageÚ	__await__rn   rp   rp   rq   rí   u  s   zAsyncPaginator.__await__r›   c                 ƒ  s0   �d‡ fdd„}|ˆ j _ˆ j ˆ jˆ j ¡I d H S )NÚrespr›   rh   c                   s   | j ˆ jˆ jˆ jd� | S )N)rÏ   rg   rÎ   )rÓ   r·   rµ   rÍ   ©rî   rn   rp   rq   Ú_parsery  s   ýz)AsyncPaginator._get_page.<locals>._parser)rî   r›   rh   r›   )rµ   Úpost_parserrÍ   Úrequestrê   )ro   rð   rp   rn   rq   rì   x  s   €zAsyncPaginator._get_pageúAsyncIterator[_T]c                 C s0   �t t| I d H ƒ}|2 z	3 d H W }|V  q6 d S rj   )r   r›   rØ   rp   rp   rq   Ú	__aiter__…  s   €þÿzAsyncPaginator.__aiter__N)
rÎ   rç   rg   rJ   rè   ré   rÏ   r¶   rh   ri   )rh   rë   )rh   r›   ©rh   ró   )r�   r�   r‘   ry   rí   rì   rô   rp   rp   rp   rq   ræ   h  s
    


ræ   c                   @  rÊ   )ÚBaseAsyncPagerç   rÍ   rÏ   r¶   rÎ   rg   rJ   rh   ri   c                 C  s0   t st| dd ƒd u ri | _|| _|| _|| _d S rÐ   rÒ   )ro   rÏ   rÎ   rg   rp   rp   rq   rÓ   ’  rÔ   z%BaseAsyncPage._set_private_attributesró   c                 C s2   �|   ¡ 2 z3 d H W }| ¡ D ]}|V  qq6 d S rj   rÖ   rØ   rp   rp   rq   rô   Ÿ  s   €ÿÿzBaseAsyncPage.__aiter__ro   r›   úAsyncIterator[AsyncPageT]c                 C s,   �| }	 |V  |  ¡ r| ¡ I d H }nd S qrj   rÝ   rß   rp   rp   rq   r×   ¤  s   €ûzBaseAsyncPage.iter_pagesc                 Ã  s<   �|   ¡ }|stdƒ‚|  |¡}| jj| j| j|d�I d H S rà   rá   rä   rp   rp   rq   rÞ   ­  s   €ÿ
zBaseAsyncPage.get_next_pageN)rÏ   r¶   rÎ   rç   rg   rJ   rh   ri   rõ   )ro   r›   rh   r÷   )ro   r›   rh   r›   )r�   r�   r‘   rå   r   rÍ   r³   rÓ   rô   r×   rÞ   rp   rp   rp   rq   rö   �  s   
 


	rö   Ú_HttpxClientTÚ_DefaultStreamTc                   @  sÂ  e Zd ZU ded< ded< ded< ded< d	ed
< ded< ded< dZded< eedddœddd„Zd€d d!„Zd�d%d&„Z	d‚d+d,„Z
dƒd0d1„Zdƒd2d3„Zd„d5d6„Zd7d8œd…d=d>„Zd†d?d@„Zd‡dBdC„Zd7d8œdˆdEdF„Zd‰dJdK„ZdŠdNdO„Zd‹dQdR„ZdŒdTdU„Zed�dWdX„ƒZedŽdYdZ„ƒZed�d[d\„ƒZed�d^d_„ƒZed‘d`da„ƒZd’ddde„Zed“dfdg„ƒZed”dhdi„ƒZejd•dkdi„ƒZd–dmdn„Z d—d˜drds„Z!e"d™dudv„ƒZ#	d—dšdydz„Z$d›d{d|„Z%d“d}d~„Z&dS )œÚ
BaseClientrø   rÍ   r­   Ú_versionr   Ú	_base_urlrŠ   Úmax_retrieszUnion[float, Timeout, None]Útimeoutr{   Ú_strict_response_validationú
str | NoneÚ_idempotency_headerNztype[_DefaultStreamT] | NoneÚ_default_stream_cls)rý   rþ   Úcustom_headersÚcustom_queryÚversionÚbase_urlú	str | URLúfloat | Timeout | Noner  úMapping[str, str] | Noner  úMapping[str, object] | Nonerh   ri   c                C  sV   || _ |  t|ƒ¡| _|| _|| _|pi | _|pi | _|| _d | _	d | _
|  |¡ d S rj   )rû   Ú_enforce_trailing_slashr>   rü   rý   rþ   Ú_custom_headersÚ_custom_queryrÿ   r  Ú	_platformÚ_validate_max_retries)ro   r  r  rÿ   rý   rþ   r  r  rp   rp   rq   ry   Æ  s   

zBaseClient.__init__r¤   c                 C  s"   |j  d¡r|S |j|j d d�S )Nó   /©Úraw_path)r  ÚendswithrÅ   rª   rp   rp   rq   r  Ý  s   z"BaseClient._enforce_trailing_slashÚresponseúhttpx2.Responser^   c                 C  s€   |j r|jsd }d|j› �}n)|j ¡ }|}zt |¡}d|j› d|› �}W n ty7   |p4d|j› �}Y nw | j|||d�S )NzError code: z - )Úbodyr  )	Ú	is_closedÚis_stream_consumedÚstatus_codeÚtextÚstripr¨   ÚloadsÚ	ExceptionÚ_make_status_error)ro   r  r  Úerr_msgÚerr_textrp   rp   rq   Ú _make_status_error_from_responseâ  s   

ÿz+BaseClient._make_status_error_from_responser  r  rz   ú_exceptions.APIStatusErrorc                C  s   t ƒ ‚rj   )ÚNotImplementedError)ro   r  r  r  rp   rp   rq   r  ø  s   zBaseClient._make_status_errorÚsecurityrI   údict[str, str]c                 C  ó   i S rj   rp   ©ro   r$  rp   rp   rq   Ú_auth_headers  ó   zBaseClient._auth_headersc                 C  r&  rj   rp   r'  rp   rp   rq   Ú_auth_query  r)  zBaseClient._auth_queryúhttpx2.Auth | Nonec                 C  r©   rj   rp   r'  rp   rp   rq   Ú_custom_auth  r)  zBaseClient._custom_authr   ©Úretries_takenrg   rJ   r.  úhttpx2.Headersc          	      C  sÆ   |j pi }t|  |j¡| j|ƒ}|  ||¡ t |¡}| j}|r,|j	r,||vr,|j	||< dd„ |D ƒ}d|vr=t
|ƒ|d< d|vratt|jtƒrK| jn|jƒ}t|tƒrW|j}|d urat
|ƒ|d< |S )Nc                 S  s   g | ]}|  ¡ ‘qS rp   )Úlower)rl   Úheaderrp   rp   rq   Ú
<listcomp>!  s    z-BaseClient._build_headers.<locals>.<listcomp>zx-stainless-retry-countzx-stainless-read-timeout)ÚheadersÚ_merge_headersr(  r$  Údefault_headersÚ_validate_headersr¿   r#   r  Úidempotency_keyr­   rB   r€   rþ   r%   r$   r|   )	ro   rg   r.  r  Úheaders_dictr3  Úidempotency_headerÚlower_custom_headersrþ   rp   rp   rq   Ú_build_headers  s&   


ÿ
zBaseClient._build_headersc                 C  s4   t |ƒ}|jr| jj|j d¡ }| jj|d�S |S )z‹
        Merge a URL argument together with any 'base_url' on the client,
        to create the URL used for the outgoing request.
        r  r  )r   Úis_relative_urlr  r  ÚlstriprÅ   )ro   r¤   Ú	merge_urlÚmerge_raw_pathrp   rp   rq   Ú_prepare_url/  s
   zBaseClient._prepare_urlúSSEDecoder | SSEBytesDecoderc                 C  ó   t ƒ S rj   )rZ   rn   rp   rp   rq   Ú_make_sse_decoder<  s   zBaseClient._make_sse_decoderúhttpx2.Requestc                C  sš  t  dt|jƒ|¡ i }|j}|jd ur4|d u rtt|jƒ}nt|ƒr*t	||jƒ}n
t
dt|ƒ› d�ƒ‚| j||d�}t	i |  |j¡¥| j¥|jƒ}| d¡}|j}|d urƒ| d¡rƒd|vrd| d¡ |r{t|ƒsttdt|ƒ› d	�ƒ‚|  |¡|d
< |sƒtttƒ ƒ}|  |j¡}	|r¦|	jr¦i t|	j ¡ ƒ¥|¥}|	j|	j  !dd¡d d�}	|j "¡ dk}
|
rõ|j#d ur¼|d ur¼tdƒ‚|j#d urÉ|d urÉtdƒ‚|j#d urÔ|j#|d< nt$|t%ƒrÞ||d< n|sðt&|ƒrì|d urìt'|ƒnd |d< ||d< n| dd ¡ | d
d ¡ t$|j(t)ƒ�r| j(n|j(}t*|	ƒ}t+| ,¡ ƒ}t-| j.ƒ�s$t/| j.ƒ�r)t0|ƒ}nt1|ƒ}| j.j2d|||j||�rF| j3 4tt5t*t6f |ƒ¡nd dœ|¤ŽS )Nz1Building HTTP request: method=%s retries_taken=%izUnexpected JSON data type, z , cannot merge with `extra_body`r-  úContent-Typezmultipart/form-dataÚboundaryzGExpected query input to be a dictionary for multipart requests but got z	 instead.Údataó   ?r   r   r  Úgetz7Passing both `content` and `json_data` is not supportedz3Passing both `content` and `files` is not supportedrm   rv   )r3  rþ   Úmethodr¤   r¦   rp   )7re   Údebugrc   rJ  rÈ   Ú
extra_jsonr   r    r7   Ú_merge_mappingsrâ   r…   r;  r*  r$  Údefault_queryr¦   rI  rv   Ú
startswithÚpopr2   rÇ   Ú_serialize_multipartformr.   ÚForceMultipartDictr@  r¤   ÚqueryrÆ   r”   rÅ   r  Úsplitr0  rm   r€   r�   r5   rb   rþ   r%   r­   r†   Úmulti_itemsrD   rÍ   rF   rG   rC   Úbuild_requestÚqsÚ	stringifyr   r   )ro   rg   r.  ÚkwargsrÈ   r3  r¦   Úcontent_typerv   Úprepared_urlÚis_body_allowedrþ   Úrequest_urlÚrequest_headersrp   rp   rq   Ú_build_request?  s|   ý


ÿ



 

"÷
özBaseClient._build_requestrG  úMapping[object, object]údict[str, object]c                 C  s^   | j j|dd�}i }|D ] \}}| |¡}|s|||< qt|ƒr&| |¡ q||g||< q|S )NÚbrackets)Úarray_format)rW  Ústringify_itemsrI  r3   r‹   )ro   rG  r”   Ú
serializedÚkeyÚvalueÚexistingrp   rp   rq   rQ  ¨  s   ü

z#BaseClient._serialize_multipartformÚcast_toútype[ResponseT]c                 C  sD   t |jƒs|S t|jƒ}| tt¡}t |ƒr ||_ttt |ƒS |S rj   )	r5   r3  rÆ   rP  rW   r0   r   r   r&   )ro   ri  rg   r3  Úoverride_cast_torp   rp   rq   Ú_maybe_override_cast_toÆ  s   

z"BaseClient._maybe_override_cast_torò   c                 C  s   |j  t¡dkS ©NÚstream)r3  rI  rU   ©ro   rò   rp   rp   rq   Ú_should_stream_response_body×  s   z'BaseClient._should_stream_response_bodyr&   c             
   C  s¦   |d u r	t td ƒS |tu rt t|ƒS z,t |¡r(t|tƒr(t t|j||d�ƒW S | jr5t tt	||d�ƒW S t tt
||d�ƒW S  tjyR } zt||d�|‚d }~ww )N)r  rG  )Útype_rg  )r  r  )r   r&   rz   ÚinspectÚisclassÚ
issubclassr/   Úbuildrÿ   rK   rL   rå   ÚValidationErrorra   )ro   rG  ri  r  Úerrrp   rp   rq   Ú_process_response_dataÚ  s   

€ÿz!BaseClient._process_response_datar   c                 C  rB  rj   r   rn   rp   rp   rq   rW  ò  ó   zBaseClient.qsc                 C  r©   rj   rp   rn   rp   rp   rq   Úcustom_authö  ó   zBaseClient.custom_authc                 C  r&  rj   rp   rn   rp   rp   rq   Úauth_headersú  r{  zBaseClient.auth_headersúdict[str, str | Omit]c                 C  s   dd| j dœ|  ¡ ¥| j¥S )Nzapplication/json)ÚAcceptrE  z
User-Agent)Ú
user_agentÚplatform_headersr  rn   rp   rp   rq   r5  þ  s   ýüûzBaseClient.default_headersc                 C  s
   i | j ¥S rj   )r  rn   rp   rp   rq   rN    s   ÿzBaseClient.default_queryr3  r#   c                 C  ó   dS )zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nrp   )ro   r3  r  rp   rp   rq   r6    ó   	zBaseClient._validate_headersc                 C  s   | j j› d| j› �S )Nz/Python )r¯   r�   rû   rn   rp   rp   rq   r    ó   zBaseClient.user_agentc                 C  s   | j S rj   )rü   rn   rp   rp   rq   r    ry  zBaseClient.base_urlú	URL | strc                 C  s   |   t|ƒ¡| _d S rj   )r  r>   rü   rª   rp   rp   rq   r  !  rƒ  úDict[str, str]c                 C  s   t | j| jd�S )N)Úplatform)r€  rû   r  rn   rp   rp   rq   r€  %  s   zBaseClient.platform_headersÚresponse_headersúOptional[httpx2.Headers]úfloat | Nonec           	      C  sà   |du rdS dD ]6\}}|  |¡}|du rqzt|ƒ}W n	 ty%   Y qw |tjkr9| ¡  ¡ dvr9td   S ||   S |  d¡}ztj	 
|¡}|du rRW dS tj	 |¡}W n ttttfyg   Y dS w t|t ¡  ƒ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
        N))zretry-after-mséè  )úretry-afterr   )Úinfz+infÚinfinityz	+infinityr   r‹  )rI  Úfloatr‰   ÚmathrŒ  r  r0  rV   ÚemailÚutilsÚparsedate_tzÚ	mktime_tzrÇ   ÚOverflowErrorrˆ   Útime)	ro   r‡  r1  Údivisorrg  ÚdelayÚretry_headerÚretry_date_tupleÚ
retry_daterp   rp   rq   Ú_parse_retry_after_header+  s0   
ÿ
ÿz$BaseClient._parse_retry_after_headerrg  c                 C  s6   | d u rt dƒ‚t| tƒst dƒ‚| dk rtdƒ‚d S )Nzbmax_retries cannot be None. Use 0 to disable retries or a large integer for a larger retry budget.z*max_retries must be a non-negative integerr   )rÇ   r€   rŠ   r‰   )rg  rp   rp   rq   r  Q  s   ÿ
ÿz BaseClient._validate_max_retriesÚremaining_retriesrŽ  c           
      C  sˆ   |  | j¡}|  |¡}|d ur t |¡r d|  k rtkr |S  t|| dƒ}tttd|ƒ t	ƒ}ddt
ƒ   }|| }	|	dkrB|	S dS )Nr   rŠ  g       @r   g      Ð?)Úget_max_retriesrý   r›  r�  ÚisfiniterV   ÚminrT   ÚpowrR   r   )
ro   rœ  rg   r‡  rý   Úretry_afterÚ
nb_retriesÚsleep_secondsÚjitterrþ   rp   rp   rq   Ú_calculate_retry_timeout\  s   
$ÿz#BaseClient._calculate_retry_timeoutc                 C  sî   |   |j¡}|d urt |¡r|tkrt d|t¡ dS |j d¡}|dkr-t d¡ dS |dkr8t d¡ dS |jd	krFt d
|j¡ dS |jdkrTt d
|j¡ dS |jdkrbt d
|j¡ dS |jdkrpt d
|j¡ dS t d¡ dS )NzRNot retrying because `Retry-After` of %s seconds exceeds the maximum of %s secondsFz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`i˜  zRetrying due to status code %ii™  i­  iô  zNot retrying)	r›  r3  r�  rž  rV   re   rK  rI  r  )ro   r  r¡  Úshould_retry_headerrp   rp   rq   Ú_should_retryt  s:   ý






zBaseClient._should_retryc                 C  s   dt  ¡ › �S )Nzstainless-python-retry-)ÚuuidÚuuid4rn   rp   rp   rq   Ú_idempotency_key   s   zBaseClient._idempotency_key)r  r­   r  r  rÿ   r{   rý   rŠ   rþ   r  r  r	  r  r
  rh   ri   )r¤   r   rh   r   )r  r  rh   r^   )r  r­   r  rz   r  r  rh   r"  )r$  rI   rh   r%  )r$  rI   rh   r+  )rg   rJ   r.  rŠ   rh   r/  )r¤   r­   rh   r   )rh   rA  )rg   rJ   r.  rŠ   rh   rD  )rG  r`  rh   ra  )ri  rj  rg   rJ   rh   rj  )rò   rD  rh   r{   )rG  rz   ri  rj  r  r  rh   r&   )rh   r   )rh   r+  )rh   r%  )rh   r}  )rh   ra  )r3  r#   r  r#   rh   ri   r±   )rh   r   )r¤   r„  rh   ri   )rh   r…  rj   )r‡  rˆ  rh   r‰  )rg  rz   rh   ri   )rœ  rŠ   rg   rJ   r‡  rˆ  rh   rŽ  )r  r  rh   r{   )'r�   r�   r‘   r³   r  rS   rQ   ry   r  r!  r  r(  r*  r,  r;  r@  rC  r_  rQ  rl  rp  rx  ÚpropertyrW  rz  r|  r5  rN  r6  r  r  Úsetterr€  r›  Ústaticmethodr  r¥  r©  r¬  rp   rp   rp   rq   rú   ¼  sl   
 ÷



	



ü
i


	

&ü
,rú   c                      ó   e Zd Zd‡ fdd„Z‡  ZS )Ú_DefaultHttpxClientrY  r   rh   ri   c                   ó:   |  dt¡ |  dt¡ |  dd¡ tƒ jdi |¤Ž d S ©Nrþ   ÚlimitsÚfollow_redirectsTrp   ©Ú
setdefaultrQ   rX   Úsuperry   ©ro   rY  ©r¯   rp   rq   ry   ¥  ó   z_DefaultHttpxClient.__init__©rY  r   rh   ri   ©r�   r�   r‘   ry   Ú__classcell__rp   rp   rº  rq   r±  ¤  ó    r±  c                   @  ó   e Zd Zddd„ZdS )ÚSyncHttpxClientWrapperrh   ri   c                 C  s.   | j rd S z|  ¡  W d S  ty   Y d S w rj   )r  Úcloser  rn   rp   rp   rq   Ú__del__¹  s   ÿzSyncHttpxClientWrapper.__del__N©rh   ri   ©r�   r�   r‘   rÃ  rp   rp   rp   rq   rÁ  ¸  ó    rÁ  c                      s
  e Zd ZU ded< dZded< eeddddœd…‡ fdd„Zd†dd„Zd‡dd„Z	dˆd!d"„Z
d‰d)d*„ZdŠd-d.„Zd‹d1d2„ZdŒd7d8„Zed�d?d@„ƒZedAdBœdŽdEd@„ƒZedAddFœd�dId@„ƒZdAddFœd�dKd@„Zd‘dOdP„ZdQdRœd’dTdU„Zd“d[d\„Zei dAd]œd”d`da„ƒZei dbœd•ddda„ƒZei ddeœd–dfda„ƒZi dAddgœd–dhda„Zeddi ddAdiœd—dpdq„ƒZeddi ddrœd˜dsdq„ƒZeddi dddtœd™dudq„ƒZddi ddAddvœd™dwdq„Zdddi dxœdšdydz„Zdddi dxœdšd{d|„Zddi d}œd›d~d„Zdi d€d�œdœdƒd„„Z‡  ZS )�rÌ   zhttpx2.ClientrÍ   Nztype[Stream[Any]] | Noner  ©rý   rþ   Úhttp_clientr  r  r  r­   r  r  rý   rŠ   rþ   ú!float | Timeout | None | NotGivenrÈ  úhttpx2.Client | Noner  r	  r  r
  rÿ   r{   rh   ri   c          
   	     s–   t |ƒs|rt|jƒnd }	|r|	tkr|	}nt}|d ur-t|ƒs-t|ƒs-tdt|ƒ› �ƒ‚t	ƒ j
|tt|ƒ|||||d� |pGt|tt|ƒd�| _d S )NzbInvalid `http_client` argument; Expected an instance of `httpx.Client` or `httpx2.Client` but got )r  rþ   r  rý   r  r  rÿ   ©r  rþ   )r5   rB   rþ   ÚHTTPX_DEFAULT_TIMEOUTrQ   r?   rD   rÇ   r…   r¸  ry   r   r$   rÁ  rÍ   )
ro   r  r  rý   rþ   rÈ  r  r  rÿ   Úclient_timeoutrº  rp   rq   ry   Ç  s8   ÿþÿÿø
ýzSyncAPIClient.__init__c                 C  ó   | j jS rj   ©rÍ   r  rn   rp   rp   rq   r  û  ó   zSyncAPIClient.is_closedc                 C  s   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Â  rn   rp   rp   rq   rÂ  þ  s   
ÿzSyncAPIClient.closero   rœ   c                 C  s   | S rj   rp   rn   rp   rp   rq   Ú	__enter__  r½   zSyncAPIClient.__enter__Úexc_typeútype[BaseException] | NoneÚexcúBaseException | NoneÚexc_tbúTracebackType | Nonec                 C  s   |   ¡  d S rj   ©rÂ  ©ro   rÔ  rÖ  rØ  rp   rp   rq   Ú__exit__  s   zSyncAPIClient.__exit__rg   rJ   c                 C  s   |S ©z#Hook for mutating the given optionsrp   rx   rp   rp   rq   Ú_prepare_options  r«   zSyncAPIClient._prepare_optionsrò   rD  c                 C  r�  ©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.
        Nrp   ro  rp   rp   rq   Ú_prepare_request  r‚  zSyncAPIClient._prepare_requestrn  rY  úUnpack[HttpxSendArgs]r  c                K  s   | j j|fd|i|¤ŽS rm  ©rÍ   Úsend©ro   rò   rn  rY  rp   rp   rq   Ú_send_request%  s   zSyncAPIClient._send_requestri  úType[ResponseT]úLiteral[True]Ú
stream_clsúType[_StreamT]rŸ   c                C  r©   rj   rp   ©ro   ri  rg   rn  rè  rp   rp   rq   rò   .  ó   zSyncAPIClient.requestF©rn  úLiteral[False]r&   c                C  r©   rj   rp   ©ro   ri  rg   rn  rp   rp   rq   rò   8  s   ©rn  rè  úType[_StreamT] | NoneúResponseT | _StreamTc                C  r©   rj   rp   rê  rp   rp   rq   rò   A  rë  útype[_StreamT] | Nonec                C  s(  |   ||¡}t|ƒ}|jd u r|j ¡ dkr|  ¡ |_d }| | j¡}|  |¡ d}t	|d ƒD �]N}t|ƒ}|  
|¡}t|ƒ}	|| }
| j||d�}|  |¡ i }|  |j¡}|d urkt| jƒret|ƒnt|ƒ|d< |jd uru|j|d< t dt|jƒ¡ d }z| j|fd|p�| j|d	�i|¤Ž}W n tƒ yË } z+t d
t|ƒj¡ |
dkr¼|	 ¡ r¼| j|||d d� W Y d }~q0t d¡ t|d	�|‚d }~w t yØ } z|‚d }~w t!ƒ �y } z-t dt|ƒj¡ |
dk�r|	 ¡ �r| j|||d d� W Y d }~q0t d¡ t"|d	�|‚d }~ww t dt|jƒ|j#¡ t d|j$ %d¡¡ z| &¡  W nP t'ƒ �y~ } zBt d|j#¡ |
dk�rd|  (|j)¡�rd|	 ¡ �rd|j) *¡  | j||||d� W Y d }~q0|j)j+�sn|j) ,¡  t d¡ |  -|j)¡d ‚d }~ww  |d u�s‰J dƒ‚| j.||||||d�S ©NrI  r   r   r-  Úauthrµ  zSending HTTP Request: %srn  )rò   z#Encountered a timeout exception: %s)r.  rý   rg   r  zRaising timeout errorzEncountered exception: %szRaising connection errorzHTTP Response: %s %izrequest_id: %szx-request-idz$Encountered an HTTP status error: %izRe-raising status errorz0could not resolve response (should never happen))ri  rg   r  rn  rè  r.  )/rl  r9   r7  rJ  r0  r¬  r�  rý   r  ÚrangerÞ  rf   r_  rà  r,  r$  r?   rÍ   r@   rE   rµ  re   rK  rc   rå  rp  r<   r…   r�   r�   Ú_sleep_for_retryr_   r]   r;   r`   r  r3  rI  Úraise_for_statusr:   r©  r  rÂ  r  r|   r!  Ú_process_response)ro   ri  rg   rn  rè  Úinput_optionsr  rý   r.  Úrequest_body_replayrœ  rò   rY  rz  rw  rp   rp   rq   rò   K  sÆ   




ÿý

ÿþ
ýü
€€ü
€óý"
ü


€íúr.  r  úhttpx2.Response | Nonec                C  sb   || }|dkrt  d¡ nt  d|¡ |  |||r|jnd ¡}t  d||d |¡ t |¡ d S ©Nr   z1 retry leftz%i retries leftz/Retrying request in %f seconds (retry %i of %s))re   rK  r¥  r3  rÃ   r•  Úsleep©ro   r.  rý   rg   r  rœ  rþ   rp   rp   rq   rö  Ê  s   zSyncAPIClient._sleep_for_retryr   r-  ú1type[Stream[Any]] | type[AsyncStream[Any]] | Nonec          
      C  s   |j j t¡dkrttt|| |||||d�ƒS t|ƒp|}t 	|¡rVt
|tƒrV|r2t|j j t¡ƒrVt
|tƒsAtdt› d|› �ƒ‚td|ƒ}tt||| t|ƒ||||d�ƒS |tƒ v r`tt|ƒS t|| td|ƒ||||d�}	t|j j t¡ƒr|tt|	ƒS |	 ¡ S )Nr¦  ©ÚrawrÎ   ri  rn  rè  rg   r.  ú!API Response types must subclass ú; Received útype[BaseAPIResponse[Any]]rj  )rò   r3  rI  rU   r   r&   rd   r   rr  rs  rt  rN   r{   rM   rÇ   rP   r=   Úparse©
ro   ri  rg   r  rn  rè  r.  ÚoriginÚresponse_clsÚapi_responserp   rp   rq   rø  Ø  sf   
ùþÿþúú

ùþ

ù	
zSyncAPIClient._process_responserÏ   úType[object]rÙ   úType[SyncPageT]r™   c                   s(   d‡ ‡‡fdd„}|ˆ_ ˆj|ˆdd�S )	Nrî   r™   rh   c                   s   | j ˆˆ ˆd� | S )N)rÎ   rÏ   rg   )rÓ   rï   ©rÏ   rg   ro   rp   rq   rð   "  s   ýz0SyncAPIClient._request_api_list.<locals>._parserFrì  )rî   r™   rh   r™   )rñ   rò   )ro   rÏ   rÙ   rg   rð   rp   r  rq   rã     s   zSyncAPIClient._request_api_list©rg   rn  Úpathr,   c                C  r©   rj   rp   ©ro   r  ri  rg   rn  rp   rp   rq   rI  .  rë  zSyncAPIClient.get©rg   útype[_StreamT]c                C  r©   rj   rp   ©ro   r  ri  rg   rn  rè  rp   rp   rq   rI  8  r‚  ©rg   rè  c                C  r©   rj   rp   r  rp   rp   rq   rI  C  r‚  ©rg   rn  rè  c                C  s.   t jdd|dœ|¤Ž}tt| j||||d�ƒS ©NrI  )rJ  r¤   rï  rp   )rJ   Ú	constructr   r&   rò   ©ro   r  ri  rg   rn  rè  Úoptsrp   rp   rq   rI  N  s   	)r  rm   rg   rv   rn  r  úBody | Nonerm   úBinaryTypes | Nonerv   úRequestFiles | Nonec                C  r©   rj   rp   )ro   r  ri  r  rm   rg   rv   rn  rp   rp   rq   Úpost\  s   zSyncAPIClient.post)r  rm   rg   rv   c          	      C  r©   rj   rp   ©	ro   r  ri  r  rm   rg   rv   rn  rè  rp   rp   rq   r  i  ó   )r  rm   rg   rv   rè  c          	      C  r©   rj   rp   r  rp   rp   rq   r  w  r  )r  rm   rg   rv   rn  rè  c          
      C  s‚   |d ur|d urt dƒ‚|d ur|d urt dƒ‚t|tƒr%tjdtdd� tjd	d|||t|ƒdœ|¤Ž}	t	t
| j||	||d�ƒS ©
Nú2Passing both `body` and `content` is not supportedú3Passing both `files` and `content` is not supportedú�Passing raw bytes as `body` is deprecated and will be removed in a future version. Please pass raw bytes via the `content` parameter instead.é   ©Ú
stacklevelr  ©rJ  r¤   rÈ   rm   rv   rï  rp   )rÇ   r€   r�   ÚwarningsÚwarnÚDeprecationWarningrJ   r  r   r   r&   rò   )
ro   r  ri  r  rm   rg   rv   rn  rè  r  rp   rp   rq   r  …  s    
üÿÿ©r  rm   rv   rg   c                C  óv   |d ur|d urt dƒ‚|d ur|d urt dƒ‚t|tƒr%tjdtdd� tjdd|||t|ƒdœ|¤Ž}|  	||¡S ©	Nr   r!  r"  r#  r$  Úpatchr&  rp   ©
rÇ   r€   r�   r'  r(  r)  rJ   r  r   rò   ©ro   r  ri  r  rm   rv   rg   r  rp   rp   rq   r-  ¡  ó    

üÿÿzSyncAPIClient.patchc                C  r+  ©	Nr   r!  r"  r#  r$  Úputr&  rp   r.  r/  rp   rp   rq   r2  »  r0  zSyncAPIClient.put©r  rm   rg   c                C  sX   |d ur|d urt dƒ‚t|tƒrtjdtdd� tjdd|||dœ|¤Ž}|  ||¡S ©Nr   r"  r#  r$  Údelete)rJ  r¤   rÈ   rm   rp   ©	rÇ   r€   r�   r'  r(  r)  rJ   r  rò   ©ro   r  ri  r  rm   rg   r  rp   rp   rq   r5  Õ  s   	
üzSyncAPIClient.deleterI  ©r  rg   rJ  rJ  c                C  ó&   t jd|||dœ|¤Ž}|  |||¡S ©N)rJ  r¤   rÈ   rp   ©rJ   r  rã   ©ro   r  rÏ   rÙ   r  rg   rJ  r  rp   rp   rq   Úget_api_listê  ó   
zSyncAPIClient.get_api_list)r  r­   r  r  rý   rŠ   rþ   rÉ  rÈ  rÊ  r  r	  r  r
  rÿ   r{   rh   ri   rŽ   rÄ  ©ro   rœ   rh   rœ   ©rÔ  rÕ  rÖ  r×  rØ  rÙ  rh   ri   ©rg   rJ   rh   rJ   ©rò   rD  rh   ri   ©rò   rD  rn  r{   rY  rá  rh   r  )
ri  ræ  rg   rJ   rn  rç  rè  ré  rh   rŸ   ©ri  ræ  rg   rJ   rn  rí  rh   r&   )
ri  ræ  rg   rJ   rn  r{   rè  rð  rh   rñ  )
ri  ræ  rg   rJ   rn  r{   rè  rò  rh   rñ  ©
r.  rŠ   rý   rŠ   rg   rJ   r  rû  rh   ri   ©ri  ræ  rg   rJ   r  r  rn  r{   rè  rÿ  r.  rŠ   rh   r&   )rÏ   r
  rÙ   r  rg   rJ   rh   r™   ©
r  r­   ri  ræ  rg   r,   rn  rí  rh   r&   )r  r­   ri  ræ  rg   r,   rn  rç  rè  r  rh   rŸ   )r  r­   ri  ræ  rg   r,   rn  r{   rè  rò  rh   rñ  )r  r­   ri  ræ  r  r  rm   r  rg   r,   rv   r  rn  rí  rh   r&   )r  r­   ri  ræ  r  r  rm   r  rg   r,   rv   r  rn  rç  rè  r  rh   rŸ   )r  r­   ri  ræ  r  r  rm   r  rg   r,   rv   r  rn  r{   rè  rò  rh   rñ  )r  r­   ri  ræ  r  r  rm   r  rv   r  rg   r,   rh   r&   )r  r­   ri  ræ  r  r  rm   r  rg   r,   rh   r&   )r  r­   rÏ   r
  rÙ   r  r  r  rg   r,   rJ  r­   rh   r™   )r�   r�   r‘   r³   r  rS   r0   ry   r  rÂ  rÓ  rÜ  rÞ  rà  rå  r   rò   rö  rø  rã   rI  r  r-  r2  r5  r=  r¾  rp   rp   rº  rq   rÌ   Ã  s¸   
 ÷
4






		ûúú
ø
Dú	û
ùù÷øöö!øøùørÌ   c                      r°  )Ú_DefaultAsyncHttpxClientrY  r   rh   ri   c                   r²  r³  r¶  r¹  rº  rp   rq   ry   ù  r»  z!_DefaultAsyncHttpxClient.__init__r¼  r½  rp   rp   rº  rq   rH  ø  r¿  rH  ztype[httpx2.AsyncClient]Ú_DefaultAioHttpClient)ÚHttpx2AiohttpClientc                   @  s   e Zd Zddd„ZdS )	Ú_MissingAioHttpClientÚ_kwargsr   rh   ri   c                 K  s   t dƒ‚)NzVTo use the aiohttp client you must have installed the package with the `aiohttp` extra)râ   )ro   rL  rp   rp   rq   ry     rÐ  z_MissingAioHttpClient.__init__N)rL  r   rh   ri   )r�   r�   r‘   ry   rp   rp   rp   rq   rK    rÆ  rK  c                      r°  )Ú_InstalledAioHttpClientrY  r   rh   ri   c                   r²  r³  r¶  r¹  rº  rp   rq   ry     r»  z _InstalledAioHttpClient.__init__r¼  r½  rp   rp   rº  rq   rM    r¿  rM  c                   @  rÀ  )ÚAsyncHttpxClientWrapperrh   ri   c                 C  s8   | j rd S zt ¡  |  ¡ ¡ W d S  ty   Y d S w rj   )r  ÚasyncioÚget_running_loopÚcreate_taskÚacloser  rn   rp   rp   rq   rÃ  (  s   ÿzAsyncHttpxClientWrapper.__del__NrÄ  rÅ  rp   rp   rp   rq   rN  '  rÆ  rN  c                      s  e Zd ZU ded< dZded< eeddddœdƒ‡ fdd„Zd„dd„Zd…dd„Z	d†d!d"„Z
d‡d)d*„Zdˆd-d.„Zd‰d1d2„ZdŠd7d8„Zed9d:œd‹d?d@„ƒZedŒdEd@„ƒZeddFœd�dId@„ƒZd9ddJœd�dKd@„ZdŽdOdP„ZdQdRœd�dTdU„Zd�d[d\„Zei d9d]œd‘d`da„ƒZei dbœd’dcda„ƒZei dddœd“deda„ƒZi d9ddfœd“dgda„Zedddi d9dhœd”dodp„ƒZedddi dqœd•drdp„ƒZedddi ddsœd–dtdp„ƒZdddi d9dduœd–dvdp„Zdddi dqœd—dwdx„Zdddi dqœd—dydz„Zddi d{œd˜d|d}„Zdi d~dœd™d�d‚„Z‡  ZS )šrç   zhttpx2.AsyncClientrÍ   Nztype[AsyncStream[Any]] | Noner  rÇ  r  r­   r  r  rÿ   r{   rý   rŠ   rþ   rÉ  rÈ  úhttpx2.AsyncClient | Noner  r	  r  r
  rh   ri   c          
   	     s–   t |ƒs|rt|jƒnd }	|r|	tkr|	}nt}|d ur-t|ƒs-t|ƒs-tdt|ƒ› �ƒ‚t	ƒ j
||tt|ƒ||||d� |pGt|tt|ƒd�| _d S )NzlInvalid `http_client` argument; Expected an instance of `httpx.AsyncClient` or `httpx2.AsyncClient` but got )r  r  rþ   rý   r  r  rÿ   rË  )r5   rB   rþ   rÌ  rQ   rA   rF   rÇ   r…   r¸  ry   r   r$   rN  rÍ   )
ro   r  r  rÿ   rý   rþ   rÈ  r  r  rÍ  rº  rp   rq   ry   7  s8   ÿþÿÿø
ýzAsyncAPIClient.__init__c                 C  rÎ  rj   rÏ  rn   rp   rp   rq   r  k  rÐ  zAsyncAPIClient.is_closedc                 Ã  s   �| j  ¡ I dH  dS )rÑ  N)rÍ   rR  rn   rp   rp   rq   rÂ  n  s   €zAsyncAPIClient.closero   rœ   c                 Ã  s   �| S rj   rp   rn   rp   rp   rq   Ú
__aenter__u  s   €zAsyncAPIClient.__aenter__rÔ  rÕ  rÖ  r×  rØ  rÙ  c                 Ã  s   �|   ¡ I d H  d S rj   rÚ  rÛ  rp   rp   rq   Ú	__aexit__x  s   €zAsyncAPIClient.__aexit__rg   rJ   c                 Ã  s   �|S rÝ  rp   rx   rp   rp   rq   rÞ  €  s   €zAsyncAPIClient._prepare_optionsrò   rD  c                 Ã  s   �dS rß  rp   ro  rp   rp   rq   rà  ‡  ó   €	zAsyncAPIClient._prepare_requestrn  rY  rá  r  c                Ë  s    �| j j|fd|i|¤ŽI d H S rm  râ  rä  rp   rp   rq   rå  ’  s   €zAsyncAPIClient._send_requestFrì  ri  ræ  rí  r&   c                Ã  ó   �d S rj   rp   rî  rp   rp   rq   rò   ›  s   €zAsyncAPIClient.requestrç  rè  útype[_AsyncStreamT]r    c                Ã  rW  rj   rp   rê  rp   rp   rq   rò   ¤  ó   €)rè  útype[_AsyncStreamT] | NoneúResponseT | _AsyncStreamTc                Ã  rW  rj   rp   rê  rp   rp   rq   rò   ®  rY  rï  c                Ã  sv  �| j d u rttƒƒ I d H | _ |  ||¡}t|ƒ}|jd u r*|j ¡ dkr*|  ¡ |_d }| 	| j
¡}|  |¡ d}t|d ƒD �]c}t|ƒ}|  |¡I d H }t|ƒ}	|| }
| j||d�}|  |¡I d H  i }| jd ur}t| jƒrvt| jƒnt| jƒ|d< |jd ur‡|j|d< t dt|jƒ¡ d }z| j|fd|pŸ| j|d	�i|¤ŽI d H }W n… tƒ yã } z.t d
t|ƒj¡ |
dkrÔ|	 ¡ rÔ| j |||d d�I d H  W Y d }~q?t d¡ t!|d	�|‚d }~w t"yð } z|‚d }~w t#ƒ �y- } z0t dt|ƒj¡ |
dk�r|	 ¡ �r| j |||d d�I d H  W Y d }~q?t d¡ t$|d	�|‚d }~ww t dt|jƒ|j%¡ t d|j& 'd¡¡ z| (¡  W nY t)ƒ �y¢ } zKt d|j%¡ |
dk�r…|  *|j+¡�r…|	 ¡ �r…|j+ ,¡ I d H  | j ||||d�I d H  W Y d }~q?|j+j-�s’|j+ .¡ I d H  t d¡ |  /|j+¡d ‚d }~ww  |d u�s­J dƒ‚| j0||||||d�I d H S ró  )1r  r4   Úget_platformrl  r9   r7  rJ  r0  r¬  r�  rý   r  rõ  rÞ  rf   r_  rà  rz  rA   rÍ   r@   rE   rµ  re   rK  rc   rå  rp  r<   r…   r�   r�   rö  r_   r]   r;   r`   r  r3  rI  r÷  r:   r©  r  rR  r  Úareadr!  rø  )ro   ri  rg   rn  rè  rù  r  rý   r.  rú  rœ  rò   rY  rw  rp   rp   rq   rò   ¸  sÊ   €



ÿý

ÿþýü
€€ü
€óý"ü

€íúr.  r  rû  c                Ã  sj   �|| }|dkrt  d¡ nt  d|¡ |  |||r|jnd ¡}t  d||d |¡ t |¡I d H  d S rü  )re   rK  r¥  r3  rÃ   Úanyiorý  rþ  rp   rp   rq   rö  ;  s   €zAsyncAPIClient._sleep_for_retryr   r-  rÿ  c          
      Ã  s  �|j j t¡dkrttt|| |||||d�ƒS t|ƒp|}t 	|¡rWt
|tƒrW|r3t|j j t¡ƒrWt
|tƒsBtdt› d|› �ƒ‚td|ƒ}td||| t|ƒ||||d�ƒS |tƒ v ratt|ƒS t|| td|ƒ||||d�}	t|j j t¡ƒr}tt|	ƒS |	 ¡ I d H S )Nr¦  r   r  r  r  r&   rj  )rò   r3  rI  rU   r   r&   rd   r   rr  rs  rt  rN   r{   rO   rÇ   rP   r=   r  r  rp   rp   rq   rø  I  sh   €
ùþÿþúú

ùþ

ù	
z AsyncAPIClient._process_responserÏ   r¶   rÙ   ré   úAsyncPaginator[_T, AsyncPageT]c                 C  s   t | |||d�S )N)rÎ   rg   rè   rÏ   )ræ   )ro   rÏ   rÙ   rg   rp   rp   rq   rã   �  s   z AsyncAPIClient._request_api_listr  r  r,   c                Ã  rW  rj   rp   r  rp   rp   rq   rI  •  rY  zAsyncAPIClient.getr  c                Ã  rW  rj   rp   r  rp   rp   rq   rI  Ÿ  rV  r  c                Ã  rW  rj   rp   r  rp   rp   rq   rI  ª  rV  r  c                Ã  s0   �t jdd|dœ|¤Ž}| j||||d�I d H S r  )rJ   r  rò   r  rp   rp   rq   rI  µ  s   €	)r  rm   rv   rg   rn  r  r  rm   úAsyncBinaryTypes | Nonerv   r  c                Ã  rW  rj   rp   )ro   r  ri  r  rm   rv   rg   rn  rp   rp   rq   r  Á  s   €zAsyncAPIClient.postr*  c          	      Ã  rW  rj   rp   ©	ro   r  ri  r  rm   rv   rg   rn  rè  rp   rp   rq   r  Î  ó   €)r  rm   rv   rg   rè  c          	      Ã  rW  rj   rp   ra  rp   rp   rq   r  Ü  rb  )r  rm   rv   rg   rn  rè  c          
      Ã  sŠ   �|d ur|d urt dƒ‚|d ur|d urt dƒ‚t|tƒr&tjdtdd� tjd	d|||t|ƒI d H dœ|¤Ž}	| j	||	||d�I d H S r  ©
rÇ   r€   r�   r'  r(  r)  rJ   r  r   rò   )
ro   r  ri  r  rm   rv   rg   rn  rè  r  rp   rp   rq   r  ê  s"   €
üÿÿc                Ã  ó„   �|d ur|d urt dƒ‚|d ur|d urt dƒ‚t|tƒr&tjdtdd� tjdd|||t|ƒI d H dœ|¤Ž}|  	||¡I d H S r,  rc  r/  rp   rp   rq   r-    s*   €

üûúzAsyncAPIClient.patchc                Ã  rd  r1  rc  r/  rp   rp   rq   r2  %  s"   €

üÿÿzAsyncAPIClient.putr3  c                Ã  s`   �|d ur|d urt dƒ‚t|tƒrtjdtdd� tjdd|||dœ|¤Ž}|  ||¡I d H S r4  r6  r7  rp   rp   rq   r5  ?  s   €	
üzAsyncAPIClient.deleterI  r8  rJ  c                C  r9  r:  r;  r<  rp   rp   rq   r=  T  r>  zAsyncAPIClient.get_api_list)r  r­   r  r  rÿ   r{   rý   rŠ   rþ   rÉ  rÈ  rS  r  r	  r  r
  rh   ri   rŽ   rÄ  r?  r@  rA  rB  rC  rD  )
ri  ræ  rg   rJ   rn  rç  rè  rX  rh   r    )
ri  ræ  rg   rJ   rn  r{   rè  rZ  rh   r[  rE  rF  )rÏ   r¶   rÙ   ré   rg   rJ   rh   r_  rG  )r  r­   ri  ræ  rg   r,   rn  rç  rè  rX  rh   r    )r  r­   ri  ræ  rg   r,   rn  r{   rè  rZ  rh   r[  )r  r­   ri  ræ  r  r  rm   r`  rv   r  rg   r,   rn  rí  rh   r&   )r  r­   ri  ræ  r  r  rm   r`  rv   r  rg   r,   rn  rç  rè  rX  rh   r    )r  r­   ri  ræ  r  r  rm   r`  rv   r  rg   r,   rn  r{   rè  rZ  rh   r[  )r  r­   ri  ræ  r  r  rm   r`  rv   r  rg   r,   rh   r&   )r  r­   ri  ræ  r  r  rm   r`  rg   r,   rh   r&   )r  r­   rÏ   r¶   rÙ   ré   r  r  rg   r,   rJ  r­   rh   r_  )r�   r�   r‘   r³   r  rS   r0   ry   r  rÂ  rT  rU  rÞ  rà  rå  r   rò   rö  rø  rã   rI  r  r-  r2  r5  r=  r¾  rp   rp   rº  rq   rç   3  s¸   
 ö
4





	û	úú 
ø
Dú	û
ùù÷øöö!ø$øùørç   )	rS  Úextra_headersÚextra_queryÚ
extra_bodyr7  rþ   rñ   r$  Úsynthesize_event_and_datarS  úQuery | Nonere  úHeaders | Nonerf  rg  r  r7  r   rþ   ú(float | httpx2.Timeout | None | NotGivenrñ   úPostParser | NotGivenr$  úSecurityOptions | Nonerh  úbool | Noner,   c        	   
      C  s°   i }	|dur
||	d< |durt t|ƒ|	d< | dur| |	d< |dur-i |	 di ¡¥|¥|	d< t|tƒs6||	d< |dur>||	d< t|ƒrF||	d< |durN||	d< |durV||	d	< |	S )
zECreate a dict of type RequestOptions without keys of NotGiven values.Nr3  rL  r¦   rþ   r7  rñ   r$  rh  )r   r'   rI  r€   r%   r5   )
rS  re  rf  rg  r7  rþ   rñ   r$  rh  rg   rp   rp   rq   Úmake_request_optionsb  s(   
ro  c                   @  rÀ  )rR  rh   r{   c                 C  r�  )NTrp   rn   rp   rp   rq   Ú__bool__�  r½   zForceMultipartDict.__bool__NrŽ   )r�   r�   r‘   rp  rp   rp   rp   rq   rR  �  rÆ  rR  c                   @  ó$   e Zd Zd
dd„Zeddd„ƒZd	S )ÚOtherPlatformÚnamer­   rh   ri   c                 C  ó
   || _ d S rj   ©rs  ©ro   rs  rp   rp   rq   ry   •  ó   
zOtherPlatform.__init__c                 C  ó   d| j › �S )NzOther:ru  rn   rp   rp   rq   Ú__str__˜  ó   zOtherPlatform.__str__N©rs  r­   rh   ri   r±   ©r�   r�   r‘   ry   r   ry  rp   rp   rp   rq   rr  ”  ó    
rr  )ÚMacOSÚLinuxÚWindowsÚFreeBSDÚOpenBSDÚiOSÚAndroidÚUnknownÚPlatformc                  C  sæ   zt  ¡  ¡ } t   ¡  ¡ }W n
 ty   Y dS w d|v s!d|v r#dS | dkr)dS | dkr/dS d	|v r5d
S | dkr;dS | dkrAdS | dkrkzt  ¡  dd¡ ¡ }W n ty\   d}Y nw |dkrcdS |dkridS dS |rqt|ƒS dS )Nr…  ÚiphoneÚipadrƒ  Údarwinr~  Úwindowsr€  Úandroidr„  Úfreebsdr�  Úopenbsdr‚  ÚlinuxÚIDÚ r  )r†  Úsystemr0  r  Úfreedesktop_os_releaserI  rˆ   rr  )r‘  Úplatform_nameÚ	distro_idrp   rp   rq   r\  ¬  s@   ÿþr\  )Úmaxsizer  r­   r†  úPlatform | Noner…  c                C  s&   d| t |ptƒ ƒt tƒ ƒtƒ tƒ dœS )NÚpython)zX-Stainless-LangzX-Stainless-Package-VersionzX-Stainless-OSzX-Stainless-ArchzX-Stainless-RuntimezX-Stainless-Runtime-Version)r­   r\  Úget_architectureÚget_python_runtimeÚget_python_version)r  r†  rp   rp   rq   r€  ß  s   úr€  c                   @  rq  )Ú	OtherArchrs  r­   rh   ri   c                 C  rt  rj   ru  rv  rp   rp   rq   ry   ì  rw  zOtherArch.__init__c                 C  rx  )Nzother:ru  rn   rp   rp   rq   ry  ï  rz  zOtherArch.__str__Nr{  r±   r|  rp   rp   rp   rq   r›  ë  r}  r›  )Úx32Úx64ÚarmÚarm64Úunknownc                   C  ó    zt  ¡ W S  ty   Y dS w ©Nr   )r†  Úpython_implementationr  rp   rp   rp   rq   r™  ÷  ó
   
ÿr™  c                   C  r¡  r¢  )r†  Úpython_versionr  rp   rp   rp   rq   rš  þ  r¤  rš  ÚArchc                  C  sh   zt  ¡  ¡ } W n
 ty   Y dS w | dv rdS | dkrdS | dkr%dS tjdkr,dS | r2t| ƒS dS )	Nr   )rŸ  Úaarch64rŸ  rž  Úx86_64r�  l        rœ  )r†  Úmachiner0  r  Úsysr•  r›  )r©  rp   rp   rq   r˜  	  s    ÿ
r˜  Úobj1úMapping[_T_co, Union[_T, Omit]]Úobj2úDict[_T_co, _T]c                 C  s   i | ¥|¥}dd„ |  ¡ D ƒS )z¢Merge 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                 S  s    i | ]\}}t |tƒs||“qS rp   )r€   r!   )rl   rf  rg  rp   rp   rq   Ú
<dictcomp>(	  s     z#_merge_mappings.<locals>.<dictcomp>)r”   )r«  r­  Úmergedrp   rp   rq   rM  	  s   rM  Úmappingsr#   r%  c                  G  s^   i }| D ]!}|  ¡ D ]\}}| ¡ }t|tƒr| |d¡ q
||f||< q
qdd„ | ¡ D ƒS )zHMerge headers case-insensitively, with later mappings taking precedence.Nc                 S  s   i | ]\}}||“qS rp   rp   )rl   rs  rg  rp   rp   rq   r¯  6	  s    z"_merge_headers.<locals>.<dictcomp>)r”   r0  r€   r!   rP  Úvalues)r±  r°  Úmappingrs  rg  Únormalized_namerp   rp   rq   r4  +	  s   
ûr4  )rv   r’   rh   r“   )rS  ri  re  rj  rf  ri  rg  r  r7  r   rþ   rk  rñ   rl  r$  rm  rh  rn  rh   r,   )rh   r†  )r  r­   r†  r–  rh   r…  r±   )rh   r¦  )r«  r¬  r­  r¬  rh   r®  )r±  r#   rh   r%  )¹Ú
__future__r   rª  r¨   r�  r•  rª  r�  rO  rr  Úloggingr†  r'  Úemail.utilsÚtypesr   r   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Útyping_extensionsr   r   r   r   r^  r¿   rå   r   r   r�  r   Ú_qsr   Ú_filesr   r   Ú_typesr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   Ú_utilsr1   r2   r3   r4   r5   r6   r7   Ú_compatr8   r9   Ú_httpx2r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   Ú_modelsrH   rI   rJ   rK   rL   Ú	_responserM   rN   rO   rP   Ú
_constantsrQ   rR   rS   rT   rU   rV   rW   rX   Ú
_streamingrY   rZ   r[   r\   r]   r^   r_   r`   ra   Ú_utils._jsonrb   Ú_utils._logsrc   Ú_legacy_responserd   Ú	getLoggerr�   re   r³   Ú	addFilterrf   ru   r™   r›   rœ   r�   rŸ   r    Úhttpx2._configr¡   rÌ  ÚImportErrorr¢   r´   rË   ræ   rö   ÚClientÚAsyncClientrø   rù   rú   r±  ÚDefaultHttpxClientrÁ  rÌ   rH  Ú_vendor.httpx_aiohttprJ  rK  rI  rM  ÚDefaultAsyncHttpxClientÚDefaultAioHttpClientrN  rç   ro  r­   rR  rr  r†  r\  r€  r›  r¦  r™  rš  r˜  rM  r4  rp   rp   rp   rq   Ú<module>   s   DL$@(

/þ3=1')   k    9ú	    5ö-	ÿÿÿ
3	



