
    < j+                        S r SSKJr  SSKrSSKJrJr  SSKJr  SSK	J
r
JrJrJrJr   " S S	\5      r " S
 S\5      r\R"                  \0rg)z>
wsproto/extensions
~~~~~~~~~~~~~~~~~~

WebSocket extensions.
    )annotationsN)ABCabstractmethod)Optional   )CloseReasonFrameDecoderFrameProtocolOpcodeRsvBitsc                      \ rS rSr% S\S'   SS jr\SS j5       rSS jrSS jr	          SS jr
      SS	 jr      SS
 jr            SS jrSrg)	Extension   strnamec                    gNF selfs    c/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/wsproto/extensions.pyenabledExtension.enabled   s        c                    g Nr   r   s    r   offerExtension.offer   s    r   c                    g r   r   r   r   s     r   acceptExtension.accept       r   c                    g r   r   r    s     r   finalizeExtension.finalize   r#   r   c                    [        SSS5      $ r   )r   )r   protoopcodersvpayload_lengths        r   frame_inbound_headerExtension.frame_inbound_header    s     ueU++r   c                    U$ r   r   r   r(   datas      r   frame_inbound_payload_data$Extension.frame_inbound_payload_data)   s	     r   c                    g r   r   )r   r(   fins      r   frame_inbound_complete Extension.frame_inbound_complete.   s     	r   c                    X44$ r   r   )r   r(   r)   r*   r0   r4   s         r   frame_outboundExtension.frame_outbound3   s     {r   r   Nreturnboolr;   z
bool | str)r   r   r;   zbool | str | Noner   r   r;   None
r(   FrameDecoder | FrameProtocolr)   r   r*   r   r+   intr;   zCloseReason | RsvBitsr(   rA   r0   bytesr;   zbytes | CloseReasonr(   rA   r4   r<   r;   zbytes | CloseReason | Noner(   rA   r)   r   r*   r   r0   rD   r4   r<   r;   ztuple[RsvBits, bytes])__name__
__module____qualname____firstlineno____annotations__r   r   r   r!   r%   r,   r1   r5   r8   __static_attributes__r   r   r   r   r      s    
I  ,+, , 	,
 , 
,19>	
18<	#
+  	
   
r   r   c                  r   \ rS rSrSrSrSr    S         SS jjr\SS j5       r	\	R                  SS j5       r	\SS j5       r\R                  SS	 j5       rSS
 jrSS jrSS jrSS jrSS jrSS jr          S S jr      S!S jr      S"S jr            S#S jrS$S jrSrg)%PerMessageDeflate>   zpermessage-deflate   Nc                    Xl         X0l        U R                  U l        U R                  U l        Ub  X l        Ub  X@l        S U l        S U l	        S U l
        S U l        SU l        g 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   rR   rX   rS   rY   s        r   __init__PerMessageDeflate.__init__D   sn     +E'*D''+'J'J$'+'J'J$!-*@'!-*@'599=59% 15 r   c                    U R                   $ r   )rU   r   s    r   rX   (PerMessageDeflate.client_max_window_bits_       +++r   c                B    US:  d  US:  a  Sn[        U5      eXl        g N	   rP   z.Window size must be between 9 and 15 inclusive)
ValueErrorrU   r   valuemsgs      r   rX   rb   c   $    19
BCS/!',$r   c                    U R                   $ r   )rW   r   s    r   rY   (PerMessageDeflate.server_max_window_bitsj   rc   r   c                B    US:  d  US:  a  Sn[        U5      eXl        g re   )rg   rW   rh   s      r   rY   rm   n   rk   r   c                f    U[         R                  [         R                  [         R                  4;   $ r   )r   TEXTBINARYCONTINUATION)r   r)   s     r   _compressible_opcode&PerMessageDeflate._compressible_opcodeu   s"    &++v}}f6I6IJJJr   c                    U R                   $ r   )r^   r   s    r   r   PerMessageDeflate.enabledx   s    }}r   c                    SU R                    3SU R                   3/nU R                  (       a  UR                  S5        U R                  (       a  UR                  S5        SR                  U5      $ )Nclient_max_window_bits=server_max_window_bits=rR   rS   ; )rX   rY   rR   appendrS   join)r   
parameterss     r   r   PerMessageDeflate.offer{   sl    %d&A&A%BC%d&A&A%BC


 **:;**:;yy$$r   c                0   UR                  S5       Vs/ s H  o"R                  5       PM     nnUSS   H  nUR                  S5      (       a	  SU l        M"  UR                  S5      (       a	  SU l        MA  UR                  S5      (       a3  [        UR                  SS5      S   R                  5       5      U l        M  UR                  S5      (       d  M  [        UR                  SS5      S   R                  5       5      U l        M     SU l        g s  snf 	N;r   rR   TrS   rX   =rY   )	splitstrip
startswithrR   rS   rB   rX   rY   r^   )r   r   bbitsbits        r   r%   PerMessageDeflate.finalize   s    #(;;s#34#3a	#348C~~:;;26/ <==26/ 899.1#))C2CA2F2L2L2N.O+ 899.1#))C2CA2F2L2L2N.O+   5s   Dc                j   S nS nUR                  S5       Vs/ s H  oDR                  5       PM     nnUSS   H  nUR                  S5      (       a	  SU l        M"  UR                  S5      (       a	  SU l        MA  UR                  S5      (       aB  SU;   a.  [        UR                  SS5      S   R                  5       5      nM  U R                  nM  UR                  S5      (       d  M  SU;   a.  [        UR                  SS5      S   R                  5       5      nM  U R                  nM     X#4$ s  snf r   )r   r   r   rR   rS   rB   rX   rY   )r   paramsrX   rY   r   r   r   s          r   _parse_paramsPerMessageDeflate._parse_params   s   !%!%#)<<#45#4a	#458C~~:;;26/ <==26/ 899#:-031B11E1K1K1M-N*-1-H-H* 899#:-031B11E1K1K1M-N*-1-H-H*   &==# 6s   D0c                z   U R                  U5      u  p#/ nU R                  (       a  UR                  S5        U R                  (       a  UR                  S5         Ub  UR                  SU 35        X l        Ub  UR                  SU 35        X0l        SU l        SR                  U5      $ ! [         a     g f = f)NrR   rS   rx   ry   Trz   )	r   rR   r{   rS   rX   rY   r^   r|   rg   )r   r   rX   rY   r}   s        r   r!   PerMessageDeflate.accept   s    9=9K9KE9R6
**:;**:;	)%1!!$;<R;S"TU.D+%1!!$;<R;S"TU.D+ !DM99Z((	  		s   :B- -
B:9B:c                X   UR                   (       a%  UR                  5       (       a  [        R                  $ UR                   (       a#  U[        R
                  L a  [        R                  $ U R                  U5      U l        U R                  c  UR                   U l        U R                  (       ao  U R                  (       d   eUR                  (       a  U R                  nOU R                  nU R                  c%  [        R                  " [        U5      * 5      U l        [!        SSS5      $ )NTF)rsv1	iscontrolr   PROTOCOL_ERRORr   rr   rs   r\   r]   clientrY   rX   r[   zlibdecompressobjrB   r   )r   r(   r)   r*   r+   r   s         r   r,   &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                   U R                   (       a  U R                  (       d  U$ U R                  c   e U R                  R                  [	        U5      5      $ ! [
        R                   a    [        R                  s $ f = fr   )	r]   r\   r[   
decompressrD   r   errorr   INVALID_FRAME_PAYLOAD_DATAr/   s      r   r1   ,PerMessageDeflate.frame_inbound_payload_data   sk     ''t/L/LK!!---	:%%00t==zz 	:999	:s   #A $B ?B c                   U(       d  g U R                   (       d  S U l        g U R                  (       d  S U l        g U R                  c   e U R                  R                  S5      nX0R                  R	                  5       -  nUR                  (       a  U R                  nOU R                  nU(       a  S U l        S U l        U$ ! [
        R                   a    [        R                  s $ f = f)Ns     )r\   r]   r[   r   flushr   r   r   r   r   rS   rR   )r   r(   r4   r0   no_context_takeovers        r   r5   (PerMessageDeflate.frame_inbound_complete   s     ,,'+D$'''+D$!!---	:%%001DED&&,,..D <<"&"A"A"&"A"A!%D#'  zz 	:999	:s   7C $C*)C*c                   U R                  U5      (       d  X44$ U[        R                  La  [        SUS   US   5      nU R                  c  U[        R                  Ld   eUR
                  (       a  U R                  nOU R                  n[        R                  " [        R                  [        R                  [        U5      * 5      U l        U R                  R                  [        U5      5      nU(       ah  X@R                  R                  [        R                   5      -  nUS S nUR
                  (       a  U R"                  nOU R$                  nU(       a  S U l        X44$ )NTr      )rs   r   rr   r   rZ   r   rX   rY   r   compressobjZ_DEFAULT_COMPRESSIONDEFLATEDrB   compressrD   r   Z_SYNC_FLUSHrR   rS   )r   r(   r)   r*   r0   r4   r   r   s           r   r8    PerMessageDeflate.frame_outbound	  s#    ((00;,,,$AA/C#!4!4444||2222#//**DMMCI: D ((t5$$**4+<+<==D9D||&*&E&E#&*&E&E#"#' {r   c                P   SU R                    3/nU R                  (       a  UR                  S5        UR                  SU R                   35        U R                  (       a  UR                  S5        SR                  U R                  R                  SR                  U5      5      $ )Nrx   rR   ry   rS   z<{} {}>rz   )	rX   rR   r{   rY   rS   format	__class__rG   r|   )r   descrs     r   __repr__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   )rU   rZ   r[   r^   r]   r\   rW   rX   rR   rY   rS   )FNFN)
rR   r<   rX   
int | NonerS   r<   rY   r   r;   r?   )r;   rB   )ri   rB   r;   r?   )r)   r   r;   r<   r:   r=   r>   )r   r   r;   ztuple[int | None, int | None])r   r   r;   zbool | None | strr@   rC   rE   rF   )r;   r   )rG   rH   rI   rJ   r   rT   rV   r_   propertyrX   setterrY   rs   r   r   r%   r   r!   r,   r1   r5   r8   r   rL   r   r   r   rN   rN   >   s   D%'"%'" ,1-1+0-1$( !+ %)	
 !+ 
6 , , ""- #- , , ""- #-K%>.),+++ + 	+
 + 
+6
:1
:9>
:	
:18<	#>&+& & 	&
 & & 
&PKr   rN   )__doc__
__future__r   r   abcr   r   typingr   frame_protocolr   r	   r
   r   r   r   rN   r   SUPPORTED_EXTENSIONSr   r   r   <module>r      sP    #  #  U U+ +\{K	 {KD *..0AB r   