
    ,i+                        d Z ddlm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  G d d	e      Z G d
 de      Zej"                  eiZy)z>
wsproto/extensions
~~~~~~~~~~~~~~~~~~

WebSocket extensions.
    )annotationsN)ABCabstractmethod)Optional   )CloseReasonFrameDecoderFrameProtocolOpcodeRsvBitsc                      e Zd ZU ded<   ddZedd       ZddZddZ	 	 	 	 	 	 	 	 	 	 ddZ		 	 	 	 	 	 ddZ
	 	 	 	 	 	 dd	Z	 	 	 	 	 	 	 	 	 	 	 	 dd
Zy)	Extensionstrnamec                     yNF selfs    a/var/www/system.tvplus.app.br/jogos/scrap/venv/lib/python3.12/site-packages/wsproto/extensions.pyenabledzExtension.enabled   s        c                     y Nr   r   s    r   offerzExtension.offer   s    r   c                     y r   r   r   r   s     r   acceptzExtension.accept       r   c                     y r   r   r   s     r   finalizezExtension.finalize   r   r   c                    t        ddd      S r   )r   )r   protoopcodersvpayload_lengths        r   frame_inbound_headerzExtension.frame_inbound_header    s     ueU++r   c                    |S r   r   r   r#   datas      r   frame_inbound_payload_dataz$Extension.frame_inbound_payload_data)   s	     r   c                     y r   r   )r   r#   fins      r   frame_inbound_completez Extension.frame_inbound_complete.   s     	r   c                
    ||fS r   r   )r   r#   r$   r%   r*   r-   s         r   frame_outboundzExtension.frame_outbound3   s     T{r   Nreturnboolr2   z
bool | str)r   r   r2   zbool | str | Noner   r   r2   None
r#   FrameDecoder | FrameProtocolr$   r   r%   r   r&   intr2   zCloseReason | RsvBitsr#   r8   r*   bytesr2   zbytes | CloseReasonr#   r8   r-   r3   r2   zbytes | CloseReason | Noner#   r8   r$   r   r%   r   r*   r;   r-   r3   r2   ztuple[RsvBits, bytes])__name__
__module____qualname____annotations__r   r   r   r   r!   r'   r+   r.   r0   r   r   r   r   r      s    
I  ,+, , 	,
 , 
,19>	
18<	#
+  	
   
r   r   c                  H   e Zd ZdZdZdZ	 	 	 	 d	 	 	 	 	 	 	 	 	 ddZedd       Zej                  dd       Zedd       Z
e
j                  dd       Z
dd	Zdd
ZddZddZddZddZ	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 d dZ	 	 	 	 	 	 	 	 	 	 	 	 d!dZd"dZy)#PerMessageDeflatezpermessage-deflate   Nc                    || _         || _        | j                  | _        | j                  | _        ||| _        ||| _        d | _        d | _	        d | _
        d | _        d| _        y r   )client_no_context_takeoverserver_no_context_takeoverDEFAULT_CLIENT_MAX_WINDOW_BITS_client_max_window_bitsDEFAULT_SERVER_MAX_WINDOW_BITS_server_max_window_bitsclient_max_window_bitsserver_max_window_bits_compressor_decompressor_inbound_is_compressible_inbound_compressed_enabled)r   rF   rL   rG   rM   s        r   __init__zPerMessageDeflate.__init__D   sv     +E'*D''+'J'J$'+'J'J$!-*@D'!-*@D'599=59% 15 r   c                    | j                   S r   )rI   r   s    r   rL   z(PerMessageDeflate.client_max_window_bits_       +++r   c                @    |dk  s|dkD  rd}t        |      || _        y N	   rD   z.Window size must be between 9 and 15 inclusive)
ValueErrorrI   r   valuemsgs      r   rL   z(PerMessageDeflate.client_max_window_bitsc   &    19
BCS/!',$r   c                    | j                   S r   )rK   r   s    r   rM   z(PerMessageDeflate.server_max_window_bitsj   rU   r   c                @    |dk  s|dkD  rd}t        |      || _        y rW   )rY   rK   rZ   s      r   rM   z(PerMessageDeflate.server_max_window_bitsn   r]   r   c                d    |t         j                  t         j                  t         j                  fv S r   )r   TEXTBINARYCONTINUATION)r   r$   s     r   _compressible_opcodez&PerMessageDeflate._compressible_opcodeu   s"    &++v}}f6I6IJJJr   c                    | j                   S r   )rR   r   s    r   r   zPerMessageDeflate.enabledx   s    }}r   c                    d| j                    d| j                   g}| j                  r|j                  d       | j                  r|j                  d       dj                  |      S )Nclient_max_window_bits=server_max_window_bits=rF   rG   ; )rL   rM   rF   appendrG   join)r   
parameterss     r   r   zPerMessageDeflate.offer{   sl    %d&A&A%BC%d&A&A%BC


 **:;**:;yy$$r   c                   |j                  d      D cg c]  }|j                          }}|dd  D ]  }|j                  d      rd| _        |j                  d      rd| _        5|j                  d      r2t        |j                  dd      d   j                               | _        x|j                  d      st        |j                  dd      d   j                               | _         d| _        y c c}w 	N;r   rF   TrG   rL   =rM   )	splitstrip
startswithrF   rG   r9   rL   rM   rR   )r   r   bbitsbits        r   r!   zPerMessageDeflate.finalize   s    #(;;s#34a	448 	PC~~:;26/ <=26/ 89.1#))C2CA2F2L2L2N.O+ 89.1#))C2CA2F2L2L2N.O+	P  5s   C7c                (   d }d }|j                  d      D cg c]  }|j                          }}|dd  D ]  }|j                  d      rd| _        |j                  d      rd| _        5|j                  d      r>d|v r-t        |j                  dd      d   j                               }w| j                  }|j                  d      sd|v r-t        |j                  dd      d   j                               }| j                  } ||fS c c}w rn   )rq   rr   rs   rF   rG   r9   rL   rM   )r   paramsrL   rM   rt   ru   rv   s          r   _parse_paramszPerMessageDeflate._parse_params   s   !%!%#)<<#45a	558 	IC~~:;26/ <=26/ 89#:-031B11E1K1K1M-N*-1-H-H* 89#:-031B11E1K1K1M-N*-1-H-H*	I  &'===# 6s   Dc                f   | j                  |      \  }}g }| j                  r|j                  d       | j                  r|j                  d       	 ||j                  d|        || _        ||j                  d|        || _        d| _        dj                  |      S # t        $ r Y y w xY w)NrF   rG   rg   rh   Tri   )	ry   rF   rj   rG   rL   rM   rR   rk   rY   )r   r   rL   rM   rl   s        r   r   zPerMessageDeflate.accept   s    9=9K9KE9R6 6
**:;**:;	)%1!!$;<R;S"TU.D+%1!!$;<R;S"TU.D+ !DM99Z((	  		s   :B$ $	B0/B0c                   |j                   r |j                         rt        j                  S |j                   r"|t        j
                  u rt        j                  S | j                  |      | _        | j                  |j                   | _        | j                  rc| j                  sJ |j                  r| j                  }n| j                  }| j                  $t        j                  t        |             | _        t!        ddd      S )NTF)rsv1	iscontrolr   PROTOCOL_ERRORr   rc   rd   rP   rQ   clientrM   rL   rO   zlibdecompressobjr9   r   )r   r#   r$   r%   r&   ru   s         r   r'   z&PerMessageDeflate.frame_inbound_header   s     88((*---88&"5"55---(,(A(A&(I%##+'*xxD$''4444<<66D66D%%-)-););SYJ)GD&tUE**r   c                    | j                   r| j                  s|S | j                  J 	 | j                  j                  t	        |            S # t
        j                  $ r t        j                  cY S w xY wr   )	rQ   rP   rO   
decompressr;   r   errorr   INVALID_FRAME_PAYLOAD_DATAr)   s      r   r+   z,PerMessageDeflate.frame_inbound_payload_data   sk     ''t/L/LK!!---	:%%00t==zz 	:999	:s   #A #A43A4c                   |sy | j                   sd | _        y | j                  sd | _        y | j                  J 	 | j                  j                  d      }|| j                  j	                         z  }|j                  r| j                  }n| j                  }|rd | _        d | _        |S # t
        j                  $ r t        j                  cY S w xY w)Ns     )rP   rQ   rO   r   flushr   r   r   r   r   rG   rF   )r   r#   r-   r*   no_context_takeovers        r   r.   z(PerMessageDeflate.frame_inbound_complete   s     ,,'+D$'''+D$!!---	:%%001DEDD&&,,..D <<"&"A"A"&"A"A!%D#'  zz 	:999	:s   8B* *#CCc                   | j                  |      s||fS |t        j                  urt        d|d   |d         }| j                  {|t        j                  usJ |j
                  r| j                  }n| j                  }t        j                  t        j                  t        j                  t        |             | _        | j                  j                  t        |            }|r_|| j                  j                  t        j                         z  }|d d }|j
                  r| j"                  }n| j$                  }|rd | _        ||fS )NTr      )rd   r   rc   r   rN   r   rL   rM   r   compressobjZ_DEFAULT_COMPRESSIONDEFLATEDr9   compressr;   r   Z_SYNC_FLUSHrF   rG   )r   r#   r$   r%   r*   r-   ru   r   s           r   r0   z PerMessageDeflate.frame_outbound	  s&    ((0;,,,$AA/C#!4!4444||2222#//**DMMCI: D ((t5D$$**4+<+<==D9D||&*&E&E#&*&E&E#"#' T{r   c                <   d| j                    g}| j                  r|j                  d       |j                  d| j                          | j                  r|j                  d       dj                  | j                  j                  dj                  |            S )Nrg   rF   rh   rG   z<{} {}>ri   )	rL   rF   rj   rM   rG   format	__class__r>   rk   )r   descrs     r   __repr__zPerMessageDeflate.__repr__1  s    *4+F+F*GHI**LL56.t/J/J.KLM**LL56 7 759IJJr   )FNFN)
rF   r3   rL   
int | NonerG   r3   rM   r   r2   r6   )r2   r9   )r[   r9   r2   r6   )r$   r   r2   r3   r1   r4   r5   )rx   r   r2   ztuple[int | None, int | None])r   r   r2   zbool | None | strr7   r:   r<   r=   )r2   r   )r>   r?   r@   r   rH   rJ   rS   propertyrL   setterrM   rd   r   r   r!   ry   r   r'   r+   r.   r0   r   r   r   r   rC   rC   >   s   D%'"%'" ,1-1+0-1$( !+ %)	
 !+ 
6 , , ""- #- , , ""- #-K%>.),+++ + 	+
 + 
+6
:1
:9>
:	
:18<	#>&+& & 	&
 & & 
&PKr   rC   )__doc__
__future__r   r   abcr   r   typingr   frame_protocolr   r	   r
   r   r   r   rC   r   SUPPORTED_EXTENSIONSr   r   r   <module>r      sP    #  #  U U+ +\{K	 {KD *..0AB r   