/usr/lib64/python3.9/asyncio/__pycache__
NameSizeModeActions
base_events.cpython-39.opt-1.pyc521760644editdlrm
base_events.cpython-39.opt-2.pyc431470644editdlrm
base_events.cpython-39.pyc523000644editdlrm
base_futures.cpython-39.opt-1.pyc19100644editdlrm
base_futures.cpython-39.opt-2.pyc16560644editdlrm
base_futures.cpython-39.pyc19100644editdlrm
base_subprocess.cpython-39.opt-1.pyc93420644editdlrm
base_subprocess.cpython-39.opt-2.pyc92420644editdlrm
base_subprocess.cpython-39.pyc94120644editdlrm
base_tasks.cpython-39.opt-1.pyc19460644editdlrm
base_tasks.cpython-39.opt-2.pyc19460644editdlrm
base_tasks.cpython-39.pyc19460644editdlrm
constants.cpython-39.opt-1.pyc5830644editdlrm
constants.cpython-39.opt-2.pyc5830644editdlrm
constants.cpython-39.pyc5830644editdlrm
coroutines.cpython-39.opt-1.pyc65750644editdlrm
coroutines.cpython-39.opt-2.pyc63430644editdlrm
coroutines.cpython-39.pyc66390644editdlrm
events.cpython-39.opt-1.pyc280780644editdlrm
events.cpython-39.opt-2.pyc189810644editdlrm
events.cpython-39.pyc281600644editdlrm
exceptions.cpython-39.opt-1.pyc25550644editdlrm
exceptions.cpython-39.opt-2.pyc19110644editdlrm
exceptions.cpython-39.pyc25550644editdlrm
format_helpers.cpython-39.opt-1.pyc23260644editdlrm
format_helpers.cpython-39.opt-2.pyc20820644editdlrm
format_helpers.cpython-39.pyc23260644editdlrm
futures.cpython-39.opt-1.pyc116270644editdlrm
futures.cpython-39.opt-2.pyc81210644editdlrm
futures.cpython-39.pyc117780644editdlrm
locks.cpython-39.opt-1.pyc144660644editdlrm
locks.cpython-39.opt-2.pyc82290644editdlrm
locks.cpython-39.pyc144660644editdlrm
log.cpython-39.opt-1.pyc2280644editdlrm
log.cpython-39.opt-2.pyc1890644editdlrm
log.cpython-39.pyc2280644editdlrm
proactor_events.cpython-39.opt-1.pyc241860644editdlrm
proactor_events.cpython-39.opt-2.pyc237860644editdlrm
proactor_events.cpython-39.pyc244160644editdlrm
protocols.cpython-39.opt-1.pyc84370644editdlrm
protocols.cpython-39.opt-2.pyc33570644editdlrm
protocols.cpython-39.pyc84370644editdlrm
queues.cpython-39.opt-1.pyc84660644editdlrm
queues.cpython-39.opt-2.pyc57870644editdlrm
queues.cpython-39.pyc84660644editdlrm
runners.cpython-39.opt-1.pyc22090644editdlrm
runners.cpython-39.opt-2.pyc15270644editdlrm
runners.cpython-39.pyc22090644editdlrm
selector_events.cpython-39.opt-1.pyc296740644editdlrm
selector_events.cpython-39.opt-2.pyc280280644editdlrm
selector_events.cpython-39.pyc297180644editdlrm
sslproto.cpython-39.opt-1.pyc217240644editdlrm
sslproto.cpython-39.opt-2.pyc147730644editdlrm
sslproto.cpython-39.pyc218880644editdlrm
staggered.cpython-39.opt-1.pyc40090644editdlrm
staggered.cpython-39.opt-2.pyc18760644editdlrm
staggered.cpython-39.pyc41620644editdlrm
streams.cpython-39.opt-1.pyc203610644editdlrm
streams.cpython-39.opt-2.pyc144670644editdlrm
streams.cpython-39.pyc205880644editdlrm
subprocess.cpython-39.opt-1.pyc73230644editdlrm
subprocess.cpython-39.opt-2.pyc71950644editdlrm
subprocess.cpython-39.pyc73370644editdlrm
tasks.cpython-39.opt-1.pyc242490644editdlrm
tasks.cpython-39.opt-2.pyc169980644editdlrm
tasks.cpython-39.pyc242890644editdlrm
threads.cpython-39.opt-1.pyc9800644editdlrm
threads.cpython-39.opt-2.pyc5140644editdlrm
threads.cpython-39.pyc9800644editdlrm
transports.cpython-39.opt-1.pyc125220644editdlrm
transports.cpython-39.opt-2.pyc69720644editdlrm
transports.cpython-39.pyc125360644editdlrm
trsock.cpython-39.opt-1.pyc85710644editdlrm
trsock.cpython-39.opt-2.pyc83150644editdlrm
trsock.cpython-39.pyc85710644editdlrm
unix_events.cpython-39.opt-1.pyc417260644editdlrm
unix_events.cpython-39.opt-2.pyc365030644editdlrm
unix_events.cpython-39.pyc420460644editdlrm
windows_events.cpython-39.opt-1.pyc247170644editdlrm
windows_events.cpython-39.opt-2.pyc236100644editdlrm
windows_events.cpython-39.pyc247330644editdlrm
windows_utils.cpython-39.opt-1.pyc44370644editdlrm
windows_utils.cpython-39.opt-2.pyc40030644editdlrm
windows_utils.cpython-39.pyc45050644editdlrm
__init__.cpython-39.opt-1.pyc7810644editdlrm
__init__.cpython-39.opt-2.pyc7250644editdlrm
__init__.cpython-39.pyc7810644editdlrm
__main__.cpython-39.opt-1.pyc32120644editdlrm
__main__.cpython-39.opt-2.pyc32120644editdlrm
__main__.cpython-39.pyc32120644editdlrm
Edit: /usr/lib64/python3.9/asyncio/__pycache__/selector_events.cpython-39.pyc (29718B)
a iL@s$dZdZddlZddlZddlZddlZddlZddlZddlZz ddl Z Wne ybdZ Yn0ddl m Z ddl m Z ddl mZddl mZdd l mZdd l mZdd l mZdd l mZdd lmZddZGddde jZGdddejejZGdddeZGdddeZdS)zEvent loop using a selector and related classes. A selector is a "notify-when-ready" multiplexer. For a subclass which also includes support for signal handling, see the unix_events sub-module. )BaseSelectorEventLoopN) base_events) constants)events)futures) protocols)sslproto) transports)trsock)loggercCs6z||}Wnty"YdS0t|j|@SdSNF)get_keyKeyErrorboolr)selectorfdeventkeyr//usr/lib64/python3.9/asyncio/selector_events.py_test_selector_event s  rcseZdZdZdSfdd ZdTdddddZdUddddejd d d ZdVd d Z fddZ ddZ ddZ ddZ ddZddZdddejfddZdddejfddZddejfdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4ZdWd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$dXdEdFZ%dGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*dQdRZ+Z,S)YrzJSelector event loop. See events.EventLoop for API specification. NcsFt|durt}td|jj||_| t |_ dS)NzUsing selector: %s) super__init__ selectorsDefaultSelectorr debug __class____name__ _selector_make_self_pipeweakrefWeakValueDictionary _transports)selfrrrrr1s zBaseSelectorEventLoop.__init__extraservercCst||||||SN)_SelectorSocketTransport)r$sockprotocolwaiterr'r(rrr_make_socket_transport;s z,BaseSelectorEventLoop._make_socket_transportF) server_sideserver_hostnamer'r(ssl_handshake_timeoutc Cs0tj||||||| d} t||| ||d| jS)N)r1r&)r Z SSLProtocolr*Z_app_transport) r$Zrawsockr, sslcontextr-r/r0r'r(r1Z ssl_protocolrrr_make_ssl_transport@sz)BaseSelectorEventLoop._make_ssl_transportcCst||||||Sr))_SelectorDatagramTransport)r$r+r,addressr-r'rrr_make_datagram_transportMsz.BaseSelectorEventLoop._make_datagram_transportcsL|rtd|rdS|t|jdurH|jd|_dS)Nz!Cannot close a running event loop)Z is_running RuntimeError is_closed_close_self_pipercloserr$r%rrr:Rs   zBaseSelectorEventLoop.closecCsB||j|jd|_|jd|_|jd8_dS)Nr)_remove_reader_ssockfilenor:_csock _internal_fdsr;rrrr9]s   z&BaseSelectorEventLoop._close_self_pipecCsNt\|_|_|jd|jd|jd7_||j|jdS)NFr) socket socketpairr=r? setblockingr@ _add_readerr>_read_from_selfr;rrrr es   z%BaseSelectorEventLoop._make_self_pipecCsdSr)rr$datarrr_process_self_datamsz(BaseSelectorEventLoop._process_self_datacCsTz"|jd}|sWqP||Wqty8YqYqtyLYqPYq0qdS)Ni)r=recvrHInterruptedErrorBlockingIOErrorrFrrrrEps   z%BaseSelectorEventLoop._read_from_selfcCsL|j}|durdSz|dWn&tyF|jrBtjdddYn0dS)Nz3Fail to write a null byte into the self-pipe socketTexc_info)r?sendOSError_debugr r)r$csockrrr_write_to_self|s z$BaseSelectorEventLoop._write_to_selfdc Cs"|||j||||||dSr))rDr>_accept_connection)r$protocol_factoryr+r2r(backlogr1rrr_start_servings z$BaseSelectorEventLoop._start_servingc Cst|D]}z0|\}} |jr0td|| ||dWntttfyXYdSt y} zl| j t j t j t j t jfvr|d| t|d|||tj|j||||||nWYd} ~ qd} ~ 00d| i} |||| |||} || qdS)Nz#%r got a new connection from %r: %rFz&socket.accept() out of system resource)message exceptionrApeername)rangeacceptrQr rrCrKrJConnectionAbortedErrorrPerrnoZEMFILEZENFILEZENOBUFSZENOMEMcall_exception_handlerr TransportSocketr<r>Z call_laterrZACCEPT_RETRY_DELAYrX_accept_connection2Z create_task) r$rVr+r2r(rWr1_connaddrexcr'r]rrrrUs@    z(BaseSelectorEventLoop._accept_connectionc sd}d}zr|}|} |r8|j|||| d|||d}n|j||| ||d}z| IdHWntyv|Yn0WntttfyYn^ty} zF|jrd| d} |dur|| d<|dur|| d<|| WYd} ~ n d} ~ 00dS)NT)r-r/r'r(r1)r-r'r(z3Error on transport creation for incoming connection)rYrZr, transport) create_futurer3r. BaseExceptionr: SystemExitKeyboardInterruptrQr`) r$rVrdr'r2r(r1r,rgr-rfcontextrrrrbs@  z)BaseSelectorEventLoop._accept_connection2c Cs|}t|tsHzt|}Wn(tttfyFtd|dYn0z|j|}WntyhYn0|st d|d|dS)NzInvalid file object: zFile descriptor z is used by transport ) isinstanceintr>AttributeError TypeError ValueErrorr#r is_closingr7)r$rr>rgrrr_ensure_fd_no_transports   z-BaseSelectorEventLoop._ensure_fd_no_transportc Gs|t|||d}z|j|}Wn(tyP|j|tj|dfYn>0|j|j }\}}|j ||tjB||f|dur| |Sr)) _check_closedrHandlerrrregisterr EVENT_READrGmodifycancel r$rcallbackargshandlermaskreaderwriterrrrrDs   z!BaseSelectorEventLoop._add_readercCs|r dSz|j|}Wnty0YdS0|j|j}\}}|tjM}|sb|j|n|j ||d|f|dur| dSdSdS)NFT) r8rrrrrGrrw unregisterrxryr$rrr~rrrrrr< s  z$BaseSelectorEventLoop._remove_readerc Gs|t|||d}z|j|}Wn(tyP|j|tjd|fYn>0|j|j }\}}|j ||tjB||f|dur| |Sr)) rtrrurrrrvr EVENT_WRITErGrxryrzrrr _add_writer!s   z!BaseSelectorEventLoop._add_writercCs|r dSz|j|}Wnty0YdS0|j|j}\}}|tjM}|sb|j|n|j |||df|dur| dSdSdS)Remove a writer callback.FNT) r8rrrrrGrrrrxryrrrr_remove_writer1s  z$BaseSelectorEventLoop._remove_writercGs"|||j||g|RdS)zAdd a reader callback.N)rsrDr$rr{r|rrr add_readerHs z BaseSelectorEventLoop.add_readercCs||||S)zRemove a reader callback.)rsr<r$rrrr remove_readerMs z#BaseSelectorEventLoop.remove_readercGs"|||j||g|RdS)zAdd a writer callback..N)rsrrrrr add_writerRs z BaseSelectorEventLoop.add_writercCs||||S)r)rsrrrrr remove_writerWs z#BaseSelectorEventLoop.remove_writerc st||jr$|dkr$tdz ||WSttfyFYn0|}| }| || ||j |||}| tj|j||d|IdHS)zReceive data from the socket. The return value is a bytes object representing the data received. The maximum amount of data to be received at once is specified by nbytes. rthe socket must be non-blockingr}N)r_check_ssl_socketrQ gettimeoutrqrIrKrJrhr>rsrD _sock_recvadd_done_callback functoolspartial_sock_read_done)r$r+nfutrr}rrr sock_recv\s   zBaseSelectorEventLoop.sock_recvcCs|dus|s||dSr)) cancelledrr$rrr}rrrrrsz%BaseSelectorEventLoop._sock_read_donec Cs|r dSz||}WnZttfy2YdSttfyHYn8tyt}z||WYd}~nd}~00||dSr)) donerIrKrJrjrkri set_exception set_result)r$rr+rrGrfrrrrvs z BaseSelectorEventLoop._sock_recvc st||jr$|dkr$tdz ||WSttfyFYn0|}| }| || ||j |||}| tj|j||d|IdHS)zReceive data from the socket. The received data is written into *buf* (a writable buffer). The return value is the number of bytes written. rrrN)rrrQrrq recv_intorKrJrhr>rsrD_sock_recv_intorrrr)r$r+bufrrr}rrrsock_recv_intos   z$BaseSelectorEventLoop.sock_recv_intoc Cs|r dSz||}WnZttfy2YdSttfyHYn8tyt}z||WYd}~nd}~00||dSr)) rrrKrJrjrkrirr)r$rr+rnbytesrfrrrrs z%BaseSelectorEventLoop._sock_recv_intoc st||jr$|dkr$tdz||}WnttfyLd}Yn0|t|kr^dS| }| }| || ||j ||t||g}|tj|j||d|IdHS)aSend data to the socket. The socket must be connected to a remote socket. This method continues to send data from data until either all data has been sent or an error occurs. None is returned on success. On error, an exception is raised, and there is no way to determine how much data, if any, was successfully processed by the receiving end of the connection. rrNr)rrrQrrqrOrKrJlenrhr>rsr _sock_sendall memoryviewrrr_sock_write_done)r$r+rGrrrr}rrr sock_sendalls&     z"BaseSelectorEventLoop.sock_sendallc Cs|r dS|d}z|||d}Wn\ttfyBYdSttfyXYn0ty}z||WYd}~dSd}~00||7}|t|kr| dn||d<dS)Nr) rrOrKrJrjrkrirrr)r$rr+viewposstartrrfrrrrs    z#BaseSelectorEventLoop._sock_sendallcst||jr$|dkr$td|jtjksBtjrt|jtj krt|j ||j|j |j |dIdH}|d\}}}}}| }|||||IdHS)zTConnect to a remote socket at address. This method is a coroutine. rr)familytypeprotoloopN)rrrQrrqrrAAF_INETZ _HAS_IPv6AF_INET6Z_ensure_resolvedrrrh _sock_connect)r$r+r5Zresolvedrcrrrr sock_connects     z"BaseSelectorEventLoop.sock_connectc Cs|}z||Wnttfyb|||||j|||}|tj |j ||dYnNt t fyxYn8t y}z||WYd}~nd}~00|ddS)Nr)r>connectrKrJrsr_sock_connect_cbrrrrrjrkrirr)r$rr+r5rr}rfrrrrs    z#BaseSelectorEventLoop._sock_connectcCs|dus|s||dSr))rrrrrrr sz&BaseSelectorEventLoop._sock_write_donec Cs|r dSz,|tjtj}|dkr6t|d|WnXttfyNYnNtt fydYn8t y}z| |WYd}~nd}~00| ddS)NrzConnect call failed ) r getsockoptrA SOL_SOCKETSO_ERRORrPrKrJrjrkrirr)r$rr+r5errrfrrrrs z&BaseSelectorEventLoop._sock_connect_cbcsBt||jr$|dkr$td|}||||IdHS)aWAccept a connection. The socket must be bound to an address and listening for connections. The return value is a pair (conn, address) where conn is a new socket object usable to send and receive data on the connection, and address is the address bound to the socket on the other end of the connection. rrN)rrrQrrqrh _sock_accept)r$r+rrrr sock_accept"s   z!BaseSelectorEventLoop.sock_acceptc Cs|}z|\}}|dWnttfyl|||||j||}|t j |j ||dYnRt t fyYn<ty}z||WYd}~nd}~00|||fdS)NFr)r>r]rCrKrJrsrDrrrrrrjrkrirr)r$rr+rrdr5r}rfrrrr1s   z"BaseSelectorEventLoop._sock_acceptc s|j|j=|}||IdHzL|j|j|||ddIdHW||rZ|||j|j<S||j|j<n"||r|||j|j<0dS)NF)fallback) r#_sock_fd is_reading pause_reading_make_empty_waiterZ sock_sendfile_sock_reset_empty_waiterresume_reading)r$Ztranspfileoffsetcountrrrr_sendfile_nativeBs*   z&BaseSelectorEventLoop._sendfile_nativecCs|D]v\}}|j|j}\}}|tj@rL|durL|jrB||n |||tj@r|dur|jrp||q||qdSr)) fileobjrGrrwZ _cancelledr<Z _add_callbackrr)r$Z event_listrr~rrrrrr_process_eventsPs    z%BaseSelectorEventLoop._process_eventscCs|||dSr))r<r>r:)r$r+rrr _stop_serving^sz#BaseSelectorEventLoop._stop_serving)N)N)N)NNN)N)N)-r __module__ __qualname____doc__rr.rZSSL_HANDSHAKE_TIMEOUTr3r6r:r9r rHrErSrXrUrbrsrDr<rrrrrrrrrrrrrrrrrrrrrr __classcell__rrr%rr+sj        . )  rcseZdZdZeZdZdfdd ZddZddZ d d Z d d Z d dZ ddZ ejfddZdddZddZddZddZddZZS) _SelectorTransportiNcst||t||jd<z||jd<WntyLd|jd<Yn0d|jvrz||jd<Wntj yd|jd<Yn0||_ | |_ d|_ ||||_||_d|_d|_|jdur|j||j|j <dS)NrAZsocknamer[Fr)rrr ra_extra getsocknamerP getpeernamerAerrorrr>r_protocol_connected set_protocol_server_buffer_factory_buffer _conn_lost_closingZ_attachr#)r$rr+r,r'r(r%rrros,       z_SelectorTransport.__init__cCs|jjg}|jdur |dn|jr0|d|d|j|jdur|jst|jj |jt j }|rz|dn |dt|jj |jt j }|rd}nd}| }|d|d |d d d |S) Nclosedclosingzfd=z read=pollingz read=idlepollingZidlezwrite=z<{}> )rrrappendrr_loopr8rrrrwrget_write_buffer_sizeformatjoin)r$inforstatebufsizerrr__repr__s.      z_SelectorTransport.__repr__cCs|ddSr)) _force_closer;rrrabortsz_SelectorTransport.abortcCs||_d|_dSNT) _protocolrr$r,rrrrsz_SelectorTransport.set_protocolcCs|jSr))rr;rrr get_protocolsz_SelectorTransport.get_protocolcCs|jSr))rr;rrrrrsz_SelectorTransport.is_closingcCsT|jr dSd|_|j|j|jsP|jd7_|j|j|j|jddSNTr) rrr<rrrr call_soon_call_connection_lostr;rrrr:sz_SelectorTransport.closecCs,|jdur(|d|t|d|jdS)Nzunclosed transport )source)rResourceWarningr:)r$_warnrrr__del__s z_SelectorTransport.__del__Fatal error on transportcCsNt|tr(|jr@tjd||ddn|j||||jd||dS)Nz%r: %sTrM)rYrZrgr,) rmrPr get_debugr rr`rr)r$rfrYrrr _fatal_errors  z_SelectorTransport._fatal_errorcCsd|jr dS|jr(|j|j|j|jsBd|_|j|j|jd7_|j|j |dSr) rrclearrrrrr<rrr$rfrrrrs z_SelectorTransport._force_closecCszN|jr|j|W|jd|_d|_d|_|j}|dur|d|_n:|jd|_d|_d|_|j}|dur|d|_0dSr))rrZconnection_lostrr:rrZ_detach)r$rfr(rrrrs&  z(_SelectorTransport._call_connection_lostcCs t|jSr))rrr;rrrrsz(_SelectorTransport.get_write_buffer_sizecGs$|jr dS|jj||g|RdSr))rrrDrrrrrDsz_SelectorTransport._add_reader)NN)r)rrrmax_size bytearrayrrrrrrrrrr:warningswarnrrrrrrDrrrr%rrcs    rcseZdZdZejjZd#fdd ZfddZ ddZ d d Z d d Z d dZ ddZddZddZddZddZddZddZfddZdd Zd!d"ZZS)$r*TNcs~d|_t|||||d|_d|_d|_t|j|j |j j ||j |j |j|j|durz|j tj|ddSr )_read_ready_cbrr_eof_paused _empty_waiterrZ _set_nodelayrrrrconnection_maderDr _read_readyr_set_result_unless_cancelled)r$rr+r,r-r'r(r%rrrs   z!_SelectorSocketTransport.__init__cs.t|tjr|j|_n|j|_t|dSr))rmrZBufferedProtocol_read_ready__get_bufferr_read_ready__data_receivedrrrr%rrrs  z%_SelectorSocketTransport.set_protocolcCs|j o|j Sr))rrr;rrrrsz#_SelectorSocketTransport.is_readingcCs>|js |jrdSd|_|j|j|jr:td|dS)NTz%r pauses reading)rrrr<rrr rr;rrrrs   z&_SelectorSocketTransport.pause_readingcCs@|js |jsdSd|_||j|j|jr      z_SelectorSocketTransport.writec Cs&|jsJd|jrdSz|j|j}Wnttfy@YnttfyVYnty}zF|j |j |j | |d|jdur|j|WYd}~nxd}~00|r|jd|=||js"|j |j |jdur|jd|jr |dn|jr"|jtjdS)NzData should not be emptyr )rrrrOrKrJrjrkrirrrrrrr_maybe_resume_protocolrrrrshutdownrASHUT_WR)r$rrfrrrrs4   "    z%_SelectorSocketTransport._write_readycCs.|js |jrdSd|_|js*|jtjdSr)rrrrrrArr;rrr write_eofs  z"_SelectorSocketTransport.write_eofcCsdSrrr;rrr can_write_eofsz&_SelectorSocketTransport.can_write_eofcs*t||jdur&|jtddS)NzConnection is closed by peer)rrrrConnectionErrorrr%rrrs   z._SelectorSocketTransport._call_connection_lostcCs6|jdurtd|j|_|js0|jd|jS)NzEmpty waiter is already set)rr7rrhrrr;rrrrs    z+_SelectorSocketTransport._make_empty_waitercCs d|_dSr))rr;rrrrsz,_SelectorSocketTransport._reset_empty_waiter)NNN)rrrZ_start_tls_compatiblerZ _SendfileModeZ TRY_NATIVEZ_sendfile_compatiblerrrrrrrrr rrrrrrrrrrr%rr*s( %' r*csFeZdZejZd fdd ZddZddZd dd Z d d Z Z S)r4Ncs^t||||||_|j|jj||j|j|j|j |durZ|jt j |ddSr)) rr_addressrrrrrDrrrr)r$rr+r,r5r-r'r%rrrs  z#_SelectorDatagramTransport.__init__cCstdd|jDS)Ncss|]\}}t|VqdSr))r).0rGrcrrr zC_SelectorDatagramTransport.get_write_buffer_size..)sumrr;rrrrsz0_SelectorDatagramTransport.get_write_buffer_sizec Cs|jr dSz|j|j\}}Wnttfy6Yntyd}z|j|WYd}~n\d}~0t t fyzYn>t y}z| |dWYd}~nd}~00|j ||dS)Nz&Fatal read error on datagram transport)rrrecvfromrrKrJrPrerror_receivedrjrkrirZdatagram_receivedr$rGrerfrrrrs "z&_SelectorDatagramTransport._read_readyc Cst|tttfs$tdt|j|s,dS|jrV|d|jfvrPtd|j|j}|j r|jr|j t j krxt d|j d7_ dS|jsdz,|jdr|j|n|j||WdSttfy|j|j|jYn~ty}z|j|WYd}~dSd}~0ttfy0Yn4tyb}z||dWYd}~dSd}~00|j t||f|!dS)Nr z!Invalid address: must be None or r rr['Fatal write error on datagram transport)"rmr rrrprrrrqrrrr rrrrrOsendtorKrJrrr _sendto_readyrPrr rjrkrirrrr!rrrr#sJ      z!_SelectorDatagramTransport.sendtoc Cs|jr|j\}}z*|jdr.|j|n|j||Wqttfyh|j||fYqYqt y}z|j |WYd}~dSd}~0t t fyYqty}z||dWYd}~dSd}~00q||js|j|j|jr|ddS)Nr[r")rpopleftrrrOr#rKrJ appendleftrPrr rjrkrirrrrrrrr!rrrr$0s0  z(_SelectorDatagramTransport._sendto_ready)NNN)N) rrr collectionsdequerrrrr#r$rrrr%rr4s  +r4)r__all__r'r_rrrArr!Zssl ImportErrorrrrrrr r r logr rZ BaseEventLooprZ_FlowControlMixinZ Transportrr*r4rrrrsD             <o