
    tni-                        U 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 ej        dk    rd dlmZ nd dlmZ eeedd	f         Z	 	 d dlZn# e$ r d dlZY nw xY wd
Zn# e$ r dZY nw xY w	 ej        dk    rd dlmZ nd dlmZ d
Zn# e$ r dZY nw xY wdZdZd ZdZ  G d de          Z! G d de          Z" G d de          Z# G d ded          Z$ G d d          Z% e%e          Z&e%e'd<   de#ddfdZ(	 	 d-d ee)         d!e*de+fd"Z, G d# d$e          Z- G d% d&          Z. G d' d(e-          Z/ G d) d*e-          Z0 G d+ d,e-          Z1dS ).    N)ABCabstractmethod)Executor)AnyFinalOptionalProtocol	TypedDictcast)      )Buffer)Unionzmemoryview[int]zmemoryview[bytes]TF)r      )ZstdDecompressori   i   c                   0    e Zd ZdedefdZddedefdZdS )	ZLibCompressObjProtocoldatareturnc                     d S N selfr   s     V/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/aiohttp/compression_utils.pycompressz ZLibCompressObjProtocol.compress-             .modec                    d S r   r   r   r    s     r   flushzZLibCompressObjProtocol.flush.   r   r   N.)__name__
__module____qualname__r   bytesr   intr#   r   r   r   r   r   ,   s?        2V2222255#55555555r   r   c                   R    e Zd Zd
dededefdZd
dedefdZede	fd            Z
d	S )ZLibDecompressObjProtocol.r   
max_lengthr   c                     d S r   r   r   r   r,   s      r   
decompressz$ZLibDecompressObjProtocol.decompress2   r   r   lengthc                    d S r   r   r   r0   s     r   r#   zZLibDecompressObjProtocol.flush3   r   r   c                     d S r   r   r   s    r   eofzZLibDecompressObjProtocol.eof5   s    3r   Nr$   )r%   r&   r'   r   r)   r(   r/   r#   propertyboolr5   r   r   r   r+   r+   1   sb        KKvK3KKKKK77C7U7777T Xr   r+   c                       e Zd ZU eed<   eed<   eed<   eed<   eed<   	 	 	 	 	 	 ddeded	ed
ededee         defdZ	 dd	edede	fdZ
	 dded	ededefdZ	 dd	edededefdZdS )ZLibBackendProtocol	MAX_WBITSZ_FULL_FLUSHZ_SYNC_FLUSHZ_BEST_SPEEDZ_FINISH.levelmethodwbitsmemLevelstrategyzdictr   c                     d S r   r   )r   r?   r@   rA   rB   rC   rD   s          r   compressobjzZLibBackendProtocol.compressobj@   s	     #&#r   c                     d S r   r   )r   rA   rD   s      r   decompressobjz!ZLibBackendProtocol.decompressobjI   s    $'Cr   r   c                    d S r   r   )r   r   r?   rA   s       r   r   zZLibBackendProtocol.compressM       r   bufsizec                    d S r   r   )r   r   rA   rK   s       r   r/   zZLibBackendProtocol.decompressP   rJ   r   N)......)..)r%   r&   r'   r)   __annotations__r   r   r   rF   r+   rH   r(   r   r/   r   r   r   r9   r9   9   sw        NNNMMM "%& && & 	&
 & & & 
!& & & & 14( (('-(	"( ( ( (
 ?B &)8;	    AD &):=	     r   r9   c                   .    e Zd ZU eed<   eed<   eed<   dS )CompressObjArgsrA   rC   r?   N)r%   r&   r'   r)   rM   r   r   r   rO   rO   U   s+         JJJMMMJJJJJr   rO   )totalc                   *   e Zd ZdefdZedefd            Zedefd            Z	edefd            Z
edefd            Zedefd            Zedefd	            Zd
ededefdZd
ededefdZded
ededefdZded
ededefdZdedefdZdS )ZLibBackendWrapper_zlib_backendc                     || _         d S r   )rS   )r   rS   s     r   __init__zZLibBackendWrapper.__init__\   s    2?r   r   c                 .    t          | j        dd          S )Nr%   	undefinedgetattrrS   r4   s    r   namezZLibBackendWrapper.name_   s    t):{CCCr   c                     | j         j        S r   )rS   r:   r4   s    r   r:   zZLibBackendWrapper.MAX_WBITSc   s    !++r   c                     | j         j        S r   )rS   r;   r4   s    r   r;   zZLibBackendWrapper.Z_FULL_FLUSHg       !..r   c                     | j         j        S r   )rS   r<   r4   s    r   r<   zZLibBackendWrapper.Z_SYNC_FLUSHk   r]   r   c                     | j         j        S r   )rS   r=   r4   s    r   r=   zZLibBackendWrapper.Z_BEST_SPEEDo   r]   r   c                     | j         j        S r   )rS   r>   r4   s    r   r>   zZLibBackendWrapper.Z_FINISHs   s    !**r   argskwargsc                 &     | j         j        |i |S r   )rS   rF   r   ra   rb   s      r   rF   zZLibBackendWrapper.compressobjw   s    -t!-t>v>>>r   c                 &     | j         j        |i |S r   )rS   rH   rd   s      r   rH   z ZLibBackendWrapper.decompressobjz   s    /t!/@@@@r   r   c                 .     | j         j        |g|R i |S r   )rS   r   r   r   ra   rb   s       r   r   zZLibBackendWrapper.compress}   s(    *t!*4A$AAA&AAAr   c                 .     | j         j        |g|R i |S r   )rS   r/   rg   s       r   r/   zZLibBackendWrapper.decompress   s(    ,t!,TCDCCCFCCCr   attrnamec                 ,    t          | j        |          S r   rX   )r   ri   s     r   __getattr__zZLibBackendWrapper.__getattr__   s    t)8444r   N)r%   r&   r'   r9   rU   r6   strrZ   r)   r:   r;   r<   r=   r>   r   r   rF   r+   rH   r   r(   r   r/   rk   r   r   r   rR   rR   [   s       @&9 @ @ @ @ Dc D D D XD ,3 , , , X, /c / / / X/ /c / / / X/ /c / / / X/ +# + + + X+? ? ?8O ? ? ? ?A3 A# A:S A A A ABV BC B3 B5 B B B BDv Dc DS DU D D D D5C 5C 5 5 5 5 5 5r   rR   ZLibBackendnew_zlib_backendr   c                     | t           _        d S r   )rm   rS   )rn   s    r   set_zlib_backendrp      s     0Kr   encodingsuppress_deflate_headerc                 b    | dk    rdt           j        z   S |rt           j         nt           j        S )Ngzip   )rm   r:   )rq   rr   s     r   encoding_to_moderv      s6     6K)))%<WK!!!+BWWr   c                   |    e Zd Zdefdee         dee         fdZee	fde
dede
fd            Ze	fde
dede
fd	ZdS )
DecompressionBaseHandlerNexecutormax_sync_chunk_sizec                 "    || _         || _        dS )z&Base class for decompression handlers.N)	_executor_max_sync_chunk_size)r   ry   rz   s      r   rU   z!DecompressionBaseHandler.__init__   s     "$7!!!r   r   r,   r   c                     dS Decompress the given data.Nr   r.   s      r   decompress_syncz(DecompressionBaseHandler.decompress_sync   r   r   c                    K   | j         Qt          |          | j         k    r9t          j                                        | j        | j        ||           d{V S |                     ||          S r   )r}   lenasyncioget_event_looprun_in_executorr|   r   r.   s      r   r/   z#DecompressionBaseHandler.decompress   s      
 %1D		D555 /11AA 4dJ         ##D*555r   )r%   r&   r'   MAX_SYNC_CHUNK_SIZEr   r   r)   rU   r   ZLIB_MAX_LENGTH_UNLIMITEDr(   r   r/   r   r   r   rx   rx      s         (,-@8 88$8 &c]8 8 8 8 -F) ))'*)	) ) ) ^) .G6 66'*6	6 6 6 6 6 6r   rx   c                       e Zd Zddddddefdee         dedee         dee         dee         dee         d	ee         fd
Z	de
de
fdZde
de
fdZddee         de
fdZdS )ZLibCompressorNFrq   rr   r?   rA   rC   ry   rz   c                     || _         || _        |t          ||          n|| _        t	          t
          j                  | _        i }| j        |d<   |||d<   |||d<    | j        j        di || _        d S )NrA   rC   r?   r   )	r|   r}   rv   _moderR   rm   rS   rF   _compressor)	r   rq   rr   r?   rA   rC   ry   rz   rb   s	            r   rU   zZLibCompressor.__init__   s     "$7! } X'>??? 	

 %7{7P$Q$Q"$*w!)F:#F7O94-9CCFCCr   r   r   c                 6    | j                             |          S r   )r   r   r   s     r   compress_synczZLibCompressor.compress_sync   s    ((...r   c                    K   | j         duot          |          | j         k    }|r=t          j                                        | j        | j        j        |           d{V S |                     |          S )a  Compress the data and returned the compressed bytes.

        Note that flush() must be called after the last call to compress()

        If the data size is large than the max_sync_chunk_size, the compression
        will be done in the executor. Otherwise, the compression will be done
        in the event loop.

        **WARNING: This method is NOT cancellation-safe when used with flush().**
        If this operation is cancelled, the compressor state may be corrupted.
        The connection MUST be closed after cancellation to avoid data corruption
        in subsequent compress operations.

        For cancellation-safe compression (e.g., WebSocket), the caller MUST wrap
        compress() + flush() + send operations in a shield and lock to ensure atomicity.
        N)	r}   r   r   get_running_loopr   r|   r   r   r   )r   r   should_use_executors      r   r   zZLibCompressor.compress   s      & %T1 6D		D55 	  	 133CC 0 94         !!$'''r   r    c                 R    | j                             ||n| j        j                  S )a	  Flush the compressor synchronously.

        **WARNING: This method is NOT cancellation-safe when called after compress().**
        The flush() operation accesses shared compressor state. If compress() was
        cancelled, calling flush() may result in corrupted data. The connection MUST
        be closed after compress() cancellation.

        For cancellation-safe compression (e.g., WebSocket), the caller MUST wrap
        compress() + flush() + send operations in a shield and lock to ensure atomicity.
        )r   r#   rS   r>   r"   s     r   r#   zZLibCompressor.flush   s1     %%$DD$*<*E
 
 	
r   r   )r%   r&   r'   r   r   rl   r7   r)   r   rU   r(   r   r   r#   r   r   r   r   r      s        #'(-##"&'+-@D D3-D "&D }	D
 }D 3-D 8$D &c]D D D D6/% /E / / / /(5 (U ( ( ( (8
 
(3- 
5 
 
 
 
 
 
r   r   c            
            e Zd Zdddefdee         dedee         dee         f fdZ	e
fded	ed
efdZdded
efdZed
efd            Z xZS )ZLibDecompressorNFrq   rr   ry   rz   c                     t                                          ||           t          ||          | _        t	          t
          j                  | _        | j                            | j                  | _        d S )Nry   rz   )rA   )	superrU   rv   r   rR   rm   rS   rH   _decompressor)r   rq   rr   ry   rz   	__class__s        r   rU   zZLibDecompressor.__init__  sl     	(@STTT%h0GHH
$6{7P$Q$Q!/==DJ=OOr   r   r,   r   c                 8    | j                             ||          S r   )r   r/   r.   s      r   r   z ZLibDecompressor.decompress_sync  s     !,,T:>>>r   r   r0   c                 t    |dk    r| j                             |          n| j                                         S )Nr   )r   r#   r2   s     r   r#   zZLibDecompressor.flush  s=     zz $$V,,,#))++	
r   c                     | j         j        S r   )r   r5   r4   s    r   r5   zZLibDecompressor.eof  s    !%%r   )r   )r%   r&   r'   r   r   rl   r7   r   r)   rU   r   r   r(   r   r#   r6   r5   __classcell__r   s   @r   r   r     s        #'(-'+-@
P 
P3-
P "&
P 8$	
P
 &c]
P 
P 
P 
P 
P 
P /H? ??(+?	? ? ? ?

 
C 
 
 
 
 
 &T & & & X& & & & &r   r   c                   n     e Zd Zdefdee         dee         ddf fdZefde	dede
fdZde
fd	Z xZS )
BrotliDecompressorNry   rz   r   c                     t           st          d          t          j                    | _        t                                          ||           dS )z)Decompress data using the Brotli library.zIThe brotli decompression is not available. Please install `Brotli` moduler   N)
HAS_BROTLIRuntimeErrorbrotliDecompressor_objr   rU   r   ry   rz   r   s      r   rU   zBrotliDecompressor.__init__$  sZ      	1   '))	(@STTTTTr   r   r,   c                     t          | j        d          r.t          t          | j                            ||                    S t          t          | j                            ||                    S )r   r/   )hasattrr   r   r(   r/   processr.   s      r   r   z"BrotliDecompressor.decompress_sync2  s]     49l++ 	Gty33D*EEFFFE49,,T:>>???r   c                     t          | j        d          r,t          t          | j                                                  S dS )zFlush the decompressor.r#   r   )r   r   r   r(   r#   r4   s    r   r#   zBrotliDecompressor.flush:  s7    49g&& 	2ty00111sr   )r%   r&   r'   r   r   r   r)   rU   r   r   r(   r   r#   r   r   s   @r   r   r      s         (,-@U U8$U &c]U 
	U U U U U U /H@ @@(+@	@ @ @ @u        r   r   c                   n     e Zd Zdefdee         dee         ddf fdZefde	dede	fdZ
de	fd	Z xZS )
ZSTDDecompressorNry   rz   r   c                     t           st          d          t                      | _        t	                                          ||           d S )NzOThe zstd decompression is not available. Please install `backports.zstd` moduler   )HAS_ZSTDr   r   r   r   rU   r   s      r   rU   zZSTDDecompressor.__init__B  sW    
  	9   %&&	(@STTTTTr   r   r,   c                 `    |t           k    rt          n|}| j                            ||          S r   )r   ZSTD_MAX_LENGTH_UNLIMITEDr   r/   )r   r   r,   zstd_max_lengths       r   r   z ZSTDDecompressor.decompress_syncO  s:     666 &% 	
 y##D/:::r   c                     dS )Nr   r   r4   s    r   r#   zZSTDDecompressor.flush[  s    sr   )r%   r&   r'   r   r   r   r)   rU   r   r(   r   r#   r   r   s   @r   r   r   A  s         (,-@U U8$U &c]U 
	U U U U U U .G
; 
;
;'*
;	
; 
; 
; 
;u        r   r   )NF)2r   syszlibabcr   r   concurrent.futuresr   typingr   r   r   r	   r
   r   version_infocollections.abcr   r   r(   	bytearray
brotlicffir   ImportErrorr   compression.zstdr   backports.zstdr   r   DEFAULT_MAX_DECOMPRESS_SIZEr   r   r   r+   r9   rO   rR   rm   rM   rp   rl   r7   r)   rv   rx   r   r   r   r   r   r   r   <module>r      s    



  # # # # # # # # ' ' ' ' ' ' B B B B B B B B B B B B B B B Bw&&&&&&&5)%68KKLF#####    JJ   JJJ
7""5555555333333HH   HHH  #    6 6 6 6 6h 6 6 6
           (   8    iu    *5 *5 *5 *5 *5 *5 *5 *5Z #5"4T":": : : :1': 1t 1 1 1 1
 #$)X XsmX!X 	X X X X6 6 6 6 6s 6 6 6<H
 H
 H
 H
 H
 H
 H
 H
V& & & & &/ & & &<    1   B    /     sB   A A) 	A# A) "A##A) )A32A37B BB