/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.opt-1.pyc (29674B)
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 lmZdd„ZGdd„de jƒZGdd„dejejƒZGdd„deƒZGdd„deƒZdS)zÄEvent 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. )ÚBaseSelectorEventLoopéNé)Ú base_events)Ú constants)Úevents)Úfutures)Ú protocols)Ússlproto)Ú transports)Útrsock)ÚloggercCs6z| |¡}Wnty"YdS0t|j|@ƒSdS©NF)Úget_keyÚKeyErrorÚboolr)ÚselectorÚfdÚeventÚkey©rú//usr/lib64/python3.9/asyncio/selector_events.pyÚ_test_selector_event s  rcs’eZdZdZdS‡fdd„ ZdTdddœdd„ZdUddddejd œd d „ZdVd d „Z ‡fdd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdddejfdd„Zdddejfdd„Zddejfdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„ZdWd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#dCdD„Z$dXdEdF„Z%dGdH„Z&dIdJ„Z'dKdL„Z(dMdN„Z)dOdP„Z*dQdR„Z+‡Z,S)YrzJSelector event loop. See events.EventLoop for API specification. NcsFtƒ ¡|durt ¡}t d|jj¡||_|  ¡t   ¡|_ dS)NzUsing selector: %s) ÚsuperÚ__init__Ú selectorsÚDefaultSelectorr ÚdebugÚ __class__Ú__name__Ú _selectorÚ_make_self_pipeÚweakrefÚWeakValueDictionaryÚ _transports)Úselfr©rrrr1s zBaseSelectorEventLoop.__init__©ÚextraÚservercCst||||||ƒS©N)Ú_SelectorSocketTransport)r$ÚsockÚ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)r1r&)r Z SSLProtocolr*Z_app_transport) r$Zrawsockr,Ú sslcontextr-r/r0r'r(r1Z ssl_protocolrrrÚ_make_ssl_transport@sýÿz)BaseSelectorEventLoop._make_ssl_transportcCst||||||ƒSr))Ú_SelectorDatagramTransport)r$r+r,Úaddressr-r'rrrÚ_make_datagram_transportMsÿz.BaseSelectorEventLoop._make_datagram_transportcsL| ¡rtdƒ‚| ¡rdS| ¡tƒ ¡|jdurH|j ¡d|_dS)Nz!Cannot close a running event loop)Z is_runningÚ RuntimeErrorÚ is_closedÚ_close_self_piperÚcloser©r$r%rrr:Rs   zBaseSelectorEventLoop.closecCsB| |j ¡¡|j ¡d|_|j ¡d|_|jd8_dS)Nr)Ú_remove_readerÚ_ssockÚfilenor:Ú_csockÚ _internal_fdsr;rrrr9]s   z&BaseSelectorEventLoop._close_self_pipecCsNt ¡\|_|_|j d¡|j d¡|jd7_| |j ¡|j¡dS)NFr) ÚsocketÚ socketpairr=r?Ú setblockingr@Ú _add_readerr>Ú_read_from_selfr;rrrr es   z%BaseSelectorEventLoop._make_self_pipecCsdSr)r©r$ÚdatarrrÚ_process_self_datamsz(BaseSelectorEventLoop._process_self_datacCsTz"|j d¡}|sWqP| |¡Wqty8YqYqtyLYqPYq0qdS)Ni)r=ÚrecvrHÚInterruptedErrorÚBlockingIOErrorrFrrrrEps   z%BaseSelectorEventLoop._read_from_selfcCsL|j}|durdSz| d¡Wn&tyF|jrBtjddd�Yn0dS)Nóz3Fail to write a null byte into the self-pipe socketT©Úexc_info)r?ÚsendÚOSErrorÚ_debugr r)r$ÚcsockrrrÚ_write_to_self|s þz$BaseSelectorEventLoop._write_to_selfédc Cs"| | ¡|j||||||¡dSr))rDr>Ú_accept_connection)r$Úprotocol_factoryr+r2r(Úbacklogr1rrrÚ_start_servingŽs þz$BaseSelectorEventLoop._start_servingc Cst|ƒD]ú}z0| ¡\}} |jr0t d|| |¡| d¡WnžtttfyXYdSt yÚ} zl| j t j t j t j t jfvrÄ| d| t |¡dœ¡| | ¡¡| tj|j||||||¡n‚WYd} ~ qd} ~ 00d| i} | ||| |||¡} | | ¡qdS)Nz#%r got a new connection from %r: %rFz&socket.accept() out of system resource)ÚmessageÚ exceptionrAÚpeername)ÚrangeÚacceptrQr rrCrKrJÚConnectionAbortedErrorrPÚerrnoZEMFILEZENFILEZENOBUFSZENOMEMÚcall_exception_handlerr ÚTransportSocketr<r>Z call_laterrZACCEPT_RETRY_DELAYrXÚ_accept_connection2Z create_task) r$rVr+r2r(rWr1Ú_ÚconnÚaddrÚexcr'r]rrrrU•s@  ÿ ÿýý þz(BaseSelectorEventLoop._accept_connectionc Ãsôd}d}zr|ƒ}| ¡} |r8|j|||| d|||d�}n|j||| ||d�}z| IdHWntyv| ¡‚Yn0Wntttfy’‚Yn^tyî} zF|jrÚd| 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:Ú SystemExitÚKeyboardInterruptrQr`) r$rVrdr'r2r(r1r,rgr-rfÚcontextrrrrbÁs@ýþ  ýz)BaseSelectorEventLoop._accept_connection2c CsŠ|}t|tƒsHzt| ¡ƒ}Wn(tttfyFtd|›�ƒd‚Yn0z|j|}WntyhYn0| ¡s†t d|›d|›�ƒ‚dS)NzInvalid file object: zFile descriptor z is used by transport ) Ú isinstanceÚintr>ÚAttributeErrorÚ TypeErrorÚ ValueErrorr#rÚ is_closingr7)r$rr>rgrrrÚ_ensure_fd_no_transportês   ÿÿz-BaseSelectorEventLoop._ensure_fd_no_transportc Gs’| ¡t |||d¡}z|j |¡}Wn(tyP|j |tj|df¡Yn>0|j|j }\}}|j  ||tjB||f¡|durŽ|  ¡|Sr)) Ú _check_closedrÚHandlerrrÚregisterrÚ EVENT_READrGÚmodifyÚcancel© r$rÚcallbackÚargsÚhandlerÚmaskÚreaderÚwriterrrrrDüs  ÿ ÿz!BaseSelectorEventLoop._add_readercCs’| ¡r dSz|j |¡}Wnty0YdS0|j|j}\}}|tjM}|sb|j |¡n|j  ||d|f¡|durŠ|  ¡dSdSdS)NFT) r8rrrrrGrrwÚ unregisterrxry©r$rrr~rr€rrrr< s  z$BaseSelectorEventLoop._remove_readerc Gs’| ¡t |||d¡}z|j |¡}Wn(tyP|j |tjd|f¡Yn>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) r8rrrrrGrrƒr�rxryr‚rrrÚ_remove_writer1s  z$BaseSelectorEventLoop._remove_writercGs"| |¡|j||g|¢RŽdS)zAdd a reader callback.N)rsrD©r$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|¢RŽdS)zAdd a writer callback..N)rsr„r‡rrrÚ add_writerRs z BaseSelectorEventLoop.add_writercCs| |¡| |¡S)r…)rsr†r‰rrrÚ remove_writerWs z#BaseSelectorEventLoop.remove_writerc Ãs˜t |¡|jr$| ¡dkr$tdƒ‚z | |¡WSttfyFYn0| ¡}|  ¡}|  |¡|  ||j |||¡}|  tj|j||d�¡|IdHS)zÌReceive 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. rúthe socket must be non-blocking©r}N)rÚ_check_ssl_socketrQÚ gettimeoutrqrIrKrJrhr>rsrDÚ _sock_recvÚadd_done_callbackÚ functoolsÚpartialÚ_sock_read_done)r$r+ÚnÚfutrr}rrrÚ sock_recv\s   ÿzBaseSelectorEventLoop.sock_recvcCs|dus| ¡s| |¡dSr))Ú cancelledrŠ©r$rr—r}rrrr•rsz%BaseSelectorEventLoop._sock_read_donec Cs„| ¡r dSz| |¡}WnZttfy2YdSttfyH‚Yn8tyt}z| |¡WYd}~nd}~00| |¡dSr)) ÚdonerIrKrJrjrkriÚ set_exceptionÚ set_result)r$r—r+r–rGrfrrrr‘vs z BaseSelectorEventLoop._sock_recvc Ãs˜t |¡|jr$| ¡dkr$tdƒ‚z | |¡WSttfyFYn0| ¡}|  ¡}|  |¡|  ||j |||¡}|  tj|j||d�¡|IdHS)z¥Receive data from the socket. The received data is written into *buf* (a writable buffer). The return value is the number of bytes written. rr�rŽN)rr�rQr�rqÚ recv_intorKrJrhr>rsrDÚ_sock_recv_intor’r“r”r•)r$r+Úbufr—rr}rrrÚsock_recv_into†s   ÿz$BaseSelectorEventLoop.sock_recv_intoc Cs„| ¡r dSz| |¡}WnZttfy2YdSttfyH‚Yn8tyt}z| |¡WYd}~nd}~00| |¡dSr)) r›ržrKrJrjrkrirœr�)r$r—r+r ÚnbytesrfrrrrŸ›s z%BaseSelectorEventLoop._sock_recv_intoc Ãs¶t |¡|jr$| ¡dkr$tdƒ‚z| |¡}WnttfyLd}Yn0|t|ƒkr^dS|  ¡}|  ¡}|  |¡|  ||j ||t|ƒ|g¡}| tj|j||d�¡|IdHS)ašSend 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. rr�NrŽ)rr�rQr�rqrOrKrJÚlenrhr>rsr„Ú _sock_sendallÚ memoryviewr’r“r”Ú_sock_write_done)r$r+rGr–r—rr}rrrÚ sock_sendall¬s&     ÿÿz"BaseSelectorEventLoop.sock_sendallc Cs´| ¡r dS|d}z| ||d…¡}Wn\ttfyBYdSttfyX‚Yn0ty†}z| |¡WYd}~dSd}~00||7}|t|ƒkr¨|  d¡n||d<dS)Nr) r›rOrKrJrjrkrirœr£r�)r$r—r+ÚviewÚposÚstartr–rfrrrr¤Ës    z#BaseSelectorEventLoop._sock_sendallcÃs”t |¡|jr$| ¡dkr$tdƒ‚|jtjksBtjrt|jtj krt|j ||j|j |j |d�IdH}|d\}}}}}|  ¡}| |||¡|IdHS)zTConnect to a remote socket at address. This method is a coroutine. rr�)ÚfamilyÚtypeÚprotoÚloopN)rr�rQr�rqr«rAÚAF_INETZ _HAS_IPv6ÚAF_INET6Z_ensure_resolvedr¬r­rhÚ _sock_connect)r$r+r5Zresolvedrcr—rrrÚ sock_connectás   ÿ ÿþ z"BaseSelectorEventLoop.sock_connectc Cs´| ¡}z| |¡WnŽttfyb| |¡| ||j|||¡}| tj |j ||d�¡YnNt t fyx‚Yn8t y¤}z| |¡WYd}~nd}~00| d¡dS)NrŽ)r>ÚconnectrKrJrsr„Ú_sock_connect_cbr’r“r”r¦rjrkrirœr�)r$r—r+r5rr}rfrrrr±ös   ÿÿ z#BaseSelectorEventLoop._sock_connectcCs|dus| ¡s| |¡dSr))r™rŒršrrrr¦ sz&BaseSelectorEventLoop._sock_write_donec Cs | ¡r dSz,| tjtj¡}|dkr6t|d|›�ƒ‚WnXttfyNYnNtt fyd‚Yn8t y�}z|  |¡WYd}~nd}~00|  d¡dS)NrzConnect call failed ) r›Ú getsockoptrAÚ SOL_SOCKETÚSO_ERRORrPrKrJrjrkrirœr�)r$r—r+r5Úerrrfrrrr´s z&BaseSelectorEventLoop._sock_connect_cbcÃsBt |¡|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. rr�N)rr�rQr�rqrhÚ _sock_accept)r$r+r—rrrÚ sock_accept"s   z!BaseSelectorEventLoop.sock_acceptc CsÂ| ¡}z| ¡\}}| d¡WnŒttfyl| |¡| ||j||¡}| t j |j ||d�¡YnRt t fy‚‚Yn<ty®}z| |¡WYd}~nd}~00| ||f¡dS)NFrŽ)r>r]rCrKrJrsrDr¹r’r“r”r•rjrkrirœr�)r$r—r+rrdr5r}rfrrrr¹1s  ÿ z"BaseSelectorEventLoop._sock_acceptc Ãsœ|j|j=| ¡}| ¡| ¡IdHzL|j|j|||dd�IdHW| ¡|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_waiterÚresume_reading)r$ZtranspÚfileÚoffsetÚcountrÂrrrÚ_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_callbackrƒr†)r$Z event_listrr~rÇrr€rrrÚ_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<r„r†rˆrŠr‹rŒr˜r•r‘r¡rŸr§r¤r²r±r¦r´rºr¹rÆrÈrÉÚ __classcell__rrr%rr+sj ÿ ÿü ÿ   þ ý .ý )  rcs’eZdZdZeZdZd‡fdd„ Zdd„Zdd„Z d d „Z d d „Z d d„Z dd„Z ejfdd„Zddd„Zdd„Zdd„Zdd„Zdd„Z‡ZS) Ú_SelectorTransportiNcsêtƒ ||¡t |¡|jd<z| ¡|jd<WntyLd|jd<Yn0d|jvrŠz| ¡|jd<Wntj yˆd|jd<Yn0||_ |  ¡|_ d|_ | |¡||_| ¡|_d|_d|_|jdurÚ|j ¡||j|j <dS)NrAZsocknamer[Fr)rrr raÚ_extraÚ getsocknamerPÚ getpeernamerAÚerrorrÀr>r¼Ú_protocol_connectedÚ set_protocolÚ_serverÚ_buffer_factoryÚ_bufferÚ _conn_lostÚ_closingZ_attachr#)r$r®r+r,r'r(r%rrros,       z_SelectorTransport.__init__cCsÖ|jjg}|jdur | d¡n|jr0| d¡| d|j›�¡|jdurÆ|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<{}>ú )rrrÀÚappendrÙr¼Ú_loopr8rrrrwrƒÚget_write_buffer_sizeÚformatÚjoin)r$ÚinforÜÚstateÚbufsizerrrÚ__repr__‰s.    ÿ  þz_SelectorTransport.__repr__cCs| d¡dSr))Ú _force_closer;rrrÚabort¥sz_SelectorTransport.abortcCs||_d|_dS©NT)Ú _protocolrÓ©r$r,rrrrÔ¨sz_SelectorTransport.set_protocolcCs|jSr))rër;rrrÚ get_protocol¬sz_SelectorTransport.get_protocolcCs|jSr))rÙr;rrrrr¯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,|jdur(|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: %sTrM)rYrZrgr,) rmrPràÚ get_debugr rr`rërè)r$rfrYrrrÚ _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$rfrrrrèÏs z_SelectorTransport._force_closecCsŽzN|jr|j |¡W|j ¡d|_d|_d|_|j}|durŠ| ¡d|_n:|j ¡d|_d|_d|_|j}|durˆ| ¡d|_0dSr))rÓrëZconnection_lostrÀr:ràrÕZ_detach)r$rfr(rrrrðÛs& ù z(_SelectorTransport._call_connection_lostcCs t|jƒSr))r£r×r;rrrráész(_SelectorTransport.get_write_buffer_sizecGs$|jr dS|jj||g|¢RŽdSr))rÙràrDr‡rrrrDìsz_SelectorTransport._add_reader)NN)rõ)rrÊrËÚmax_sizeÚ bytearrayrÖrÀrrçrérÔrírrr:ÚwarningsÚwarnrôr÷rèrðrárDrÍrrr%rrÎcs    rÎcsªeZdZdZejjZd#‡fdd„ Z‡fdd„Z dd„Z d d „Z d d „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   |j j |¡|j   |j |j|j¡|durz|j   tj|d¡dSr )Ú_read_ready_cbrrÚ_eofÚ_pausedÚ _empty_waiterrZ _set_nodelayrÀràrïrëÚconnection_maderDr¼Ú _read_readyrÚ_set_result_unless_cancelled)r$r®r+r,r-r'r(r%rrrøs  ÿ ÿz!_SelectorSocketTransport.__init__cs.t|tjƒr|j|_n|j|_tƒ |¡dSr))rmrZBufferedProtocolÚ_read_ready__get_bufferrþÚ_read_ready__data_receivedrrÔrìr%rrrÔs  z%_SelectorSocketTransport.set_protocolcCs|j o|j Sr))rrÙr;rrrr½sz#_SelectorSocketTransport.is_readingcCs>|js |jrdSd|_|j |j¡|j ¡r:t d|¡dS)NTz%r pauses reading)rÙrràr<r¼rör rr;rrrr¾s   z&_SelectorSocketTransport.pause_readingcCs@|js |jsdSd|_| |j|j¡|j ¡rÿ      z_SelectorSocketTransport.writec Cs|jr dSz|j |j¡}Wnˆttfy2YnàttfyH‚YnÊty¤}zF|j   |j ¡|j  ¡|  |d¡|jdur�|j |¡WYd}~nvd}~00|r¶|jd|…=| ¡|j�s|j   |j ¡|jdurê|j d¡|jrü| d¡n|j�r|j tj¡dS)Nr )rØrÀrOr×rKrJrjrkriràr†r¼rør÷rrœÚ_maybe_resume_protocolr�rÙrðrÿÚshutdownrAÚSHUT_WR)r$r–rfrrrr§s2   "    z%_SelectorSocketTransport._write_readycCs.|js |jrdSd|_|js*|j tj¡dSrê)rÙrÿr×rÀrrArr;rrrÚ write_eofÅs  z"_SelectorSocketTransport.write_eofcCsdSrêrr;rrrÚ can_write_eofÌsz&_SelectorSocketTransport.can_write_eofcs*tƒ |¡|jdur&|j tdƒ¡dS)NzConnection is closed by peer)rrðrrœÚConnectionErrorrùr%rrrðÏs   ÿz._SelectorSocketTransport._call_connection_lostcCs6|jdurtdƒ‚|j ¡|_|js0|j d¡|jS)NzEmpty waiter is already set)rr7ràrhr×r�r;rrrr¿Õs    z+_SelectorSocketTransport._make_empty_waitercCs d|_dSr))rr;rrrrÁÝsz,_SelectorSocketTransport._reset_empty_waiter)NNN)rrÊrËZ_start_tls_compatiblerZ _SendfileModeZ TRY_NATIVEZ_sendfile_compatiblerrÔr½r¾rÂrrrr rrrrrðr¿rÁrÍrrr%rr*ós(ÿ %' r*csFeZdZejZd ‡fdd„ Zdd„Zdd„Zd dd „Z d d „Z ‡Z S)r4Ncs^tƒ ||||¡||_|j |jj|¡|j |j|j|j ¡|durZ|j t j |d¡dSr)) rrÚ_addressràrïrërrDr¼rrr)r$r®r+r,r5r-r'r%rrrås ÿ ÿz#_SelectorDatagramTransport.__init__cCstdd„|jDƒƒS)Ncss|]\}}t|ƒVqdSr))r£)Ú.0rGrcrrrÚ óózC_SelectorDatagramTransport.get_write_buffer_size..)Úsumr×r;rrrráòsz0_SelectorDatagramTransport.get_write_buffer_sizec Cs¼|jr dSz|j |j¡\}}Wnˆttfy6Yn‚tyd}z|j |¡WYd}~n\d}~0t t fyz‚Yn>t y¨}z|  |d¡WYd}~nd}~00|j  ||¡dS)Nz&Fatal read error on datagram transport)rØrÀÚrecvfromrúrKrJrPrëÚerror_receivedrjrkrir÷Zdatagram_received©r$rGrerfrrrrõs "z&_SelectorDatagramTransport._read_readyc Cs„t|tttfƒs$tdt|ƒj›�ƒ‚|s,dS|jrV|d|jfvrPtd|j›�ƒ‚|j}|j rŠ|jrŠ|j t j krxt   d¡|j d7_ dS|j�sdz,|jdr¬|j |¡n|j ||¡WdSttfyæ|j |j|j¡Yn~t�y}z|j |¡WYd}~dSd}~0ttf�y0‚Yn4t�yb}z| |d¡WYd}~dSd}~00|j  t|ƒ|f¡| !¡dS)Nr z!Invalid address: must be None or r rr[ú'Fatal write error on datagram transport)"rmr rûr¥rpr¬rrrqrØrrr rr×rÏrÀrOÚsendtorKrJràr„r¼Ú _sendto_readyrPrër rjrkrir÷rßrr!rrrr#sJÿ ÿ     ÿz!_SelectorDatagramTransport.sendtoc Cs|jrâ|j ¡\}}z*|jdr.|j |¡n|j ||¡Wqttfyh|j ||f¡YqâYqt y˜}z|j   |¡WYd}~dSd}~0t t fy®‚YqtyÞ}z| |d¡WYd}~dSd}~00q| ¡|j�s|j |j¡|j�r| d¡dS)Nr[r")r×ÚpopleftrÏrÀrOr#rKrJÚ appendleftrPrër rjrkrir÷rràr†r¼rÙrðr!rrrr$0s0  ÿz(_SelectorDatagramTransport._sendto_ready)NNN)N) rrÊrËÚ collectionsÚdequerÖrrárr#r$rÍrrr%rr4ásÿ  +r4)rÌÚ__all__r'r_r“rrArür!ZsslÚ ImportErrorÚrrrrrr r r Úlogr rZ BaseEventLooprZ_FlowControlMixinZ TransportrÎr*r4rrrrÚsD             <ÿo