Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/asyncio/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/asyncio/__pycache__/selector_events.cpython-38.opt-2.pyc
U

?��gT��@s*dZddlZddlZddlZddlZddlZddlZddlZzddlZWne	k
r`dZYnXddl
mZddl
mZddl
m
Z
ddl
mZddl
mZdd	l
mZdd
l
mZddl
mZddlmZd
d�Zdd�ZGdd�dej�ZGdd�dejej�ZGdd�de�ZGdd�de�ZdS))�BaseSelectorEventLoop�N�)�base_events)�	constants)�events)�futures)�	protocols)�sslproto)�
transports)�trsock)�loggercCs8z|�|�}Wntk
r$YdSXt|j|@�SdS�NF)�get_key�KeyError�boolr)�selector�fd�event�key�r�6/opt/cppython/lib/python3.8/asyncio/selector_events.py�_test_selector_event s
rcCs tdk	rt|tj�rtd��dS)Nz"Socket cannot be of type SSLSocket)�ssl�
isinstanceZ	SSLSocket�	TypeError)�sockrrr�_check_ssl_socket+srcs�eZdZdR�fdd�	ZdSddd�dd�ZdTddddejd�d	d
�ZdUdd�Z�fd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdddejfdd�Zdddejfdd�Zddejfdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*�Z+S)VrNcsFt���|dkrt��}t�d|jj�||_|�	�t
��|_dS)NzUsing selector: %s)
�super�__init__�	selectors�DefaultSelectorr�debug�	__class__�__name__�	_selector�_make_self_pipe�weakref�WeakValueDictionary�_transports)�selfr�r"rrr6s
zBaseSelectorEventLoop.__init__��extra�servercCst||||||�S�N)�_SelectorSocketTransport)r)r�protocol�waiterr,r-rrr�_make_socket_transport@s
�z,BaseSelectorEventLoop._make_socket_transportF)�server_side�server_hostnamer,r-�ssl_handshake_timeoutc	Cs0tj|||||||	d�}
t|||
||d�|
jS)N)r5r+)r	ZSSLProtocolr/Z_app_transport)r)Zrawsockr0�
sslcontextr1r3r4r,r-r5Zssl_protocolrrr�_make_ssl_transportEs��z)BaseSelectorEventLoop._make_ssl_transportcCst||||||�Sr.)�_SelectorDatagramTransport)r)rr0�addressr1r,rrr�_make_datagram_transportRs
�z.BaseSelectorEventLoop._make_datagram_transportcsL|��rtd��|��rdS|��t���|jdk	rH|j��d|_dS)Nz!Cannot close a running event loop)Z
is_running�RuntimeError�	is_closed�_close_self_piper�closer$�r)r*rrr>Ws


zBaseSelectorEventLoop.closecCsB|�|j���|j��d|_|j��d|_|jd8_dS)Nr)�_remove_reader�_ssock�filenor>�_csock�
_internal_fdsr?rrrr=bs

z&BaseSelectorEventLoop._close_self_pipecCsNt��\|_|_|j�d�|j�d�|jd7_|�|j��|j�dS)NFr)	�socket�
socketpairrArC�setblockingrD�_add_readerrB�_read_from_selfr?rrrr%js
z%BaseSelectorEventLoop._make_self_pipecCsdSr.r�r)�datarrr�_process_self_datarsz(BaseSelectorEventLoop._process_self_datacCsXz"|j�d�}|sWqT|�|�Wqtk
r:YqYqtk
rPYqTYqXqdS)Ni)rA�recvrL�InterruptedError�BlockingIOErrorrJrrrrIusz%BaseSelectorEventLoop._read_from_selfcCsN|j}|dkrdSz|�d�Wn(tk
rH|jrDtjddd�YnXdS)N�z3Fail to write a null byte into the self-pipe socketT��exc_info)rC�send�OSError�_debugrr!)r)Zcsockrrr�_write_to_self�s�z$BaseSelectorEventLoop._write_to_self�dc
Cs"|�|��|j||||||�dSr.)rHrB�_accept_connection)r)�protocol_factoryrr6r-�backlogr5rrr�_start_serving�s�z$BaseSelectorEventLoop._start_servingc
Cst|�D]�}z0|��\}}	|jr0t�d||	|�|�d�Wn�tttfk
rZYdSt	k
r�}
zd|
j
t
jt
jt
j
t
jfkr�|�d|
t�|�d��|�|���|�tj|j||||||�n�W5d}
~
XYqXd|	i}|�||||||�}|�|�qdS)Nz#%r got a new connection from %r: %rFz&socket.accept() out of system resource)�message�	exceptionrE�peername)�range�acceptrUrr!rGrOrN�ConnectionAbortedErrorrT�errnoZEMFILEZENFILEZENOBUFSZENOMEM�call_exception_handlerr�TransportSocketr@rBZ
call_laterrZACCEPT_RETRY_DELAYr[�_accept_connection2Zcreate_task)
r)rYrr6r-rZr5�_�conn�addr�excr,r`rrrrX�sV�����z(BaseSelectorEventLoop._accept_connectionc
�s�d}d}zt|�}|��}	|r8|j||||	d|||d�}n|j|||	||d�}z|	IdHWntk
rx|���YnXWntttfk
r��Yn\tk
r�}
z>|jr�d|
d�}|dk	r�||d<|dk	r�||d<|�|�W5d}
~
XYnXdS)NT)r1r3r,r-r5)r1r,r-z3Error on transport creation for incoming connection)r\r]r0�	transport)	�
create_futurer7r2�
BaseExceptionr>�
SystemExit�KeyboardInterruptrUrc)r)rYrgr,r6r-r5r0rjr1ri�contextrrrre�sP���z)BaseSelectorEventLoop._accept_connection2c
Cs�|}t|t�sJzt|���}Wn*tttfk
rHtd|���d�YnXz|j|}Wntk
rlYnX|��s�t	d|�d|����dS)NzInvalid file object: zFile descriptor z is used by transport )
r�intrB�AttributeErrorr�
ValueErrorr(r�
is_closingr;)r)rrBrjrrr�_ensure_fd_no_transport�s
�z-BaseSelectorEventLoop._ensure_fd_no_transportc		Gs�|��t�|||d�}z|j�|�}Wn*tk
rR|j�|tj|df�Yn>X|j|j	}\}}|j�
||tjB||f�|dk	r�|��dSr.)�
_check_closedr�Handler$rr�registerr�
EVENT_READrK�modify�cancel�	r)r�callback�args�handler�mask�reader�writerrrrrHs�
�z!BaseSelectorEventLoop._add_readercCs�|��rdSz|j�|�}Wntk
r2YdSX|j|j}\}}|tjM}|sd|j�|�n|j�	||d|f�|dk	r�|�
�dSdSdS�NFT)r<r$rrrrKrrx�
unregisterryrz�r)rrrr�r�rrrr@sz$BaseSelectorEventLoop._remove_readerc		Gs�|��t�|||d�}z|j�|�}Wn*tk
rR|j�|tjd|f�Yn>X|j|j	}\}}|j�
||tjB||f�|dk	r�|��dSr.)rurrvr$rrrwr�EVENT_WRITErKryrzr{rrr�_add_writer%s�
�z!BaseSelectorEventLoop._add_writercCs�|��rdSz|j�|�}Wntk
r2YdSX|j|j}\}}|tjM}|sd|j�|�n|j�	|||df�|dk	r�|�
�dSdSdSr�)r<r$rrrrKrr�r�ryrzr�rrr�_remove_writer4sz$BaseSelectorEventLoop._remove_writercGs|�|�|j||f|��Sr.)rtrH�r)rr|r}rrr�
add_readerKs
z BaseSelectorEventLoop.add_readercCs|�|�|�|�Sr.)rtr@�r)rrrr�
remove_readerPs
z#BaseSelectorEventLoop.remove_readercGs|�|�|j||f|��Sr.)rtr�r�rrr�
add_writerUs
z BaseSelectorEventLoop.add_writercCs|�|�|�|�Sr.)rtr�r�rrr�
remove_writerZs
z#BaseSelectorEventLoop.remove_writerc	�s�t|�|jr"|��dkr"td��z|�|�WSttfk
rFYnX|��}|��}|�	||j
|||�|�t�
|j|��|IdHS�Nr�the socket must be non-blocking)rrU�
gettimeoutrrrMrOrNrkrBr��
_sock_recv�add_done_callback�	functools�partial�_sock_read_done)r)r�n�futrrrr�	sock_recv_s�zBaseSelectorEventLoop.sock_recvcCs|�|�dSr.)r��r)rr�rrrr�tsz%BaseSelectorEventLoop._sock_read_donec
Cs�|��rdSz|�|�}Wn\ttfk
r4YdSttfk
rL�Yn6tk
rv}z|�|�W5d}~XYnX|�|�dSr.)	�donerMrOrNrmrnrl�
set_exception�
set_result)r)r�rr�rKrirrrr�wsz BaseSelectorEventLoop._sock_recvc	�s�t|�|jr"|��dkr"td��z|�|�WSttfk
rFYnX|��}|��}|�	||j
|||�|�t�
|j|��|IdHSr�)rrUr�rr�	recv_intorOrNrkrBr��_sock_recv_intor�r�r�r�)r)r�bufr�rrrr�sock_recv_into�s�z$BaseSelectorEventLoop.sock_recv_intoc
Cs�|��rdSz|�|�}Wn\ttfk
r4YdSttfk
rL�Yn6tk
rv}z|�|�W5d}~XYnX|�|�dSr.)	r�r�rOrNrmrnrlr�r�)r)r�rr��nbytesrirrrr��sz%BaseSelectorEventLoop._sock_recv_intoc	�s�t|�|jr"|��dkr"td��z|�|�}Wnttfk
rLd}YnX|t|�kr^dS|��}|�	�}|�
t�|j
|��|�||j||t|�|g�|IdHSr�)rrUr�rrrSrOrN�lenrkrBr�r�r��_sock_write_doner��
_sock_sendall�
memoryview)r)rrKr�r�rrrr�sock_sendall�s&	
��z"BaseSelectorEventLoop.sock_sendallc
Cs�|��rdS|d}z|�||d��}Wnbttfk
rDYdSttfk
r\�Yn2tk
r�}z|�|�WY�dSd}~XYnX||7}|t|�kr�|�	d�n||d<dS)Nr)
r�rSrOrNrmrnrlr�r�r�)r)r�r�view�pos�startr�rirrrr��s 
z#BaseSelectorEventLoop._sock_sendallc�s�t|�|jr"|��dkr"td��ttd�r8|jtjkrf|j||j|j	|d�IdH}|d\}}}}}|�
�}|�|||�|IdHS)Nrr��AF_UNIX)�family�proto�loop)rrUr�rr�hasattrrEr�r�Z_ensure_resolvedr�rk�
_sock_connect)r)rr9Zresolvedrfr�rrr�sock_connect�s�z"BaseSelectorEventLoop.sock_connectc
Cs�|��}z|�|�Wn�ttfk
rV|�t�|j|��|�||j	|||�YnNt
tfk
rn�Yn6tk
r�}z|�
|�W5d}~XYnX|�d�dSr.)rB�connectrOrNr�r�r�r�r��_sock_connect_cbrmrnrlr�r�)r)r�rr9rrirrrr��s�z#BaseSelectorEventLoop._sock_connectcCs|�|�dSr.)r�r�rrrr�sz&BaseSelectorEventLoop._sock_write_donec
Cs�|��rdSz,|�tjtj�}|dkr6t|d|����WnZttfk
rPYnNtt	fk
rh�Yn6t
k
r�}z|�|�W5d}~XYnX|�d�dS)NrzConnect call failed )
r��
getsockoptrE�
SOL_SOCKET�SO_ERRORrTrOrNrmrnrlr�r�)r)r�rr9�errrirrrr�sz&BaseSelectorEventLoop._sock_connect_cbc�sBt|�|jr"|��dkr"td��|��}|�|d|�|IdHS)Nrr�F)rrUr�rrrk�_sock_accept)r)rr�rrr�sock_acceptsz!BaseSelectorEventLoop.sock_acceptc
Cs�|��}|r|�|�|��r"dSz|��\}}|�d�Wnnttfk
rh|�||j|d|�YnRt	t
fk
r��Yn:tk
r�}z|�|�W5d}~XYnX|�
||f�dSr�)rBr�r�r`rGrOrNr�r�rmrnrlr�r�)r)r�Z
registeredrrrgr9rirrrr�*s
z"BaseSelectorEventLoop._sock_acceptc	�sp|j|j=|��}|��|��IdHz |j|j|||dd�IdHW�S|��|r^|��||j|j<XdS)NF)�fallback)	r(�_sock_fd�
is_reading�
pause_reading�_make_empty_waiter�_reset_empty_waiter�resume_readingZ
sock_sendfile�_sock)r)Ztransp�file�offset�countr�rrr�_sendfile_native<s
�z&BaseSelectorEventLoop._sendfile_nativecCs�|D]v\}}|j|j}\}}|tj@rL|dk	rL|jrB|�|�n
|�|�|tj@r|dk	r|jrp|�|�q|�|�qdSr.)	�fileobjrKrrxZ
_cancelledr@Z
_add_callbackr�r�)r)Z
event_listrrr�r�r�rrr�_process_eventsJs
z%BaseSelectorEventLoop._process_eventscCs|�|���|��dSr.)r@rBr>)r)rrrr�
_stop_servingXsz#BaseSelectorEventLoop._stop_serving)N)N)N)NNN),r#�
__module__�__qualname__rr2rZSSL_HANDSHAKE_TIMEOUTr7r:r>r=r%rLrIrVr[rXrertrHr@r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__rrr*rr0s|
����
�
	�
.�
)rcs�eZdZdZeZdZd�fdd�	Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
ejfdd�Zddd�Zdd�Zdd�Zdd�Zdd�Z�ZS) �_SelectorTransportiNcs�t��||�t�|�|jd<z|��|jd<Wntk
rNd|jd<YnXd|jkr�z|��|jd<Wn tj	k
r�d|jd<YnX||_
|��|_d|_
|�|�||_|��|_d|_d|_|jdk	r�|j��||j|j<dS)NrEZsocknamer^Fr)rrrrd�_extra�getsocknamerT�getpeernamerE�errorr�rBr��_protocol_connected�set_protocol�_server�_buffer_factory�_buffer�
_conn_lost�_closingZ_attachr()r)r�rr0r,r-r*rrris,





z_SelectorTransport.__init__cCs�|jjg}|jdkr |�d�n|jr0|�d�|�d|j���|jdk	r�|j��s�t|jj	|jt
j�}|rz|�d�n
|�d�t|jj	|jt
j�}|r�d}nd}|�
�}|�d|�d	|�d
��d�d�|��S)
N�closed�closingzfd=zread=pollingz	read=idle�pollingZidlezwrite=<z
, bufsize=�>z<{}>� )r"r#r��appendr�r��_loopr<rr$rrxr��get_write_buffer_size�format�join)r)�infor��state�bufsizerrr�__repr__�s0


�
�z_SelectorTransport.__repr__cCs|�d�dSr.)�_force_closer?rrr�abort�sz_SelectorTransport.abortcCs||_d|_dS�NT)�	_protocolr��r)r0rrrr��sz_SelectorTransport.set_protocolcCs|jSr.)r�r?rrr�get_protocol�sz_SelectorTransport.get_protocolcCs|jSr.)r�r?rrrrs�sz_SelectorTransport.is_closingcCsT|jr
dSd|_|j�|j�|jsP|jd7_|j�|j�|j�|jd�dS�NTr)	r�r�r@r�r�r�r��	call_soon�_call_connection_lostr?rrrr>�sz_SelectorTransport.closecCs,|jdk	r(|d|��t|d�|j��dS)Nzunclosed transport )�source)r��ResourceWarningr>)r)�_warnrrr�__del__�s
z_SelectorTransport.__del__�Fatal error on transportcCsNt|t�r(|j��r@tjd||dd�n|j�||||jd��|�|�dS)Nz%r: %sTrQ)r\r]rjr0)	rrTr��	get_debugrr!rcr�r�)r)rir\rrr�_fatal_error�s

�z_SelectorTransport._fatal_errorcCsd|jr
dS|jr(|j��|j�|j�|jsBd|_|j�|j�|jd7_|j�|j	|�dSr�)
r�r��clearr�r�r�r�r@r�r��r)rirrrr��s
z_SelectorTransport._force_closecCsVz|jr|j�|�W5|j��d|_d|_d|_|j}|dk	rP|��d|_XdSr.)r�r>r�r�r�Z_detachr�Zconnection_lost)r)rir-rrrr��s
z(_SelectorTransport._call_connection_lostcCs
t|j�Sr.)r�r�r?rrrr��sz(_SelectorTransport.get_write_buffer_sizecGs"|jr
dS|jj||f|��dSr.)r�r�rHr�rrrrH�sz_SelectorTransport._add_reader)NN)r�)r#r�r��max_size�	bytearrayr�r�rr�r�r�r�rsr>�warnings�warnr�r�r�r�r�rHr�rrr*rr�]s 

r�cs�eZdZdZejjZd#�fdd�	Z�fdd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z�fdd�Zdd �Zd!d"�Z�ZS)$r/TNcs~d|_t��|||||�d|_d|_d|_t�|j�|j	�
|jj|�|j	�
|j
|j|j�|dk	rz|j	�
tj|d�dSr
)�_read_ready_cbrr�_eof�_paused�
_empty_waiterrZ_set_nodelayr�r�r�r��connection_maderHr��_read_readyr�_set_result_unless_cancelled)r)r�rr0r1r,r-r*rrr�s 
�
�z!_SelectorSocketTransport.__init__cs.t|tj�r|j|_n|j|_t��|�dSr.)rrZBufferedProtocol�_read_ready__get_bufferr��_read_ready__data_receivedrr�r�r*rrr�	s
z%_SelectorSocketTransport.set_protocolcCs|jo|jSr.)r�r�r?rrrr�sz#_SelectorSocketTransport.is_readingcCs>|js|jrdSd|_|j�|j�|j��r:t�d|�dS)NTz%r pauses reading)r�r�r�r@r�r�rr!r?rrrr�s
z&_SelectorSocketTransport.pause_readingcCs@|js|jsdSd|_|�|j|j�|j��r<t�d|�dS)NFz%r resumes reading)	r�r�rHr�rr�r�rr!r?rrrr�s
z'_SelectorSocketTransport.resume_readingcCs|��dSr.)r�r?rrrr$sz$_SelectorSocketTransport._read_readyc
Cs`|jr
dSz |j�d�}t|�s(td��WnLttfk
rD�Yn4tk
rv}z|�|d�WY�dSd}~XYnXz|j	�
|�}Wndttfk
r�YdSttfk
r��Yn4tk
r�}z|�|d�WY�dSd}~XYnX|�s|�
�dSz|j�|�WnJttfk
�r,�Yn0tk
�rZ}z|�|d�W5d}~XYnXdS)N���z%get_buffer() returned an empty bufferz/Fatal error: protocol.get_buffer() call failed.�$Fatal read error on socket transportz3Fatal error: protocol.buffer_updated() call failed.)r�r�Z
get_bufferr�r;rmrnrlr�r�r�rOrN�_read_ready__on_eofZbuffer_updated)r)r�rir�rrrr'sF��z0_SelectorSocketTransport._read_ready__get_bufferc
Cs�|jr
dSz|j�|j�}Wndttfk
r6YdSttfk
rN�Yn4tk
r�}z|�	|d�WY�dSd}~XYnX|s�|�
�dSz|j�|�WnFttfk
r��Yn.tk
r�}z|�	|d�W5d}~XYnXdS)Nrz2Fatal error: protocol.data_received() call failed.)
r�r�rMr�rOrNrmrnrlr�rr�Z
data_received)r)rKrirrrrLs.�z3_SelectorSocketTransport._read_ready__data_receivedc
Cs�|j��rt�d|�z|j��}WnLttfk
r>�Yn4tk
rp}z|�	|d�WY�dSd}~XYnX|r�|j�
|j�n|��dS)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.)
r�r�rr!r�Zeof_receivedrmrnrlr�r@r�r>)r)Z	keep_openrirrrres
�z,_SelectorSocketTransport._read_ready__on_eofc
Cs6t|tttf�s$tdt|�j����|jr2td��|j	dk	rDtd��|sLdS|j
rz|j
tjkrht
�d�|j
d7_
dS|j�sz|j�|�}Wnbttfk
r�Ynbttfk
r��YnJtk
r�}z|�|d�WY�dSd}~XYnX||d�}|�sdS|j�|j|j�|j�|�|��dS)N�/data argument must be a bytes-like object, not z%Cannot call write() after write_eof()z(unable to write; sendfile is in progress�socket.send() raised exception.r�%Fatal write error on socket transport)r�bytesr�r�r�typer#r�r;r�r�r�!LOG_THRESHOLD_FOR_CONNLOST_WRITESr�warningr�r�rSrOrNrmrnrlr�r�r�r��_write_ready�extend�_maybe_pause_protocol)r)rKr�rirrr�writezs:

z_SelectorSocketTransport.writec
Cs|jr
dSz|j�|j�}Wn�ttfk
r4Yn�ttfk
rL�Yn�tk
r�}z>|j	�
|j�|j��|�
|d�|jdk	r�|j�|�W5d}~XYnnX|r�|jd|�=|��|j�s|j	�
|j�|jdk	r�|j�d�|jr�|�d�n|j�r|j�tj�dS)Nr	)r�r�rSr�rOrNrmrnrlr�r�r�r�r�r�r��_maybe_resume_protocolr�r�r�r��shutdownrE�SHUT_WR)r)r�rirrrr�s2


z%_SelectorSocketTransport._write_readycCs.|js|jrdSd|_|js*|j�tj�dSr�)r�r�r�r�rrErr?rrr�	write_eof�s
z"_SelectorSocketTransport.write_eofcCsdSr�rr?rrr�
can_write_eof�sz&_SelectorSocketTransport.can_write_eofcs*t��|�|jdk	r&|j�td��dS)NzConnection is closed by peer)rr�r�r��ConnectionErrorr�r*rrr��s

�z._SelectorSocketTransport._call_connection_lostcCs6|jdk	rtd��|j��|_|js0|j�d�|jS)NzEmpty waiter is already set)r�r;r�rkr�r�r?rrrr��s
z+_SelectorSocketTransport._make_empty_waitercCs
d|_dSr.)r�r?rrrr��sz,_SelectorSocketTransport._reset_empty_waiter)NNN)r#r�r�Z_start_tls_compatiblerZ
_SendfileModeZ
TRY_NATIVEZ_sendfile_compatiblerr�r�r�r�rrrrrrrrr�r�r�r�rrr*rr/�s*�%'r/csFeZdZejZd�fdd�	Zdd�Zdd�Zd
dd	�Z	d
d�Z
�ZS)r8Ncs^t��||||�||_|j�|jj|�|j�|j|j|j	�|dk	rZ|j�t
j|d�dSr.)rr�_addressr�r�r�r�rHr�rrr)r)r�rr0r9r1r,r*rrr�s
�
�z#_SelectorDatagramTransport.__init__cCstdd�|jD��S)Ncss|]\}}t|�VqdSr.)r�)�.0rKrfrrr�	<genexpr>�szC_SelectorDatagramTransport.get_write_buffer_size.<locals>.<genexpr>)�sumr�r?rrrr��sz0_SelectorDatagramTransport.get_write_buffer_sizec
Cs�|jr
dSz|j�|j�\}}Wn�ttfk
r8Yn�tk
rd}z|j�|�W5d}~XYnTt	t
fk
r|�Yn<tk
r�}z|�|d�W5d}~XYnX|j�
||�dS)Nz&Fatal read error on datagram transport)r�r��recvfromr�rOrNrTr��error_receivedrmrnrlr�Zdatagram_received�r)rKrhrirrrr�sz&_SelectorDatagramTransport._read_readyc
Cs�t|tttf�s$tdt|�j����|s,dS|jrV|d|jfkrPtd|j����|j}|j	r�|jr�|j	t
jkrxt�
d�|j	d7_	dS|j�slz,|jdr�|j�|�n|j�||�WdSttfk
r�|j�|j|j�Yn�tk
�r}z|j�|�WY�dSd}~XYnPttfk
�r6�Yn6tk
�rj}z|�|d�WY�dSd}~XYnX|j� t|�|f�|�!�dS)Nrz!Invalid address: must be None or rrr^�'Fatal write error on datagram transport)"rr
r�r�rrr#rrrr�rrrr
r�r�r�rS�sendtorOrNr�r�r��
_sendto_readyrTr�rrmrnrlr�r�rrrrrr �sH
�

�z!_SelectorDatagramTransport.sendtoc
Cs|jr�|j��\}}z*|jdr.|j�|�n|j�||�Wqttfk
rj|j�||f�Yq�Yqt	k
r�}z|j
�|�WY�dSd}~XYqtt
fk
r��Yqtk
r�}z|�|d�WY�dSd}~XYqXq|��|j�s|j�|j�|j�r|�d�dS)Nr^r)r��popleftr�r�rSr rOrN�
appendleftrTr�rrmrnrlr�rr�r�r�r�r�rrrrr!*s2
�z(_SelectorDatagramTransport._sendto_ready)NNN)N)r#r�r��collections�dequer�rr�rr r!r�rrr*rr8�s�

+r8)�__all__r$rbr�rrEr�r&r�ImportError�rrrrrr	r
r�logrrrZ
BaseEventLooprZ_FlowControlMixinZ	Transportr�r/r8rrrr�<module>sD
1�o

F1le Man4ger