o
    RÊÆh5  ã                	   @   s$  U 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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 d dlmZ ddlmZ ddlmZ dd	lmZm Z m!Z!m"Z"m#Z# dd
l$m%Z% ddl&m'Z'm(Z( dZ)dZ*ee+ e,d< er‡d dlm-Z- G dd„ de.ƒZ/G dd„ de0ej1ƒZ2dedededdfdd„Z3e2j4dœded dede2ddfdd „Z5G d!d"„ d"ƒZ6ed Z7ee7ef Z8G d#d$„ d$ƒZ9G d%d„ deƒZ:G d&d'„ d'e:ƒZ;G d(d)„ d)e;ƒZ<G d*d+„ d+e<ƒZ=G d,d-„ d-e:ƒZ>G d.d/„ d/e>ƒZ?G d0d1„ d1e>ƒZ@G d2d3„ d3e>ƒZAG d4d5„ d5e;ƒZBe�r-d d6lmCZCmDZD eDeE ZFeCeE ZGnd d6lHmCZCmDZD eDZFeCZGG d7d8„ d8e:ƒZIG d9d:„ d:eIƒZJe9ƒ ZKeK Le;eEeMeNf¡ eK Le<e0¡ eK Le=ejO¡ eK Le?ejP¡ eK Le@ejQ¡ eK LeAejRejSf¡ eK Le>ejT¡ eK LeJe%¡ eKjLeIeCe2jUd� dS );é    N)ÚABCÚabstractmethod)Úchain)ÚIOÚTYPE_CHECKINGÚAnyÚ
ByteStringÚDictÚFinalÚIterableÚOptionalÚTextIOÚTupleÚTypeÚUnion)ÚCIMultiDicté   )Úhdrs)ÚAbstractStreamWriter)Ú	_SENTINELÚcontent_disposition_headerÚguess_filenameÚparse_mimetypeÚsentinel)ÚStreamReader)ÚJSONEncoderÚ_CIMultiDict)ÚPAYLOAD_REGISTRYÚget_payloadÚpayload_typeÚPayloadÚBytesPayloadÚStringPayloadÚIOBasePayloadÚBytesIOPayloadÚBufferedReaderPayloadÚTextIOPayloadÚStringIOPayloadÚJsonPayloadÚAsyncIterablePayloadi   ÚTOO_LARGE_BYTES_BODY)ÚListc                   @   s   e Zd ZdS )ÚLookupErrorN)Ú__name__Ú
__module__Ú__qualname__© r0   r0   ú\/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/aiohttp/payload.pyr,   =   s    r,   c                   @   s   e Zd ZdZdZdZdS )ÚOrderÚnormalÚ	try_firstÚtry_lastN)r-   r.   r/   r3   r4   r5   r0   r0   r0   r1   r2   A   s    r2   ÚdataÚargsÚkwargsÚreturnr    c                 O   s   t j| g|¢R i |¤ŽS ©N)r   Úget)r6   r7   r8   r0   r0   r1   r   G   s   r   ©ÚorderÚfactoryÚtyper=   c                C   s   t j| ||d� d S ©Nr<   )r   Úregister)r>   r?   r=   r0   r0   r1   Úregister_payloadK   s   rB   c                   @   sD   e Zd Zejdœdededdfdd„Zded	 ded	 fd
d„ZdS )r   r<   r?   r=   r9   Nc                C   s   || _ || _d S r:   )r?   r=   )Úselfr?   r=   r0   r0   r1   Ú__init__R   s   
zpayload_type.__init__r>   r    c                 C   s   t || j| jd� |S r@   )rB   r?   r=   )rC   r>   r0   r0   r1   Ú__call__V   s   zpayload_type.__call__)	r-   r.   r/   r2   r3   r   rD   r   rE   r0   r0   r0   r1   r   Q   s    r   c                   @   s`   e Zd ZdZddd„Zedœdeded	d
deddf
dd„Zej	dœde
dededdfdd„ZdS )ÚPayloadRegistryzZPayload registry.

    note: we need zope.interface for more efficient adapter search
    r9   Nc                 C   s   g | _ g | _g | _d S r:   )Ú_firstÚ_normalÚ_last©rC   r0   r0   r1   rD   e   s   
zPayloadRegistry.__init__)Ú_CHAINr6   r7   rK   z!Type[chain[_PayloadRegistryItem]]r8   r    c                O   sT   t |tƒr|S || j| j| jƒD ]\}}t ||ƒr&||g|¢R i |¤Ž  S qtƒ ‚r:   )Ú
isinstancer    rG   rH   rI   r,   )rC   r6   rK   r7   r8   r>   r?   r0   r0   r1   r;   j   s   

ÿzPayloadRegistry.getr<   r>   r?   r=   c                C   sh   |t ju r| j ||f¡ d S |t ju r| j ||f¡ d S |t ju r-| j ||f¡ d S td|›�ƒ‚)NzUnsupported order )	r2   r4   rG   Úappendr3   rH   r5   rI   Ú
ValueError)rC   r>   r?   r=   r0   r0   r1   rA   y   s   


zPayloadRegistry.register)r9   N)r-   r.   r/   Ú__doc__rD   r   r   r;   r2   r3   ÚPayloadTyperA   r0   r0   r0   r1   rF   _   s2    
	üþýüû
úÿÿÿÿþrF   c                   @   s@  e Zd ZU dZeed< dZee ed< de	ddfde
deeeeeef eeeef  f  deedef dee d	ee d
e
ddfdd„Zedee fdd„ƒZedee fdd„ƒZedefdd„ƒZedefdd„ƒZedee fdd„ƒZedefdd„ƒZ		d%dededede
ddf
d d!„Zed"eddfd#d$„ƒZdS )&r    úapplication/octet-streamÚ_default_content_typeNÚ_sizeÚvalueÚheadersÚcontent_typeÚfilenameÚencodingr8   r9   c                 K   s�   || _ || _tƒ | _|| _|tur|d ur|| jtj< n"| jd ur7t 	| j¡d }|d u r0| j
}|| jtj< n| j
| jtj< | j |pDi ¡ d S ©Nr   )Ú	_encodingÚ	_filenamer   Ú_headersÚ_valuer   r   ÚCONTENT_TYPEÚ	mimetypesÚ
guess_typerR   Úupdate)rC   rT   rU   rV   rW   rX   r8   r0   r0   r1   rD   ‹   s   
zPayload.__init__c                 C   ó   | j S )zSize of the payload.)rS   rJ   r0   r0   r1   Úsize¥   ó   zPayload.sizec                 C   rb   )zFilename of the payload.)r[   rJ   r0   r0   r1   rW   ª   rd   zPayload.filenamec                 C   rb   )zCustom item headers)r\   rJ   r0   r0   r1   rU   ¯   rd   zPayload.headersc                 C   s$   d  dd„ | j ¡ D ƒ¡ d¡d S )NÚ c                 S   s    g | ]\}}|d  | d ‘qS )z: z
r0   )Ú.0ÚkÚvr0   r0   r1   Ú
<listcomp>·   s     z+Payload._binary_headers.<locals>.<listcomp>úutf-8s   
)ÚjoinrU   ÚitemsÚencoderJ   r0   r0   r1   Ú_binary_headers´   s   ÿýÿzPayload._binary_headersc                 C   rb   )zPayload encoding)rZ   rJ   r0   r0   r1   rX   ½   rd   zPayload.encodingc                 C   s   | j tj S )zContent type)r\   r   r^   rJ   r0   r0   r1   rV   Â   s   zPayload.content_typeTrj   ÚdisptypeÚquote_fieldsÚ_charsetÚparamsc                 K   s"   t |f||dœ|¤Ž| jtj< dS )z$Sets ``Content-Disposition`` header.)rp   rq   N)r   r\   r   ÚCONTENT_DISPOSITION)rC   ro   rp   rq   rr   r0   r0   r1   Úset_content_dispositionÇ   s   ÿÿÿzPayload.set_content_dispositionÚwriterc                 Ã   s   �dS )zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr0   ©rC   ru   r0   r0   r1   ÚwriteÓ   s    zPayload.write)Trj   )r-   r.   r/   rR   ÚstrÚ__annotations__rS   r   Úintr   r   r   r   r	   r   r   r   rD   Úpropertyrc   rW   rU   Úbytesrn   rX   rV   Úboolrt   r   r   rw   r0   r0   r0   r1   r    †   sf   
 øþ ÿýúùø	÷

öüþýüû
úc                       s@   e Zd Zdedededdf‡ fdd„Zdeddfd	d
„Z‡  ZS )r!   rT   r7   r8   r9   Nc                    s˜   t |tttfƒstdt|ƒ›�ƒ‚d|vrd|d< tƒ j|g|¢R i |¤Ž t |tƒr0|j| _	nt
|ƒ| _	| j	tkrJd| i}tjdtfi |¤Ž d S d S )Nz%value argument must be byte-ish, not rV   rQ   Úsourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)rL   r|   Ú	bytearrayÚ
memoryviewÚ	TypeErrorr?   ÚsuperrD   ÚnbytesrS   Úlenr*   ÚwarningsÚwarnÚResourceWarning©rC   rT   r7   r8   ©Ú	__class__r0   r1   rD   Ü   s"   



ü
ûþzBytesPayload.__init__ru   c                 Ã   s   �|  | j¡I d H  d S r:   )rw   r]   rv   r0   r0   r1   rw   ô   s   €zBytesPayload.write)	r-   r.   r/   r   r   rD   r   rw   Ú__classcell__r0   r0   r‰   r1   r!   Û   s    r!   c                       sF   e Zd Zdddœdededee dee deddf‡ fd	d
„Z‡  ZS )r"   N©rX   rV   rT   r7   rX   rV   r8   r9   c                   sp   |d u r|d u rd}d}nt |ƒ}|j dd¡}n
|d u r!d| }|}tƒ j| |¡g|¢R ||dœ|¤Ž d S )Nrj   útext/plain; charset=utf-8Úcharsetútext/plain; charset=%srŒ   )r   Ú
parametersr;   r‚   rD   rm   )rC   rT   rX   rV   r7   r8   Úreal_encodingÚmimetyper‰   r0   r1   rD   ù   s&   	ÿüý
ûzStringPayload.__init__)r-   r.   r/   rx   r   r   rD   r‹   r0   r0   r‰   r1   r"   ø   s     ûþýüûúùr"   c                       s2   e Zd Zdee dededdf‡ fdd„Z‡  ZS )r'   rT   r7   r8   r9   Nc                    ó"   t ƒ j| ¡ g|¢R i |¤Ž d S r:   )r‚   rD   Úreadrˆ   r‰   r0   r1   rD     ó   "zStringIOPayload.__init__)r-   r.   r/   r   rx   r   rD   r‹   r0   r0   r‰   r1   r'     s    *r'   c                       sZ   e Zd ZU ee ed< 	ddee dedededdf
‡ fd	d
„Zdeddfdd„Z	‡  Z
S )r#   r]   Ú
attachmentrT   Údispositionr7   r8   r9   Nc                    sl   d|vr
t |ƒ|d< tƒ j|g|¢R i |¤Ž | jd ur0|d ur2tj| jvr4| j|| jd� d S d S d S d S )NrW   )rW   )r   r‚   rD   r[   r   rs   rU   rt   )rC   rT   r—   r7   r8   r‰   r0   r1   rD     s   þzIOBasePayload.__init__ru   c              
   Ã   s¤   �t  ¡ }z@| d | jjd¡I d H }|r8| |¡I d H  | d | jjd¡I d H }|sW | d | jj¡I d H  d S W | d | jj¡I d H  d S | d | jj¡I d H  w )Né   )ÚasyncioÚget_event_loopÚrun_in_executorr]   r”   rw   Úclose)rC   ru   ÚloopÚchunkr0   r0   r1   rw   +  s   €þü2zIOBasePayload.write)r–   )r-   r.   r/   r   r   ry   rx   rD   r   rw   r‹   r0   r0   r‰   r1   r#     s   
 ÿÿÿÿÿþr#   c                       sx   e Zd ZU eed< dddœdededee dee ded	df‡ fd
d„Ze	d	ee
 fdd„ƒZded	dfdd„Z‡  ZS )r&   r]   NrŒ   rT   r7   rX   rV   r8   r9   c                   sf   |d u r|d u rd}d}nt |ƒ}|j dd¡}n|d u r!d| }tƒ j|g|¢R ||dœ|¤Ž d S )Nrj   r�   rŽ   r�   ©rV   rX   )r   r�   r;   r‚   rD   )rC   rT   rX   rV   r7   r8   r’   r‰   r0   r1   rD   9  s$   	ÿüý
ûzTextIOPayload.__init__c                 C   ó4   zt  | j ¡ ¡j| j ¡  W S  ty   Y d S w r:   ©ÚosÚfstatr]   ÚfilenoÚst_sizeÚtellÚOSErrorrJ   r0   r0   r1   rc   U  s
   ÿzTextIOPayload.sizeru   c              
   Ã   sÀ   �t  ¡ }zN| d | jjd¡I d H }|rF| jr|j| jd�n| ¡ }| |¡I d H  | d | jjd¡I d H }|sW | d | jj¡I d H  d S W | d | jj¡I d H  d S | d | jj¡I d H  w )Nr˜   )rX   )	r™   rš   r›   r]   r”   rZ   rm   rw   rœ   )rC   ru   r�   rž   r6   r0   r0   r1   rw   \  s   €ÿýù	÷2	zTextIOPayload.write)r-   r.   r/   r   ry   r   r   rx   rD   r{   rz   rc   r   rw   r‹   r0   r0   r‰   r1   r&   6  s(   
 ûþýüûúùr&   c                   @   s   e Zd Zedefdd„ƒZdS )r$   r9   c                 C   s.   | j  ¡ }| j  dtj¡}| j  |¡ || S rY   )r]   r¦   Úseekr¢   ÚSEEK_END)rC   ÚpositionÚendr0   r0   r1   rc   m  s   
zBytesIOPayload.sizeN)r-   r.   r/   r{   rz   rc   r0   r0   r0   r1   r$   l  s    r$   c                   @   s"   e Zd Zedee fdd„ƒZdS )r%   r9   c                 C   r    r:   r¡   rJ   r0   r0   r1   rc   v  s
   ýzBufferedReaderPayload.sizeN)r-   r.   r/   r{   r   rz   rc   r0   r0   r0   r1   r%   u  s    r%   c                       sD   e Zd Zddejfdedededededed	d
f‡ fdd„Z‡  Z	S )r(   rj   zapplication/jsonrT   rX   rV   Údumpsr7   r8   r9   Nc                    s.   t ƒ j||ƒ |¡g|¢R ||dœ|¤Ž d S )NrŸ   )r‚   rD   rm   )rC   rT   rX   rV   r¬   r7   r8   r‰   r0   r1   rD   �  s   
ÿüý
ûzJsonPayload.__init__)
r-   r.   r/   Újsonr¬   r   rx   r   rD   r‹   r0   r0   r‰   r1   r(   €  s&    ûþýüûúùør(   )ÚAsyncIterableÚAsyncIteratorc                       sR   e Zd ZU dZee ed< dedededdf‡ fdd„Z	d	e
ddfd
d„Z‡  ZS )r)   NÚ_iterrT   r7   r8   r9   c                    sT   t |tƒstd t|ƒ¡ƒ‚d|vrd|d< tƒ j|g|¢R i |¤Ž | ¡ | _d S )NzMvalue argument must support collections.abc.AsyncIterable interface, got {!r}rV   rQ   )	rL   r®   r�   Úformatr?   r‚   rD   Ú	__aiter__r°   rˆ   r‰   r0   r1   rD   ¤  s   

ýzAsyncIterablePayload.__init__ru   c                 Ã   sL   �| j r$z	 | j  ¡ I d H }| |¡I d H  q ty#   d | _ Y d S w d S r:   )r°   Ú	__anext__rw   ÚStopAsyncIteration)rC   ru   rž   r0   r0   r1   rw   ³  s   €þÿùzAsyncIterablePayload.write)r-   r.   r/   r°   r   Ú_AsyncIteratorry   Ú_AsyncIterabler   rD   r   rw   r‹   r0   r0   r‰   r1   r)      s   
 r)   c                       s.   e Zd Zdedededdf‡ fdd„Z‡  ZS )ÚStreamReaderPayloadrT   r7   r8   r9   Nc                    r“   r:   )r‚   rD   Úiter_anyrˆ   r‰   r0   r1   rD   À  r•   zStreamReaderPayload.__init__)r-   r.   r/   r   r   rD   r‹   r0   r0   r‰   r1   r·   ¿  s    &r·   )Vr™   ÚenumÚior­   r_   r¢   r…   Úabcr   r   Ú	itertoolsr   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   Ú	multidictr   re   r   r   Úhelpersr   r   r   r   r   Ústreamsr   Útypedefsr   r   Ú__all__r*   rz   ry   r+   Ú	Exceptionr,   rx   ÚEnumr2   r   r3   rB   r   rP   Ú_PayloadRegistryItemrF   r    r!   r"   r'   r#   r&   r$   r%   r(   r®   r¯   r|   rµ   r¶   Úcollections.abcr)   r·   r   rA   r   r€   ÚStringIOÚ
TextIOBaseÚBytesIOÚBufferedReaderÚBufferedRandomÚIOBaser5   r0   r0   r0   r1   Ú<module>   s‚   
 8ÿÿÿÿ
þ
'U6	
