
    h"                        U d dl Z d dlZd dl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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      Z# G d  d!e#      Z$ G d" d#e#      Z% G d$ d%      Z&y# e$ r d dlZY w xY w# e$ r d
ZY w xY w)'    N)Executor)AnyFinalOptionalProtocol	TypedDictcast)      )Buffer)Unionzmemoryview[int]zmemoryview[bytes]TFi   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     U/var/www/Befach/backend/env/lib/python3.12/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                   J    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
y)
ZLibDecompressObjProtocolr   
max_lengthr   c                      y r   r   r   r   r&   s      r   
decompressz$ZLibDecompressObjProtocol.decompress!   s    r   lengthc                     y r   r   r   r*   s     r   r   zZLibDecompressObjProtocol.flush"   s    Cr   c                      y r   r   r   s    r   eofzZLibDecompressObjProtocol.eof$   s    r   Nr   )r   r    r!   r   r#   r"   r)   r   propertyboolr/   r   r   r   r%   r%       s4    KvK3KK7C7U7T 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y)ZLibBackendProtocol	MAX_WBITSZ_FULL_FLUSHZ_SYNC_FLUSHZ_BEST_SPEEDZ_FINISHlevelmethodwbitsmemLevelstrategyzdictr   c                      y r   r   )r   r9   r:   r;   r<   r=   r>   s          r   compressobjzZLibBackendProtocol.compressobj/   s     #&r   c                      y r   r   )r   r;   r>   s      r   decompressobjz!ZLibBackendProtocol.decompressobj8   s    $'r   r   c                     y r   r   )r   r   r9   r;   s       r   r   zZLibBackendProtocol.compress<       r   bufsizec                     y r   r   )r   r   r;   rE   s       r   r)   zZLibBackendProtocol.decompress?   rD   r   N)......)..)r   r    r!   r#   __annotations__r   r   r   r@   r%   rB   r"   r   r)   r   r   r   r3   r3   (   s    NM "%&& & 	&
 & & & 
!& 14(('-(	"(
 ?B&)8;	 AD&):=	r   r3   c                   ,    e Zd ZU eed<   eed<   eed<   y)CompressObjArgsr;   r=   r9   N)r   r    r!   r#   rG   r   r   r   rI   rI   D   s    JMJr   rI   )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   )rM   )r   rM   s     r   __init__zZLibBackendWrapper.__init__K   s
    2?r   r   c                 0    t        | j                  dd      S )Nr   	undefinedgetattrrM   r.   s    r   namezZLibBackendWrapper.nameN   s    t)):{CCr   c                 .    | j                   j                  S r   )rM   r4   r.   s    r   r4   zZLibBackendWrapper.MAX_WBITSR   s    !!+++r   c                 .    | j                   j                  S r   )rM   r5   r.   s    r   r5   zZLibBackendWrapper.Z_FULL_FLUSHV       !!...r   c                 .    | j                   j                  S r   )rM   r6   r.   s    r   r6   zZLibBackendWrapper.Z_SYNC_FLUSHZ   rW   r   c                 .    | j                   j                  S r   )rM   r7   r.   s    r   r7   zZLibBackendWrapper.Z_BEST_SPEED^   rW   r   c                 .    | j                   j                  S r   )rM   r8   r.   s    r   r8   zZLibBackendWrapper.Z_FINISHb   s    !!***r   argskwargsc                 :     | j                   j                  |i |S r   )rM   r@   r   r[   r\   s      r   r@   zZLibBackendWrapper.compressobjf   s     -t!!--t>v>>r   c                 :     | j                   j                  |i |S r   )rM   rB   r^   s      r   rB   z ZLibBackendWrapper.decompressobji   s     /t!!//@@@r   r   c                 B     | j                   j                  |g|i |S r   )rM   r   r   r   r[   r\   s       r   r   zZLibBackendWrapper.compressl   s%    *t!!**4A$A&AAr   c                 B     | j                   j                  |g|i |S r   )rM   r)   ra   s       r   r)   zZLibBackendWrapper.decompresso   s%    ,t!!,,TCDCFCCr   attrnamec                 .    t        | j                  |      S r   rR   )r   rc   s     r   __getattr__zZLibBackendWrapper.__getattr__s   s    t))844r   N)r   r    r!   r3   rO   r0   strrT   r#   r4   r5   r6   r7   r8   r   r   r@   r%   rB   r   r"   r   r)   re   r   r   r   rL   rL   J   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   rL   ZLibBackendnew_zlib_backendr   c                     | t         _        y r   )rg   rM   )rh   s    r   set_zlib_backendrj   z   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   )rg   r4   )rk   rl   s     r   encoding_to_moderp   ~   s9     6K))))%<K!!!W+BWBWWr   c                   2    e Zd Zdefdedee   dee   fdZy)ZlibBaseHandlerNr   executormax_sync_chunk_sizec                 .    || _         || _        || _        y r   )_mode	_executor_max_sync_chunk_size)r   r   rs   rt   s       r   rO   zZlibBaseHandler.__init__   s     
!$7!r   )r   r    r!   MAX_SYNC_CHUNK_SIZEr#   r   r   rO   r   r   r   rr   rr      s4     (,-@	88 8$8 &c]	8r   rr   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 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 xZS )ZLibCompressorNFrk   rl   r9   r;   r=   rs   rt   c                 4   t         	|   |t        ||      n|||       t        t        j
                        | _        i }| j                  |d<   |||d<   |||d<    | j
                  j                  di || _        t        j                         | _        y )Nr   rs   rt   r;   r=   r9   r   )superrO   rp   rL   rg   rM   rv   r@   _compressorasyncioLock_compress_lock)
r   rk   rl   r9   r;   r=   rs   rt   r\   	__class__s
            r   rO   zZLibCompressor.__init__   s     	 = !+BC 3 	 	
 %7{7P7P$Q"$**w!)F:#F7O94--99CFC%llnr   r   r   c                 8    | j                   j                  |      S r   )r   r   r   s     r   compress_synczZLibCompressor.compress_sync   s    ((..r   c                   K   | j                   4 d{    | j                  tt        |      | j                  kD  r\t        j                         j                  | j                  | j                  j                  |       d{   cddd      d{    S | j                  |      cddd      d{    S 7 7 97 +7 # 1 d{  7  sw Y   yxY ww)aC  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.
        N)
r   rx   lenr   get_running_looprun_in_executorrw   r   r   r   r   s     r   r   zZLibCompressor.compress   s      && 	, 	, ))5I 9 99$557GGNND$4$4$=$=t 	, 	, 	, %%d+	, 	, 	,	, 	, 	, 	, 	,su   CB:CA+CB<CCB>CC(C4C 5C<C>C CCC	CCr   c                 p    | j                   j                  ||      S | j                  j                        S r   )r   r   rM   r8   r   s     r   r   zZLibCompressor.flush   s<    %%$D
 	
*.*<*<*E*E
 	
r   r   )r   r    r!   ry   r   rf   r1   r#   r   rO   r"   r   r   r   __classcell__r   s   @r   r{   r{      s     #'(-##"&'+-@-3-- "&- }	-
 }- 3-- 8$- &c]-</% /E /,5 ,U ,.
(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	dde
d	ed
e
f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 xZS )ZLibDecompressorNFrk   rl   rs   rt   c                     t         |   t        ||      ||       t        t        j
                        | _        | j
                  j                  | j                        | _        y )Nr}   )r;   )	r~   rO   rp   rL   rg   rM   rB   rv   _decompressor)r   rk   rl   rs   rt   r   s        r   rO   zZLibDecompressor.__init__   s]     	!(,CD 3 	 	

 %7{7P7P$Q!//==DJJ=Or   r   r&   r   c                 :    | j                   j                  ||      S r   )r   r)   r(   s      r   decompress_syncz ZLibDecompressor.decompress_sync   s    !!,,T:>>r   c                   K   | j                   dt        |      | j                   kD  rLt        j                         j	                  | j
                  | j                  j                  ||       d{   S | j                  ||      S 7 w)zDecompress the data and return the decompressed bytes.

        If the data size is large than the max_sync_chunk_size, the decompression
        will be done in the executor. Otherwise, the decompression will be done
        in the event loop.
        N)	rx   r   r   r   r   rw   r   r)   r   r(   s      r   r)   zZLibDecompressor.decompress   sz      %%1D	D555 113CC 2 2 = =tZ   ##D*55s   A,B.B/Br*   c                 v    |dkD  r| j                   j                  |      S | j                   j                         S )Nr   )r   r   r,   s     r   r   zZLibDecompressor.flush   s?     z $$V,	
 ##))+	
r   c                 .    | j                   j                  S r   )r   r/   r.   s    r   r/   zZLibDecompressor.eof   s    !!%%%r   )r   )r   r    r!   ry   r   rf   r1   r   r#   rO   r"   r   r)   r   r0   r/   r   r   s   @r   r   r      s     #'(-'+-@P3-P "&P 8$	P
 &c]P?E ?s ?5 ?6U 6 6E 6 
C 
 
 &T & &r   r   c                   0    e Zd ZddZdedefdZdefdZy)BrotliDecompressorr   Nc                 X    t         st        d      t        j                         | _        y )NzIThe brotli decompression is not available. Please install `Brotli` module)
HAS_BROTLIRuntimeErrorbrotliDecompressor_objr.   s    r   rO   zBrotliDecompressor.__init__  s)    1  '')	r   r   c                     t        | j                  d      r)t        t        | j                  j	                  |            S t        t        | j                  j                  |            S )Nr)   )hasattrr   r	   r"   r)   processr   s     r   r   z"BrotliDecompressor.decompress_sync  sH    499l+tyy33D9::E499,,T233r   c                     t        | j                  d      r(t        t        | j                  j	                               S y)Nr   r   )r   r   r	   r"   r   r.   s    r   r   zBrotliDecompressor.flush  s+    499g&tyy011r   )r   N)r   r    r!   rO   r"   r   r   r   r   r   r   r     s&    *4E 4e 4
u r   r   )NF)'r   syszlibconcurrent.futuresr   typingr   r   r   r   r   r	   version_infocollections.abcr   r   r"   	bytearray
brotlicffir   ImportErrorr   ry   r   r%   r3   rI   rL   rg   rG   rj   rf   r1   r#   rp   rr   r{   r   r   r   r   r   <module>r      sF    
  ' B Bw&5)%68KKLF# J  6h 6
 ( 8iu *5 *5Z #5T": :1': 1t 1
 #$)XsmX!X 	X	8 	8<
_ <
~,& ,&^ c    Js0   C C* 	C'$C* &C''C* *C43C4