
    g=              	          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rd dlm-Z-  G d de.      Z/ G d de0ejb                        Z2dedededdfdZ3e2jh                  dded   dede2ddfdZ5 G d d       Z6ed   Z7ee7ef   Z8 G d! d"      Z9 G d# de	      Z: G d$ d%e:      Z; G d& d'e;      Z< G d( d)e<      Z= G d* d+e:      Z> G d, d-e>      Z? G d. d/e>      Z@ G d0 d1e>      ZA G d2 d3e;      ZBerd d4lmCZCmDZD eDeE   ZFeCeE   ZGnd d4lHmCZCmDZD eDZFeCZG G d5 d6e:      ZI G d7 d8eI      ZJ e9       ZKeKj                  e;eEeMeNf       eKj                  e<e0       eKj                  e=ej                         eKj                  e?ej                         eKj                  e@ej                         eKj                  eAej                  ej                  f       eKj                  e>ej                         eKj                  eJe%       eKj                  eIeCe2j                         y)9    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                       e Zd Zy)LookupErrorN)__name__
__module____qualname__     D/var/www/openai/venv/lib/python3.12/site-packages/aiohttp/payload.pyr-   r-   =   s    r2   r-   c                       e Zd ZdZdZdZy)Ordernormal	try_firsttry_lastN)r.   r/   r0   r6   r7   r8   r1   r2   r3   r5   r5   A   s    FIHr2   r5   dataargskwargsreturnr    c                 4    t        j                  | g|i |S N)r   get)r9   r:   r;   s      r3   r   r   G   s    6t6v66r2   orderfactorytyperA   c                4    t         j                  | ||       y Nr@   )r   register)rB   rC   rA   s      r3   register_payloadrG   K   s     gt59r2   c                   V    e Zd Zej                  ddededdfdZded   ded   fd	Zy)
r   r@   rC   rA   r<   Nc                     || _         || _        y r>   )rC   rA   )selfrC   rA   s      r3   __init__zpayload_type.__init__R   s    	
r2   rB   r    c                 J    t        || j                  | j                         |S rE   )rG   rC   rA   )rJ   rB   s     r3   __call__zpayload_type.__call__V   s    $))4::>r2   )	r.   r/   r0   r5   r6   r   rK   r   rM   r1   r2   r3   r   r   Q   s>    49LL S E T Y DO r2   r   c                   p    e Zd ZdZdZddZeddeded	d
deddf
dZe	j                  ddedede	ddfdZy)PayloadRegistryzZPayload registry.

    note: we need zope.interface for more efficient adapter search
    _first_normal_last_normal_lookupr<   Nc                 <    g | _         g | _        g | _        i | _        y r>   rP   rJ   s    r3   rK   zPayloadRegistry.__init__g   s    243513
68r2   )_CHAINr9   r:   rW   z!Type[chain[_PayloadRegistryItem]]r;   r    c                   | j                   r.| j                   D ]  \  }}t        ||      s ||g|i |c S  | j                  j                  t	        |            x}r ||g|i |S t        |t
              r|S  || j                  | j                        D ]  \  }}t        ||      s ||g|i |c S  t               r>   )	rQ   
isinstancerT   r?   rC   r    rR   rS   r-   )rJ   r9   rW   r:   r;   rB   type_lookup_factorys           r3   r?   zPayloadRegistry.getm   s     ;;"&++dE*"49$9&99 #. "0044T$Z@@>@!$8888dG$K$T\\4::>NGU$&t5d5f55 ? mr2   r@   rB   rC   rA   c                   |t         j                  u r| j                  j                  ||f       y |t         j                  u rT| j
                  j                  ||f       t        |t              r|D ]  }|| j                  |<    y || j                  |<   y |t         j                  u r| j                  j                  ||f       y t        d|      )NzUnsupported order )r5   r7   rQ   appendr6   rR   rY   r   rT   r8   rS   
ValueError)rJ   rB   rC   rA   ts        r3   rF   zPayloadRegistry.register   s     EOO#KK/ell"LL$0$)A-4D''*  -4##D)enn$JJwo.1%;<<r2   )r<   N)r.   r/   r0   __doc__	__slots__rK   r   r   r?   r5   r6   PayloadTyperF   r1   r2   r3   rO   rO   _   s~    
 AI9 7<	  4	
  
0 BG="=*-=9>=	=r2   rO   c                      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Zedee   fd       Zedee   fd       Zedefd       Zedefd       Zedee   fd       Zedefd       Z	 	 ddededede
ddf
dZedd	ededefd       Zededdfd       Zy)r    application/octet-stream_default_content_typeN_sizevalueheaderscontent_typefilenameencodingr;   r<   c                 (   || _         || _        t               | _        || _        |t
        ur ||| j                  t        j                  <   n| j                  ut        j                  dk\  rt        j                  }nt        j                  } || j                        d   }|| j                  }|| j                  t        j                  <   n'| j                  | j                  t        j                  <   |r| j                  j                  |       y y )N)      r   )	_encoding	_filenamer   _headers_valuer   r   CONTENT_TYPEsysversion_info	mimetypesguess_file_type
guess_typere   update)rJ   rg   rh   ri   rj   rk   r;   guessers           r3   rK   zPayload.__init__   s     "!&1mx'L,D/;DMM$++,^^'7*#33#.."4>>215L##99/;DMM$++,/3/I/IDMM$++,MM  ) r2   c                     | j                   S )zSize of the payload.)rf   rV   s    r3   sizezPayload.size   s     zzr2   c                     | j                   S )zFilename of the payload.)rp   rV   s    r3   rj   zPayload.filename        ~~r2   c                     | j                   S )zCustom item headers)rq   rV   s    r3   rh   zPayload.headers   s     }}r2   c                     dj                  | j                  j                         D cg c]  \  }}|dz   |z   dz    c}}      j                  d      dz   S c c}}w )N z: z
utf-8s   
)joinrh   itemsencode)rJ   kvs      r3   _binary_headerszPayload._binary_headers   s_     GGt||7I7I7KL7Ktq!QX\F*7KLMTT 	
Ls   A
c                     | j                   S )zPayload encoding)ro   rV   s    r3   rk   zPayload.encoding   r~   r2   c                 <    | j                   t        j                     S )zContent type)rq   r   rs   rV   s    r3   ri   zPayload.content_type   s     }}T..//r2   disptypequote_fields_charsetparamsc                 X    t        |f||d|| j                  t        j                  <   y)z$Sets ``Content-Disposition`` header.)r   r   N)r   rq   r   CONTENT_DISPOSITION)rJ   r   r   r   r   s        r3   set_content_dispositionzPayload.set_content_disposition   s3     3M3
#/(3
FL3
d../r2   errorsc                      y)z~Return string representation of the value.

        This is named decode() to allow compatibility with bytes objects.
        Nr1   rJ   rk   r   s      r3   decodezPayload.decode   s    r2   writerc                    K   yw)zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr1   rJ   r   s     r3   writezPayload.write   s     s   )Tr   r   strict) r.   r/   r0   re   str__annotations__rf   r   intr   r   r   r   r	   r   r   r   rK   propertyr|   rj   rh   bytesr   rk   ri   boolr   r   r   r   r   r1   r2   r3   r    r       s   !;3;E8C= 4<"&"&** ,S#XsCx0IIJ
* Cy01* 3-* 3-* * 
*> hsm   (3-      
 
 
 (3-   0c 0 0 "	



 

 	


 

 


 s c    "6 4  r2   c                   n     e Zd ZU eed<   deeeef   dededdf fdZ	dde
d	e
de
fd
ZdeddfdZ xZS )r!   rr   rg   r:   r;   r<   Nc                 d   d|vrd|d<   t        |   |g|i | t        |t              r|j                  | _        n>t        |t        t        f      rt        |      | _        nt        dt        |            | j
                  t        kD  r d| i}t        j                  dt        fi | y y )Nri   rd   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)superrK   rY   
memoryviewnbytesrf   r   	bytearraylen	TypeErrorrC   r*   warningswarnResourceWarningrJ   rg   r:   r;   	__class__s       r3   rK   zBytesPayload.__init__   s     '%?F>"000eZ(DJy12UDJCDK?STT::,,%FMM,  	
  -r2   rk   r   c                 :    | j                   j                  ||      S r>   )rr   r   r   s      r3   r   zBytesPayload.decode  s    {{!!(F33r2   r   c                 V   K   |j                  | j                         d {    y 7 wr>   )r   rr   r   s     r3   r   zBytesPayload.write  s     ll4;;'''s   )')r   )r.   r/   r0   r   r   r   r   r   r   rK   r   r   r   r   __classcell__r   s   @r3   r!   r!      sg    M5)Z78ADPS	24s 4c 4 4("6 (4 (r2   r!   c                   L     e Zd Zddddededee   dee   deddf fd	Z xZS )
r"   Nrk   ri   rg   r:   rk   ri   r;   r<   c                    |/|d}d}n1t        |      }|j                  j                  dd      }n	|d|z  }|}t        |   |j                  |      g|||d| y )Nr   text/plain; charset=utf-8charsettext/plain; charset=%sr   )r   
parametersr?   r   rK   r   )	rJ   rg   rk   ri   r:   r;   real_encodingmimetyper   s	           r3   rK   zStringPayload.__init__  s     # ':),7 ( 3 3 7 7	7 K#7(B$MLL'	
 		
"%	

 	
r2   )r.   r/   r0   r   r   r   rK   r   r   s   @r3   r"   r"     sW    
 #'&*

 
 3-	

 sm
 
 

 
r2   r"   c                   6     e Zd Zdee   dededdf fdZ xZS )r'   rg   r:   r;   r<   Nc                 H    t        |   |j                         g|i | y r>   )r   rK   readr   s       r3   rK   zStringIOPayload.__init__:  s     777r2   )r.   r/   r0   r   r   r   rK   r   r   s   @r3   r'   r'   9  s-    8bg 8c 8S 8T 8 8r2   r'   c                        e Zd ZU ej                  ed<   	 ddee   dedededdf
 fdZ	d	e
ddfd
ZddededefdZ xZS )r#   rr   rg   dispositionr:   r;   r<   Nc                     d|vrt        |      |d<   t        |   |g|i | | j                  >|;t        j
                  | j                  vr| j                  || j                         y y y y )Nrj   )rj   )r   r   rK   rp   r   r   rh   r   )rJ   rg   r   r:   r;   r   s        r3   rK   zIOBasePayload.__init__A  sy     V#!/!6F:000>>%+*A''t||;,,[4>>,R < +B%r2   r   c                   K   t        j                         }	 |j                  d | j                  j                  d       d {   }|rK|j                  |       d {    |j                  d | j                  j                  d       d {   }|rK|j                  d | j                  j                         d {    y 7 7 g7 :7 # |j                  d | j                  j                         d {  7   w xY ww)N   )asyncioget_event_looprun_in_executorrr   r   r   close)rJ   r   loopchunks       r3   r   zIOBasePayload.writeM  s     %%'	@..tT[[5E5EuMMEll5)))"2249I9I5QQ  &&tT[[->->??? N)Q?$&&tT[[->->???sp   C?*C CC C.C CC )C?=C	>C?C C C 	C?*C<5C86C<<C?rk   r   c                 l    dj                  fd| j                  j                         D              S )Nr   c              3   B   K   | ]  }|j                          y wr>   )r   ).0rrk   r   s     r3   	<genexpr>z'IOBasePayload.decode.<locals>.<genexpr>X  s     S;Raqxx&1;Rs   )r   rr   	readlinesr   s    ``r3   r   zIOBasePayload.decodeW  s%    wwS4;;;P;P;RSSSr2   )
attachmentr   )r.   r/   r0   ioIOBaser   r   r   r   rK   r   r   r   r   r   s   @r3   r#   r#   >  s~    II 2>
SW
S+.
SFI
SUX
S	
S@"6 @4 @Ts Tc T Tr2   r#   c                        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
Z
ed	ee   fd       Zdde	de	d	e	fdZded	dfdZ xZS )r&   rr   Nr   rg   r:   rk   ri   r;   r<   c                    |/|d}d}n/t        |      }|j                  j                  dd      }n|d|z  }t        |   |g|||d| y )Nr   r   r   r   ri   rk   )r   r   r?   r   rK   )rJ   rg   rk   ri   r:   r;   r   r   s          r3   rK   zTextIOPayload.__init__^  s|     #":),7#..229gF#7(B	
 		
%	

 	
r2   c                     	 t        j                  | j                  j                               j                  | j                  j                         z
  S # t        $ r Y y w xY wr>   )osfstatrr   filenost_sizetellOSErrorrV   s    r3   r|   zTextIOPayload.sizez  sM    	88DKK..0199DKK<L<L<NNN 		s   AA 	A A r   c                 6    | j                   j                         S r>   )rr   r   r   s      r3   r   zTextIOPayload.decode  s    {{!!r2   r   c                 r  K   t        j                         }	 |j                  d | j                  j                  d       d {   }|r| j
                  r|j                  | j
                        n|j                         }|j                  |       d {    |j                  d | j                  j                  d       d {   }|r|j                  d | j                  j                         d {    y 7 7 g7 :7 # |j                  d | j                  j                         d {  7   w xY ww)Nr   )rk   )	r   r   r   rr   r   ro   r   r   r   )rJ   r   r   r   r9   s        r3   r   zTextIOPayload.write  s     %%'	@..tT[[5E5EuMME ~~ LL$..L9 
 ll4((("2249I9I5QQ  &&tT[[->->??? N )Q?$&&tT[[->->???sq   D7*D C;AD C=.D C?D )D75D6D7;D =D ?D D7*D4-D0.D44D7r   )r.   r/   r0   r   
TextIOBaser   r   r   r   r   rK   r   r   r|   r   r   r   r   r   s   @r3   r&   r&   [  s    MM #'&*

 
 3-	

 sm
 
 

8 hsm  "s "c " "@"6 @4 @r2   r&   c                   X    e Zd ZU ej                  ed<   edefd       Zdde	de	de	fdZ
y)	r$   rr   r<   c                     | j                   j                         }| j                   j                  dt        j                        }| j                   j                  |       ||z
  S )Nr   )rr   r   seekr   SEEK_END)rJ   positionends      r3   r|   zBytesIOPayload.size  sJ    ;;##%kkq"++."X~r2   rk   r   c                 V    | j                   j                         j                  ||      S r>   rr   r   r   r   s      r3   r   zBytesIOPayload.decode  "    {{!((6::r2   Nr   )r.   r/   r0   r   BytesIOr   r   r   r|   r   r   r1   r2   r3   r$   r$     s?    JJc  ;s ;c ; ;r2   r$   c                   ^    e Zd ZU ej                  ed<   edee   fd       Z	dde
de
de
fdZy)	r%   rr   r<   c                     	 t        j                  | j                  j                               j                  | j                  j                         z
  S # t        t        f$ r Y y w xY wr>   )r   r   rr   r   r   r   r   AttributeErrorrV   s    r3   r|   zBufferedReaderPayload.size  sT    	88DKK..0199DKK<L<L<NNN( 	
 	s   AA A&%A&rk   r   c                 V    | j                   j                         j                  ||      S r>   r   r   s      r3   r   zBufferedReaderPayload.decode  r   r2   Nr   )r.   r/   r0   r   BufferedIOBaser   r   r   r   r|   r   r   r1   r2   r3   r%   r%     sE    hsm  ;s ;c ; ;r2   r%   c                   X     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Z xZ	S )r(   r   zapplication/jsonrg   rk   ri   dumpsr:   r;   r<   Nc                 \    t        |    ||      j                  |      g|||d| y )Nr   )r   rK   r   )rJ   rg   rk   ri   r   r:   r;   r   s          r3   rK   zJsonPayload.__init__  sC     	%L)	
 		
%	

 	
r2   )
r.   r/   r0   jsonr   r   r   r   rK   r   r   s   @r3   r(   r(     s`      .!ZZ

 
 	

 
 
 
 

 
r2   r(   )AsyncIterableAsyncIteratorc                   v     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Z	d	e
ddfd
ZddededefdZ xZS )r)   N_iterrr   rg   r:   r;   r<   c                     t        |t              s#t        dj                  t	        |                  d|vrd|d<   t        |   |g|i | |j                         | _        y )NzMvalue argument must support collections.abc.AsyncIterable interface, got {!r}ri   rd   )	rY   r   r   formatrC   r   rK   	__aiter__r   r   s       r3   rK   zAsyncIterablePayload.__init__  sf    %/!6$u+.  '%?F>"000__&
r2   r   c                    K   | j                   r>	 	 | j                   j                          d {   }|j                  |       d {    <y 7 7 # t        $ r
 d | _         Y y w xY wwr>   )r   	__anext__r   StopAsyncIteration)rJ   r   r   s      r3   r   zAsyncIterablePayload.write  sf     ::" "&**"6"6"88E ,,u--- 	 
 9-% "!
"sJ   A(A AA AA A(A A A%"A($A%%A(rk   r   c                     t        d      )NzUnable to decode.)r   r   s      r3   r   zAsyncIterablePayload.decode  s    +,,r2   r   )r.   r/   r0   r   r   _AsyncIteratorr   _AsyncIterabler   rK   r   r   r   r   r   r   s   @r3   r)   r)     sg    &*E8N#*'n 'S 'C 'D '	""6 	"4 	"-s -c - -r2   r)   c                   0     e Zd Zdedededdf fdZ xZS )StreamReaderPayloadrg   r:   r;   r<   Nc                 H    t        |   |j                         g|i | y r>   )r   rK   iter_anyr   s       r3   rK   zStreamReaderPayload.__init__  s!    );D;F;r2   )r.   r/   r0   r   r   rK   r   r   s   @r3   r  r    s)    <l <3 <# <$ < <r2   r  )Vr   enumr   r   rv   r   rt   r   abcr   r   	itertoolsr   typingr   r   r   r	   r
   r   r   r   r   r   r   	multidictr   r   r   r   helpersr   r   r   r   r   streamsr   typedefsr   r   __all__r*   r   r   r+   	Exceptionr-   r   Enumr5   r   r6   rG   r   rb   _PayloadRegistryItemrO   r    r!   r"   r'   r#   r&   r$   r%   r(   r   r   r   r   r   collections.abcr)   r  r   rF   r   r   StringIOr   r   BufferedReaderBufferedRandomr   r8   r1   r2   r3   <module>r     s     	   	 
  #     "  %  " /  $) eCj (	) 	C 7c 7# 7 7 7
 <A<<:)_:$':38:	:  9o[#-. 4= 4=n^c ^B (7  (F
L 
>8m 8
TG T:6@M 6@r;] ;;M ;$
, 
( 3"5)N"5)N<"N"N -7  -F<. <
 #$    ,	:(F G   - -   /2;; 7   - 7   ."** 5   /"2C2CREVEV1W X   - 3   -| <   .U^^  Tr2   