
    h;                     d   S r SSKrSSKrSSKJr  SSKJrJrJrJ	r	  SSK
r
SSKJr  SSKJrJrJr  SSKJr  SS	KJrJr  SS
KJrJrJrJrJrJr  SSKJrJr  SSK J!r!  SSK"J#r#J$r$J%r%J&r&  \RN                  S:  a  SSKr(OSSK(r(\
RR                  " SSS9 " S S5      5       r*\*" SSS9r+ " S S5      r,g)zWebSocket client for asyncio.    N)TracebackType)AnyOptionalTypecast   )WebSocketDataQueue)ClientErrorServerTimeoutErrorWSMessageTypeError)ClientResponse)calculate_timeout_when
set_result)WS_CLOSED_MESSAGEWS_CLOSING_MESSAGEWebSocketErrorWSCloseCode	WSMessage	WSMsgType)_INTERNAL_RECEIVE_TYPESWebSocketWriter)	EofStream)DEFAULT_JSON_DECODERDEFAULT_JSON_ENCODERJSONDecoderJSONEncoder)      T)frozenslotsc                   d    \ rS rSr\R
                  " \\   SS9r\R
                  " \\   SS9r	Sr
g)ClientWSTimeout%   N)typedefault )__name__
__module____qualname____firstlineno__attribr   float
ws_receivews_close__static_attributes__r&       C/var/www/html/env/lib/python3.13/site-packages/aiohttp/client_ws.pyr"   r"   %   s*    huot<JwwHUOT:Hr1   r"   g      $@)r.   r/   c                   X   \ rS rSrSSSS.S\S\S\\   S	\S
\	S\
S\
S\R                  S\\   S\S\
SS4S jjrSDS jrSDS jrSDS jrSDS jrSES jrSDS jrS\SS4S jrSDS jrSDS jr\S\
4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\4S  j5       r\S\
4S! j5       rSFS"\S#\ S\ 4S$ jjr!S\\   4S% jr"SGS'\#SS4S( jjr$SGS'\#SS4S) jjr% SFS'\#S*\&S\\   SS4S+ jjr'SFS,\S\\   SS4S- jjr(SFS,\#S\\   SS4S. jjr) SF\*S/.S,\ S\\   S0\+SS4S1 jjjr,\-R\                  S&S2.S3\S'\#S\
4S4 jjr/SFS
\\   S\04S5 jjr1SS6.S
\\   S\4S7 jjr2SS6.S
\\   S\#4S8 jjr3\4SS9.S:\5S
\\   S\ 4S; jjr6SHS< jr7S\04S= jr8SHS> jr9S?\\:\      S@\\   SA\\;   SS4SB jr<SCr=g)IClientWebSocketResponse.   Nr   F)	heartbeatcompressclient_notakeoverreaderwriterprotocolresponsetimeout	autocloseautopingloopr6   r7   r8   returnc	                p   X@l         UR                  U l        X l        Xl        X0l        SU l        SU l        S U l        XPl	        X`l
        Xpl        Xl        S U l        SU l        U	b
  U	S-  U l        S U l        Xl        SU l        S U l        S U l        Xl        Xl        S U l        U R1                  5         g )NFg        g       @)	_response
connection_conn_writer_reader	_protocol_closed_closing_close_code_timeout
_autoclose	_autoping
_heartbeat_heartbeat_cb_heartbeat_when_pong_heartbeat_pong_response_cb_loop_waiting_close_wait
_exception	_compress_client_notakeover
_ping_task_reset_heartbeat)selfr9   r:   r;   r<   r=   r>   r?   r@   r6   r7   r8   s               r2   __init__ ClientWebSocketResponse.__init__/   s     "((
!*.#!#<@&) #,s?D @D
#;?37!"38<r1   c                     U R                  5         U R                  b!  U R                  R                  5         S U l        U R                  b"  U R                  R                  5         S U l        g g N)_cancel_pong_response_cbrP   cancelrZ   r\   s    r2   _cancel_heartbeat)ClientWebSocketResponse._cancel_heartbeatZ   sZ    %%')%%'!%D??&OO""$"DO 'r1   c                 b    U R                   b"  U R                   R                  5         S U l         g g r`   )rS   rb   rc   s    r2   ra   0ClientWebSocketResponse._cancel_pong_response_cbc   s-    !!-""))+%)D" .r1   c                 d   U R                   c  g U R                  5         U R                  nUc   eU R                  nUb  UR                  R
                  OSnUR                  5       n[        X@R                   U5      nXPl        U R                  c!  UR                  XPR                  5      U l	        g g )N   )rO   ra   rT   rE   
_connector_timeout_ceil_thresholdtimer   rQ   rP   call_at_send_heartbeat)r\   r@   conntimeout_ceil_thresholdnowwhens         r2   r[   (ClientWebSocketResponse._reset_heartbeath   s    ??"%%'zzzz7;7GDOO33Q 	 iik%c??<RS#% "&d4H4H!ID &r1   c                    S U l         U R                  nUR                  5       nX R                  :  a,  UR	                  U R                  U R
                  5      U l         g U R                  nUb  UR                  R                  OSn[        X R                  U5      nU R                  5         UR	                  XPR                  5      U l        U R                  R                  S[         R"                  5      n[$        R&                  S:  a  [(        R*                  " XaSS9nOUR-                  U5      nUR/                  5       (       d"  Xpl        UR3                  U R4                  5        g U R5                  U5        g )Nri   r1   )r      T)r@   eager_start)rP   rT   rl   rQ   rm   rn   rE   rj   rk   r   rR   ra   _pong_not_receivedrS   rF   
send_framer   PINGsysversion_infoasyncioTaskcreate_taskdonerZ   add_done_callback_ping_task_done)r\   r@   rq   ro   rp   rr   coro	ping_tasks           r2   rn   'ClientWebSocketResponse._send_heartbeat}   s)   !zziik%%%!%$$d&:&:"D zz7;7GDOO33Q 	 &c+?+?AWX%%'!%d4K4K!L||&&sINN;w&  T$GI((.I~~'O''(<(<=  +r1   c                     UR                  5       (       d(  UR                  5       =n(       a  U R                  U5        SU l        g)z*Callback for when the ping task completes.N)	cancelled	exception_handle_ping_pong_exceptionrZ   )r\   taskexcs      r2   r   'ClientWebSocketResponse._ping_task_done   s5    ~~DNN,<%<S%<,,S1r1   c                 T    U R                  [        SU R                   S35      5        g )NzNo PONG received after z seconds)r   r   rR   rc   s    r2   rw   *ClientWebSocketResponse._pong_not_received   s)    ((!89M9M8NhWX	
r1   r   c                 d   U R                   (       a  gU R                  5         [        R                  U l        Xl        U R                  R                  5         U R                  (       aH  U R                  (       d6  U R                  R                  [        [        R                  US5      S5        ggg)z5Handle exceptions raised during ping/pong processing.Nr   )rI   _set_closedr   ABNORMAL_CLOSURErK   rW   rC   closerU   rJ   rG   	feed_datar   r   ERROR)r\   r   s     r2   r   3ClientWebSocketResponse._handle_ping_pong_exception   sp    <<&77==LL""9Y__c4#H!L "/=r1   c                 2    SU l         U R                  5         g)zTSet the connection to closed.

Cancel any heartbeat timers and set the closed flag.
TN)rI   rd   rc   s    r2   r   #ClientWebSocketResponse._set_closed   s    
  r1   c                 2    SU l         U R                  5         g)zVSet the connection to closing.

Cancel any heartbeat timers and set the closing flag.
TN)rJ   rd   rc   s    r2   _set_closing$ClientWebSocketResponse._set_closing   s    
  r1   c                     U R                   $ r`   )rI   rc   s    r2   closedClientWebSocketResponse.closed   s    ||r1   c                     U R                   $ r`   )rK   rc   s    r2   
close_code"ClientWebSocketResponse.close_code   s    r1   c                     U R                   $ r`   )rH   rc   s    r2   r;    ClientWebSocketResponse.protocol       ~~r1   c                     U R                   $ r`   )rX   rc   s    r2   r7    ClientWebSocketResponse.compress   r   r1   c                     U R                   $ r`   )rY   rc   s    r2   r8   )ClientWebSocketResponse.client_notakeover   s    &&&r1   namer%   c                 |    U R                   R                  nUc  U$ UR                  nUc  U$ UR                  X5      $ )z$extra info from connection transport)rC   rD   	transportget_extra_info)r\   r   r%   ro   r   s        r2   r   &ClientWebSocketResponse.get_extra_info   s@    ~~((<NNN	N''66r1   c                     U R                   $ r`   )rW   rc   s    r2   r   !ClientWebSocketResponse.exception   s    r1   r1   messagec                 t   #    U R                   R                  U[        R                  5      I S h  vN   g  N7fr`   )rF   rx   r   ry   r\   r   s     r2   pingClientWebSocketResponse.ping   #     ll%%gy~~>>>   .868c                 t   #    U R                   R                  U[        R                  5      I S h  vN   g  N7fr`   )rF   rx   r   PONGr   s     r2   pongClientWebSocketResponse.pong   r   r   opcodec                 X   #    U R                   R                  XU5      I Sh  vN   g N7f)z Send a frame over the websocket.N)rF   rx   )r\   r   r   r7   s       r2   rx   "ClientWebSocketResponse.send_frame   s!      ll%%gx@@@s    *(*datac                    #    [        U[        5      (       d  [        S[        U5      -  5      eU R                  R                  UR                  S5      [        R                  US9I S h  vN   g  N7f)Nzdata argument must be str (%r)zutf-8r7   )	
isinstancestr	TypeErrorr$   rF   rx   encoder   TEXTr\   r   r7   s      r2   send_str ClientWebSocketResponse.send_str   s\     $$$<tDzIJJll%%KK )..8 & 
 	
 	
s   A(A2*A0+A2c                    #    [        U[        [        [        45      (       d  [	        S[        U5      -  5      eU R                  R                  U[        R                  US9I S h  vN   g  N7f)Nz#data argument must be byte-ish (%r)r   )
r   bytes	bytearray
memoryviewr   r$   rF   rx   r   BINARYr   s      r2   
send_bytes"ClientWebSocketResponse.send_bytes   sS     $	: >??ADJNOOll%%dI,<,<x%PPPs   A$A.&A,'A.)dumpsr   c                L   #    U R                  U" U5      US9I S h  vN   g  N7f)Nr   )r   )r\   r   r7   r   s       r2   	send_json!ClientWebSocketResponse.send_json   s!      mmE$K(m;;;s   $"$)coder   r   c                  #    U R                   (       a  U R                  (       dr  U R                  c   eU R                  R                  5       U l        U R                  5         U R                  R                  [        S5        U R                  I S h  vN   U R                  (       a  gU R                  5          U R                  R                  X5      I S h  vN   U R"                  (       a  U R$                  R                  5         g  [*        R,                  " U R.                  R0                  5       IS h  vN   U R                  R3                  5       I S h  vN nS S S 5      IS h  vN   WR4                  [6        R8                  L a,  UR:                  U l        U R$                  R                  5         gM   GN) N! [        R                   a1    [        R                   U l        U R$                  R                  5         e [&         a?  n[        R                   U l        X0l        U R$                  R                  5          S nAgS nAff = f GN N N! , IS h  vN  (       d  f       N= f! [        R                   a1    [        R                   U l        U R$                  R                  5         e [&         a?  n[        R                   U l        X0l        U R$                  R                  5          S nAgS nAff = f7f)Nr   FT)rU   rJ   rT   create_futurerV   r   rG   r   r   rI   r   rF   r   r|   CancelledErrorr   r   rK   rC   	ExceptionrW   async_timeoutr=   rL   r/   readr$   r   CLOSEr   )r\   r   r   r   msgs        r2   r   ClientWebSocketResponse.close  s     ==::)))#zz779DLL""#5q9""""<<
	,,$$T333 NN  "(001G1GHH $ 1 1 33C IH xx9??*#&88 $$&# - # 4%% 	*;;DNN  " 	*;;D!ONN  "		 I3 IHHH)) #.#?#? $$& #.#?#? "%$$&	s   BK?F;&K?:G  F>G  -K?.I0 9I:I0 =III I0 +I,I0 0AK?>G   AI5IK?IK?I0 II0 I-II-)I0 ,K?-I0 0AK<=5K72K?7K<<K?c                 	  #    U=(       d    U R                   R                  n U R                  (       a  [        S5      eU R                  (       a  [
        $ U R                  (       a  U R                  5       I S h  vN   [
        $  SU l         U(       aR  [        R                  " U5       IS h  vN   U R                  R                  5       I S h  vN nS S S 5      IS h  vN   O"U R                  R                  5       I S h  vN nU R                  5         SU l        U R                  (       a  [        U R                  S 5        WRD                  [F        ;  a  U$ URD                  [0        RH                  L a]  U RC                  5         URJ                  U l        U R                  (       d)  U RL                  (       a  U R                  5       I S h  vN   U$ URD                  [0        RN                  L a  U RC                  5         U$ URD                  [0        RP                  L a7  U RR                  (       a&  U RU                  URJ                  5      I S h  vN   GM8  URD                  [0        RV                  L a  U RR                  (       a  GMi  U$  GN GN GN GN! , IS h  vN  (       d  f       GN= f GN! SU l        U R                  (       a  [        U R                  S 5        f f = f! [        R                   [        R"                  4 a    [$        R&                  U l        e [*         aL    [$        R,                  U l        U R                  5       I S h  vN    [/        [0        R2                  S S 5      s $ [4         a.    U R7                  5         [$        R&                  U l        [
        s $ [8         aX  nUR:                  U l        U R                  UR:                  S9I S h  vN    [/        [0        R<                  US 5      s S nA$ S nAf[>         ai  nX@l         U RC                  5         [$        R&                  U l        U R                  5       I S h  vN    [/        [0        R<                  US 5      s S nA$ S nAff = f GN GN57f)NTz+Concurrent call to receive() is not allowedF)r   ),rL   r.   rU   RuntimeErrorrI   r   rJ   r   r   r=   rG   r   r[   rV   r   r|   r   TimeoutErrorr   r   rK   r   OKr   r   CLOSEDr
   r   r   r   r   r   rW   r   r$   r   r   r   rM   CLOSINGry   rN   r   r   )r\   r=   receive_timeoutr   r   s        r2   receiveClientWebSocketResponse.receive8  s+    !=T]]%=%=}}"#PQQ||((jjl""((&= $;&
 $1#8#8#I#I(,(9(9(;";C $J#I#I %)LL$5$5$77))+$)DM''"4#3#3T:0 xx66 
xx9??*!!##&88 ||**,&& J Y...!!# J Y^^+ii)))Y^^+J{ # $J"; $J#I#I#I 8 %*DM''"4#3#3T: (**G,@,@A #.#?#?  ?#.>> jjl"" !1!14>> )  "#.#?#? ((! =#&88 jjchhj/// #t<< ="%!!##.#?#? jjl"" #t<<=  ' *s5  A8R
:J;
R
K+ !J7 /J0J7 3JJJJ7 !J""J7 J4J7 .K+ B	R
RBR
R;R
J7 JJ7 J1J" J1,	J7 71K((K+ +A+RM R7R
94R-R
/	R8-P%O(&PRR
R>Q<QQ<6R7R
<RR
R
r=   c                   #    U R                  U5      I S h  vN nUR                  [        R                  La'  [	        SUR                   SUR
                  < S35      e[        [        UR
                  5      $  Nb7f)NReceived message :z is not WSMsgType.TEXT)r   r$   r   r   r   r   r   r   r\   r=   r   s      r2   receive_str#ClientWebSocketResponse.receive_str  sf     LL))889>>)$#CHH:Qsxxl:PQ  C"" *   A<A:A#A<c                   #    U R                  U5      I S h  vN nUR                  [        R                  La'  [	        SUR                   SUR
                  < S35      e[        [        UR
                  5      $  Nb7f)Nr   r   z is not WSMsgType.BINARY)r   r$   r   r   r   r   r   r   r   s      r2   receive_bytes%ClientWebSocketResponse.receive_bytes  sh     LL))889+++$#CHH:Qsxxl:RS  E388$$ *r   )loadsr=   r   c                L   #    U R                  US9I S h  vN nU" U5      $  N7f)Nr   )r   )r\   r   r=   r   s       r2   receive_json$ClientWebSocketResponse.receive_json  s,      %%g%66T{ 7s   $"$c                     U $ r`   r&   rc   s    r2   	__aiter__!ClientWebSocketResponse.__aiter__  s    r1   c                    #    U R                  5       I S h  vN nUR                  [        R                  [        R                  [        R
                  4;   a  [        eU$  NI7fr`   )r   r$   r   r   r   r   StopAsyncIteration)r\   r   s     r2   	__anext__!ClientWebSocketResponse.__anext__  sF     LLN"88	):):I<L<LMM$$
 #s   A"A A
A"c                    #    U $ 7fr`   r&   rc   s    r2   
__aenter__"ClientWebSocketResponse.__aenter__  s
     s   exc_typeexc_valexc_tbc                 @   #    U R                  5       I S h  vN   g  N7fr`   )r   )r\   r   r   r   s       r2   	__aexit__!ClientWebSocketResponse.__aexit__  s      jjls   )rM   rN   rY   rK   rV   rI   rJ   rX   rE   rW   rO   rP   rQ   rT   rZ   rR   rS   rH   rG   rC   rL   rU   rF   )rA   N)r   zasyncio.Task[None]rA   Nr`   )r1   )rA   r4   )>r'   r(   r)   r*   r	   r   r   r   r   r"   boolr|   AbstractEventLoopr-   intr]   rd   ra   r[   rn   r   rw   BaseExceptionr   r   r   propertyr   r   r;   r7   r8   r   r   r   r   r   r   r   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r0   r&   r1   r2   r4   r4   .   sk    &*"') ")   )  3-	) 
 !)  !)  )  )  '')  E?)  )   )  
) V#*
J* ,D

	M} 	M 	M!!     HSM     (3-   #   '4 ' '73 7 7 78M2 ?% ?$ ??% ?$ ? LPAA&/A;CC=A	A
3 
(3- 
4 
QU Qhsm Qt Q #'<
 2<< 3-<
 < 
< *5# /3 /% /RV /bGXe_ G	 GR ?C #HUO #s # AE %huo % % 2#'	  %	
 
 4./ -( '	
 
r1   r4   )-__doc__r|   rz   typesr   typingr   r   r   r   r+   _websocket.readerr	   client_exceptionsr
   r   r   client_reqrepr   helpersr   r   httpr   r   r   r   r   r   http_websocketr   r   streamsr   typedefsr   r   r   r   r{   r   sr"   DEFAULT_WS_CLIENT_TIMEOUTr4   r&   r1   r2   <module>r     s    #  
  , ,  1 R R ) 7  E   w# t4 ; ; !;
 ,tdK ~ ~r1   