o
    zsg=                  	   @   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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 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rd 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 ZKeKLe;eEeMeNf eKLe<e0 eKLe=ejO eKLe?ejP eKLe@ejQ eKLeAejRejSf eKLe>ejT eKLeJe% eKjLeIeCe2jUd dS );    N)ABCabstractmethod)chain)IOTYPE_CHECKINGAny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__ r/   r/   K/var/www/html/minecraft/env/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.   r2   r3   r4   r/   r/   r/   r0   r1   A   s    r1   dataargskwargsreturnr   c                 O   s   t j| g|R i |S N)r   get)r5   r6   r7   r/   r/   r0   r   G   s   r   orderfactorytyper<   c                C   s   t j| ||d d S Nr;   )r   register)r=   r>   r<   r/   r/   r0   register_payloadK   s   rA   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<   r8   Nc                C   s   || _ || _d S r9   )r>   r<   )selfr>   r<   r/   r/   r0   __init__R   s   
zpayload_type.__init__r=   r   c                 C   s   t || j| jd |S r?   )rA   r>   r<   )rB   r=   r/   r/   r0   __call__V   s   zpayload_type.__call__)	r,   r-   r.   r1   r2   r   rC   r   rD   r/   r/   r/   r0   r   Q   s    r   c                   @   sd   e Zd 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
    _first_normal_last_normal_lookupr8   Nc                 C   s   g | _ g | _g | _i | _d S r9   rF   rB   r/   r/   r0   rC   g   s   
zPayloadRegistry.__init__)_CHAINr5   r6   rL   z!Type[chain[_PayloadRegistryItem]]r7   r   c                O   s   | j r| j D ]\}}t||r||g|R i |  S q| jt| }r2||g|R i |S t|tr9|S || j| jD ]\}}t||rV||g|R i |  S q@t r9   )	rG   
isinstancerJ   r:   r>   r   rH   rI   r+   )rB   r5   rL   r6   r7   r=   type_lookup_factoryr/   r/   r0   r:   m   s   


zPayloadRegistry.getr;   r=   r>   r<   c                C   s   |t ju r| j||f d S |t ju r4| j||f t|tr-|D ]}|| j|< q#d S || j|< d S |t j	u rC| j
||f d S td|)NzUnsupported order )r1   r3   rG   appendr2   rH   rM   r
   rJ   r4   rI   
ValueError)rB   r=   r>   r<   tr/   r/   r0   r@      s   



zPayloadRegistry.register)r8   N)r,   r-   r.   __doc__	__slots__rC   r   r   r:   r1   r2   PayloadTyper@   r/   r/   r/   r0   rE   _   s4    


rE   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*d	ed#ede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encodingr7   r8   c                 K   s   || _ || _t | _|| _|tur|d ur|| jtj< n-| jd urBtj	dkr*t
j}nt
j}|| jd }|d u r;| j}|| jtj< n| j| jtj< |rS| j| d S d S )N)      r   )	_encoding	_filenamer   _headers_valuer   r   CONTENT_TYPEsysversion_info	mimetypesguess_file_type
guess_typerW   update)rB   rY   rZ   r[   r\   r]   r7   guesserr/   r/   r0   rC      s$   

zPayload.__init__c                 C      | j S )zSize of the payload.)rX   rK   r/   r/   r0   size      zPayload.sizec                 C   rl   )zFilename of the payload.)ra   rK   r/   r/   r0   r\      rn   zPayload.filenamec                 C   rl   )zCustom item headers)rb   rK   r/   r/   r0   rZ      rn   zPayload.headersc                 C   s$   d dd | j D dd S )N c                 S   s    g | ]\}}|d  | d qS )z: z
r/   ).0kvr/   r/   r0   
<listcomp>   s     z+Payload._binary_headers.<locals>.<listcomp>utf-8s   
)joinrZ   itemsencoderK   r/   r/   r0   _binary_headers   s   zPayload._binary_headersc                 C   rl   )zPayload encoding)r`   rK   r/   r/   r0   r]      rn   zPayload.encodingc                 C   s   | j tj S )zContent type)rb   r   rd   rK   r/   r/   r0   r[      s   zPayload.content_typeTrt   disptypequote_fields_charsetparamsc                 K   s"   t |f||d|| jtj< dS )z$Sets ``Content-Disposition`` header.)rz   r{   N)r   rb   r   CONTENT_DISPOSITION)rB   ry   rz   r{   r|   r/   r/   r0   set_content_disposition   s   zPayload.set_content_dispositionstricterrorsc                 C   s   dS )z~Return string representation of the value.

        This is named decode() to allow compatibility with bytes objects.
        Nr/   rB   r]   r   r/   r/   r0   decode   s    zPayload.decodewriterc                    s   dS )zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr/   rB   r   r/   r/   r0   write   s    zPayload.write)Trt   rt   r   ) r,   r-   r.   rW   str__annotations__rX   r   intr   r   r   r   r   r
   r   r   rC   propertyrm   r\   rZ   bytesrx   r]   r[   boolr~   r   r   r   r   r/   r/   r/   r0   r      sj   
  	


c                       sl   e Zd ZU eed< deeeef dededdf fddZ	dde
de
de
fddZdeddfddZ  ZS )r    rc   rY   r6   r7   r8   Nc                    s   d|vrd|d< t  j|g|R i | t|tr|j| _nt|ttfr,t|| _n	t	dt
|| jtkrJd| i}tjdtfi | d S d S )Nr[   rV   z%value argument must be byte-ish, not sourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)superrC   rM   
memoryviewnbytesrX   r   	bytearraylen	TypeErrorr>   r)   warningswarnResourceWarningrB   rY   r6   r7   	__class__r/   r0   rC      s"   



zBytesPayload.__init__rt   r   r]   r   c                 C   s   | j ||S r9   )rc   r   r   r/   r/   r0   r     s   zBytesPayload.decoder   c                    s   | | jI d H  d S r9   )r   rc   r   r/   r/   r0   r     s   zBytesPayload.writer   )r,   r-   r.   r   r   r   r   r   r   rC   r   r   r   r   __classcell__r/   r/   r   r0   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r]   r[   rY   r6   r]   r[   r7   r8   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 )Nrt   text/plain; charset=utf-8charsettext/plain; charset=%sr   )r   
parametersr:   r   rC   rw   )rB   rY   r]   r[   r6   r7   real_encodingmimetyper   r/   r0   rC     s&   	
zStringPayload.__init__)r,   r-   r.   r   r   r   rC   r   r/   r/   r   r0   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&   rY   r6   r7   r8   Nc                    "   t  j| g|R i | d S r9   )r   rC   readr   r   r/   r0   rC   :     "zStringIOPayload.__init__)r,   r-   r.   r   r   r   rC   r   r/   r/   r   r0   r&   9  s    *r&   c                       sp   e Zd ZU ej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ddededefddZ  ZS )r"   rc   
attachmentrY   dispositionr6   r7   r8   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 )Nr\   )r\   )r   r   rC   ra   r   r}   rZ   r~   )rB   rY   r   r6   r7   r   r/   r0   rC   A  s   zIOBasePayload.__init__r   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_executorrc   r   r   close)rB   r   loopchunkr/   r/   r0   r   M  s   2zIOBasePayload.writert   r   r]   r   c                    s    d  fdd| j D S )Nro   c                 3   s    | ]	}|  V  qd S r9   )r   )rp   rr]   r   r/   r0   	<genexpr>X  s    z'IOBasePayload.decode.<locals>.<genexpr>)ru   rc   	readlinesr   r/   r   r0   r   W  s    zIOBasePayload.decode)r   r   )r,   r-   r.   ioIOBaser   r   r   r   rC   r   r   r   r   r/   r/   r   r0   r"   >  s    
 
 
r"   c                       s   e Zd ZU ej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de	de	d	e	fddZded	dfddZ  ZS )r%   rc   Nr   rY   r6   r]   r[   r7   r8   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 )Nrt   r   r   r   r[   r]   )r   r   r:   r   rC   )rB   rY   r]   r[   r6   r7   r   r   r/   r0   rC   ^  s$   	
zTextIOPayload.__init__c                 C   s4   zt | j j| j  W S  ty   Y d S w r9   )osfstatrc   filenost_sizetellOSErrorrK   r/   r/   r0   rm   z  s
   zTextIOPayload.sizert   r   r   c                 C   s
   | j  S r9   )rc   r   r   r/   r/   r0   r     s   
zTextIOPayload.decoder   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   )r]   )	r   r   r   rc   r   r`   rw   r   r   )rB   r   r   r   r5   r/   r/   r0   r     s   	2	zTextIOPayload.writer   )r,   r-   r.   r   
TextIOBaser   r   r   r   r   rC   r   r   rm   r   r   r   r   r/   r/   r   r0   r%   [  s*   
 
r%   c                   @   sB   e Zd ZU ejed< edefddZdde	de	de	fd	d
Z
dS )r#   rc   r8   c                 C   s.   | j  }| j dtj}| j | || S )Nr   )rc   r   seekr   SEEK_END)rB   positionendr/   r/   r0   rm     s   
zBytesIOPayload.sizert   r   r]   r   c                 C      | j  ||S r9   rc   r   r   r   r/   r/   r0   r        zBytesIOPayload.decodeNr   )r,   r-   r.   r   BytesIOr   r   r   rm   r   r   r/   r/   r/   r0   r#     s
   
 
r#   c                   @   sF   e Zd ZU ejed< edee fddZ	dde
de
de
fd	d
ZdS )r$   rc   r8   c              	   C   s8   zt | j j| j  W S  ttfy   Y d S w r9   )r   r   rc   r   r   r   r   AttributeErrorrK   r/   r/   r0   rm     s
   zBufferedReaderPayload.sizert   r   r]   r   c                 C   r   r9   r   r   r/   r/   r0   r     r   zBufferedReaderPayload.decodeNr   )r,   r-   r.   r   BufferedIOBaser   r   r   r   rm   r   r   r/   r/   r/   r0   r$     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'   rt   zapplication/jsonrY   r]   r[   dumpsr6   r7   r8   Nc                    s.   t  j|||g|R ||d| d S )Nr   )r   rC   rw   )rB   rY   r]   r[   r   r6   r7   r   r/   r0   rC     s   

zJsonPayload.__init__)
r,   r-   r.   jsonr   r   r   r   rC   r   r/   r/   r   r0   r'     s&    r'   )AsyncIterableAsyncIteratorc                       sr   e Zd ZU dZee ed< eed< dedededdf fdd	Z	d
e
ddfddZddededefddZ  ZS )r(   N_iterrc   rY   r6   r7   r8   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}r[   rV   )	rM   r   r   formatr>   r   rC   	__aiter__r   r   r   r/   r0   rC     s   

zAsyncIterablePayload.__init__r   c                    sL   | j r$z	 | j  I d H }||I d H  q ty#   d | _ Y d S w d S r9   )r   	__anext__r   StopAsyncIteration)rB   r   r   r/   r/   r0   r     s   zAsyncIterablePayload.writert   r   r]   r   c                 C   s   t d)NzUnable to decode.)r   r   r/   r/   r0   r     s   zAsyncIterablePayload.decoder   )r,   r-   r.   r   r   _AsyncIteratorr   _AsyncIterabler   rC   r   r   r   r   r   r/   r/   r   r0   r(     s   
  r(   c                       s.   e Zd Zdedededdf fddZ  ZS )StreamReaderPayloadrY   r6   r7   r8   Nc                    r   r9   )r   rC   iter_anyr   r   r/   r0   rC     r   zStreamReaderPayload.__init__)r,   r-   r.   r   r   rC   r   r/   r/   r   r0   r     s    &r   )Vr   enumr   r   rg   r   re   r   abcr   r   	itertoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   	multidictr   ro   r   r   helpersr   r   r   r   r   streamsr   typedefsr   r   __all__r)   r   r   r*   	Exceptionr+   r   Enumr1   r   r2   rA   r   rU   _PayloadRegistryItemrE   r   r    r!   r&   r"   r%   r#   r$   r'   r   r   r   r   r   collections.abcr(   r   r   r@   r   r   StringIOr   r   BufferedReaderBufferedRandomr   r4   r/   r/   r/   r0   <module>   s   
 4

7a#9
#