
    
FZj?                     r   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 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d
Z	 ej                  dk\  rd dlmZ nd dlmZ 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'dz  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+      Z. G d* d+e+      Z/y# e$ r d dlZY w xY w# e$ r dZY w xY w# e$ r dZY w xY w)-    N)ABCabstractmethod)Executor)AnyFinalProtocol	TypedDictcast)      )Buffer)Unionzmemoryview[int]zmemoryview[bytes]TF)r      )ZstdDecompressori   c                   .    e Zd ZdedefdZddedefdZy)ZLibCompressObjProtocoldatareturnc                      y N selfr   s     [C:\Users\Rodrigo\frota-trucks-cliente\python\Lib\site-packages\aiohttp/compression_utils.pycompressz ZLibCompressObjProtocol.compress,   s    s    modec                     y r   r   r   r   s     r   flushzZLibCompressObjProtocol.flush-   s    #r   N.)__name__
__module____qualname__r   bytesr   intr!   r   r   r   r   r   +   s    2V225#555r   r   c                   v    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
edefd       Zedefd	       Zy
)ZLibDecompressObjProtocolr   
max_lengthr   c                      y r   r   r   r   r*   s      r   
decompressz$ZLibDecompressObjProtocol.decompress1   s    r   lengthc                     y r   r   r   r.   s     r   r!   zZLibDecompressObjProtocol.flush2   s    Cr   c                      y r   r   r   s    r   eofzZLibDecompressObjProtocol.eof4   s    r   c                      y r   r   r2   s    r   unconsumed_tailz)ZLibDecompressObjProtocol.unconsumed_tail7   s    (+r   c                      y r   r   r2   s    r   unused_dataz%ZLibDecompressObjProtocol.unused_data:   s    $'r   Nr"   )r#   r$   r%   r   r'   r&   r-   r!   propertyboolr3   r5   r7   r   r   r   r)   r)   0   sZ    KvK3KK7C7U7T ++ +'U' '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dz  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y)ZLibBackendProtocol	MAX_WBITSZ_FULL_FLUSHZ_SYNC_FLUSHZ_BEST_SPEEDZ_FINISHlevelmethodwbitsmemLevelstrategyzdictNr   c                      y r   r   )r   rA   rB   rC   rD   rE   rF   s          r   compressobjzZLibBackendProtocol.compressobjE   s     #&r   c                      y r   r   )r   rC   rF   s      r   decompressobjz!ZLibBackendProtocol.decompressobjN   s    $'r   r   c                     y r   r   )r   r   rA   rC   s       r   r   zZLibBackendProtocol.compressR       r   bufsizec                     y r   r   )r   r   rC   rM   s       r   r-   zZLibBackendProtocol.decompressU   rL   r   )......)..)r#   r$   r%   r'   __annotations__r   r   rH   r)   rJ   r&   r   r-   r   r   r   r;   r;   >   s    NM "&& & 	&
 & & }& 
!& 14(('-(	"(
 ?B&)8;	 AD&):=	r   r;   c                   ,    e Zd ZU eed<   eed<   eed<   y)CompressObjArgsrC   rE   rA   N)r#   r$   r%   r'   rO   r   r   r   rQ   rQ   Z   s    JMJr   rQ   )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y)ZLibBackendWrapper_zlib_backendc                     || _         y r   )rU   )r   rU   s     r   __init__zZLibBackendWrapper.__init__a   s
    2?r   r   c                 0    t        | j                  dd      S )Nr#   	undefinedgetattrrU   r2   s    r   namezZLibBackendWrapper.named   s    t)):{CCr   c                 .    | j                   j                  S r   )rU   r<   r2   s    r   r<   zZLibBackendWrapper.MAX_WBITSh   s    !!+++r   c                 .    | j                   j                  S r   )rU   r=   r2   s    r   r=   zZLibBackendWrapper.Z_FULL_FLUSHl       !!...r   c                 .    | j                   j                  S r   )rU   r>   r2   s    r   r>   zZLibBackendWrapper.Z_SYNC_FLUSHp   r_   r   c                 .    | j                   j                  S r   )rU   r?   r2   s    r   r?   zZLibBackendWrapper.Z_BEST_SPEEDt   r_   r   c                 .    | j                   j                  S r   )rU   r@   r2   s    r   r@   zZLibBackendWrapper.Z_FINISHx   s    !!***r   argskwargsc                 :     | j                   j                  |i |S r   )rU   rH   r   rc   rd   s      r   rH   zZLibBackendWrapper.compressobj|   s     -t!!--t>v>>r   c                 :     | j                   j                  |i |S r   )rU   rJ   rf   s      r   rJ   z ZLibBackendWrapper.decompressobj   s     /t!!//@@@r   r   c                 B     | j                   j                  |g|i |S r   )rU   r   r   r   rc   rd   s       r   r   zZLibBackendWrapper.compress   s%    *t!!**4A$A&AAr   c                 B     | j                   j                  |g|i |S r   )rU   r-   ri   s       r   r-   zZLibBackendWrapper.decompress   s%    ,t!!,,TCDCFCCr   attrnamec                 .    t        | j                  |      S r   rZ   )r   rk   s     r   __getattr__zZLibBackendWrapper.__getattr__   s    t))844r   N)r#   r$   r%   r;   rW   r8   strr\   r'   r<   r=   r>   r?   r@   r   r   rH   r)   rJ   r   r&   r   r-   rm   r   r   r   rT   rT   `   sO   @&9 @ Dc D D ,3 , , /c / / /c / / /c / / +# + +? ? ?8O ?A3 A# A:S ABV BC B3 B5 BDv Dc DS DU D5C 5C 5r   rT   ZLibBackendnew_zlib_backendr   c                     | t         _        y r   )ro   rU   )rp   s    r   set_zlib_backendrr      s
     0Kr   encodingsuppress_deflate_headerc                 x    | dk(  rdt         j                  z   S |rt         j                   S t         j                  S )Ngzip   )ro   r<   )rs   rt   s     r   encoding_to_moderx      s9     6K))))%<K!!!W+BWBWWr   c                       e Zd Zdefdedz  dedz  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eedefd
              Zy)DecompressionBaseHandlerNexecutormax_sync_chunk_sizec                      || _         || _        y)z&Base class for decompression handlers.N)	_executor_max_sync_chunk_size)r   r{   r|   s      r   rW   z!DecompressionBaseHandler.__init__   s     "$7!r   r   r*   r   c                      yDecompress the given data.Nr   r,   s      r   decompress_syncz(DecompressionBaseHandler.decompress_sync       r   c                    K   | j                   Zt        |      | j                   kD  rBt        j                         j	                  | j
                  | j                  ||       d{   S | j                  ||      S 7 wr   )r   lenasyncioget_event_looprun_in_executorr~   r   r,   s      r   r-   z#DecompressionBaseHandler.decompress   st     
 %%1D	D555 //1AA 4 4dJ   ##D*55s   A"A=$A;%A=c                      y)z7Return True if more output is available by passing b"".Nr   r2   s    r   data_availablez'DecompressionBaseHandler.data_available   r   r   )r#   r$   r%   MAX_SYNC_CHUNK_SIZEr   r'   rW   r   ZLIB_MAX_LENGTH_UNLIMITEDr   r&   r   r-   r8   r9   r   r   r   r   rz   rz      s     %)*=8T/8 !4Z8 .G))(+)	) ) /H66(+6	6 F F  Fr   rz   c                       e Zd Zddddddefdedz  dededz  dedz  dedz  dedz  d	edz  fd
Zde	de
fdZde	de
fdZddedz  de
fdZy)ZLibCompressorNFrs   rt   rA   rC   rE   r{   r|   c                    || _         || _        |t        ||      n|| _        t	        t
        j                        | _        i }| j                  |d<   |||d<   |||d<    | j                  j                  di || _        y )NrC   rE   rA   r   )	r~   r   rx   _moderT   ro   rU   rH   _compressor)	r   rs   rt   rA   rC   rE   r{   r|   rd   s	            r   rW   zZLibCompressor.__init__   s     "$7! } X'>? 	

 %7{7P7P$Q"$**w!)F:#F7O94--99CFCr   r   r   c                 8    | j                   j                  |      S r   )r   r   r   s     r   compress_synczZLibCompressor.compress_sync   s    ((..r   c                   K   | j                   duxr t        |      | j                   kD  }|rKt        j                         j	                  | j
                  | j                  j                  |       d{   S | j                  |      S 7 w)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5 	  113CC 0 0 9 94   !!$''s   A1B3B	4Br   c                 p    | j                   j                  ||      S | 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!   rU   r@   r    s     r   r!   zZLibCompressor.flush   s>     %%$D
 	
*.*<*<*E*E
 	
r   r   )r#   r$   r%   r   rn   r9   r'   r   rW   r   r&   r   r   r!   r   r   r   r   r      s      $(-  #$(*=D*D "&D Tz	D
 TzD *D T/D !4ZD6/& /U /(6 (e (8
#* 
 
r   r   c            
            e Zd Zdddefdedz  dededz  dedz  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ed
efd       Z xZS )ZLibDecompressorNFrs   rt   r{   r|   c                     t         |   ||       t        ||      | _        t	        t
        j                        | _        | j                  j                  | j                        | _        d| _	        d | _
        y )Nr{   r|   rC   F)superrW   rx   r   rT   ro   rU   rJ   _decompressor_last_empty_pending_unused_data)r   rs   rt   r{   r|   	__class__s        r   rW   zZLibDecompressor.__init__  sj     	(@ST%h0GH
$6{7P7P$Q!//==DJJ=O 26!r   r   r*   r   c                 p   | j                   | j                   t        |      z   }d | _         | j                  j                  | j                  j                  |z   |      }|dk(  | _        | j                  j                  r| j                  j                  r| j                  j                  }| j                  j                  | j                        | _        |t        k7  r|t        |      z  }|dk  r|| _         nX| j                  j                  ||      }|dk(  | _        ||z  }| j                  j                  r| j                  j                  r| j                  j                  rN| j                  | j                  j                  kD  r+| j                  j                  | j                        | _        |S )Nr   r   r   )r   r&   r   r-   r5   r   r3   r7   rU   rJ   r   r   r   r<   )r   r   r*   resultunusedchunks         r   r   z ZLibDecompressor.decompress_sync  sx    $$0,,uT{:D(,D%##....5z
 "S=
   $$););)G)G''33F!%!3!3!A!A

!A!SD66c&k)
?06D-&&11&*EE$|DeOF   $$););)G)G  !!djj43E3E3O3O&O!%!3!3!A!A

!A!SDr   r.   c                 v    |dkD  r| j                   j                  |      S | j                   j                         S Nr   )r   r!   r0   s     r   r!   zZLibDecompressor.flush?  s?     z $$V,	
 ##))+	
r   c                 ~    t        | j                  j                        xs | j                   xs | j                  d uS r   )r9   r   r5   r   r   r2   s    r   r   zZLibDecompressor.data_availableF  sA     ##334 5###5((4	
r   c                 .    | j                   j                  S r   )r   r3   r2   s    r   r3   zZLibDecompressor.eofN  s    !!%%%r   )r   )r#   r$   r%   r   rn   r9   r   r'   rW   r   r   r&   r   r!   r8   r   r3   __classcell__r   s   @r   r   r     s      $(-$(*=7*7 "&7 T/	7
 !4Z7 /H""(+"	"H
C 
 
 
 
 
 &T & &r   r   c                   x     e Zd Zdefdedz  dedz  ddf fdZefdedede	fdZ
de	fd	Zedefd
       Z xZS )BrotliDecompressorNr{   r|   r   c                     t         st        d      t        j                         | _        d| _        t        |   ||       y)z)Decompress data using the Brotli library.zIThe brotli decompression is not available. Please install `Brotli` moduleFr   N)
HAS_BROTLIRuntimeErrorbrotliDecompressor_objr   r   rW   r   r{   r|   r   s      r   rW   zBrotliDecompressor.__init__W  sG     1  '')	 (@STr   r   r*   c                    t        | j                  d      r^|t        k(  r*t        t        | j                  j                  |            }nt        t        | j                  j                  ||            }n]|t        k(  r*t        t        | j                  j                  |            }n*t        t        | j                  j                  ||            }|dk(  | _        |S )r   r-   r   )hasattrr   r   r
   r&   r-   processr   )r   r   r*   r   s       r   r   z"BrotliDecompressor.decompress_syncf  s     499l+66eTYY%9%9$%?@eTYY%9%9$
%KL66eTYY%6%6t%<=eTYY%6%6tZ%HI!S=r   c                     t        | j                  d      r(t        t        | j                  j	                               S y)zFlush the decompressor.r!   r   )r   r   r
   r&   r!   r2   s    r   r!   zBrotliDecompressor.flushx  s+    499g&tyy011r   c                 V    | j                   j                          xr | j                   S r   )r   is_finishedr   r2   s    r   r   z!BrotliDecompressor.data_available~  s&    99((**C43C3C/CCr   r#   r$   r%   r   r   r'   rW   r   r   r&   r   r!   r8   r9   r   r   r   s   @r   r   r   S  s     %)*=UT/U !4ZU 
	U  /H(+	$u  D D Dr   r   c                   x     e Zd Zdefdedz  dedz  ddf fdZefdedede	fdZ
de	fd	Zedefd
       Z xZS )ZSTDDecompressorNr{   r|   r   c                 v    t         st        d      t               | _        d | _        t
        |   ||       y )NzOThe zstd decompression is not available. Please install `backports.zstd` moduler   )HAS_ZSTDr   r   r   r   r   rW   r   s      r   rW   zZSTDDecompressor.__init__  sA    
 9  %&	26!(@STr   r   r*   c                 p   |t         k(  rt        n|}| j                  | j                  |z   }d | _        | j                  j	                  ||      }| j                  j
                  r| j                  j                  r| j                  j                  }t               | _        |t        k7  r|t        |      z  }|dk  r|| _        nL|| j                  j	                  ||      z  }| j                  j
                  r| j                  j                  r| j                  j
                  rt               | _        |S r   )	r   ZSTD_MAX_LENGTH_UNLIMITEDr   r   r-   r3   r7   r   r   )r   r   r*   zstd_max_lengthr   r7   s         r   r   z ZSTDDecompressor.decompress_sync  s    66 & 	
 $$0,,t3D(,D%%%dO< iimm		 5 5))//K(*DI";;3v;."a'0;D-dii**;HHF iimm		 5 5 99==(*DIr   c                      y)Nr   r   r2   s    r   r!   zZSTDDecompressor.flush  s    r   c                     | j                   j                   xr | j                   j                   xs | j                  d uS r   )r   needs_inputr3   r   r2   s    r   r   zZSTDDecompressor.data_available  s<     		%%%;diimm*;3&&d2	3r   r   r   s   @r   r   r     s     %)*=UT/U !4ZU 
	U /H$$(+$	$Lu  3 3 3r   r   )NF)0r   syszlibabcr   r   concurrent.futuresr   typingr   r   r   r	   r
   version_infocollections.abcr   r   r&   	bytearray
brotlicffir   ImportErrorr   compression.zstdr   backports.zstdr   r   r   r   r   r)   r;   rQ   rT   ro   rO   rr   rn   r9   r'   rx   rz   r   r   r   r   r   r   r   <module>r      s    
  # ' 8 8w&5)%68KKLF# J
7"53H
     6h 6
( (( 8iu *5 *5Z #5T": :1': 1t 1
  $)XDjX!X 	X Fs  FFH
 H
VD&/ D&N-D1 -D`<3/ <3c    J  HsB   D D D, 	DD DD D)(D),D65D6