o ?Oge"@s ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZzddlZWn eyRdZYnwddlmZddlmZddlmZddlmZddlmZddlmZdd 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/d$d%Z0Gd&d'd'ej1Z2Gd(d)d)ej3Z4Gd*d+d+ej5Z6dS).N) constants) coroutines)events) exceptions)futures) protocols)sslproto) staggered)tasks) transports)trsock)logger) BaseEventLoopServerdg?AF_INET6iQcCs,|j}tt|ddtjrt|jSt|S)N__self__)Z _callback isinstancegetattrr Taskreprrstr)handlecbr:/opt/alt/python310/lib64/python3.10/asyncio/base_events.py_format_handleJs rcCs$|tjkrdS|tjkrdSt|S)Nzz) subprocessPIPESTDOUTr)fdrrr _format_pipeSs  r"cCsBttds tdz |tjtjdWdSty tdw)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 CspttdsdS|dtjtjhvs|durdS|tjkrtj}n |tjkr(tj}ndS|dur1d}n+t|tr=|dkr=d}nt|trI|dkrId}nzt |}Wn t t fy[YdSw|tj krntj g}trm|tjn|g}t|tr{|d}d|vrdS|D]2}z't||tr|tjkr|||d||||ffWS|||d||ffWStyYqwdS)N inet_ptonrZidna%)r$r% IPPROTO_TCPZ IPPROTO_UDP SOCK_STREAM SOCK_DGRAMrbytesrint TypeErrorr& AF_UNSPECAF_INET _HAS_IPv6appendrdecoder-r)) hostportfamilytypeprotoZflowinfoZscopeidZafsafrrr _ipaddr_infogsR          rBcCs t}|D]}|d}||vrg||<|||qt|}g}|dkr?||dd|d|dd|d=|ddtjtj |D|S)Nrrcss|] }|dur|VqdSNr).0arrr sz(_interleave_addrinfos..) collections OrderedDictr:listvaluesextend itertoolschain from_iterable zip_longest)Z addrinfosZfirst_address_family_countZaddrinfos_by_familyaddrr>Zaddrinfos_listsZ reorderedrrr_interleave_addrinfoss$  rQcCs4|s|}t|ttfrdSt|dSrC) cancelled exceptionr SystemExitKeyboardInterruptrZ _get_loopstop)futexcrrr_run_until_complete_cbs rY TCP_NODELAYcCsL|jtjtjhvr |jtjkr"|jtjkr$|tjtj ddSdSdSdSNr) r>r%r8rr?r2r@r1r'rZr*rrr _set_nodelays  r\cCsdSrCrr*rrrr\scCs$tdurt|tjrtddSdS)Nz"Socket cannot be of type SSLSocket)sslrZ SSLSocketr6r*rrr_check_ssl_socketsr^c@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)_SendfileFallbackProtocolcCsjt|tjs td||_||_||_|j |_ | | ||j r0|jj |_dSd|_dS)Nz.transport should be _FlowControlMixin instance)rr Z_FlowControlMixinr6 _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__cs4|jr td|j}|durdS|IdHdS)NzConnection closed by peer)r` is_closingConnectionErrorrh)rirWrrrdrains z_SendfileFallbackProtocol.draincCtd)Nz?Invalid state: connection should have been established already. RuntimeError)ri transportrrrconnection_madez)_SendfileFallbackProtocol.connection_madecCs@|jdur|dur|jtdn|j||j|dS)NzConnection is closed by peer)rh set_exceptionrmraconnection_lost)rirXrrrrvs  z)_SendfileFallbackProtocol.connection_lostcCs |jdurdS|jj|_dSrC)rhr`rfrgrirrr pause_writings z'_SendfileFallbackProtocol.pause_writingcCs$|jdurdS|jdd|_dS)NF)rh set_resultrwrrrresume_writings   z(_SendfileFallbackProtocol.resume_writingcCroNz'Invalid state: reading should be pausedrp)ridatarrr data_receivedrtz'_SendfileFallbackProtocol.data_receivedcCror{rprwrrr eof_receivedrtz&_SendfileFallbackProtocol.eof_receivedcsL|j|j|jr|j|jdur|j|jr$|jdSdSrC) r`rerarbresume_readingrhcancelrcrzrwrrrrestore s   z!_SendfileFallbackProtocol.restoreN) __name__ __module__ __qualname__rkrnrsrvrxrzr}r~rrrrrr_s  r_c@sxeZdZddZddZddZddZd d Zd d Zd dZ ddZ e ddZ ddZ ddZddZddZdS)rcCs@||_||_d|_g|_||_||_||_||_d|_d|_ dS)NrF) rf_sockets _active_count_waiters_protocol_factory_backlog _ssl_context_ssl_handshake_timeout_serving_serving_forever_fut)riloopsocketsprotocol_factoryZ ssl_contextbacklogssl_handshake_timeoutrrrrks zServer.__init__cCsd|jjd|jdS)N) __class__rrrwrrr__repr__%szServer.__repr__cCs|jd7_dSr[)rrwrrr_attach(szServer._attachcCs6|jd8_|jdkr|jdur|dSdSdS)Nrr)rr_wakeuprwrrr_detach,s zServer._detachcCs,|j}d|_|D] }|s||qdSrC)rdonery)riwaiterswaiterrrrr2s zServer._wakeupc CsJ|jrdSd|_|jD]}||j|j|j||j||j|jq dSNT) rrZlistenrrf_start_servingrrr)rir+rrrr9s    zServer._start_servingcC|jSrC)rfrwrrrget_loopCzServer.get_loopcCrrC)rrwrrr is_servingFrzServer.is_servingcCs"|jdurdStdd|jDS)Nrcss|]}t|VqdSrC)r ZTransportSocket)rDsrrrrFMsz!Server.sockets..)rtuplerwrrrrIs zServer.socketscCsr|j}|dur dSd|_|D]}|j|qd|_|jdur,|js,|jd|_|jdkr7|dSdS)NFr) rrfZ _stop_servingrrrrrr)rirr+rrrcloseOs    z Server.closecs|tdIdHdS)Nr)rr sleeprwrrr start_servingbszServer.start_servingc s|jdurtd|d|jdurtd|d||j|_z&z|jIdHWntjyEz || IdHWwWd|_dSd|_w)Nzserver z, is already being awaited on serve_forever()z is closed) rrqrrrfrgrZCancelledErrorr wait_closedrwrrr serve_foreverhs&    zServer.serve_forevercs>|jdus |jdur dS|j}|j||IdHdSrC)rrrfrgr:)rirrrrr}s   zServer.wait_closedN)rrrrkrrrrrrrpropertyrrrrrrrrrrs    rc @seZdZddZddZddZddd 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/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Zejfd=d>Z d?d@Z!dAdBZ"ddCdDdEZ#ddCdFdGZ$ddCdHdIZ%dJdKZ&dLdMZ'dNdOZ(ddCdPdQZ)dRdSZ*dTdUZ+dVdWZ,dXdXdXdXdYdZd[Z-dd\d]Z.ddd^d_d`Z/dadbZ0dcddZ1dedfZ2ddgdhZ3 dddXdXdXdddddddi djdkZ4  ddldmZ5ddd^dndoZ6dpdqZ7drdsZ8ddddtdudvZ9 ddXdXdXe:ddddwdxdyZ;dXed|d}Z? de$sz4BaseEventLoop.shutdown_asyncgens..Zreturn_exceptionsz;an error occurred during closing of asynchronous generator )messagerSZasyncgen) rlenrrIclearr gatherzipr Exceptioncall_exception_handler)riZ closing_agensZresultsresultrrrrshutdown_asyncgenss.      z BaseEventLoop.shutdown_asyncgenscs^ d|_|jdur dS|}tj|j|fd}|z |IdHW|dS|w)NT)targetr)rrrg threadingZThread _do_shutdownstartjoin)rifuturethreadrrrshutdown_default_executor0s  z'BaseEventLoop.shutdown_default_executorc Cs|z|jjdd|s||jdWdSWdSty=}z|s2||j|WYd}~dSWYd}~dSd}~ww)NTwait)rshutdownrrryrru)rirZexrrrr =szBaseEventLoop._do_shutdowncCs(|rtdtdurtddS)Nz"This event loop is already runningz7Cannot run the event loop while another loop is running)rrqrZ_get_running_looprwrrr_check_runningFs zBaseEventLoop._check_runningc Cs ||||jt}z5t|_tj |j |j dt | ||jr0nq(Wd|_d|_t d|dtj |dSd|_d|_t d|dtj |w)N) firstiter finalizerTF)rr_set_coroutine_origin_tracking_debugsysget_asyncgen_hooksr  get_identrset_asyncgen_hooksrrrZ_set_running_loop _run_oncer)riZold_agen_hooksrrr run_foreverMs6        zBaseEventLoop.run_foreverc Cs ||t| }tj||d}|rd|_|tz z| Wn|r9| r9| s9| W| tn| tw| sOtd|S)NrFz+Event loop stopped before Future completed.)rrrZisfuturer Z ensure_futureZ_log_destroy_pendingZadd_done_callbackrYrrrRrSZremove_done_callbackrqr)rirZnew_taskrrrrun_until_completees&     z BaseEventLoop.run_until_completecCs d|_dSr)rrwrrrrVs zBaseEventLoop.stopcCsv |r td|jrdS|jrtd|d|_|j|jd|_ |j }|dur9d|_ |j dddSdS)Nz!Cannot close a running event loopzClose %rTFr) rrqrrrdebugrrrrrrriexecutorrrrrs    zBaseEventLoop.closecCrrC)rrwrrrrrzBaseEventLoop.is_closedcCs8|s|d|t|d|s|dSdSdS)Nzunclosed event loop r)rrrr)riZ_warnrrr__del__s  zBaseEventLoop.__del__cCs |jduSrC)rrwrrrrs zBaseEventLoop.is_runningcCs tSrC)rrrwrrrrszBaseEventLoop.time)contextcGs6 |j|||g|Rd|i}|jr|jd=|S)Nr%r)call_atrr)riZdelaycallbackr%rtimerrrr call_laterszBaseEventLoop.call_latercGs\ ||jr|||dt|||||}|jr"|jd=t|j |d|_ |S)Nr&rT) rr _check_thread_check_callbackrZ TimerHandlerheapqZheappushr)riwhenr'r%rr(rrrr&s zBaseEventLoop.call_atcGsD ||jr|||d||||}|jr |jd=|S)N call_soonr)rrr*r+ _call_soonrrir'r%rrrrrr.s  zBaseEventLoop.call_sooncCsDt|s t|rtd|dt|s td|d|dS)Nzcoroutines cannot be used with z()z"a callable object was expected by z(), got )rZ iscoroutineZiscoroutinefunctionr6r)rir'methodrrrr+s  zBaseEventLoop._check_callbackcCs.t||||}|jr|jd=|j||S)Nr)rZHandlerrr:)rir'rr%rrrrr/s  zBaseEventLoop._call_sooncCs. |jdurdSt}||jkrtddS)NzMNon-thread-safe operation invoked on an event loop other than the current one)rr rrq)riZ thread_idrrrr* s  zBaseEventLoop._check_threadcGsD ||jr||d||||}|jr|jd=||S)Nrr)rrr+r/rrr0rrrrs z"BaseEventLoop.call_soon_threadsafecGsh||jr ||d|dur&|j}||dur&tjjdd}||_tj|j |g|R|dS)Nrun_in_executorZasyncio)Zthread_name_prefixr) rrr+rr concurrentrThreadPoolExecutorZ wrap_futureZsubmit)rir#funcrrrrr2's 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)rr3rr4rrDeprecationWarningrr"rrrset_default_executor7s  z"BaseEventLoop.set_default_executorc Cs|d|g}|r|d||r|d||r&|d||r0|d|d|}td||}t||||||} ||} d|d | d d d | }| |jkrit|| St|| S) N:zfamily=ztype=zproto=zflags=, zGet address info %szGetting address info z took g@@z.3fzms: ) r:rrr!rr% getaddrinforinfo) rir<r=r>r?r@flagsmsgt0addrinfodtrrr_getaddrinfo_debug@s(      z BaseEventLoop._getaddrinfo_debugrr>r?r@r=c s4|jr|j}ntj}|d|||||||IdHSrC)rrBr%r;r2)rir<r=r>r?r@r=Z getaddr_funcrrrr;Xs zBaseEventLoop.getaddrinfocs|dtj||IdHSrC)r2r% getnameinfo)riZsockaddrr=rrrrDbs  zBaseEventLoop.getnameinfo)fallbackc s|jr|dkrtdt||||||z |||||IdHWStjy<}z |s2WYd}~nd}~ww|||||IdHS)Nrzthe socket must be non-blocking) rZ gettimeoutr&r^_check_sendfile_params_sock_sendfile_nativerSendfileNotAvailableError_sock_sendfile_fallback)rir+fileoffsetcountrErXrrr sock_sendfilefs$   zBaseEventLoop.sock_sendfilecstd|d|d)Nz-syscall sendfile is not available for socket z and file z combinationrrHrir+rJrKrLrrrrGus z#BaseEventLoop._sock_sendfile_nativec s|r|||rt|tjntj}t|}d}zL |r)t|||}|dkr)n(t|d|}|d|j|IdH} | s?n|||d| IdH|| 7}q|W|dkrdt |dre|||SSS|dkrwt |drx|||www)NrTseek) rPminrZ!SENDFILE_FALLBACK_READBUFFER_SIZE bytearray memoryviewr2readintoZ sock_sendallr$) rir+rJrKrL blocksizebuf total_sentviewreadrrrrI|s8  z%BaseEventLoop._sock_sendfile_fallbackcCsdt|ddvr td|jtjkstd|dur1t|ts&td||dkr1td|t|ts=td||dkrHtd|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%r2rr5r6formatrOrrrrFs4   z$BaseEventLoop._check_sendfile_paramsc sZ g}|||\}}}}} d} zzotj|||d} | d|durr|D]<\} }}}} | |kr3q'z| | Wn6tyc} zd| d| j}t| j|} || WYd} ~ q'd} ~ ww|rj|td|d| | | IdH| WWd}}Sty} z|| | dur| d} ~ w| dur| d}}w)Nr>r?r@Fz*error while attempting to bind on address : z&no matching local address with family=z found) r:r% setblockingbindr)strerrorlowererrnopop sock_connectr)rirZ addr_infoZlocal_addr_infosZ my_exceptionsr>Ztype_r@_rr+ZlfamilyZladdrrXr>rrr _connect_socksX        zBaseEventLoop._connect_sock) r]r>r@r=r+ local_addrrrhappy_eyeballs_delay interleavec  sf | dur |s td| dur|r|std|} | dur$|s$td|dur,t|| dur6| dur6d} |dus>|dur|durFtdj||f|tj||dIdH}|s]td| durwj| |tj||dIdHsvtdnd| rt|| }g| dur|D]}z |IdH}Wn tyYqwntj fdd |D| d IdH\}}}|durd d Dz.t dkrψd t d t fdd Drd td ddd Ddwn|durtd|jtjkr td|j|||| | dIdH\}}jr/|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|VqdSrC) functoolspartialrg)rDr@)r laddr_infosrirrrF+s  z2BaseEventLoop.create_connection..rcSsg|] }|D]}|qqSrr)rDsubrXrrrr1sz3BaseEventLoop.create_connection..rc3s|] }t|kVqdSrCrrDrX)modelrrrF8szMultiple exceptions: {}r:css|]}t|VqdSrCrsrtrrrrF=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&r^_ensure_resolvedr%r2r)rQrgr Zstaggered_racerrallr\rr?_create_connection_transportrget_extra_inforr!)rirr<r=r]r>r@r=r+rhrrrirjinfosr@rfrrrr)rrqrurircreate_connections              zBaseEventLoop.create_connectionc s~|d|}|}|r%t|trdn|} |j||| ||||d} n||||} z |IdHW| |fS| )NFrrr)r_rgrboolrrr) rir+rr]rrrrrrrrrrrryZs$  z*BaseEventLoop._create_connection_transportc s |r tdt|dtjj}|tjjurtd||tjjurHz |||||IdHWStj yG}z |s=WYd}~nd}~ww|sQtd|| ||||IdHS)NzTransport is closingZ_sendfile_compatiblez(sendfile is not supported for transport zHfallback is disabled and native sendfile is not supported for transport ) rlrqrrZ _SendfileModeZ UNSUPPORTEDZ TRY_NATIVE_sendfile_nativerrH_sendfile_fallback)rirrrJrKrLrEr[rXrrrsendfilets>     zBaseEventLoop.sendfilecs td)Nz!sendfile syscall is not supportedrN)rirjrJrKrLrrrrszBaseEventLoop._sendfile_nativec s@|r|||rt|dnd}t|}d}t|}zl |rDt|||}|dkrD|W|dkrr@r= reuse_address reuse_portallow_broadcastr+c s | durJ| jtjkrtd| s!s!|s!|s!|s!|s!| rAt|||||| d} ddd| D} td| d| dd} nes^s^|d krVtd ||fd ff}nttd r|tj krfD]}|dur{t |t s{t d qlrd dvrzt t jrtWn!tyYnty}z td|WYd}~nd}~ww||ffff}nZi}d fdffD]<\}}|dur|j||tj|||dIdH}|std|D]\}}}}}||f}||vrddg||<||||<qqʇfdd|D}|stdg}|tur0|r(tdtjdtdd|D]x\\}}\}}d} d} zr@r=rrrr:css&|]\}}|r|d|VqdS)=Nr)rDkvrrrrFs$z9BaseEventLoop.create_datagram_endpoint..zKsocket modifier keyword arguments can not be used when sock is specified. ()Frzunexpected address familyNNAF_UNIXzstring is expected)rz2Unable to check or remove stale UNIX socket %r: %rrrmrncs8g|]\}}r|ddusr|ddus||fqS)rNrr)rDkeyZ addr_pairrhrrrr3s  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.r6) stacklevelr]z@Datagram endpoint local_addr=%r remote_addr=%r created: (%r, %r)z2Datagram endpoint remote_addr=%r created: (%r, %r))(r?r%r3r&dictritemsr_r$rrrr6statS_ISSOCKosst_moderemoveFileNotFoundErrorr)rerrorrw_unsetrrr7r,r'r(Z SO_BROADCASTr`rerr:rgrrr<r!) rirrhrr>r@r=rrrr+ZoptsZproblemsZr_addrZaddr_pairs_inforPerrZ addr_infosidxr{ZfamrfZprorrrZ local_addressZremote_addressrXrrrrrrrcreate_datagram_endpoints                 z&BaseEventLoop.create_datagram_endpointc s\|dd\}}t|||||g|ddR} | dur | gS|j||||||dIdHS)Nr6rC)rBr;) rirr>r?r@r=rr<r=r<rrrrws   zBaseEventLoop._ensure_resolvedcs:|j||f|tj||dIdH}|std|d|S)N)r>r?r=rz getaddrinfo(z) returned empty list)rwr%r2r))rir<r=r>r=r{rrr_create_server_getaddrinfos  z(BaseEventLoop._create_server_getaddrinfor) r>r=r+rr]rrrrc  s t|tr td| dur|durtd|durt||dus(dur|dur0td| dur>tjdko=tjdk} g} |dkrHdg}nt|t sTt|t j j sX|g}n|}fdd|D}t j|IdH}ttj|}d }z|D]v}|\}}}}}z t|||}Wntjyjrtjd |||d d Yq{w| || r|tjtjd | rt|tr|tjkrttd r|tj tj!d z|"|Wq{t#y}zt#|j$d||j%&fdd}~wwd }W|s| D]}|'qn)|s| D]}|'qww|durtd|j(tj)kr(td||g} | D]}|*d q-t+| |||| }| rN|,t -dIdHjrXt.d||S)Nz*ssl argument must be an SSLContext or Nonerkrlposixcygwinr/csg|] }j|dqS))r>r=)r)rDr<r>r=r=rirrrs   z/BaseEventLoop.create_server..Fz: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 specifiedrvrz %r is serving)/rr~r6r&r^rrrplatformrrGabcIterabler rsetrLrMrNr%rrrwarningr:r'r(Z SO_REUSEADDRr,r9rr$rZ IPV6_V6ONLYr`r)rcrarbrr?r2r_rrrr<)rirr<r=r>r=r+rr]rrrrrZhostsZfsr{Z completedresrAZsocktyper@Z canonnameZsarrrrr create_servers           zBaseEventLoop.create_server)r]rcs|jtjkrtd||dur|std|dur t||j|||dd|dIdH\}}|jr@|d}t d|||||fS)Nrvrkr/T)rrr%z%r handled: (%r, %r)) r?r%r2r&r^ryrrzrr!)rirr+r]rrrrrrrconnect_accepted_socket s"    z%BaseEventLoop.connect_accepted_socketc`|}|}||||}z|IdHWn||jr,td|||||fS)Nz Read pipe %r connected: (%r, %r))rgrrrrr!filenorirrrrrrrrrconnect_read_pipe% zBaseEventLoop.connect_read_pipecr)Nz!Write pipe %r connected: (%r, %r))rgrrrrr!rrrrrconnect_write_pipe5rz BaseEventLoop.connect_write_pipecCs|g}|dur|dt||dur%|tjkr%|dt|n|dur3|dt||durA|dt|td|dS)Nzstdin=zstdout=stderr=zstdout=zstderr= )r:r"rr rr!r)rir>rrrr<rrr_log_subprocessEszBaseEventLoop._log_subprocess) rrruniversal_newlinesrrencodingerrorstextc st|ttfs td|rtd|std|dkr td| r&td| dur.td| dur6td|} d}|jrJd |}||||||j| |d ||||fi| IdH}|jrj|durjtd |||| 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) rr4rr&rrrrr<)rircmdrrrrrrrrrrr debug_logrrrrrsubprocess_shellRs8 zBaseEventLoop.subprocess_shellc s|rtd|r td|dkrtd| rtd| dur#td| dur+td|f| }|}d}|jrEd|}||||||j||d ||||fi| IdH}|jre|duretd ||||fS) Nrzshell must be Falserrrrrzexecute program Fr)r&rrrrr<)rirZprogramrrrrrrrrrrrZ popen_argsrrrrrrrsubprocess_execvs8    zBaseEventLoop.subprocess_execcCrrC)rrwrrrget_exception_handlersz#BaseEventLoop.get_exception_handlercCs* |durt|std|||_dS)Nz+A callable object or None is expected, got )rr6r)riZhandlerrrrset_exception_handlers   z#BaseEventLoop.set_exception_handlerc Cs |d}|s d}|d}|durt|||jf}nd}d|vr1|jdur1|jjr1|jj|d<|g}t|D]C}|dvr?q8||}|dkrXdt|}d }|| 7}n|dkrmdt|}d }|| 7}nt |}| |d |q8t j d ||d dS)Nrz!Unhandled exception in event looprSFZsource_tracebackZhandle_traceback>rrSr/z+Object created at (most recent call last): z+Handle created at (most recent call last): r^ r)getr? __traceback__rrsortedr traceback format_listrstriprr:rr) rir%rrSrZ log_linesrvaluetbrrrdefault_exception_handlers<    z'BaseEventLoop.default_exception_handlerc Cs |jdur)z||WdSttfyty(tjdddYdSwz |||WdSttfy<tyz}z3z |d||dWnttfyXtygtjdddYnwWYd}~dSWYd}~dSd}~ww)Nz&Exception in default exception handlerTrz$Unhandled error in exception handler)rrSr%zeException in default exception handler while handling an unexpected error in custom exception handler)rrrTrUrrr)rir%rXrrrrsB       z$BaseEventLoop.call_exception_handlercCs |js |j|dSdSrC) _cancelledrr:rirrrr _add_callbackszBaseEventLoop._add_callbackcCs |||dSrC)rrrrrr_add_callback_signalsafes  z&BaseEventLoop._add_callback_signalsafecCs |jr |jd7_dSdSr[)rrrrrr_timer_handle_cancelled#sz%BaseEventLoop._timer_handle_cancelledc Cs t|j}|tkr1|j|tkr1g}|jD]}|jrd|_q||qt|||_d|_n"|jrS|jdjrS|jd8_t |j}d|_|jrS|jdjs:d}|j s[|j r^d}n|jrs|jdj }t td||t}|j|}||d}||j}|jr|jd}|j |krnt |j}d|_|j ||jst|j }t|D];} |j }|jrq|jrz$||_|} ||| } | |jkrtdt|| Wd|_qd|_w|qd}dS)NFrrzExecuting %s took %.3f seconds)rr_MIN_SCHEDULED_TIMER_HANDLESr%_MIN_CANCELLED_TIMER_HANDLES_FRACTIONrr:r,ZheapifyZheappoprrZ_whenrQmaxrMAXIMUM_SELECT_TIMEOUTZ _selectorZselectrrrangepopleftrrZ_runrrrr) riZ sched_countZ new_scheduledrZtimeoutr-rZend_timeZntodoir?rArrrr(sp                   zBaseEventLoop._run_oncecCsHt|t|jkr dS|rt|_ttjnt|j||_dSrC)r~rr#get_coroutine_origin_tracking_depthr#set_coroutine_origin_tracking_depthrZDEBUG_STACK_DEPTHriZenabledrrrrxs z,BaseEventLoop._set_coroutine_origin_trackingcCrrC)rrwrrrrrzBaseEventLoop.get_debugcCs$||_|r||j|dSdSrC)rrrrrrrrrszBaseEventLoop.set_debugrC)NNNr)r)rN)FN)Vrrrrkrrgrrrrrrrrrrrrrrrr rr rrr rVrrrrr$rrr)r&r.r+r/r*rr2r8rBr;rDrMrGrIrFrgr|ryrrrrrrr%r2rwrr7Z AI_PASSIVErrrrrrrrrrrrrrrrrrrrrrrrrs          &       -   / /     z  % "29P r)rr)r)7rGZcollections.abcZconcurrent.futuresr3ror,rLrr%rrr rrrrrr] ImportErrorr/rrrrrrr r r r r logr__all__rrr$r9robjectrrr"r,rBrQrYr\r^ZProtocolr_ZAbstractServerrZAbstractEventLooprrrrrsj                 ; Do