U if@sddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZz ddlZWnek rdZYnXddlmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlm Z dZ!dZ"dZ#e$edZ%dZ&e'Z(ddZ)ddZ*ddZ+d*ddZ,d+ddZ-ddZ.e$ed rd!d"Z/nd#d"Z/Gd$d%d%ej0Z1Gd&d'd'ej2Z3Gd(d)d)ej4Z5dS),N) constants) coroutines)events) exceptions)futures) protocols)sslproto) staggered)tasks) transports)trsock)logger) BaseEventLoopdg?AF_INET6iQcCs0|j}tt|ddtjr$t|jSt|SdS)N__self__)Z _callback isinstancegetattrr Taskreprrstr)handlecbr8/opt/alt/python38/lib64/python3.8/asyncio/base_events.py_format_handleJs rcCs(|tjkrdS|tjkrdSt|SdS)Nzz) subprocessPIPESTDOUTr)fdrrr _format_pipeSs   r!cCsLttdstdn4z|tjtjdWntk rFtdYnXdS)N SO_REUSEPORTz)reuse_port not supported by socket modulerzTreuse_port not supported by socket module, SO_REUSEPORT defined but not implemented.)hasattrsocket ValueError setsockopt SOL_SOCKETr"OSErrorsockrrr_set_reuseport\s   r+c CsttdsdS|dtjtjhks(|dkr,dS|tjkr>tj}n|tjkrPtj}ndS|dkrbd}nXt|trz|dkrzd}n@t|tr|dkrd}n(z t |}Wnt t fk rYdSX|tj krtj g}tr|tjn|g}t|tr|d}d|krdS|D]t}zVt||trJ|tjkrJ|||d||||ffWS|||d||ffWSWntk rzYnXq dS)N inet_ptonrZidna%)r#r$ IPPROTO_TCPZ IPPROTO_UDP SOCK_STREAM SOCK_DGRAMrbytesrint TypeErrorr% AF_UNSPECAF_INET _HAS_IPv6appendrdecoder,r() hostportfamilytypeprotoZflowinfoZscopeidZafsafrrr _ipaddr_infogsN          rAcCst}|D]*}|d}||kr(g||<|||q t|}g}|dkr|||dd|d|dd|d=|ddtjtj |D|S)Nrrcss|]}|dk r|VqdSNr).0arrr sz(_interleave_addrinfos..) collections OrderedDictr9listvaluesextend itertoolschain from_iterable zip_longest)Z addrinfosZfirst_address_family_countZaddrinfos_by_familyaddrr=Zaddrinfos_listsZ reorderedrrr_interleave_addrinfoss"  rPcCs4|s"|}t|ttfr"dSt|dSrB) cancelled exceptionr SystemExitKeyboardInterruptrZ _get_loopstop)futexcrrr_run_until_complete_cbs rX TCP_NODELAYcCs@|jtjtjhkr<|jtjkr<|jtjkr<|tjtj ddSNr) r=r$r7rr>r1r?r0r&rYr)rrr _set_nodelays   r[cCsdSrBrr)rrrr[sc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)_SendfileFallbackProtocolcCsht|tjstd||_||_||_|j |_ | | ||j r^|jj |_nd|_dS)Nz.transport should be _FlowControlMixin instance)rr Z_FlowControlMixinr5 _transportZ get_protocol_protoZ is_reading_should_resume_readingZ_protocol_paused_should_resume_writing pause_reading set_protocol_loop create_future_write_ready_fut)selftransprrr__init__s    z"_SendfileFallbackProtocol.__init__cs2|jrtd|j}|dkr$dS|IdHdS)NzConnection closed by peer)r] is_closingConnectionErrorre)rfrVrrrdrains  z_SendfileFallbackProtocol.draincCs tddS)Nz?Invalid state: connection should have been established already. RuntimeError)rf transportrrrconnection_madesz)_SendfileFallbackProtocol.connection_madecCs@|jdk r0|dkr$|jtdn |j||j|dS)NzConnection is closed by peer)reZ set_exceptionrjr^connection_lost)rfrWrrrrps  z)_SendfileFallbackProtocol.connection_lostcCs |jdk rdS|jj|_dSrB)rer]rcrdrfrrr pause_writings z'_SendfileFallbackProtocol.pause_writingcCs$|jdkrdS|jdd|_dS)NF)re set_resultrqrrrresume_writings  z(_SendfileFallbackProtocol.resume_writingcCs tddSNz'Invalid state: reading should be pausedrl)rfdatarrr data_receivedsz'_SendfileFallbackProtocol.data_receivedcCs tddSrurlrqrrr eof_receivedsz&_SendfileFallbackProtocol.eof_receivedcsF|j|j|jr|j|jdk r2|j|jrB|jdSrB) r]rbr^r_resume_readingrecancelr`rtrqrrrrestores   z!_SendfileFallbackProtocol.restoreN) __name__ __module__ __qualname__rhrkrorprrrtrwrxr{rrrrr\s r\c@sxeZdZddZddZddZddZd d Zd d Zd dZ ddZ e ddZ ddZ ddZddZddZdS)ServercCs@||_||_d|_g|_||_||_||_||_d|_d|_ dS)NrF) rc_sockets _active_count_waiters_protocol_factory_backlog _ssl_context_ssl_handshake_timeout_serving_serving_forever_fut)rfloopsocketsprotocol_factoryZ ssl_contextbacklogssl_handshake_timeoutrrrrhszServer.__init__cCsd|jjd|jdS)N) __class__r|rrqrrr__repr__ szServer.__repr__cCs|jd7_dSrZ)rrqrrr_attach#szServer._attachcCs.|jd8_|jdkr*|jdkr*|dS)Nrr)rr_wakeuprqrrr_detach'szServer._detachcCs,|j}d|_|D]}|s||qdSrB)rdoners)rfwaiterswaiterrrrr-s zServer._wakeupc CsJ|jr dSd|_|jD].}||j|j|j||j||j|jqdSNT) rrZlistenrrc_start_servingrrr)rfr*rrrr4s  zServer._start_servingcCs|jSrB)rcrqrrrget_loop>szServer.get_loopcCs|jSrB)rrqrrr is_servingAszServer.is_servingcCs"|jdkrdStdd|jDS)Nrcss|]}t|VqdSrB)r ZTransportSocket)rCsrrrrEHsz!Server.sockets..)rtuplerqrrrrDs zServer.socketscCsn|j}|dkrdSd|_|D]}|j|qd|_|jdk rX|jsX|jd|_|jdkrj|dS)NFr) rrcZ _stop_servingrrrrzrr)rfrr*rrrcloseJs   z Server.closecs"|tjd|jdIdHdS)Nrr)rr sleeprcrqrrr start_serving]szServer.start_servingc s|jdk rtd|d|jdkr4td|d||j|_zLz|jIdHWn6tjk rz|| IdHW5XYnXW5d|_XdS)Nzserver z, is already being awaited on serve_forever()z is closed) rrmrrrcrdrZCancelledErrorr wait_closedrqrrr serve_forevercs     zServer.serve_forevercs<|jdks|jdkrdS|j}|j||IdHdSrB)rrrcrdr9)rfrrrrrxs   zServer.wait_closedN)r|r}r~rhrrrrrrrpropertyrrrrrrrrrrs   rc @sPeZdZddZddZddZddd d Zd d Zd dZddddddZ ddddddddddZ dddZ dddZ dddZ dddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zejfd7d8Zd9d:Zd;d<Zdd=d>d?Z dd=d@dAZ!dd=dBdCZ"dDdEZ#dFdGZ$dHdIZ%dd=dJdKZ&dLdMZ'dNdOZ(dPdQZ)dRdRdRdRdSdTdUZ*ddVdWZ+dddXdYdZZ,d[d\Z-d]d^Z.d_d`Z/ddadbZ0dddRdRdRdddddddc dddeZ1ddfdgZ2dddXdhdiZ3djdkZ4dldmZ5ddddndodpZ6ddRdRdRe7ddddqdrdsZ8dRe9j:dRdRdSdtduZ;dvdwZddxddddddy dzd{Z?ddd|d}d~Z@ddZAddZBddZCeDjEeDjEeDjEdddRdddd ddZFeDjEeDjEeDjEdddRdddd ddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRdS)rcCsd|_d|_d|_t|_g|_d|_d|_d|_ t dj |_ d|_|td|_d|_d|_d|_d|_t|_d|_dS)NrF monotonicg?)_timer_cancelled_count_closed _stoppingrFdeque_ready _scheduled_default_executorZ _internal_fds _thread_idtimeget_clock_infoZ resolution_clock_resolution_exception_handler set_debugrZ_is_debug_modeslow_callback_duration_current_handle _task_factory"_coroutine_origin_tracking_enabled&_coroutine_origin_tracking_saved_depthweakrefZWeakSet _asyncgens_asyncgens_shutdown_calledrqrrrrhs$  zBaseEventLoop.__init__c Cs.d|jjd|d|d|d S)Nrz running=z closed=z debug=r)rr| is_running is_closed get_debugrqrrrrs,zBaseEventLoop.__repr__cCs tj|dS)Nr)rZFuturerqrrrrdszBaseEventLoop.create_futureN)namecCsN||jdkr2tj|||d}|jrJ|jd=n|||}t|||S)N)rr) _check_closedrr r_source_tracebackZ_set_task_name)rfcororZtaskrrr create_tasks    zBaseEventLoop.create_taskcCs"|dk rt|std||_dS)Nz'task factory must be a callable or None)callabler5r)rffactoryrrrset_task_factorys zBaseEventLoop.set_task_factorycCs|jSrB)rrqrrrget_task_factoryszBaseEventLoop.get_task_factory)extraservercCstdSrBNotImplementedError)rfr*protocolrrrrrr_make_socket_transportsz$BaseEventLoop._make_socket_transportFT) server_sideserver_hostnamerrrcall_connection_madec CstdSrBr) rfZrawsockr sslcontextrrrrrrrrrr_make_ssl_transportsz!BaseEventLoop._make_ssl_transportcCstdSrBr)rfr*raddressrrrrr_make_datagram_transportsz&BaseEventLoop._make_datagram_transportcCstdSrBrrfpiperrrrrr_make_read_pipe_transportsz'BaseEventLoop._make_read_pipe_transportcCstdSrBrrrrr_make_write_pipe_transportsz(BaseEventLoop._make_write_pipe_transportc stdSrBr) rfrargsshellstdinstdoutstderrbufsizerkwargsrrr_make_subprocess_transportsz(BaseEventLoop._make_subprocess_transportcCstdSrBrrqrrr_write_to_selfszBaseEventLoop._write_to_selfcCstdSrBr)rf event_listrrr_process_eventsszBaseEventLoop._process_eventscCs|jrtddS)NzEvent loop is closed)rrmrqrrrrszBaseEventLoop._check_closedcCs*|j||s&||j|dSrB)rdiscardrcall_soon_threadsaferacloserfagenrrr_asyncgen_finalizer_hooks z&BaseEventLoop._asyncgen_finalizer_hookcCs.|jrtjd|dt|d|j|dS)Nzasynchronous generator z3 was scheduled after loop.shutdown_asyncgens() callsource)rwarningswarnResourceWarningraddrrrr_asyncgen_firstiter_hooks z&BaseEventLoop._asyncgen_firstiter_hookcsd|_t|jsdSt|j}|jtjdd|Dd|dIdH}t||D]*\}}t|t rT| d|||dqTdS)NTcSsg|] }|qSr)r)rCZagrrr sz4BaseEventLoop.shutdown_asyncgens..)Zreturn_exceptionsrz;an error occurred during closing of asynchronous generator )messagerRZasyncgen) rlenrrHclearr gatherzipr Exceptioncall_exception_handler)rfZ closing_agensZresultsresultrrrrshutdown_asyncgens s"     z BaseEventLoop.shutdown_asyncgenscCs(|rtdtdk r$tddS)Nz"This event loop is already runningz7Cannot run the event loop while another loop is running)rrmrZ_get_running_looprqrrr_check_running&s  zBaseEventLoop._check_runningc Cs||||jt|_t}tj |j |j dz t |||j rLq^qLW5d|_ d|_t d|dtj |XdS)N) firstiter finalizerF)rr_set_coroutine_origin_tracking_debug threading get_identrsysget_asyncgen_hooksset_asyncgen_hooksrrrrZ_set_running_loop _run_once)rfZold_agen_hooksrrr run_forever-s$     zBaseEventLoop.run_foreverc Cs||t| }tj||d}|r4d|_|tz|jd=|S)N call_soonr)rrrr _call_soonrrfrr rrrrrrs  zBaseEventLoop.call_sooncCsDt|st|r$td|dt|s@td|d|dS)Nzcoroutines cannot be used with z()z"a callable object was expected by z(), got )rZ iscoroutineZiscoroutinefunctionr5r)rfrmethodrrrrs  zBaseEventLoop._check_callbackcCs.t||||}|jr|jd=|j||S)Nr)rZHandlerrr9)rfrrr rrrrrs  zBaseEventLoop._call_sooncCs,|jdkrdSt}||jkr(tddS)NzMNon-thread-safe operation invoked on an event loop other than the current one)rrrrm)rfZ thread_idrrrrs  zBaseEventLoop._check_threadcGsB||jr||d||||}|jr6|jd=||S)Nrr)rrrrrrrrrrrs z"BaseEventLoop.call_soon_threadsafecGsZ||jr||d|dkr@|j}|dkr@tj}||_tj|j|f||dS)Nrun_in_executorr) rrrr concurrentrThreadPoolExecutorZ wrap_futureZsubmit)rfr funcrrrrrs  zBaseEventLoop.run_in_executorcCs&t|tjjstdtd||_dS)Nz{Using the default executor that is not an instance of ThreadPoolExecutor is deprecated and will be prohibited in Python 3.9)rrrrrrDeprecationWarningrr rrrset_default_executorsz"BaseEventLoop.set_default_executorc Cs|d|g}|r$|d||r8|d||rL|d||r`|d|d|}td||}t||||||} ||} d|d | d d d | }| |jkrt|n t|| S) N:zfamily=ztype=zproto=zflags=, zGet address info %szGetting address info z took g@@z.3fzms: ) r9joinrr rr$ getaddrinforinfo) rfr;r<r=r>r?flagsmsgt0addrinfodtrrr_getaddrinfo_debugs&      z BaseEventLoop._getaddrinfo_debugrr=r>r?r'c s2|jr|j}ntj}|d|||||||IdHSrB)rr,r$r%r)rfr;r<r=r>r?r'Z getaddr_funcrrrr%2szBaseEventLoop.getaddrinfocs|dtj||IdHSrB)rr$ getnameinfo)rfZsockaddrr'rrrr.<s zBaseEventLoop.getnameinfo)fallbackc s|jr|dkrtd|||||z|||||IdHWStjk rl}z |s\W5d}~XYnX|||||IdHS)Nrzthe socket must be non-blocking)rZ gettimeoutr%_check_sendfile_params_sock_sendfile_nativerSendfileNotAvailableError_sock_sendfile_fallback)rfr*fileoffsetcountr/rWrrr sock_sendfile@s zBaseEventLoop.sock_sendfilecstd|ddS)Nz-syscall sendfile is not available for socket z and file {file!r} combinationrr2rfr*r4r5r6rrrr1Ns z#BaseEventLoop._sock_sendfile_nativec s|r|||rt|tjntj}t|}d}zt|rNt|||}|dkrNqt|d|}|d|j|IdH} | szq| ||d| IdH|| 7}q2|WS|dkrt|dr|||XdS)Nrseek) r:minrZ!SENDFILE_FALLBACK_READBUFFER_SIZE bytearrayr# memoryviewrreadintoZ sock_sendall) rfr*r4r5r6 blocksizebuf total_sentviewreadrrrr3Us,  z%BaseEventLoop._sock_sendfile_fallbackcCsdt|ddkrtd|jtjks,td|dk rbt|tsLtd||dkrbtd|t|tsztd||dkrtd|dS)Nbmodez$file should be opened in binary modez+only SOCK_STREAM type sockets are supportedz+count must be a positive integer (got {!r})rz0offset must be a non-negative integer (got {!r})) rr%r>r$r1rr4r5formatr9rrrr0os2   z$BaseEventLoop._check_sendfile_paramsc s@g}|||\}}}}} d} ztj|||d} | d|dk r|D]r\}}}}} z| | WqWqHtk r} z0d| d| j} t| j| } || W5d} ~ XYqHXqH|| | | IdH| WStk r} z"|| | dk r | W5d} ~ XYn | dk r4| YnXdS)Nr=r>r?Fz*error while attempting to bind on address : ) r9r$ setblockingbindr(strerrorlowererrnopop sock_connectr)rfrZ addr_infoZlocal_addr_infosZ my_exceptionsr=Ztype_r?_rr*ZladdrrWr(rrr _connect_socks:        zBaseEventLoop._connect_sock) sslr=r?r'r* local_addrrrhappy_eyeballs_delay interleavec  sl| dk r|std| dkr0|r0|s,td|} | dk rD|sDtd| dk rX| dkrXd} |dk sj|dk r|dk rztdj||f|tj||dIdH}|std| dk r܈j| |tj||dIdHstdnd| rt|| }g| dkrH|D]D}z |IdH}WqvWntk r@YqYnXqn.tjfdd |D| d IdH\}}}|dkr d d Dt dkrd nJt d t fdd Dr҈d td d dd Dn.|dkrtd|jtjkr td|j|||| | dIdH\}}jrd|d}td|||||||fS)Nz+server_hostname is only meaningful with sslz:You must set server_hostname when using ssl without a host1ssl_handshake_timeout is only meaningful with sslr8host/port and sock can not be specified at the same timer=r>r?r'r!getaddrinfo() returned empty listc3s |]}tj|VqdSrB) functoolspartialrQ)rCr*)r laddr_infosrfrrrEs z2BaseEventLoop.create_connection..rcSsg|]}|D]}|q qSrr)rCsubrWrrrrsz3BaseEventLoop.create_connection..rc3s|]}t|kVqdSrBrrCrW)modelrrrEszMultiple exceptions: {}r#css|]}t|VqdSrBr^r_rrrrE sz5host and port was not specified and no sock specified"A Stream Socket was expected, got )rr$z%r connected to %s:%r: (%r, %r))r%_ensure_resolvedr$r1r(rPrQr Zstaggered_racerrallrFr$r>_create_connection_transportrget_extra_inforr )rfrr;r<rRr=r?r'r*rSrrrTrUinfosr*rPrnrr)rr\r`rfrcreate_connections               zBaseEventLoop.create_connectionc s|d|}|}|rHt|tr*dn|} |j||| ||||d} n||||} z|IdHWn| YnX| |fS)NFrrr)rIrdrboolrrr) rfr*rrRrrrrrrrnrrrrd%s* z*BaseEventLoop._create_connection_transportc s|rtdt|dtjj}|tjjkr:td||tjjkrz|||||IdHWStj k r}z |sxW5d}~XYnX|std|| ||||IdHS)NzTransport is closingZ_sendfile_compatiblez(sendfile is not supported for transport zHfallback is disabled and native sendfile is not supported for transport ) rirmrrZ _SendfileModeZ UNSUPPORTEDZ TRY_NATIVE_sendfile_nativerr2_sendfile_fallback)rfrnr4r5r6r/rErWrrrsendfile?s4   zBaseEventLoop.sendfilecstddS)Nz!sendfile syscall is not supportedr8)rfrgr4r5r6rrrrjnszBaseEventLoop._sendfile_nativec s|r|||rt|dnd}t|}d}t|}z|rXt|||}|dkrX|WbSt|d|} |d|j| IdH} | s|W0S| IdH| | d| || 7}q6W5|dkrt|dr||||IdHXdS)Ni@rr:) r:r;r<r\r#r{r=rr>rkwrite) rfrgr4r5r6r?r@rAr?rBrCrrrrkrs* z BaseEventLoop._sendfile_fallbackrhc stdkrtdt|tjs*td|t|ddsFtd|d|}tj|||||||dd}| | || |j |} | |j } z|IdHWn.tk r|| | YnX|jS)Nz"Python ssl module is not availablez@sslcontext is expected to be an instance of ssl.SSLContext, got Z_start_tls_compatibleFz transport z is not supported by start_tls())rr)rRrmrZ SSLContextr5rrdr Z SSLProtocolrarbrrory BaseExceptionrrzZ_app_transport) rfrnrrrrrrZ ssl_protocolZ conmade_cbZ resume_cbrrr start_tlssB      zBaseEventLoop.start_tls)r=r?r' reuse_address reuse_portallow_broadcastr*c s| dk r| jtjkr"td| s>s>|s>|s>|s>|s>| r~t|||||| d} ddd| D} td| d| dd} nss|d krtd ||fd ff}nttd r|tj krfD]}|dk rt |t st d qڈrxd dkrxz"t t jr.tWnFtk rFYn2tk rv}ztd|W5d}~XYnX||ffff}ni}d fdffD]\}}|dk r|j||tj|||dIdH}|std|D]:\}}}}}||f}||krddg||<||||<qqfdd|D}|sHtdg}|tk rv|rftdntjdtdd|D]\\}}\}}d} d} zxtj|tj|d} |rt| | r| tjtjd| dr| |r| s| | |IdH|} Wn^tk rJ}z | dk r0| !|"|W5d}~XYn&| dk rb| !YnXq|qz|d |}|#}|$| || |}|j%r̈rt&d||nt'd||z|IdHWn|!YnX||fS)NzA UDP Socket was expected, got )rS remote_addrr=r?r'rprqrrr#css$|]\}}|r|d|VqdS)=Nr)rCkvrrrrEsz9BaseEventLoop.create_datagram_endpoint..zKsocket modifier keyword arguments can not be used when sock is specified. ()Frzunexpected address family)NNAF_UNIXzstring is expected)rz2Unable to check or remove stale UNIX socket %r: %rrrXrYcs8g|]0\}}r|ddksr,|ddks||fqS)rNrr)rCkeyZ addr_pairrSrsrrrs   z:BaseEventLoop.create_datagram_endpoint..zcan not get address informationz~Passing `reuse_address=True` is no longer supported, as the usage of SO_REUSEPORT in UDP poses a significant security concern.zdThe *reuse_address* parameter has been deprecated as of 3.5.10 and is scheduled for removal in 3.11.r) stacklevelrGz@Datagram endpoint local_addr=%r remote_addr=%r created: (%r, %r)z2Datagram endpoint remote_addr=%r created: (%r, %r))(r>r$r2r%dictr$itemsrIr#rxrrr5statS_ISSOCKosst_moderemoveFileNotFoundErrorr(rerrorrb_unsetrrr r+r&r'Z SO_BROADCASTrJrOrr9rdrrr&r ) rfrrSrsr=r?r'rprqrrr*ZoptsZproblemsZr_addrZaddr_pairs_inforOerrZ addr_infosidxrfZfamrPZprorrzrZ local_addressZremote_addressrWrrrnrr{rcreate_datagram_endpoints$                  z&BaseEventLoop.create_datagram_endpointc s\|dd\}}t|||||f|dd} | dk r<| gS|j||||||dIdHSdS)Nrr-)rAr%) rfrr=r>r?r'rr;r<r&rrrrbLs zBaseEventLoop._ensure_resolvedcs8|j||f|tj||dIdH}|s4td|d|S)N)r=r>r'rz getaddrinfo(z) returned empty list)rbr$r1r()rfr;r<r=r'rfrrr_create_server_getaddrinfoXs  z(BaseEventLoop._create_server_getaddrinfor) r=r'r*rrRrprqrrc  st|trtd| dk r*|dkr*td|dk s<dk r"|dk rLtd| dkrhtjdkoftjdk} g} |dkr|dg}n$t|tst|t j j s|g}n|}fdd|D}t j |d iIdH}ttj|}d }z|D]}|\}}}}}zt|||}Wn8tjk rHjr@tjd |||d d YqYnX| || rl|tjtjd | rzt|tr|tjkrttdr|tj tj!d z|"|Wqt#k r}z t#|j$d||j%&fdW5d}~XYqXqd }W5|s| D]}|qXn4|dkr4td|j'tj(krPtd||g} | D]}|)d qZt*| |||| }| r|+t j,ddIdHjrt-d||S)Nz*ssl argument must be an SSLContext or NonerVrWposixcygwinr.csg|]}j|dqS))r=r')r)rCr;r=r'r<rfrrrs z/BaseEventLoop.create_server..rFz:create_server() failed to create socket.socket(%r, %r, %r)Texc_info IPPROTO_IPV6z0error while attempting to bind on address %r: %sz)Neither host/port nor sock were specifiedrarrz %r is serving).rrir5r%rrrplatformrrFabcIterabler rsetrKrLrMrr$rrrwarningr9r&r'Z SO_REUSEADDRr+r8rr#rZ IPV6_V6ONLYrJr(rMrKrLr>r1rIrrrr&)rfrr;r<r=r'r*rrRrprqrrrZhostsZfsrfZ completedresr@Zsocktyper?Z canonnameZsarrrrr create_server`s         zBaseEventLoop.create_server)rRrcsv|jtjkrtd||dk r.|s.td|j|||dd|dIdH\}}|jrn|d}td|||||fS)NrarVr.T)rrr$z%r handled: (%r, %r)) r>r$r1r%rdrrerr )rfrr*rRrrnrrrrconnect_accepted_sockets$   z%BaseEventLoop.connect_accepted_socketcsd|}|}||||}z|IdHWn|YnX|jr\td|||||fS)Nz Read pipe %r connected: (%r, %r))rdrrrrr filenorfrrrrrnrrrconnect_read_pipeszBaseEventLoop.connect_read_pipecsd|}|}||||}z|IdHWn|YnX|jr\td|||||fS)Nz!Write pipe %r connected: (%r, %r))rdrrrrr rrrrrconnect_write_pipesz BaseEventLoop.connect_write_pipecCs|g}|dk r"|dt||dk rJ|tjkrJ|dt|n8|dk rf|dt||dk r|dt|td|dS)Nzstdin=zstdout=stderr=zstdout=zstderr= )r9r!rrrr r$)rfr(rrrr&rrr_log_subprocessszBaseEventLoop._log_subprocess) rrruniversal_newlinesrrencodingerrorstextc st|ttfstd|r"td|s.td|dkr>td| rJtd| dk rZtd| dk rjtd|} d}|jrd |}||||||j| |d ||||f| IdH}|jr|dk rtd |||| fS) Nzcmd must be a string universal_newlines must be Falsezshell must be Truerbufsize must be 0text must be Falseencoding must be Noneerrors must be Nonezrun shell command %rT%s: %r) rr3rr%rrrrr&)rfrcmdrrrrrrrrrrr debug_logrnrrrsubprocess_shellsB zBaseEventLoop.subprocess_shellc s|r td|rtd|dkr(td| r4td| dk rDtd| dk rTtd|f| }|}d}|jrd|}||||||j||d ||||f| IdH}|jr|dk rtd ||||fS) Nrzshell must be Falserrrrrzexecute program Fr)r%rrrrr&)rfrZprogramrrrrrrrrrrrZ popen_argsrrrnrrrsubprocess_execCs@   zBaseEventLoop.subprocess_execcCs|jSrB)rrqrrrget_exception_handleresz#BaseEventLoop.get_exception_handlercCs(|dk rt|std|||_dS)Nz+A callable object or None is expected, got )rr5r)rfZhandlerrrrset_exception_handlerjs z#BaseEventLoop.set_exception_handlerc Cs|d}|sd}|d}|dk r6t|||jf}nd}d|kr`|jdk r`|jjr`|jj|d<|g}t|D]}|dkr|qn||}|dkrdt|}d }|| 7}n2|dkrdt|}d }|| 7}nt |}| |d |qnt j d ||d dS)Nrz!Unhandled exception in event looprRFZsource_tracebackZhandle_traceback>rRrr.z+Object created at (most recent call last): z+Handle created at (most recent call last): rH r)getr> __traceback__rrsortedr$ traceback format_listrstriprr9rr) rfr rrRrZ log_linesrzvaluetbrrrdefault_exception_handler{s<   z'BaseEventLoop.default_exception_handlerc Cs|jdkrVz||Wqttfk r2Yqtk rRtjdddYqXnz|||Wnttfk rYnttk r}zVz|d||dWn:ttfk rYn"tk rtjdddYnXW5d}~XYnXdS)Nz&Exception in default exception handlerTrz$Unhandled error in exception handler)rrRr zeException in default exception handler while handling an unexpected error in custom exception handler)rrrSrTrnrr)rfr rWrrrrs4  z$BaseEventLoop.call_exception_handlercCs|jr dS|j|dSrB) _cancelledrr9rfrrrr _add_callbackszBaseEventLoop._add_callbackcCs|||dSrB)rrrrrr_add_callback_signalsafes z&BaseEventLoop._add_callback_signalsafecCs|jr|jd7_dSrZ)rrrrrr_timer_handle_cancelledsz%BaseEventLoop._timer_handle_cancelledc Cst|j}|tkr`|j|tkr`g}|jD]}|jrsb                  ;   Do