Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/web_ws.cpython-38.pyc

U

'7`A@sBddlZddlZddlZddlZddlZddlmZmZmZm	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZmZddlmZmZmZmZmZmZmZmZmZmZdd	l m!Z!dd
l"m#Z#m$Z$ddl%m&Z&m'Z'ddl(m)Z)m*Z*dd
l+m,Z,ddl-m.Z.dZ/dZ0ej1ddddGdddZ2Gddde.Z3dS)N)AnyIterableOptionalTuple)CIMultiDict)hdrs)AbstractStreamWriter)
call_later
set_result)
WS_CLOSED_MESSAGEWS_CLOSING_MESSAGEWS_KEYWebSocketErrorWebSocketReaderWebSocketWriter	WSMessage	WSMsgType
ws_ext_genws_ext_parse)	ws_logger)	EofStreamFlowControlDataQueue)JSONDecoderJSONEncoder)HTTPBadRequest
HTTPException)BaseRequest)StreamResponse)WebSocketResponseWebSocketReadyrT)Zauto_attribsfrozenslotsc@s0eZdZUeed<eeed<edddZdS)r okprotocolreturncCs|jSN)r$selfr+A/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/web_ws.py__bool__0szWebSocketReady.__bool__N)__name__
__module____qualname__bool__annotations__rstrr-r+r+r+r,r +s
r cseZdZdZdddddddddeeeeeeeeeee	dd	fd	d
Z
dddd
ZddddZddddZ
ddddZeedfddZeedeeefdddZeeeefdddZeeeddddZeeddd Zeedd!d"Zeee	dd#d$Zeeedd%d&Zeedd'd(Zeedd)d*ZdWe dd,d-d.Z!dXe dd,d/d0Z"dYeeedd1d2d3Z#dZe eedd1d4d5Z$d[e%j&d6e'eee(dd7d8d9Z)ddd:d;Z*d<d+d=e	e ed>d?d@Z+d\eee,dAdBdCZ-ddDeeedAdEdFZ.ddDeee dAdGdHZ/e%j0ddIe1eee'dJdKdLZ2e ddMdNdOZ3dddPdQZ4e,ddRdSZ5eddTdUdVZ6Z7S)]rFg$@NTr+i@)timeoutreceive_timeout	autocloseautoping	heartbeat	protocolscompressmax_msg_size)	r4r5r6r7r8r9r:r;r'c	stjdd||_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_||_
||_||_||_||_d|_|dk	r|d|_d|_||_||_dS)Ne)ZstatusFrg@)super__init__
_protocols_ws_protocol_writer_reader_closed_closing
_conn_lost_close_code_loop_waiting
_exception_timeout_receive_timeout
_autoclose	_autoping
_heartbeat
_heartbeat_cb_pong_heartbeat_pong_response_cb	_compress
_max_msg_size)	r*r4r5r6r7r8r9r:r;	__class__r+r,r>8s.
zWebSocketResponse.__init__r&cCs8|jdk	r|jd|_|jdk	r4|jd|_dSr()rQcancelrOr)r+r+r,_cancel_heartbeat\s



z#WebSocketResponse._cancel_heartbeatcCs*||jdk	r&t|j|j|j|_dSr()rWrNr
_send_heartbeatrGrOr)r+r+r,_reset_heartbeates
z"WebSocketResponse._reset_heartbeatcCsN|jdk	rJ|jsJ|j|j|jdk	r6|jt|j	|j
|j|_dSr()rNrCrGZcreate_taskrApingrQrVr
_pong_not_receivedrPr)r+r+r,rXms

z!WebSocketResponse._send_heartbeatcCs<|jdk	r8|jjdk	r8d|_d|_t|_|jjdS)NT)Z_req	transportrCrFasyncioTimeoutErrorrIcloser)r+r+r,r[zs

z$WebSocketResponse._pong_not_received)requestr'cs\|jdk	r|jS||\}}t|IdH}|dk	s<t|||||IdH|Sr()_payload_writer
_pre_startr=prepareAssertionError_post_startdrain)r*rar%writerZpayload_writerrTr+r,rds
zWebSocketResponse.preparezCIMultiDict[str]cCs|j}d|tjdkr8td|tjdd|tjdkrftd|tjdd}tj	|krdd|tj	
d	D}|D]}||jkr|}qqt
d
||j|tjd}|dkrtd|d|tj}z.|rtt|d
krtd|dWn*tjk
rDtd|ddYnXtt|t}ttjdtjdtj|i}	d}
d}|jr|tj}t |dd\}}
|rt!|d|
d}
|
|	tj<|r||	tj	<|	|||
fS)NZ	websocketz@No WebSocket UPGRADE hdr: {}
 Can "Upgrade" only to "WebSocket".)textZupgradezNo CONNECTION upgrade hdr: {}cSsg|]}t|qSr+)r3strip).0protor+r+r,
<listcomp>sz0WebSocketResponse._handshake.<locals>.<listcomp>,u8Client protocols %r don’t overlap server-known ones %r)Z1387zUnsupported version: zHandshake error: FrT)isserver)r:rsZserver_notakeover)"headersgetrZUPGRADElowerrkrformatZ
CONNECTIONZSEC_WEBSOCKET_PROTOCOLsplitr?rZwarningZSEC_WEBSOCKET_VERSIONZSEC_WEBSOCKET_KEYlenbase64Z	b64decodebinasciiErrorZ	b64encodehashlibZsha1encoderZdigestdecoderZSEC_WEBSOCKET_ACCEPTrRZSEC_WEBSOCKET_EXTENSIONSrr)r*rartr%Z
req_protocolsrmversionkeyZ
accept_valZresponse_headers
notakeoverr:
extensionsZ
enabledextr+r+r,
_handshakes





zWebSocketResponse._handshakecCsl|j|_||\}}}}|d|j||||_|jj}|dk	sRt	t
|j|||d}||fS)Nr<)r:r)rGrZ
set_statusrtupdateZforce_closerR	_protocolr]rer)r*rartr%r:rr]rhr+r+r,rcs
zWebSocketResponse._pre_start)rar%rhr'cCsd||_||_||j}|dk	s&tt|jd|d|_|j	t
|j|j|jd|j
ddS)Niloopr:F)r@rArYrGrerrrBr%Z
set_parserrrSrRZ
keep_alive)r*rar%rhrr+r+r,rfszWebSocketResponse._post_startcCsV|jdk	rtdz||\}}}}Wntk
rFtddYSXtd|SdS)NzAlready startedFT)rARuntimeErrorrrr )r*ra_r%r+r+r,can_prepares
zWebSocketResponse.can_preparecCs|jSr()rCr)r+r+r,closed	szWebSocketResponse.closedcCs|jSr()rFr)r+r+r,
close_code
szWebSocketResponse.close_codecCs|jSr()r@r)r+r+r,ws_protocolszWebSocketResponse.ws_protocolcCs|jSr()rRr)r+r+r,r:szWebSocketResponse.compresscCs|jSr()rIr)r+r+r,	exceptionszWebSocketResponse.exception)messager'cs(|jdkrtd|j|IdHdSNCall .prepare() first)rArrZr*rr+r+r,rZs
zWebSocketResponse.pingcs(|jdkrtd|j|IdHdSr)rArpongrr+r+r,r!s
zWebSocketResponse.pong)datar:r'csH|jdkrtdt|ts,tdt||jj|d|dIdHdS)Nrzdata argument must be str (%r)FZbinaryr:)rAr
isinstancer3	TypeErrortypesendr*rr:r+r+r,send_str's


zWebSocketResponse.send_strcsN|jdkrtdt|tttfs2tdt||jj|d|dIdHdS)Nrz#data argument must be byte-ish (%r)Tr)	rArrbytes	bytearray
memoryviewrrrrr+r+r,
send_bytes.s

zWebSocketResponse.send_bytes)dumps)rr:rr'cs|j|||dIdHdS)Nr)r)r*rr:rr+r+r,	send_json5szWebSocketResponse.send_jsoncs4|jr
dS|jdkrtd|IdHd|_dS)NzResponse has not been startedT)Z	_eof_sentrbrr`r)r+r+r,	write_eof>s
zWebSocketResponse.write_eof)coder)rrr'c
s|jdkrtd||j}|dk	s,t|jdk	rT|jsT|td|jIdH|jsd|_z8|j	||IdH|j
}|dk	st|IdHWnVtj
tjfk
rd|_Yn4tk
r}zd|_||_WYdSd}~XYnX|jrdS|j}|dk	stz0tj|j|jd|IdH}W5QRXWnTtj
k
rbd|_Yn6tk
r}zd|_||_WYdSd}~XYnX|jtjkr|j|_dSd|_t|_dSdSdS)NrrTr\rF)rArrWrBrerHrCZ	feed_datar
r`rbrgr^CancelledErrorr_rF	ExceptionrIrD
async_timeoutr4rJrGreadrrCLOSEr)r*rrreaderrhexcmsgr+r+r,r`GsV

zWebSocketResponse.close)r4r'c
sl|jdkrtd|j}|dk	s$t|jdk	r6td|jr`|jd7_|jtkr\tdtS|j	rjt
Szh||_z>t
j|p|j|jd|jIdH}W5QRX|W5|j}t|dd|_XWntjtjfk
rd|_Yntk
r,d|_|IdHttjddYStk
r|}z2|j|_|j|jd	IdHttj|dWYSd}~XYnVtk
r}z6||_d|_	d|_|IdHttj|dWYSd}~XYnX|j tj!krd|_	|j"|_|jsh|j#rh|IdHnZ|j tj$kr$d|_	nD|j tj%krP|j&rP|'|j"IdHq$n|j tj(krh|j&rhq$|S)
Nrz+Concurrent call to receive() is not allowedrzWebSocket connection is closed.Trr\r)r))rBrrGrerHrCrETHRESHOLD_CONNLOST_ACCESSrrDr
Z
create_futurerrr4rKrrYr^rr_rFrr`rrCLOSEDrrZERRORrrIrrrrLCLOSINGZPINGrMrZPONG)r*r4rZwaiterrrr+r+r,receive~sn




"$zWebSocketResponse.receiver4cs6||IdH}|jtjkr0td|j|j|jS)Nz.Received message {}:{!r} is not WSMsgType.TEXT)rrrZTEXTrrwrr*r4rr+r+r,receive_strszWebSocketResponse.receive_strcs<||IdH}|jtjkr6td|jd|jd|jS)NzReceived message :z
 is not bytes)rrrZBINARYrrrr+r+r,
receive_bytesszWebSocketResponse.receive_bytes)loadsr4)rr4r'cs|j|dIdH}||S)Nr)r)r*rr4rr+r+r,receive_jsonszWebSocketResponse.receive_json)rr'cstddS)Nz"Cannot call .write() for websocket)r)r*rr+r+r,writeszWebSocketResponse.writecCs|Sr(r+r)r+r+r,	__aiter__szWebSocketResponse.__aiter__cs,|IdH}|jtjtjtjfkr(t|Sr()rrrrrrStopAsyncIteration)r*rr+r+r,	__anext__szWebSocketResponse.__anext__)rr'cCs|jdk	r|j|dSr()rBZ
set_exception)r*rr+r+r,_cancels
zWebSocketResponse._cancel)r)r)N)N)N)N)8r.r/r0Z
_length_checkfloatrr1rr3intr>rWrYrXr[rr	rdrrrrcrfr rpropertyrrrr:
BaseExceptionrrrZrrrjsonrrrrrr`rrrrrrrrrrr
__classcell__r+r+rTr,r4s$	

P

		7?
r)4r^rzr{r}rtypingrrrrrattrZ	multidictrrirabcr	Zhelpersr
rZhttprr
rrrrrrrrlogrZstreamsrrZtypedefsrrZweb_exceptionsrrZweb_requestrZweb_responser__all__rsr rr+r+r+r,<module>s.0
Back to Directory File Manager