o
    ØRWj×+ ã                
   @  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mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$ d dl%Z%d dl&Z&d dl'Z'd dl(Z(d dl&m)Z) d dl(m*Z* d	d
l+m,Z, d	dl-m.Z. d	dl/m0Z0m1Z1 d	dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d	dlDmEZEmFZFmGZGmHZHmIZImJZJmKZK d	dlLmMZMmNZNmOZO d	dlPmQZQmRZRmSZSmTZTmUZU d	dlVmWZWmXZXmYZYmZZZ d	dl[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZb d	dlcmdZdmeZemfZfmgZg d	dl,mhZhmiZimjZjmkZkmlZl d	dlmmnZn d	dlompZp e	 qer¡Zsdetd< es ueEƒ ¡ eddd�Zveddd�ZwedƒZxedd d!�Zyed"ede d�Zzed#efe d�Z{e�rrd d$l|m}Z} e}Z~nzd d$l|m}Z~ W n e�yˆ   e7d%ƒZ~Y nw G d&d'„ d'ƒZ€G d(d)„ d)eQeex ƒZ�G d*d+„ d+e�ex eex ƒZ‚G d,d-„ d-eexewf ƒZƒG d.d/„ d/e�ex eex ƒZ„ed0ee&j…e&j†f d�Z‡ed1eede efe f d�ZˆG d2d3„ d3ee‡eˆf ƒZ‰G d4d5„ d5e&j…ƒZŠe�r÷e&j…Z‹neŠZ‹G d6d7„ d7e‹ƒZŒG d8d9„ d9e‰e&j…ede f ƒZ�G d:d;„ d;e&j†ƒZŽzd dl�Z�W n e�y2   G d<d=„ d=e&j†ƒZ�Y n
w G d>d=„ d=e�j‘ƒZ�e�rGe&j†Z’	 e&j†Z“neŽZ’e�Z“G d?d@„ d@e’ƒZ”G dAdB„ dBe‰e&j†efe f ƒZ•dddddeCeCdddCœ	dydWdX„Z–G dYdZ„ dZee—df ƒZ˜G d[d\„ d\ƒZ™ee™e"d] f Zšdzd_d`„Z›eJdda�d{dgdh„ƒZœG didj„ djƒZ�ee�e"dk f Zžd|dldm„ZŸd|dndo„Z d}dqdr„Z¡d~dwdx„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Ú
model_dump)ÚGenericModelÚSecurityOptionsÚFinalRequestOptionsÚvalidate_typeÚconstruct_type)ÚAPIResponseÚBaseAPIResponseÚAsyncAPIResponseÚextract_response_type)ÚDEFAULT_TIMEOUTÚMAX_RETRY_DELAYÚDEFAULT_MAX_RETRIESÚINITIAL_RETRY_DELAYÚRAW_RESPONSE_HEADERÚOVERRIDE_CAST_TO_HEADERÚDEFAULT_CONNECTION_LIMITS)ÚStreamÚ
SSEDecoderÚAsyncStreamÚSSEBytesDecoder)ÚOpenAIErrorÚAPIStatusErrorÚAPITimeoutErrorÚAPIConnectionErrorÚAPIResponseValidationError)Úopenapi_dumps)ÚLegacyAPIResponsezlogging.LoggerÚlogÚ	SyncPageTzBaseSyncPage[Any])ÚboundÚ
AsyncPageTzBaseAsyncPage[Any]Ú_TÚ_T_coT)Ú	covariantÚ_StreamTÚ_AsyncStreamT)ÚDEFAULT_TIMEOUT_CONFIGg      @c                   @  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   ÚreturnÚNonec                C  ó   d S ©N© ©Úselfrb   rk   rk   úb/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/openai/_base_client.pyÚ__init__ƒ   ó   zPageInfo.__init__r"   c                C  ri   rj   rk   )rm   rd   rk   rk   rn   ro   Š   rp   r    c                C  ri   rj   rk   )rm   rf   rk   rk   rn   ro   ‘   rp   ©rb   rf   rd   c                C  s   || _ || _|| _d S rj   rq   )rm   rb   rf   rd   rk   rk   rn   ro   ˜   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=)rb   Ú	__class__Ú__name__rf   rd   ©rm   rk   rk   rn   Ú__repr__£   s
   zPageInfo.__repr__N)rb   r   rg   rh   )rd   r"   rg   rh   )rf   r    rg   rh   )rb   ra   rf   re   rd   rc   rg   rh   ©rg   rr   )
ru   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   ro   r0   r   rw   rk   rk   rk   rn   r`   y   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
    r=   Ú_optionsúType[_T]Ú_modelrg   Úboolc                 C  s   |   ¡ }|sdS |  ¡ d uS )NF)Ú_get_page_itemsÚnext_page_info)rm   Úitemsrk   rk   rn   Úhas_next_page»   s   zBasePage.has_next_pageúOptional[PageInfo]c                 C  ri   rj   rk   rv   rk   rk   rn   rƒ   Á   s    zBasePage.next_page_infoúIterable[_T]c                 C  ri   rj   rk   rv   rk   rk   rn   r‚   Ã   ó   zBasePage._get_page_itemsrb   r   úhttpx.QueryParamsc                 C  s   t  tt| jjƒ¡ |j¡S rj   )ÚhttpxÚQueryParamsr   r   r~   rd   Úmergerl   rk   rk   rn   Ú_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)rd   z*Pagination is only supported with mappingszUnexpected PageInfo state)r9   r~   Ú_strip_raw_response_headerÚ
isinstancerd   r%   rb   r�   Ú	copy_withÚdictrr   rf   r7   Ú	TypeErrorÚ	json_dataÚ
ValueError)rm   rŽ   Úoptionsrd   rb   rk   rk   rn   Ú_info_to_optionsÊ   s,   



üzBasePage._info_to_optionsN©rg   r�   )rg   r†   )rg   r‡   )rb   r   rg   r‰   )rŽ   r`   rg   r=   )ru   ry   rz   r{   r   r~   r|   r€   r…   rƒ   r‚   r�   r—   rk   rk   rk   rn   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   r–   r=   rg   rh   c                 C  s0   t st| dd ƒd u ri | _|| _|| _|| _d S ©NÚ__pydantic_private__©r8   Úgetattrr    r€   rœ   r~   )rm   r�   rž   r–   rk   rk   rn   Ú_set_private_attributesì   ó
   
z$BaseSyncPage._set_private_attributesúIterator[_T]c                 c  s(   � |   ¡ D ]}| ¡ D ]}|V  qqd S rj   ©Ú
iter_pagesr‚   ©rm   ÚpageÚitemrk   rk   rn   Ú__iter__  s   €ÿÿzBaseSyncPage.__iter__rm   rW   úIterator[SyncPageT]c                 c  s&   � | }	 |V  |  ¡ r| ¡ }nd S qrj   ©r…   Úget_next_page©rm   r©   rk   rk   rn   r§     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©   r–   ©rƒ   ÚRuntimeErrorr—   rœ   Ú_request_api_listr€   rt   ©rm   rŽ   r–   rk   rk   rn   r®     s   ÿ
zBaseSyncPage.get_next_pageN)r�   r›   rž   r   r–   r=   rg   rh   )rg   r¥   )rm   rW   rg   r¬   )rm   rW   rg   rW   )ru   ry   rz   Úpydanticr   rœ   r|   r£   r«   r§   r®   rk   rk   rk   rn   rš   é   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�   ÚAsyncAPIClientr–   r=   Úpage_clsúType[AsyncPageT]rž   r   rg   rh   c                 C  s   || _ || _|| _|| _d S rj   )r€   rœ   r~   Ú	_page_cls)rm   r�   r–   r¸   rž   rk   rk   rn   ro     s   
zAsyncPaginator.__init__ú Generator[Any, None, AsyncPageT]c                 C  s   |   ¡  ¡ S rj   )Ú	_get_pageÚ	__await__rv   rk   rk   rn   r½   '  s   zAsyncPaginator.__await__rY   c                 ƒ  s0   �d‡ fdd„}|ˆ j _ˆ j ˆ jˆ j ¡I d H S )NÚresprY   rg   c                   s   | j ˆ jˆ jˆ jd� | S )N)rž   r–   r�   )r£   r€   r~   rœ   ©r¾   rv   rk   rn   Ú_parser+  s   ýz)AsyncPaginator._get_page.<locals>._parser)r¾   rY   rg   rY   )r~   Úpost_parserrœ   Úrequestrº   )rm   rÀ   rk   rv   rn   r¼   *  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   rY   r¨   rk   rk   rn   Ú	__aiter__7  s   €þÿzAsyncPaginator.__aiter__N)
r�   r·   r–   r=   r¸   r¹   rž   r   rg   rh   )rg   r»   )rg   rY   ©rg   rÃ   )ru   ry   rz   ro   r½   r¼   rÄ   rk   rk   rk   rn   r¶     s
    


r¶   c                   @  r™   )ÚBaseAsyncPager·   rœ   rž   r   r�   r–   r=   rg   rh   c                 C  s0   t st| dd ƒd u ri | _|| _|| _|| _d S rŸ   r¡   )rm   rž   r�   r–   rk   rk   rn   r£   D  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¨   rk   rk   rn   rÄ   Q  s   €ÿÿzBaseAsyncPage.__aiter__rm   rY   úAsyncIterator[AsyncPageT]c                 C s,   �| }	 |V  |  ¡ r| ¡ I d H }nd S qrj   r­   r¯   rk   rk   rn   r§   V  s   €ûzBaseAsyncPage.iter_pagesc                 Ã  s<   �|   ¡ }|stdƒ‚|  |¡}| jj| j| j|d�I d H S r°   r±   r´   rk   rk   rn   r®   _  s   €ÿ
zBaseAsyncPage.get_next_pageN)rž   r   r�   r·   r–   r=   rg   rh   rÅ   )rm   rY   rg   rÇ   )rm   rY   rg   rY   )ru   ry   rz   rµ   r   rœ   r|   r£   rÄ   r§   r®   rk   rk   rk   rn   rÆ   A  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!	d”d–dvdw„Z"d—dxdy„Z#d�dzd{„Z$dS )˜Ú
BaseClientrÈ   rœ   rr   Ú_versionr   Ú	_base_urlÚintÚmax_retrieszUnion[float, Timeout, None]Útimeoutr�   Ú_strict_response_validationú
str | NoneÚ_idempotency_headerNztype[_DefaultStreamT] | NoneÚ_default_stream_cls)rÎ   rÏ   Úcustom_headersÚcustom_queryÚversionÚbase_urlú	str | URLúfloat | Timeout | NonerÔ   úMapping[str, str] | NonerÕ   úMapping[str, object] | Nonerg   rh   c                C  s\   || _ |  t|ƒ¡| _|| _|| _|pi | _|pi | _|| _d | _	d | _
|d u r,tdƒ‚d S )NzÏmax_retries cannot be None. If you want to disable retries, pass `0`; if you want unlimited retries, pass `math.inf` or a very high number; if you want the default behavior, pass `openai.DEFAULT_MAX_RETRIES`)rË   Ú_enforce_trailing_slashr   rÌ   rÎ   rÏ   Ú_custom_headersÚ_custom_queryrÐ   rÒ   Ú	_platformr“   )rm   rÖ   r×   rÐ   rÎ   rÏ   rÔ   rÕ   rk   rk   rn   ro   x  s   

ÿÿzBaseClient.__init__rb   c                 C  s"   |j  d¡r|S |j|j d d�S )Nó   /©Úraw_path)râ   Úendswithr‘   rl   rk   rk   rn   rÜ   ’  s   z"BaseClient._enforce_trailing_slashÚresponseúhttpx.ResponserP   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Ústriprf   ÚloadsÚ	ExceptionÚ_make_status_error)rm   rä   ræ   Úerr_msgÚerr_textrk   rk   rn   Ú _make_status_error_from_response—  s   

ÿz+BaseClient._make_status_error_from_responserï   ræ   Úobjectú_exceptions.APIStatusErrorc                C  s   t ƒ ‚rj   )ÚNotImplementedError)rm   rï   ræ   rä   rk   rk   rn   rî   ­  s   zBaseClient._make_status_errorÚsecurityr<   údict[str, str]c                 C  ó   i S rj   rk   ©rm   rõ   rk   rk   rn   Ú_auth_headers¶  ó   zBaseClient._auth_headersc                 C  r÷   rj   rk   rø   rk   rk   rn   Ú_auth_query¼  rú   zBaseClient._auth_queryúhttpx.Auth | Nonec                 C  ri   rj   rk   rø   rk   rk   rn   Ú_custom_authÂ  rú   zBaseClient._custom_authr   ©Úretries_takenr–   r=   rÿ   úhttpx.Headersc          	      C  sÈ   |j pi }ti |  |j¡¥| j¥|ƒ}|  ||¡ t |¡}| j}|r/|j	r/||vr/|j	||< dd„ |D ƒ}d|vr@t
|ƒ|d< d|vrbt|jtƒrM| jn|j}t|tƒrX|j}|d urbt
|ƒ|d< |S )Nc                 S  s   g | ]}|  ¡ ‘qS rk   )Úlower)Ú.0Úheaderrk   rk   rn   Ú
<listcomp>Ö  s    z-BaseClient._build_headers.<locals>.<listcomp>zx-stainless-retry-countzx-stainless-read-timeout)ÚheadersÚ_merge_mappingsrù   rõ   Údefault_headersÚ_validate_headersrŠ   r#   rÒ   Úidempotency_keyrr   r�   rÏ   r%   r$   Úread)	rm   r–   rÿ   rÔ   Úheaders_dictr  Úidempotency_headerÚlower_custom_headersrÏ   rk   rk   rn   Ú_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‘   )rm   rb   Ú	merge_urlÚmerge_raw_pathrk   rk   rn   Ú_prepare_urlâ  s
   zBaseClient._prepare_urlúSSEDecoder | SSEBytesDecoderc                 C  ó   t ƒ S rj   )rL   rv   rk   rk   rn   Ú_make_sse_decoderï  s   zBaseClient._make_sse_decoderúhttpx.Requestc                C  s˜  t  tj¡rt  dt|dtrdhni d�¡ i }|j}|jd ur@|d u r+t	t
|jƒ}nt|ƒr6t||jƒ}n
tdt|ƒ› d�ƒ‚| j||d�}ti |  |j¡¥| j¥|jƒ}| d¡}|j}|d ur�| d	¡r�d
|vrp| d¡ |r‡t|ƒs€tdt|ƒ› d�ƒ‚|  |¡|d< |s�t	ttƒ ƒ}|  |j¡}	|r²|	jr²i t |	j !¡ ƒ¥|¥}|	j"|	j# $dd¡d d�}	d|	j%v rÂd|	j% &dd¡i|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 ¡ | j.j/d|t*|j0t1ƒ�r0| j0n|j0|j'|	|�rE| j2 3t	t4t5t6f |ƒ¡nd dœ|¤ŽS )NzRequest options: %sTÚcontent)Úexclude_unsetÚexcludezUnexpected JSON data type, z , cannot merge with `extra_body`rþ   úContent-Typezmultipart/form-dataÚboundaryzGExpected query input to be a dictionary for multipart requests but got z	 instead.Údataó   ?r   r   rá   Ú_Úsni_hostnameú-Ú
extensionsÚgetz7Passing both `content` and `json_data` is not supportedz3Passing both `content` and `files` is not supportedÚfiles)r  rÏ   Úmethodrb   rd   rk   )7rV   ÚisEnabledForÚloggingÚDEBUGÚdebugr:   r8   r”   Ú
extra_jsonr   r    r7   r  r²   Útyper  rû   rõ   Údefault_queryrd   r#  r$  Ú
startswithÚpopr2   r“   Ú_serialize_multipartformr.   ÚForceMultipartDictr  rb   Úqueryr’   r„   r‘   râ   ÚsplitÚhostÚreplacer%  r  r  r�   Úbytesr5   rT   rœ   Úbuild_requestrÏ   r%   ÚqsÚ	stringifyr   rr   r   )rm   r–   rÿ   Úkwargsr”   r  rd   Úcontent_typer$  Úprepared_urlÚis_body_allowedrk   rk   rn   Ú_build_requestò  s„   ýÿøþ


ÿ




$
"÷
özBaseClient._build_requestr  ú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)r7  Ústringify_itemsr#  r3   Úappend)rm   r  r„   Ú
serializedÚkeyÚvalueÚexistingrk   rk   rn   r/  ^  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   r  r’   r.  rI   r0   r   r   r&   )rm   rH  r–   r  Úoverride_cast_tork   rk   rn   Ú_maybe_override_cast_to|  s   

z"BaseClient._maybe_override_cast_torÂ   c                 C  s   |j  t¡dkS ©NÚstream)r  r#  rH   ©rm   rÂ   rk   rk   rn   Ú_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ä   r  )Útype_rF  )rä   ræ   )r   r&   rò   ÚinspectÚisclassÚ
issubclassr/   ÚbuildrÐ   r>   r?   rµ   ÚValidationErrorrS   )rm   r  rH  rä   Úerrrk   rk   rn   Ú_process_response_data�  s   

€ÿz!BaseClient._process_response_datar   c                 C  r  rj   r   rv   rk   rk   rn   r7  ¨  ó   zBaseClient.qsc                 C  ri   rj   rk   rv   rk   rk   rn   Úcustom_auth¬  ó   zBaseClient.custom_authc                 C  r÷   rj   rk   rv   rk   rk   rn   Úauth_headers°  rZ  zBaseClient.auth_headersúdict[str, str | Omit]c                 C  s   dd| j dœ|  ¡ ¥| j¥S )Nzapplication/json)ÚAcceptr  z
User-Agent)Ú
user_agentÚplatform_headersrÝ   rv   rk   rk   rn   r  ´  s   ýüûzBaseClient.default_headersc                 C  s
   i | j ¥S rj   )rÞ   rv   rk   rk   rn   r,  ¾  s   ÿzBaseClient.default_queryr  r#   c                 C  ó   dS )zaValidate the given default headers and custom headers.

        Does nothing by default.
        Nrk   )rm   r  rÔ   rk   rk   rn   r  Ä  ó   	zBaseClient._validate_headersc                 C  s   | j j› d| j› �S )Nz/Python )rt   ru   rË   rv   rk   rk   rn   r^  Ï  s   zBaseClient.user_agentc                 C  s   | j S rj   )rÌ   rv   rk   rk   rn   r×   Ó  rX  zBaseClient.base_urlú	URL | strc                 C  s"   |   t|tƒr	|nt|ƒ¡| _d S rj   )rÜ   r�   r   rÌ   rl   rk   rk   rn   r×   ×  s   "úDict[str, str]c                 C  s   t | j| jd�S )N)Úplatform)r_  rË   rß   rv   rk   rk   rn   r_  Û  s   zBaseClient.platform_headersÚresponse_headersúOptional[httpx.Headers]úfloat | Nonec              	   C  sž   |du rdS z|  dd¡}t|ƒd W S  ttfy   Y nw |  d¡}zt|ƒW S  ttfy4   Y nw tj |¡}|du rAdS tj |¡}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
        Nzretry-after-mséè  zretry-after)	r#  Úfloatr“   r•   ÚemailÚutilsÚparsedate_tzÚ	mktime_tzÚtime)rm   re  Úretry_ms_headerÚretry_headerÚretry_date_tupleÚ
retry_daterk   rk   rn   Ú_parse_retry_after_headerá  s&   ÿ

ÿz$BaseClient._parse_retry_after_headerÚremaining_retriesri  c           
      C  s~   |  | j¡}|  |¡}|d urd|  k rdkr|S  t|| dƒ}tttd|ƒ tƒ}ddtƒ   }|| }	|	dkr=|	S dS )Nr   é<   rh  g       @r   g      Ð?)Úget_max_retriesrÎ   rs  ÚminrG   ÚpowrE   r   )
rm   rt  r–   re  rÎ   Úretry_afterÚ
nb_retriesÚsleep_secondsÚjitterrÏ   rk   rk   rn   Ú_calculate_retry_timeout  s   
ÿz#BaseClient._calculate_retry_timeoutc                 C  s¶   |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r8t d	|j¡ dS |jdkrFt d	|j¡ dS |jdkrTt d	|j¡ dS t d¡ dS )Nzx-should-retryÚtruez4Retrying as header `x-should-retry` is set to `true`TÚfalsez9Not retrying as header `x-should-retry` is set to `false`Fi˜  zRetrying due to status code %ii™  i­  iô  zNot retrying)r  r#  rV   r)  ré   )rm   rä   Úshould_retry_headerrk   rk   rn   Ú_should_retry  s*   






zBaseClient._should_retryc                 C  s   dt  ¡ › �S )Nzstainless-python-retry-)ÚuuidÚuuid4rv   rk   rk   rn   Ú_idempotency_key>  s   zBaseClient._idempotency_key)rÖ   rr   r×   rØ   rÐ   r�   rÎ   rÍ   rÏ   rÙ   rÔ   rÚ   rÕ   rÛ   rg   rh   )rb   r   rg   r   )rä   rå   rg   rP   )rï   rr   ræ   rò   rä   rå   rg   ró   )rõ   r<   rg   rö   )rõ   r<   rg   rü   )r–   r=   rÿ   rÍ   rg   r   )rb   rr   rg   r   )rg   r  )r–   r=   rÿ   rÍ   rg   r  )r  r>  rg   r?  )rH  rI  r–   r=   rg   rI  )rÂ   r  rg   r�   )r  rò   rH  rI  rä   rå   rg   r&   )rg   r   )rg   rü   )rg   rö   )rg   r\  )rg   r?  )r  r#   rÔ   r#   rg   rh   rx   )rg   r   )rb   rb  rg   rh   )rg   rc  rj   )re  rf  rg   rg  )rt  rÍ   r–   r=   re  rf  rg   ri  )rä   rå   rg   r�   )%ru   ry   rz   r|   rÓ   rF   rD   ro   rÜ   rñ   rî   rù   rû   rý   r  r  r  r=  r/  rK  rO  rW  Úpropertyr7  rY  r[  r  r,  r  r^  r×   Úsetterr_  rs  r}  r�  r„  rk   rk   rk   rn   rÊ   n  sh   
 ÷



	



ü
l


	

&ü
#rÊ   c                      ó   e Zd Zd‡ fdd„Z‡  ZS )Ú_DefaultHttpxClientr9  r   rg   rh   c                   ó:   |  dt¡ |  dt¡ |  dd¡ tƒ jdi |¤Ž d S ©NrÏ   ÚlimitsÚfollow_redirectsTrk   ©Ú
setdefaultrD   rJ   Úsuperro   ©rm   r9  ©rt   rk   rn   ro   C  ó   z_DefaultHttpxClient.__init__©r9  r   rg   rh   ©ru   ry   rz   ro   Ú__classcell__rk   rk   r‘  rn   rˆ  B  ó    rˆ  c                   @  ó   e Zd Zddd„ZdS )ÚSyncHttpxClientWrapperrg   rh   c                 C  s.   | j rd S z|  ¡  W d S  ty   Y d S w rj   )rç   Úcloserí   rv   rk   rk   rn   Ú__del__W  s   ÿzSyncHttpxClientWrapper.__del__N©rg   rh   ©ru   ry   rz   rš  rk   rk   rk   rn   r˜  V  ó    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httpx.Clientrœ   Nztype[Stream[Any]] | NonerÓ   ©rÎ   rÏ   Úhttp_clientrÔ   rÕ   rÖ   rr   r×   rØ   rÎ   rÍ   rÏ   ú!float | Timeout | None | NotGivenrŸ  úhttpx.Client | NonerÔ   rÚ   rÕ   rÛ   rÐ   r�   rg   rh   c          	   	     s„   t |ƒs|r|jtkr|j}nt}|d ur$t|tjƒs$tdt|ƒ› �ƒ‚t	ƒ j
|tt|ƒ|||||d� |p>t|tt|ƒd�| _d S )NzOInvalid `http_client` argument; Expected an instance of `httpx.Client` but got )rÖ   rÏ   r×   rÎ   rÕ   rÔ   rÐ   ©r×   rÏ   )r5   rÏ   ÚHTTPX_DEFAULT_TIMEOUTrD   r�   rŠ   ÚClientr“   r+  r�  ro   r   r$   r˜  rœ   )	rm   rÖ   r×   rÎ   rÏ   rŸ  rÔ   rÕ   rÐ   r‘  rk   rn   ro   e  s*   ÿø
ýzSyncAPIClient.__init__c                 C  ó   | j jS rj   ©rœ   rç   rv   rk   rk   rn   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™  rv   rk   rk   rn   r™  –  s   
ÿzSyncAPIClient.closerm   rZ   c                 C  s   | S rj   rk   rv   rk   rk   rn   Ú	__enter__   rˆ   zSyncAPIClient.__enter__Úexc_typeútype[BaseException] | NoneÚexcúBaseException | NoneÚexc_tbúTracebackType | Nonec                 C  s   |   ¡  d S rj   ©r™  ©rm   r«  r­  r¯  rk   rk   rn   Ú__exit__£  s   zSyncAPIClient.__exit__r–   r=   c                 C  s   |S ©z#Hook for mutating the given optionsrk   ©rm   r–   rk   rk   rn   Ú_prepare_options«  rp   zSyncAPIClient._prepare_optionsrÂ   r  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.
        Nrk   rN  rk   rk   rn   Ú_prepare_request²  ra  zSyncAPIClient._prepare_requestrM  r9  úUnpack[HttpxSendArgs]rå   c                K  s   | j j|fd|i|¤ŽS rL  ©rœ   Úsend©rm   rÂ   rM  r9  rk   rk   rn   Ú_send_request½  s   zSyncAPIClient._send_requestrH  úType[ResponseT]úLiteral[True]Ú
stream_clsúType[_StreamT]r]   c                C  ri   rj   rk   ©rm   rH  r–   rM  rÀ  rk   rk   rn   rÂ   Æ  ó   zSyncAPIClient.requestF©rM  úLiteral[False]r&   c                C  ri   rj   rk   ©rm   rH  r–   rM  rk   rk   rn   rÂ   Ð  s   ©rM  rÀ  úType[_StreamT] | NoneúResponseT | _StreamTc                C  ri   rj   rk   rÂ  rk   rk   rn   rÂ   Ù  rÃ  útype[_StreamT] | Nonec                C  sÞ  |   ||¡}t|ƒ}|jd u r|j ¡ dkr|  ¡ |_d }| | j¡}d}t|d ƒD �].}t|ƒ}|  	|¡}|| }	| j
||d�}
|  |
¡ i }|  |j¡}|d urW||d< |jd ura|j|d< t d|
j|
j¡ d }z| j|
fd|py| j|
d	�i|¤Ž}W no tjy± } z%tjd
dd� |	dkr¢| j|||d d� W Y d }~q+t d¡ t|
d	�|‚d }~w ty¾ } z|‚d }~w tyî } z%tjddd� |	dkrß| j|||d d� W Y d }~q+t d¡ t|
d	�|‚d }~ww t d|
j|
j|j|j|j¡ t d|j d¡¡ z| ¡  W nK tj �yY } z=tjddd� |	dk�r?|  !|j"¡�r?|j" #¡  | j||||d� W Y d }~q+|j"j$�sI|j" %¡  t d¡ |  &|j"¡d ‚d }~ww  |d u�sdJ dƒ‚| j'||||||d�S ©Nr#  r   r   rþ   ÚauthrŒ  zSending HTTP Request: %s %srM  )rÂ   z"Encountered httpx.TimeoutExceptionT)Úexc_info)rÿ   rÎ   r–   rä   zRaising timeout errorzEncountered ExceptionzRaising connection errorzHTTP Response: %s %s "%i %s" %szrequest_id: %szx-request-idz!Encountered httpx.HTTPStatusErrorzRe-raising status errorz0could not resolve response (should never happen))rH  r–   rä   rM  rÀ  rÿ   )(rK  r9   r	  r%  r  r„  rv  rÎ   Úranger¶  r=  r¸  rý   rõ   rŒ  rV   r)  rb   r½  rO  rŠ   ÚTimeoutExceptionÚ_sleep_for_retryrQ   rO   rí   rR   ré   Úreason_phraser  r#  Úraise_for_statusÚHTTPStatusErrorr�  rä   r™  rç   r
  rñ   Ú_process_response)rm   rH  r–   rM  rÀ  Úinput_optionsrä   rÎ   rÿ   rt  rÂ   r9  rY  rV  rk   rk   rn   rÂ   ã  sÂ   




ÿþ
ýü
€€ü
€óú
ü


€íúrÿ   rä   úhttpx.Response | Nonec                C  s^   || }|dkrt  d¡ nt  d|¡ |  |||r|jnd ¡}t  d|j|¡ t |¡ d S ©Nr   z1 retry leftz%i retries leftz$Retrying request to %s in %f seconds)rV   r)  r}  r  rŽ   rb   rn  Úsleep©rm   rÿ   rÎ   r–   rä   rt  rÏ   rk   rk   rn   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jkr`tt|ƒS t|| td|ƒ||||d�}	t|j j t¡ƒr|tt|	ƒS |	 ¡ S )Nr~  ©Úrawr�   rH  rM  rÀ  r–   rÿ   ú!API Response types must subclass ú; Received útype[BaseAPIResponse[Any]]rI  )rÂ   r  r#  rH   r   r&   rU   r   rQ  rR  rS  rA   r�   r@   r“   rC   rŠ   ÚResponseÚparse©
rm   rH  r–   rä   rM  rÀ  rÿ   ÚoriginÚresponse_clsÚapi_responserk   rk   rn   rÔ  m  sf   
ùþÿþúú

ùþ

ù	
zSyncAPIClient._process_responserž   úType[object]r©   úType[SyncPageT]rW   c                   s(   d‡ ‡‡fdd„}|ˆ_ ˆj|ˆdd�S )	Nr¾   rW   rg   c                   s   | j ˆˆ ˆd� | S )N)r�   rž   r–   )r£   r¿   ©rž   r–   rm   rk   rn   rÀ   ·  s   ýz0SyncAPIClient._request_api_list.<locals>._parserFrÄ  )r¾   rW   rg   rW   )rÁ   rÂ   )rm   rž   r©   r–   rÀ   rk   rè  rn   r³   ±  s   zSyncAPIClient._request_api_list©r–   rM  Úpathr,   c                C  ri   rj   rk   ©rm   rê  rH  r–   rM  rk   rk   rn   r#  Ã  rÃ  zSyncAPIClient.get©r–   útype[_StreamT]c                C  ri   rj   rk   ©rm   rê  rH  r–   rM  rÀ  rk   rk   rn   r#  Í  ra  ©r–   rÀ  c                C  ri   rj   rk   rî  rk   rk   rn   r#  Ø  ra  ©r–   rM  rÀ  c                C  s.   t jdd|dœ|¤Ž}tt| j||||d�ƒS ©Nr#  )r%  rb   rÇ  rk   )r=   Ú	constructr   r&   rÂ   ©rm   rê  rH  r–   rM  rÀ  Úoptsrk   rk   rn   r#  ã  s   	)ræ   r  r–   r$  rM  ræ   úBody | Noner  úBinaryTypes | Noner$  úRequestFiles | Nonec                C  ri   rj   rk   )rm   rê  rH  ræ   r  r–   r$  rM  rk   rk   rn   Úpostñ  s   zSyncAPIClient.post)ræ   r  r–   r$  c          	      C  ri   rj   rk   ©	rm   rê  rH  ræ   r  r–   r$  rM  rÀ  rk   rk   rn   rø  þ  ó   )ræ   r  r–   r$  rÀ  c          	      C  ri   rj   rk   rù  rk   rk   rn   rø    rú  )ræ   r  r–   r$  rM  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ø  ©r%  rb   r”   r  r$  rÇ  rk   )r“   r�   r5  ÚwarningsÚwarnÚDeprecationWarningr=   rò  r   r   r&   rÂ   )
rm   rê  rH  ræ   r  r–   r$  rM  rÀ  rô  rk   rk   rn   rø    s    
üÿÿ©ræ   r  r$  r–   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  rk   ©
r“   r�   r5  r  r  r  r=   rò  r   rÂ   ©rm   rê  rH  ræ   r  r$  r–   rô  rk   rk   rn   r	  6  ó    

üÿÿzSyncAPIClient.patchc                C  r  ©	Nrü  rý  rþ  rÿ  r   Úputr  rk   r
  r  rk   rk   rn   r  P  r  zSyncAPIClient.put©ræ   r  r–   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)r%  rb   r”   r  rk   ©	r“   r�   r5  r  r  r  r=   rò  rÂ   ©rm   rê  rH  ræ   r  r–   rô  rk   rk   rn   r  j  s   	
üzSyncAPIClient.deleter#  ©ræ   r–   r%  r%  c                C  ó&   t jd|||dœ|¤Ž}|  |||¡S ©N)r%  rb   r”   rk   ©r=   rò  r³   ©rm   rê  rž   r©   ræ   r–   r%  rô  rk   rk   rn   Úget_api_list  ó   
zSyncAPIClient.get_api_list)rÖ   rr   r×   rØ   rÎ   rÍ   rÏ   r   rŸ  r¡  rÔ   rÚ   rÕ   rÛ   rÐ   r�   rg   rh   r˜   r›  ©rm   rZ   rg   rZ   ©r«  r¬  r­  r®  r¯  r°  rg   rh   ©r–   r=   rg   r=   ©rÂ   r  rg   rh   ©rÂ   r  rM  r�   r9  r¹  rg   rå   )
rH  r¾  r–   r=   rM  r¿  rÀ  rÁ  rg   r]   ©rH  r¾  r–   r=   rM  rÅ  rg   r&   )
rH  r¾  r–   r=   rM  r�   rÀ  rÈ  rg   rÉ  )
rH  r¾  r–   r=   rM  r�   rÀ  rÊ  rg   rÉ  ©
rÿ   rÍ   rÎ   rÍ   r–   r=   rä   rÖ  rg   rh   ©rH  r¾  r–   r=   rä   rå   rM  r�   rÀ  rÚ  rÿ   rÍ   rg   r&   )rž   ræ  r©   rç  r–   r=   rg   rW   ©
rê  rr   rH  r¾  r–   r,   rM  rÅ  rg   r&   )rê  rr   rH  r¾  r–   r,   rM  r¿  rÀ  rí  rg   r]   )rê  rr   rH  r¾  r–   r,   rM  r�   rÀ  rÊ  rg   rÉ  )rê  rr   rH  r¾  ræ   rõ  r  rö  r–   r,   r$  r÷  rM  rÅ  rg   r&   )rê  rr   rH  r¾  ræ   rõ  r  rö  r–   r,   r$  r÷  rM  r¿  rÀ  rí  rg   r]   )rê  rr   rH  r¾  ræ   rõ  r  rö  r–   r,   r$  r÷  rM  r�   rÀ  rÊ  rg   rÉ  )rê  rr   rH  r¾  ræ   rõ  r  rö  r$  r÷  r–   r,   rg   r&   )rê  rr   rH  r¾  ræ   rõ  r  rö  r–   r,   rg   r&   )rê  rr   rž   ræ  r©   rç  ræ   rõ  r–   r,   r%  rr   rg   rW   )ru   ry   rz   r|   rÓ   rF   r0   ro   rç   r™  rª  r³  r¶  r¸  r½  r   rÂ   rÐ  rÔ  r³   r#  rø  r	  r  r  r  r•  rk   rk   r‘  rn   r›   a  s¸   
 ÷
.






		ûúú
|ø
Dú	û
ùù÷øöö!øøùør›   c                      r‡  )Ú_DefaultAsyncHttpxClientr9  r   rg   rh   c                   r‰  rŠ  r�  r�  r‘  rk   rn   ro   Ž  r’  z!_DefaultAsyncHttpxClient.__init__r“  r”  rk   rk   r‘  rn   r$  �  r–  r$  c                   @  s   e Zd Zddd„ZdS )	Ú_DefaultAioHttpClientÚ_kwargsr   rg   rh   c                 K  s   t dƒ‚)NzVTo use the aiohttp client you must have installed the package with the `aiohttp` extra)r²   )rm   r&  rk   rk   rn   ro   š  r§  ú_DefaultAioHttpClient.__init__N)r&  r   rg   rh   )ru   ry   rz   ro   rk   rk   rk   rn   r%  ™  r�  r%  c                      r‡  )r%  r9  r   rg   rh   c                   r‰  rŠ  r�  r�  r‘  rk   rn   ro   Ÿ  s   r'  r“  r”  rk   rk   r‘  rn   r%  ž  r–  c                   @  r—  )ÚAsyncHttpxClientWrapperrg   rh   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í   rv   rk   rk   rn   rš  ¸  s   ÿzAsyncHttpxClientWrapper.__del__Nr›  rœ  rk   rk   rk   rn   r(  ·  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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httpx.AsyncClientrœ   Nztype[AsyncStream[Any]] | NonerÓ   rž  rÖ   rr   r×   rØ   rÐ   r�   rÎ   rÍ   rÏ   r   rŸ  úhttpx.AsyncClient | NonerÔ   rÚ   rÕ   rÛ   rg   rh   c          	   	     s„   t |ƒs|r|jtkr|j}nt}|d ur$t|tjƒs$tdt|ƒ› �ƒ‚t	ƒ j
||tt|ƒ||||d� |p>t|tt|ƒd�| _d S )NzTInvalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got )rÖ   r×   rÏ   rÎ   rÕ   rÔ   rÐ   r¢  )r5   rÏ   r£  rD   r�   rŠ   ÚAsyncClientr“   r+  r�  ro   r   r$   r(  rœ   )	rm   rÖ   r×   rÐ   rÎ   rÏ   rŸ  rÔ   rÕ   r‘  rk   rn   ro   Ç  s*   ÿø
ýzAsyncAPIClient.__init__c                 C  r¥  rj   r¦  rv   rk   rk   rn   rç   õ  r§  zAsyncAPIClient.is_closedc                 Ã  s   �| j  ¡ I dH  dS )r¨  N)rœ   r,  rv   rk   rk   rn   r™  ø  s   €zAsyncAPIClient.closerm   rZ   c                 Ã  s   �| S rj   rk   rv   rk   rk   rn   Ú
__aenter__ÿ  s   €zAsyncAPIClient.__aenter__r«  r¬  r­  r®  r¯  r°  c                 Ã  s   �|   ¡ I d H  d S rj   r±  r²  rk   rk   rn   Ú	__aexit__  s   €zAsyncAPIClient.__aexit__r–   r=   c                 Ã  s   �|S r´  rk   rµ  rk   rk   rn   r¶  
  s   €zAsyncAPIClient._prepare_optionsrÂ   r  c                 Ã  s   �dS r·  rk   rN  rk   rk   rn   r¸    ó   €	zAsyncAPIClient._prepare_requestrM  r9  r¹  rå   c                Ë  s    �| j j|fd|i|¤ŽI d H S rL  rº  r¼  rk   rk   rn   r½    s   €zAsyncAPIClient._send_requestFrÄ  rH  r¾  rÅ  r&   c                Ã  ó   �d S rj   rk   rÆ  rk   rk   rn   rÂ   %  s   €zAsyncAPIClient.requestr¿  rÀ  útype[_AsyncStreamT]r^   c                Ã  r2  rj   rk   rÂ  rk   rk   rn   rÂ   .  ó   €)rÀ  útype[_AsyncStreamT] | NoneúResponseT | _AsyncStreamTc                Ã  r2  rj   rk   rÂ  rk   rk   rn   rÂ   8  r4  rÇ  c                Ã  s,  �| 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 }|| }	| j||d�}
|  |
¡I d H  i }| jd urh| j|d< |jd urr|j|d< t d|
j|
j¡ d }z| j|
fd|pŠ| j|
d	�i|¤ŽI d H }W nv tjyÈ } z(tjd
dd� |	dkr¹| j|||d d�I d H  W Y d }~q:t d¡ t|
d	�|‚d }~w tyÕ } z|‚d }~w t�y	 } z(tjddd� |	dkrú| j|||d d�I d H  W Y d }~q:t d¡ t|
d	�|‚d }~ww t d|
j|
j|j|j|j¡ t d|j  d¡¡ z| !¡  W nT tj"�y} } zFtjddd� |	dk�r`|  #|j$¡�r`|j$ %¡ I d H  | j||||d�I d H  W Y d }~q:|j$j&�sm|j$ '¡ I d H  t d¡ |  (|j$¡d ‚d }~ww  |d u�sˆJ dƒ‚| j)||||||d�I d H S rË  )*rß   r4   Úget_platformrK  r9   r	  r%  r  r„  rv  rÎ   rÎ  r¶  r=  r¸  rY  rŒ  rV   r)  rb   r½  rO  rŠ   rÏ  rÐ  rQ   rO   rí   rR   ré   rÑ  r  r#  rÒ  rÓ  r�  rä   r,  rç   Úareadrñ   rÔ  )rm   rH  r–   rM  rÀ  rÕ  rä   rÎ   rÿ   rt  rÂ   r9  rV  rk   rk   rn   rÂ   B  sÆ   €





ÿþýü
€€ü
€óúü

€íúrÿ   rä   rÖ  c                Ã  sf   �|| }|dkrt  d¡ nt  d|¡ |  |||r|jnd ¡}t  d|j|¡ t |¡I d H  d S r×  )rV   r)  r}  r  rŽ   rb   ÚanyiorØ  rÙ  rk   rk   rn   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jk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&   rI  )rÂ   r  r#  rH   r   r&   rU   r   rQ  rR  rS  rA   r�   rB   r“   rC   rŠ   rà  rá  râ  rk   rk   rn   rÔ  Ð  sh   €
ùþÿþúú

ùþ

ù	
z AsyncAPIClient._process_responserž   r   r©   r¹   úAsyncPaginator[_T, AsyncPageT]c                 C  s   t | |||d�S )N)r�   r–   r¸   rž   )r¶   )rm   rž   r©   r–   rk   rk   rn   r³     s   z AsyncAPIClient._request_api_listré  rê  r,   c                Ã  r2  rj   rk   rë  rk   rk   rn   r#    r4  zAsyncAPIClient.getrì  c                Ã  r2  rj   rk   rî  rk   rk   rn   r#  &  r1  rï  c                Ã  r2  rj   rk   rî  rk   rk   rn   r#  1  r1  rð  c                Ã  s0   �t jdd|dœ|¤Ž}| j||||d�I d H S rñ  )r=   rò  rÂ   ró  rk   rk   rn   r#  <  s   €	)ræ   r  r$  r–   rM  ræ   rõ  r  úAsyncBinaryTypes | Noner$  r÷  c                Ã  r2  rj   rk   )rm   rê  rH  ræ   r  r$  r–   rM  rk   rk   rn   rø  H  s   €zAsyncAPIClient.postr  c          	      Ã  r2  rj   rk   ©	rm   rê  rH  ræ   r  r$  r–   rM  rÀ  rk   rk   rn   rø  U  ó   €)ræ   r  r$  r–   rÀ  c          	      Ã  r2  rj   rk   r<  rk   rk   rn   rø  c  r=  )ræ   r  r$  r–   rM  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�   r5  r  r  r  r=   rò  r   rÂ   )
rm   rê  rH  ræ   r  r$  r–   rM  rÀ  rô  rk   rk   rn   rø  q  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  r>  r  rk   rk   rn   r	  �  s*   €

üûúzAsyncAPIClient.patchc                Ã  r?  r  r>  r  rk   rk   rn   r  ¬  s"   €

üÿÿzAsyncAPIClient.putr  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 r  r  r  rk   rk   rn   r  Æ  s   €	
üzAsyncAPIClient.deleter#  r  r%  c                C  r  r  r  r  rk   rk   rn   r  Û  r  zAsyncAPIClient.get_api_list)rÖ   rr   r×   rØ   rÐ   r�   rÎ   rÍ   rÏ   r   rŸ  r-  rÔ   rÚ   rÕ   rÛ   rg   rh   r˜   r›  r  r  r  r  r  r   )
rH  r¾  r–   r=   rM  r¿  rÀ  r3  rg   r^   )
rH  r¾  r–   r=   rM  r�   rÀ  r5  rg   r6  r!  r"  )rž   r   r©   r¹   r–   r=   rg   r:  r#  )rê  rr   rH  r¾  r–   r,   rM  r¿  rÀ  r3  rg   r^   )rê  rr   rH  r¾  r–   r,   rM  r�   rÀ  r5  rg   r6  )rê  rr   rH  r¾  ræ   rõ  r  r;  r$  r÷  r–   r,   rM  rÅ  rg   r&   )rê  rr   rH  r¾  ræ   rõ  r  r;  r$  r÷  r–   r,   rM  r¿  rÀ  r3  rg   r^   )rê  rr   rH  r¾  ræ   rõ  r  r;  r$  r÷  r–   r,   rM  r�   rÀ  r5  rg   r6  )rê  rr   rH  r¾  ræ   rõ  r  r;  r$  r÷  r–   r,   rg   r&   )rê  rr   rH  r¾  ræ   rõ  r  r;  r–   r,   rg   r&   )rê  rr   rž   r   r©   r¹   ræ   rõ  r–   r,   r%  rr   rg   r:  )ru   ry   rz   r|   rÓ   rF   r0   ro   rç   r™  r/  r0  r¶  r¸  r½  r   rÂ   rÐ  rÔ  r³   r#  rø  r	  r  r  r  r•  rk   rk   r‘  rn   r·   Ã  s¸   
 ö
.





	û	úú 
ø
Dú	û
ùù÷øöö!ø$øùør·   )	r1  Úextra_headersÚextra_queryÚ
extra_bodyr	  rÏ   rÁ   rõ   Úsynthesize_event_and_datar1  úQuery | Noner@  úHeaders | NonerA  rB  rõ  r	  rÑ   rÏ   ú'float | httpx.Timeout | None | NotGivenrÁ   úPostParser | NotGivenrõ   úSecurityOptions | NonerC  úbool | Nonerg   r,   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.Nr  r*  rd   rÏ   r	  rÁ   rõ   rC  )r   r'   r#  r�   r%   r5   )
r1  r@  rA  rB  r	  rÏ   rÁ   rõ   rC  r–   rk   rk   rn   Úmake_request_optionsé  s(   
rJ  c                   @  r—  )r0  rg   r�   c                 C  r`  )NTrk   rv   rk   rk   rn   Ú__bool__  rˆ   zForceMultipartDict.__bool__Nr˜   )ru   ry   rz   rK  rk   rk   rk   rn   r0    r�  r0  c                   @  ó$   e Zd Zd
dd„Zeddd„ƒZd	S )ÚOtherPlatformÚnamerr   rg   rh   c                 C  ó
   || _ d S rj   ©rN  ©rm   rN  rk   rk   rn   ro     ó   
zOtherPlatform.__init__c                 C  ó   d| j › �S )NzOther:rP  rv   rk   rk   rn   Ú__str__  ó   zOtherPlatform.__str__N©rN  rr   rg   rh   rx   ©ru   ry   rz   ro   r   rT  rk   rk   rk   rn   rM    ó    
rM  )Ú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rKt ¡ }|dkrCdS |dkrIdS dS |rQt|ƒS dS )Nr`  ÚiphoneÚipadr^  ÚdarwinrY  Úwindowsr[  Úandroidr_  ÚlinuxÚfreebsdr\  Úopenbsdr]  rZ  )rd  Úsystemr  rí   ÚdistroÚidrM  )rj  Úplatform_nameÚ	distro_idrk   rk   rn   r7  3  s0   ÿr7  )ÚmaxsizerÖ   rr   rd  úPlatform | Nonerc  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)rr   r7  Úget_architectureÚget_python_runtimeÚget_python_version)rÖ   rd  rk   rk   rn   r_  ]  s   úr_  c                   @  rL  )Ú	OtherArchrN  rr   rg   rh   c                 C  rO  rj   rP  rQ  rk   rk   rn   ro   j  rR  zOtherArch.__init__c                 C  rS  )Nzother:rP  rv   rk   rk   rn   rT  m  rU  zOtherArch.__str__NrV  rx   rW  rk   rk   rk   rn   ru  i  rX  ru  )Úx32Úx64ÚarmÚarm64Úunknownc                   C  ó    zt  ¡ W S  ty   Y dS w ©Nrz  )rd  Úpython_implementationrí   rk   rk   rk   rn   rs  u  ó
   
ÿrs  c                   C  r{  r|  )rd  Úpython_versionrí   rk   rk   rk   rn   rt  |  r~  rt  Ú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 )	Nrz  )ry  Úaarch64ry  rx  Úx86_64rw  l        rv  )rd  Úmachiner  rí   Úsysro  ru  )rƒ  rk   rk   rn   rr  ƒ  s    ÿ
rr  Ú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 rk   )r�   r!   )r  rE  rF  rk   rk   rn   Ú
<dictcomp>¦  s     z#_merge_mappings.<locals>.<dictcomp>)r„   )r…  r‡  Úmergedrk   rk   rn   r  �  s   r  )r1  rD  r@  rE  rA  rD  rB  rõ  r	  rÑ   rÏ   rF  rÁ   rG  rõ   rH  rC  rI  rg   r,   )rg   ra  )rÖ   rr   rd  rp  rg   rc  rx   )rg   r€  )r…  r†  r‡  r†  rg   rˆ  )£Ú
__future__r   r„  rf   rn  r‚  rj  r)  rQ  r'  rd  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   r9  rŠ   rk  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   r:   Ú_modelsr;   r<   r=   r>   r?   Ú	_responser@   rA   rB   rC   Ú
_constantsrD   rE   rF   rG   rH   rI   rJ   Ú
_streamingrK   rL   rM   rN   rO   rP   rQ   rR   rS   Ú_utils._jsonrT   Ú_legacy_responserU   Ú	getLoggerru   rV   r|   Ú	addFilterrW   rY   rZ   r[   r]   r^   Úhttpx._configr_   r£  ÚImportErrorr`   r}   rš   r¶   rÆ   r¤  r.  rÈ   rÉ   rÊ   rˆ  ÚDefaultHttpxClientr˜  r›   r$  Úhttpx_aiohttpr%  ÚHttpxAiohttpClientÚDefaultAsyncHttpxClientÚDefaultAioHttpClientr(  r·   rJ  rr   r0  rM  ra  r7  r_  ru  r€  rs  rt  rr  r  rk   rk   rk   rn   Ú<module>   sò    DL$$	þ3=1')   W    0þ	    ,ö-	ÿÿÿ
*	


