
    rp0jL                        S r SSKrSSKrSSKJr  SSKJr  SSKJrJ	r	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 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,J-r-  \R\                  S:  a  SSKJ/r/  OSSK0J/r/  \R\                  S:  a  SSKr1SSKJ2r2  O
SSK1r1SSK0J2r2  \/" S\3S\
S   S9r4\Rj                  " SSS9 " S S5      5       r6\6" SSS9r7 " S S\	\4   5      r8g)zWebSocket client for asyncio.    N)Callable)TracebackType)AnyGenericLiteralOptionalcastoverload   )WebSocketDataQueue)ClientErrorServerTimeoutErrorWSMessageTypeError)ClientResponse)calculate_timeout_when
set_result)WS_CLOSED_MESSAGEWS_CLOSING_MESSAGEWebSocketErrorWSCloseCode	WSMessageWSMessageDecodeTextWSMessageNoDecodeText	WSMsgType)_INTERNAL_RECEIVE_TYPESWebSocketWriter)	EofStream)DEFAULT_JSON_DECODERDEFAULT_JSON_ENCODERJSONBytesEncoderJSONDecoderJSONEncoder)      )TypeVar)r#      )Self_DecodeTextT)bound	covariantdefault)frozenslotsc                   d    \ rS rSr\R
                  " \\   SS9r\R
                  " \\   SS9r	Sr
g)ClientWSTimeout4   N)typer+    )__name__
__module____qualname____firstlineno__attribr   float
ws_receivews_close__static_attributes__r2       K/home/wildlama/miniconda3/lib/python3.13/site-packages/aiohttp/client_ws.pyr/   r/   4   s*    huot<JwwHUOT:Hr=   r/   g      $@)r:   r;   c                      \ rS rSrSSSS.S\S\S\S-  S	\S
\S\	S\	S\
R                  S\S-  S\S\	SS4S jjrSXS jrSXS jrSXS jrSXS jrSXS jrSXS jrSYS jrSXS jrS\SS4S jrSXS jrSXS jr\S\	4S j5       r\S\S-  4S  j5       r\S\S-  4S! j5       r\S\4S" j5       r\S\	4S# j5       r SZS$\S%\!S\!4S& jjr"S\S-  4S' jr#S[S)\$SS4S* jjr%S[S)\$SS4S+ jjr& SZS)\$S,\'S\S-  SS4S- jjr(SZS.\S\S-  SS4S/ jjr)SZS.\$S\S-  SS4S0 jjr* SZ\+S1.S.\!S\S-  S2\,SS4S3 jjjr- SZS.\!S\S-  S2\.SS4S4 jjr/\0Rb                  S(S5.S6\S)\$S\	4S7 jjr2\3 SZS8S9S
\S-  S\44S: jj5       r5\3 SZS8S;S
\S-  S\64S< jj5       r5\3 SZS8S=S
\S-  S\4\6-  4S> jj5       r5 SZS
\S-  S\4\6-  4S? jjr5\3SS@.S8S9S
\S-  S\4SA jj5       r7\3SS@.S8S;S
\S-  S\$4SB jj5       r7\3SS@.S8S=S
\S-  S\\$-  4SC jj5       r7SS@.S
\S-  S\\$-  4SD jjr7SS@.S
\S-  S\$4SE jjr8\3SFSSG.S8S9SH\9S
\S-  S\!4SI jj5       r:\3SFSSG.S8S;SH\;\$/\!4   S
\S-  S\!4SJ jj5       r:\3SFSSG.S8S=SH\9\;\$/\!4   -  S
\S-  S\!4SK jj5       r:\<SSG.SH\9\;\$/\!4   -  S
\S-  S\!4SL jjr:S\=4SM jr>\3S8S9S\44SN j5       r?\3S8S;S\64SO j5       r?\3S8S=S\4\6-  4SP j5       r?S\4\6-  4SQ jr?S\=4SR jr@SS\A\   S-  ST\S-  SU\BS-  SS4SV jrCSWrDg)\ClientWebSocketResponse=   Nr   F)	heartbeatcompressclient_notakeoverreaderwriterprotocolresponsetimeout	autocloseautopinglooprB   rC   rD   returnc	                   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        SU l        S U l        U R5                  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_need_heartbeat_reset_heartbeat_reset_handle_reset_heartbeat)selfrE   rF   rG   rH   rI   rJ   rK   rL   rB   rC   rD   s               r>   __init__ ClientWebSocketResponse.__init__>   s     "((
!'+#!#9=&) #,s?D =A
#8<04!"359%*">B$r=   c                 H   U R                  5         U R                  b!  U R                  R                  5         S U l        SU l        U R                  b!  U R                  R                  5         S U l        U R
                  b"  U R
                  R                  5         S U l        g g NF)_cancel_pong_response_cbrh   cancelrg   r\   rf   rj   s    r>   _cancel_heartbeat)ClientWebSocketResponse._cancel_heartbeatk   s    %%'''3((//1+/D(%*")%%'!%D??&OO""$"DO 'r=   c                 b    U R                   b"  U R                   R                  5         S U l         g g N)r_   rp   rq   s    r>   ro   0ClientWebSocketResponse._cancel_pong_response_cbx   s-    !!-""))+%)D" .r=   c                     U R                   b  U R                  (       a  g U R                  nUc   eSU l        UR                  U R                  5      U l        g )NT)r[   rg   r`   	call_soon_flush_heartbeat_resetrh   )rj   rL   s     r>   _on_data_received)ClientWebSocketResponse._on_data_received}   sM    ??"d&@&@zz &*"'+~~d6Q6Q'R$r=   c                 d    S U l         U R                  (       d  g U R                  5         SU l        g rn   )rh   rg   ri   rq   s    r>   ry   .ClientWebSocketResponse._flush_heartbeat_reset   s*    '+$))%*"r=   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   )r[   ro   r`   rQ   
_connector_timeout_ceil_thresholdtimer   r]   r\   call_at_send_heartbeat)rj   rL   conntimeout_ceil_thresholdnowwhens         r>   ri   (ClientWebSocketResponse._reset_heartbeat   s    ??"%%'zzzz7;7GDOO33Q 	 iik%c??<RS#% "&d4H4H!ID &r=   c                    S U l         U R                  (       a  g 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R1                  5       (       d"  Xpl        UR5                  U R6                  5        g U R7                  U5        g )Nr   r=   )r#      T)rL   eager_start)r\   rg   r`   r   r]   r   r   rQ   r   r   r   r^   ro   _pong_not_receivedr_   rR   
send_framer   PINGsysversion_infoasyncioTaskcreate_taskdonerf   add_done_callback_ping_task_done)rj   rL   r   r   r   r   coro	ping_tasks           r>   r   'ClientWebSocketResponse._send_heartbeat   s7   ! %%zziik%%%!%$$d&:&:"D zz7;7GDOO33Q 	 &c+?+?AWX%%'!%d4K4K!L||&&sINN;w&  T$GI((.I~~'O''(<(<=  +r=   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_exceptionrf   )rj   taskexcs      r>   r   'ClientWebSocketResponse._ping_task_done   s5    ~~DNN,<%<S%<,,S1r=   c                 T    U R                  [        SU R                   S35      5        g )NzNo PONG received after z seconds)r   r   r^   rq   s    r>   r   *ClientWebSocketResponse._pong_not_received   s)    ((!89M9M8NhWX	
r=   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   )rU   _set_closedr   ABNORMAL_CLOSURErW   rc   rO   closera   rV   rS   	feed_datar   r   ERROR)rj   r   s     r>   r   3ClientWebSocketResponse._handle_ping_pong_exception   sp    <<&77==LL""9Y__c4#H!L "/=r=   c                 2    SU l         U R                  5         g)zTSet the connection to closed.

Cancel any heartbeat timers and set the closed flag.
TN)rU   rr   rq   s    r>   r   #ClientWebSocketResponse._set_closed   s    
  r=   c                 2    SU l         U R                  5         g)zVSet the connection to closing.

Cancel any heartbeat timers and set the closing flag.
TN)rV   rr   rq   s    r>   _set_closing$ClientWebSocketResponse._set_closing   s    
  r=   c                     U R                   $ ru   )rU   rq   s    r>   closedClientWebSocketResponse.closed   s    ||r=   c                     U R                   $ ru   )rW   rq   s    r>   
close_code"ClientWebSocketResponse.close_code   s    r=   c                     U R                   $ ru   )rT   rq   s    r>   rG    ClientWebSocketResponse.protocol       ~~r=   c                     U R                   $ ru   )rd   rq   s    r>   rC    ClientWebSocketResponse.compress   r   r=   c                     U R                   $ ru   )re   rq   s    r>   rD   )ClientWebSocketResponse.client_notakeover  s    &&&r=   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)rO   rP   	transportget_extra_info)rj   r   r+   r   r   s        r>   r   &ClientWebSocketResponse.get_extra_info  s@    ~~((<NNN	N''66r=   c                     U R                   $ ru   )rc   rq   s    r>   r   !ClientWebSocketResponse.exception  s    r=   r=   messagec                 t   #    U R                   R                  U[        R                  5      I S h  vN   g  N7fru   )rR   r   r   r   rj   r   s     r>   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ru   )rR   r   r   PONGr   s     r>   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)rR   r   )rj   r   r   rC   s       r>   r   "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rC   )	
isinstancestr	TypeErrorr1   rR   r   encoder   TEXTrj   r   rC   s      r>   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   r1   rR   r   r   BINARYr   s      r>   
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   rj   r   rC   r   s       r>   	send_json!ClientWebSocketResponse.send_json*  s!      mmE$K(m;;;   $"$c                L   #    U R                  U" U5      US9I Sh  vN   g N7f)zSend JSON data using a bytes-returning encoder as a binary frame.

Use this when your JSON encoder (like orjson) returns bytes
instead of str, avoiding the encode/decode overhead.
r   N)r   r   s       r>   send_json_bytes'ClientWebSocketResponse.send_json_bytes3  s!      ooeDkHo===r   )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)ra   rV   r`   create_futurerb   r   rS   r   r   rU   r   rR   r   r   CancelledErrorr   r   rW   rO   	Exceptionrc   async_timeoutrI   rX   r;   readr1   r   CLOSEr   )rj   r   r   r   msgs        r>   r   ClientWebSocketResponse.closeA  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?rj   z&ClientWebSocketResponse[Literal[True]]c                    #    g 7fru   r2   rj   rI   s     r>   receiveClientWebSocketResponse.receiver  
      "   z'ClientWebSocketResponse[Literal[False]]c                    #    g 7fru   r2   r   s     r>   r   r   w  
      !$r   z$ClientWebSocketResponse[_DecodeText]c                    #    g 7fru   r2   r   s     r>   r   r   |  
      7:r   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SU l        U R                  (       a  [        U R                  S 5        WRB                  [D        ;  a  U$ URB                  [.        RF                  L a]  U RA                  5         URH                  U l        U R                  (       d)  U RJ                  (       a  U R                  5       I S h  vN   U$ URB                  [.        RL                  L a  U RA                  5         U$ URB                  [.        RN                  L a7  U RP                  (       a&  U RS                  URH                  5      I S h  vN   GM(  URB                  [.        RT                  L a  U RP                  (       a  GMY  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    [-        [.        R0                  S S 5      s $ [2         a.    U R5                  5         ["        R$                  U l        [
        s $ [6         aX  nUR8                  U l        U R                  UR8                  S9I S h  vN    [-        [.        R:                  US 5      s S nA$ S nAf[<         ai  nX@l        U RA                  5         ["        R$                  U l        U R                  5       I S h  vN    [-        [.        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   )+rX   r:   ra   RuntimeErrorrU   r   rV   r   r   rI   rS   r   rb   r   r   r   TimeoutErrorr   r   rW   r   OKr   r   CLOSEDr   r   r   r   r   r   rc   r   r1   r   r   r   rY   CLOSINGr   rZ   r   r   )rj   rI   receive_timeoutr   r   s        r>   r   r     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^^+Jy # $J"; $J#I#I#I 8$)DM''"4#3#3T: (**G,@,@A #.#?#?  ?#.>> jjl"" !1!14>> )  "#.#?#? ((! =#&88 jjchhj/// #t<< ="%!!##.#?#? jjl"" #t<<=  ' *s5  A8Q::I=;
Q:K !J' /J 0J' 3J	JJ	J' !J""J' J$J' 	.K 7B	Q: Q4BQ:Q7;Q: J' J	J' 	J!JJ!	J' '1KK A+Q1M	 Q1'Q:)4Q1Q:	Q1(-O;OO;5Q16Q:;Q1>Q,Q	Q,&Q1'Q:,Q11Q:7Q:rI   c                   #    g 7fru   r2   r   s     r>   receive_str#ClientWebSocketResponse.receive_str  s
      r   c                   #    g 7fru   r2   r   s     r>   r
  r    s
      r   c                   #    g 7fru   r2   r   s     r>   r
  r    s
      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)zbReceive TEXT message.

Returns str when decode_text=True (default), bytes when decode_text=False.
NReceived message :z is not WSMsgType.TEXT)r   r1   r   r   r   r   r	   r   rj   rI   r   s      r>   r
  r    sh     
 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   r1   r   r   r   r   r	   r   r  s      r>   receive_bytes%ClientWebSocketResponse.receive_bytes  sh     LL))889+++$#CHH:Qsxxl:RS  E388$$ *r  .)loadsrI   r  c                   #    g 7fru   r2   rj   r  rI   s      r>   receive_json$ClientWebSocketResponse.receive_json  
      r   c                   #    g 7fru   r2   r  s      r>   r  r    r  r   c                   #    g 7fru   r2   r  s      r>   r  r    r  r   c                L   #    U R                  US9I S h  vN nU" U5      $  N7f)Nr  )r
  )rj   r  rI   r   s       r>   r  r    s,      %%g%66T{ 7s   $"$c                     U $ ru   r2   rq   s    r>   	__aiter__!ClientWebSocketResponse.__aiter__  s    r=   c                    #    g 7fru   r2   rq   s    r>   	__anext__!ClientWebSocketResponse.__anext__  r   r   c                    #    g 7fru   r2   rq   s    r>   r#  r$    r   r   c                    #    g 7fru   r2   rq   s    r>   r#  r$    r   r   c                    #    U R                  5       I S h  vN nUR                  [        R                  [        R                  [        R
                  4;   a  [        eU$  NI7fru   )r   r1   r   r   r  r  StopAsyncIteration)rj   r   s     r>   r#  r$  !  sF     LLN"88	):):I<L<LMM$$
 #s   A"A A
A"c                    #    U $ 7fru   r2   rq   s    r>   
__aenter__"ClientWebSocketResponse.__aenter__'  s
     s   exc_typeexc_valexc_tbc                 @   #    U R                  5       I S h  vN   g  N7fru   )r   )rj   r,  r-  r.  s       r>   	__aexit__!ClientWebSocketResponse.__aexit__*  s      jjls   )rY   rZ   re   rW   rb   rU   rV   rd   rQ   rc   r[   r\   rh   r]   r`   rg   rf   r^   r_   rT   rS   rO   rX   ra   rR   )rM   N)r   zasyncio.Task[None]rM   Nru   )r=   )Er3   r4   r5   r6   r   r   r   r   r/   boolr   AbstractEventLoopr9   intrk   rr   ro   rz   ry   ri   r   r   r   BaseExceptionr   r   r   propertyr   r   rG   rC   rD   r   r   r   r   r   r   r   r   r   r   r   r"   r   r    r   r   r  r   r
   r   r   r   r
  r  r!   r  r   r   r'   r   r#  r*  r1   r   r0  r<   r2   r=   r>   r@   r@   =   s{    #'"'+ "+   +  *	+ 
 !+  !+  +  +  ''+  4<+  +   +  
+ Z#*
S+J*&,P

	M} 	M 	M!!     C$J     #*   #   '4 ' '73 7 7 7=4/ ?% ?$ ??% ?$ ? IMAA&/A;>:A	A
3 
#* 
 
QU QcDj QD Q  $<
 2<< *<
 < 
<  $>> *>
  > 
> *5# /3 /% /RV /b PT"6"AF"	" " QU$7$BG$,$	$ $ NR:4:?Dt|:	4	4: :
 '+Ht|H	4	4HT SW6DIDL	  TX7EJT\	  QU4BG$,	u  <@ 
#EDL 
#C%K 
# >B %edl %e %  ! $	6  	
 
   ), $	7 % 	
 
   7: $	4 Xugsl33 	
 
  7K $	 Xugsl33 	
 
4  "6"	" " $7$	$ $ :4:	4	4: :!47L!L $ }%, % $	
 
r=   r@   )9__doc__r   r   collections.abcr   typesr   typingr   r   r   r   r	   r
   r7   _websocket.readerr   client_exceptionsr   r   r   client_reqrepr   helpersr   r   httpr   r   r   r   r   r   r   r   http_websocketr   r   streamsr   typedefsr   r   r    r!   r"   r   r%   typing_extensionsr   r'   r2  r(   sr/   DEFAULT_WS_CLIENT_TIMEOUTr@   r2   r=   r>   <module>rF     s    #  
 $  B B  1 R R ) 7	 	 	 E   w)w#& m44QUW t4 ; ; !;
 ,tdK sgk2 sr=   