a XC?h�!�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZz ddlZWney�dZYn0ddlmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlm Z dZ!dZ"dZ#e$ed�Z%dZ&e'�Z(dd�Z)dd�Z*dd�Z+d,dd�Z,d-dd�Z-dd�Z.e$ed ��r�d!d"�Z/nd#d"�Z/d$d%�Z0Gd&d'�d'ej1�Z2Gd(d)�d)ej3�Z4Gd*d+�d+ej5�Z6dS).�N�)� constants)� coroutines)�events)� exceptions)�futures)� protocols)�sslproto)� staggered)�tasks)� transports)�trsock)�logger)� BaseEventLoop�Server�dg�?�AF_INET6i�QcCs0|j}tt|dd�tj�r$t|j�St|�SdS)N�__self__)Z _callback� isinstance�getattrr �Task�reprr�str)�handle�cb�r�8/opt/alt/python39/lib64/python3.9/asyncio/base_events.py�_format_handleJs rcCs(|tjkrdS|tjkrdSt|�SdS)Nzz)� subprocess�PIPE�STDOUTr)�fdrrr� _format_pipeSs   r"cCsJttd�std��n2z|�tjtjd�WntyDtd��Yn0dS)N� SO_REUSEPORTz)reuse_port not supported by socket modulerzTreuse_port not supported by socket module, SO_REUSEPORT defined but not implemented.)�hasattr�socket� ValueError� setsockopt� SOL_SOCKETr#�OSError��sockrrr�_set_reuseport\s    r,c Cs�ttd�sdS|dtjtjhvs(|dur,dS|tjkr>tj}n|tjkrPtj}ndS|durbd}nVt|t�rz|dkrzd}n>t|t�r�|dkr�d}n&z t |�}Wnt t fy�YdS0|tj kr�tj g}tr�|�tj�n|g}t|t�r�|�d�}d|v�rdS|D]r}zVt�||�t�rH|tjk�rH|||d||||ffWS|||d||ffWSWnt�yvYn0�qdS)N� inet_ptonr��Zidna�%)r$r%� IPPROTO_TCPZ IPPROTO_UDP� SOCK_STREAM� SOCK_DGRAMr�bytesr�int� TypeErrorr&� AF_UNSPEC�AF_INET� _HAS_IPv6�appendr�decoder-r)) �host�port�family�type�protoZflowinfoZscopeidZafs�afrrr� _ipaddr_infogsN �         rBcCs�t��}|D]*}|d}||vr(g||<||�|�q t|���}g}|dkr||�|dd|d��|dd|d�=|�dd�tj�tj |��D��|S)Nrrcss|]}|dur|VqdS�Nr)�.0�arrr� �s�z(_interleave_addrinfos..) � collections� OrderedDictr:�list�values�extend� itertools�chain� from_iterable� zip_longest)Z addrinfosZfirst_address_family_countZaddrinfos_by_family�addrr>Zaddrinfos_listsZ reorderedrrr�_interleave_addrinfos�s"  ��rQcCs4|��s"|��}t|ttf�r"dSt�|���dSrC)� cancelled� exceptionr� SystemExit�KeyboardInterruptrZ _get_loop�stop)�fut�excrrr�_run_until_complete_cb�s rY� TCP_NODELAYcCs@|jtjtjhvr<|jtjkr<|jtjkr<|�tjtj d�dS�Nr) r>r%r8rr?r2r@r1r'rZr*rrr� _set_nodelay�s  � �r\cCsdSrCrr*rrrr\�scCs tdurt|tj�rtd��dS)Nz"Socket cannot be of type SSLSocket)�sslrZ SSLSocketr6r*rrr�_check_ssl_socket�sr^c@sTeZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd d�Z dd�Z dd�Z dS)�_SendfileFallbackProtocolcCsht|tj�std��||_|��|_|��|_|j |_ |� �|� |�|j r^|jj ��|_nd|_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)�self�transprrr�__init__�s    z"_SendfileFallbackProtocol.__init__c�s2|j��rtd��|j}|dur$dS|IdHdS)NzConnection closed by peer)r`� is_closing�ConnectionErrorrh)rirWrrr�drain�s  z_SendfileFallbackProtocol.draincCs td��dS)Nz?Invalid state: connection should have been established already.�� RuntimeError)ri� transportrrr�connection_made�sz)_SendfileFallbackProtocol.connection_madecCs@|jdur0|dur$|j�td��n |j�|�|j�|�dS)NzConnection is closed by peer)rh� set_exceptionrmra�connection_lost)rirXrrrrt�s � z)_SendfileFallbackProtocol.connection_lostcCs |jdurdS|jj��|_dSrC)rhr`rfrg�rirrr� pause_writing�s z'_SendfileFallbackProtocol.pause_writingcCs$|jdurdS|j�d�d|_dS)NF)rh� set_resultrurrr�resume_writing�s  z(_SendfileFallbackProtocol.resume_writingcCs td��dS�Nz'Invalid state: reading should be pausedro)ri�datarrr� data_receivedsz'_SendfileFallbackProtocol.data_receivedcCs td��dSryrorurrr� eof_receivedsz&_SendfileFallbackProtocol.eof_receivedc�sF|j�|j�|jr|j��|jdur2|j��|jrB|j��dSrC) r`rerarb�resume_readingrh�cancelrcrxrurrr�restore s   z!_SendfileFallbackProtocol.restoreN) �__name__� __module__� __qualname__rkrnrrrtrvrxr{r|rrrrrr_�s r_c@sxeZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd d�Z dd�Z e dd��Z dd�Z dd�Zdd�Zdd�ZdS)rcCs@||_||_d|_g|_||_||_||_||_d|_d|_ dS)NrF) rf�_sockets� _active_count�_waiters�_protocol_factory�_backlog� _ssl_context�_ssl_handshake_timeout�_serving�_serving_forever_fut)ri�loop�sockets�protocol_factoryZ ssl_context�backlog�ssl_handshake_timeoutrrrrkszServer.__init__cCsd|jj�d|j�d�S)N�)� __class__r�r�rurrr�__repr__%szServer.__repr__cCs|jd7_dSr[)r�rurrr�_attach(szServer._attachcCs.|jd8_|jdkr*|jdur*|��dS)Nrr)r�r��_wakeuprurrr�_detach,szServer._detachcCs,|j}d|_|D]}|��s|�|�qdSrC)r��donerw)ri�waiters�waiterrrrr�2s zServer._wakeupc CsJ|jr dSd|_|jD].}|�|j�|j�|j||j||j|j�qdS�NT) r�r�Zlistenr�rf�_start_servingr�r�r�)rir+rrrr�9s    �zServer._start_servingcCs|jSrC)rfrurrr�get_loopCszServer.get_loopcCs|jSrC)r�rurrr� is_servingFszServer.is_servingcCs"|jdurdStdd�|jD��S)Nrcss|]}t�|�VqdSrC)r ZTransportSocket)rD�srrrrFMr.z!Server.sockets..)r��tuplerurrrr�Is zServer.socketscCsn|j}|durdSd|_|D]}|j�|�qd|_|jdurX|j��sX|j��d|_|jdkrj|��dS)NFr) r�rfZ _stop_servingr�r�r�r~r�r�)rir�r+rrr�closeOs �  z Server.closec�s|��t�d�IdHdS)Nr)r�r �sleeprurrr� start_servingbszServer.start_servingc �s�|jdurtd|�d���|jdur4td|�d���|��|j��|_zRz|jIdHWn6tjy�z|��|� �IdHW�n�0Yn0Wd|_nd|_0dS)Nzserver z, is already being awaited on serve_forever()z is closed) r�rpr�r�rfrgrZCancelledErrorr�� wait_closedrurrr� serve_foreverhs   �  zServer.serve_foreverc�s<|jdus|jdurdS|j��}|j�|�|IdHdSrC)r�r�rfrgr:)rir�rrrr�}s   zServer.wait_closedN)r�r�r�rkr�r�r�r�r�r�r��propertyr�r�r�r�r�rrrrrs   rc @sheZdZdd�Zdd�Zdd�Zdd�d d �Zd d �Zd d�Zd�ddd�dd�Z d�ddddddd�dd�Z d�dd�Z d�dd�Z d�dd�Z d�dd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Zejfd=d>�Z d?d@�Z!dAdB�Z"ddC�dDdE�Z#ddC�dFdG�Z$ddC�dHdI�Z%dJdK�Z&dLdM�Z'dNdO�Z(ddC�dPdQ�Z)dRdS�Z*dTdU�Z+dVdW�Z,dXdXdXdXdY�dZd[�Z-d�d\d]�Z.d�dd^�d_d`�Z/dadb�Z0dcdd�Z1dedf�Z2d�dgdh�Z3d�ddXdXdXdddddddi� djdk�Z4d�dldm�Z5d�dd^�dndo�Z6dpdq�Z7drds�Z8ddddt�dudv�Z9d�dXdXdXe:ddddw�dxdy�Z;dXed|d}�Z?d�e$r.z4BaseEventLoop.shutdown_asyncgens..)Zreturn_exceptionsr�z;an error occurred during closing of asynchronous generator )�messagerSZasyncgen) r��lenr�rI�clearr �_gather�zipr� Exception�call_exception_handler)riZ closing_agensZresults�resultr�rrr�shutdown_asyncgenss&    � ��z BaseEventLoop.shutdown_asyncgensc�s\d|_|jdurdS|��}tj|j|fd�}|��z|IdHW|��n |��0dS)NT)�targetr�)r�r�rg� threadingZThread� _do_shutdown�start�join)ri�future�threadrrr�shutdown_default_executor1s  z'BaseEventLoop.shutdown_default_executorc CsXz |jjdd�|�|jd�Wn2tyR}z|�|j|�WYd}~n d}~00dS)NT��wait)r��shutdownr�rwr�rs)rirZexrrrr>s zBaseEventLoop._do_shutdowncCs(|��rtd��t��dur$td��dS)Nz"This event loop is already runningz7Cannot run the event loop while another loop is running)r�rprZ_get_running_looprurrr�_check_runningEs  �zBaseEventLoop._check_runningc Cs�|��|��|�|j�t��|_t��}tj |j |j d�zJt � |�|��|jrLq^qLWd|_d|_t � d�|�d�tj |�n,d|_d|_t � d�|�d�tj |�0dS)N)� firstiter� finalizerF)r�r �_set_coroutine_origin_tracking�_debugr� get_identr��sys�get_asyncgen_hooks�set_asyncgen_hooksr�r�rZ_set_running_loop� _run_oncer�)riZold_agen_hooksrrr� run_foreverLs.  �    �  zBaseEventLoop.run_foreverc Cs�|��|��t�|� }tj||d�}|r4d|_|�t�zFz |� �Wn*|rp|� �rp|� �sp|� ��Yn0W|� t�n |� t�0|� �s�td��|��S)Nr�Fz+Event loop stopped before Future completed.)r�r rZisfuturer Z ensure_futureZ_log_destroy_pendingZadd_done_callbackrYrr�rRrSZremove_done_callbackrpr�)rirZnew_taskrrr�run_until_completecs"     z BaseEventLoop.run_until_completecCs d|_dSr�)r�rurrrrV�szBaseEventLoop.stopcCsp|��rtd��|jrdS|jr,t�d|�d|_|j��|j��d|_ |j }|durld|_ |j dd�dS)Nz!Cannot close a running event loopzClose %rTFr) r�rpr�rr�debugr�r�r�r�r�r �ri�executorrrrr��s   zBaseEventLoop.closecCs|jSrC)r�rurrrr��szBaseEventLoop.is_closedcCs0|��s,|d|��t|d�|��s,|��dS)Nzunclosed event loop r�)r�r�r�r�)riZ_warnrrr�__del__�szBaseEventLoop.__del__cCs |jduSrC)r�rurrrr��szBaseEventLoop.is_runningcCst��SrC)r�r�rurrrr��szBaseEventLoop.time)�contextcGs4|j|��||g|�Rd|i�}|jr0|jd=|S)Nrr�)�call_atr�r�)riZdelay�callbackrr��timerrrr� call_later�s �zBaseEventLoop.call_latercGsZ|��|jr"|��|�|d�t�|||||�}|jrB|jd=t�|j |�d|_ |S)Nrr�T) r�r� _check_thread�_check_callbackrZ TimerHandler��heapq�heappushr�)ri�whenrrr�rrrrr�s zBaseEventLoop.call_atcGsB|��|jr"|��|�|d�|�|||�}|jr>|jd=|S)N� call_soonr�)r�rr r!� _call_soonr��rirrr�rrrrr%�s  zBaseEventLoop.call_sooncCsDt�|�st�|�r$td|�d���t|�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�)rZHandler�r�r:)rirr�rrrrrr&s  zBaseEventLoop._call_sooncCs,|jdurdSt��}||jkr(td��dS)NzMNon-thread-safe operation invoked on an event loop other than the current one)r�rrrp)riZ thread_idrrrr  s  �zBaseEventLoop._check_threadcGsB|��|jr|�|d�|�|||�}|jr6|jd=|��|S)Nr�r�)r�rr!r&r�r�r'rrrr�s z"BaseEventLoop.call_soon_threadsafecGsh|��|jr|�|d�|durL|j}|��|durLtjjdd�}||_tj|j |g|�R�|d�S)N�run_in_executorZasyncio)Zthread_name_prefixr�) r�rr!r�r�� concurrentr�ThreadPoolExecutorZ wrap_futureZsubmit)rir�funcr�rrrr)%s ��zBaseEventLoop.run_in_executorcCs&t|tjj�st�dtd�||_dS)Nz{Using the default executor that is not an instance of ThreadPoolExecutor is deprecated and will be prohibited in Python 3.9�)rr*rr+r�r��DeprecationWarningr�rrrr�set_default_executor5s �z"BaseEventLoop.set_default_executorc Cs�|�d|��g}|r$|�d|���|r8|�d|���|rL|�d|���|r`|�d|���d�|�}t�d|�|��}t�||||||�} |��|} d|�d | d d �d | ��}| |jkr�t�|�n t�|�| S) N�:zfamily=ztype=zproto=zflags=�, zGet address info %szGetting address info z took g@�@z.3fzms: ) r:rrrr�r%� getaddrinfor��info) rir<r=r>r?r@�flags�msg�t0�addrinfo�dtrrr�_getaddrinfo_debug>s&      z BaseEventLoop._getaddrinfo_debugr�r>r?r@r4c �s2|jr|j}ntj}|�d|||||||�IdHSrC)rr9r%r2r))rir<r=r>r?r@r4Z getaddr_funcrrrr2Vs �zBaseEventLoop.getaddrinfoc�s|�dtj||�IdHSrC)r)r%� getnameinfo)riZsockaddrr4rrrr;`s �zBaseEventLoop.getnameinfo)�fallbackc �s�|jr|��dkrtd��t|�|�||||�z|�||||�IdHWStjyv}z|sb�WYd}~n d}~00|�||||�IdHS)Nrzthe socket must be non-blocking) rZ gettimeoutr&r^�_check_sendfile_params�_sock_sendfile_nativer�SendfileNotAvailableError�_sock_sendfile_fallback)rir+�file�offset�countr<rXrrr� sock_sendfileds� �zBaseEventLoop.sock_sendfilec�st�d|�d|�d���dS)Nz-syscall sendfile is not available for socket z and file z combination�rr?�rir+rArBrCrrrr>ss ��z#BaseEventLoop._sock_sendfile_nativec �s�|r|�|�|rt|tj�ntj}t|�}d}z�|rNt|||�}|dkrNq�t|�d|�}|�d|j|�IdH} | szq�|�||d| ��IdH|| 7}q2|W|dkr�t |d�r�|�||�Sn&|dk�r�t |d��r�|�||�0dS)Nr�seek) rG�minrZ!SENDFILE_FALLBACK_READBUFFER_SIZE� bytearray� memoryviewr)�readintoZ sock_sendallr$) rir+rArBrC� blocksize�buf� total_sent�view�readrrrr@zs6 �� ��z%BaseEventLoop._sock_sendfile_fallbackcCs�dt|dd�vrtd��|jtjks,td��|durbt|t�sLtd�|���|dkrbtd�|���t|t�sztd�|���|dkr�td�|���dS)N�b�modez$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%r2rr5r6�formatrFrrrr=�s2  �� ����z$BaseEventLoop._check_sendfile_paramsc �sDg}|�|�|\}}}}} d} z�tj|||d�} | �d�|dur�|D]t\}}}}} z| �| �Wq�WqHty�} z8d| �d| j����} t| j| �} |�| �WYd} ~ qHd} ~ 00qH|���|� | | �IdH| WSt�y } z*|�| �| du�r | � ��WYd} ~ n(d} ~ 0| du�r8| � ��Yn0dS)N�r>r?r@Fz*error while attempting to bind on address �: ) r:r%� setblocking�bindr)�strerror�lower�errno�pop� sock_connectr�)rirZ addr_infoZlocal_addr_infosZ my_exceptionsr>�type_r@�_r�r+ZladdrrXr5rrr� _connect_sock�sB    ��� "   zBaseEventLoop._connect_sock) r]r>r@r4r+� local_addrr�r��happy_eyeballs_delay� interleavec  �sz| dur|std��| dur0|r0|s,td��|} | durD|sDtd��|durTt|�| durh| durhd} |dusz|du�r|dur�td���j||f|tj||�d�IdH}|s�td��| dur�j| |tj||�d�IdH��s�td��nd�| r�t|| �}g�| du�rV|D]B}z ���|��IdH}W�q�Wnt�yNY�qYn0�qn.tj ���fdd �|D�| �d �IdH\}}}|du�r.d d ��D��t ��dk�r��d �nJt �d ��t �fdd ��D���r��d �td� d�dd ��D�����n.|du�rtd��|jtjk�r.td|�����j|||| | d�IdH\}}�j�rr|�d�}t�d|||||�||fS)Nz+server_hostname is only meaningful with sslz:You must set server_hostname when using ssl without a host�1ssl_handshake_timeout is only meaningful with sslr�8host/port and sock can not be specified at the same time�r>r?r@r4r��!getaddrinfo() returned empty listc3s |]}t��j�|��VqdSrC)� functools�partialr_)rDr7)r� laddr_infosrirrrF!s��z2BaseEventLoop.create_connection..r�cSsg|]}|D]}|�q qSrr)rD�subrXrrrr�'r.z3BaseEventLoop.create_connection..rc3s|]}t|��kVqdSrC�r�rDrX)�modelrrrF-r.zMultiple exceptions: {}r1css|]}t|�VqdSrCrkrlrrrrF2r.z5host and port was not specified and no sock specified�"A Stream Socket was expected, got )r�r%z%r connected to %s:%r: (%r, %r))r&r^�_ensure_resolvedr%r2r)rQr_r Zstaggered_racer�r�allrSrr?�_create_connection_transportr�get_extra_inforr)rir�r<r=r]r>r@r4r+r`r�r�rarb�infosr7r^rqr�r)rrirmrir�create_connection�s�   �� � �    �  ��   � ���  �zBaseEventLoop.create_connectionc �s�|�d�|�}|��}|rHt|t�r*dn|} |j||| ||||d�} n|�|||�} z|IdHWn| ���Yn0| |fS)NF�r�r�r�)rVrgr�boolr�r�r�) rir+r�r]r�r�r�r�r�r�rqrrrrqMs" �z*BaseEventLoop._create_connection_transportc �s�|��rtd��t|dtjj�}|tjjur:td|����|tjjur�z|�||||�IdHWStj y�}z|sv�WYd}~n d}~00|s�td|����|� ||||�IdHS)NzTransport is closingZ_sendfile_compatiblez(sendfile is not supported for transport zHfallback is disabled and native sendfile is not supported for transport ) rlrprrZ _SendfileModeZ UNSUPPORTEDZ TRY_NATIVE�_sendfile_nativerr?�_sendfile_fallback)rirqrArBrCr<rRrXrrr�sendfilegs4� � � ���zBaseEventLoop.sendfilec�st�d��dS)Nz!sendfile syscall is not supportedrE)rirjrArBrCrrrrw�s�zBaseEventLoop._sendfile_nativec �s||r|�|�|rt|d�nd}t|�}d}t|�}�z |r�t|||�}|dkr�|W|dkrvt|d�rv|�||�|��IdHSt|�d|�} |�d|j| �IdH} | s�|W|dkr�t|d�r�|�||�|��IdHS|� �IdH|� | d| ��|| 7}q8W|dk�r4t|d��r4|�||�|��IdHn4|dk�rht|d��rh|�||�|��IdH0dS)Ni@rrG) rGrHrIr_r$rrJr)rKrn�write) rirjrArBrCrLrMrNr@rOrPrrrrx�s@  �� �z BaseEventLoop._sendfile_fallbackruc �s�tdurtd��t|tj�s*td|����t|dd�sFtd|�d���|��}tj|||||||dd�}|� �|� |�|� |j |�} |� |j �} z|IdHWn,ty�|��| ��| ���Yn0|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())r�r�)r]rprZ SSLContextr6rrgr Z SSLProtocolrdrer%rrr}� BaseExceptionr�r~Z_app_transport) rirqr�r�r�r�r�r�Z ssl_protocolZ conmade_cbZ resume_cbrrr� start_tls�s>  ��  ��   zBaseEventLoop.start_tls)r>r@r4� reuse_address� reuse_port�allow_broadcastr+c �s| dur�| jtjkr"td| �����s>�s>|s>|s>|s>|s>| r~t��|||||| d�} d�dd�| ��D��} td| �d���| �d�d} �n�s��s�|d kr�td ��||fd ff}�n�ttd ��r�|tj k�r���fD]}|dur�t |t �s�t d ��qڈ�rx�d dv�rxz"t �t� ��j��r.t���WnFt�yDYn4t�yv}zt�d�|�WYd}~n d}~00||f��fff}n�i}d �fd�ffD]�\}}|du�r�t |t��r�t|�dk�s�t d��|j||tj|||d�IdH}|�std��|D]:\}}}}}||f}||v�r0ddg||<||||<�q�q���fdd�|��D�}|�sjtd��g}|tu�r�|�r�td��ntjdtdd�|D]�\\}}\}}d} d} zxtj|tj|d�} |�r�t| �| �r�| �tjtj d�| �d���r| �!|���r*| �s&|�"| |�IdH|} Wn`t�yn}z(| du�rP| �#�|�$|�WYd}~n.d}~0| du�r�| �#��Yn0�q��q�|d �|�}|�%�}|�&| || |�}|j'�r���r�t�(d��||�nt�)d�||�z|IdHWn|�#��Yn0||fS)NzA UDP Socket was expected, got )r`� remote_addrr>r@r4r}r~rr1css$|]\}}|r|�d|��VqdS)�=Nr)rD�k�vrrrrF�r.z9BaseEventLoop.create_datagram_endpoint..zKsocket modifier keyword arguments can not be used when sock is specified. (�)Frzunexpected address family)NN�AF_UNIXzstring is expected)r�z2Unable to check or remove stale UNIX socket %r: %rrr-z2-tuple is expectedrerfcs8g|]0\}}�r|ddus�r,|ddus||f�qS)rNrr)rD�keyZ addr_pair�r`r�rrr�&s�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.)� stacklevelrTz@Datagram endpoint local_addr=%r remote_addr=%r created: (%r, %r)z2Datagram endpoint remote_addr=%r created: (%r, %r))*r?r%r3r&�dictr�itemsrVr$r�rrr6�stat�S_ISSOCK�os�st_mode�remove�FileNotFoundErrorr)r�errorr�r�ro�_unsetr�r�r.r,r'r(Z SO_BROADCASTrWr\r�r:rgr�rr3r) rir�r`r�r>r@r4r}r~rr+ZoptsZproblemsZr_addrZaddr_pairs_inforP�errZ addr_infos�idxrsZfamr^Zpror�r�rZ local_addressZremote_addressrXr�r�rqrr�r�create_datagram_endpoint�s ���������   �� �    �  �� � �     ���z&BaseEventLoop.create_datagram_endpointc �s^|dd�\}}t|||||g|dd��R�} | dur>| gS|j||||||d�IdHSdS)Nr-r:)rBr2) rir�r>r?r@r4r�r<r=r3rrrrots  �zBaseEventLoop._ensure_resolvedc�s8|j||f|tj||d�IdH}|s4td|�d���|S)N)r>r?r4r�z getaddrinfo(z) returned empty list)ror%r2r))rir<r=r>r4rsrrr�_create_server_getaddrinfo�s � z(BaseEventLoop._create_server_getaddrinfor) r>r4r+r�r]r}r~r�r�c  �s�t|t�rtd��| dur*|dur*td��|dur:t|�|dusL�du�rL|dur\td��| durxtjdkovtjdk} g} |dkr�dg}n$t|t �s�t|t j j �s�|g}n|}����fdd�|D�}t j|d �i�IdH}ttj�|��}d }�z8|D�]}|\}}}}}zt�|||�}Wn6tj�yV�j�rNtjd |||d d �Yq�Yn0| �|�| �rz|�tjtjd �| �r�t|�t�r�|tjk�r�ttd��r�|�tj tj!d �z|�"|�Wq�t#�y}z(t#|j$d||j%�&�f�d�WYd}~q�d}~00q�d }W|�sJ| D]}|�'��qn|�sH| D]}|�'��q80n4|du�r^td��|j(tj)k�rztd|����|g} | D]}|�*d ��q�t+�| |||| �}| �r�|�,�t �-d�IdH�j�r�t�.d|�|S)Nz*ssl argument must be an SSLContext or Nonercrd�posix�cygwinr/csg|]}�j|���d��qS))r>r4)r�)rDr<�r>r4r=rirrr��s� �z/BaseEventLoop.create_server..r�Fz:create_server() failed to create socket.socket(%r, %r, %r)T��exc_info� IPPROTO_IPV6z0error while attempting to bind on address %r: %sz)Neither host/port nor sock were specifiedrnrz %r is serving)/rrvr6r&r^r�r�r�platformrrG�abc�Iterabler r��setrLrMrNr%r�rr�warningr:r'r(Z SO_REUSEADDRr,r9rr$r�Z IPV6_V6ONLYrWr)rZrXrYr�r?r2rVrr�r�r3)rir�r<r=r>r4r+r�r]r}r~r�r�r�ZhostsZfsrsZ completed�resrAZsocktyper@Z canonnameZsar�r�rr�r� create_server�s� ��  �� �   ���� ��� � zBaseEventLoop.create_server)r]r�c�s�|jtjkrtd|����|dur.|s.td��|dur>t|�|j|||dd|d�IdH\}}|jr~|�d�}t� d|||�||fS)Nrnrcr/T)r�r�r%z%r handled: (%r, %r)) r?r%r2r&r^rqrrrrr)rir�r+r]r�rqr�rrr�connect_accepted_sockets  � � z%BaseEventLoop.connect_accepted_socketc�sd|�}|��}|�|||�}z|IdHWn|���Yn0|jr\t�d|��||�||fS)Nz Read pipe %r connected: (%r, %r))rgr�r�rrr�fileno�rir�r�r�r�rqrrr�connect_read_pipe s �zBaseEventLoop.connect_read_pipec�sd|�}|��}|�|||�}z|IdHWn|���Yn0|jr\t�d|��||�||fS)Nz!Write pipe %r connected: (%r, %r))rgr�r�rrrr�r�rrr�connect_write_pipe0s �z BaseEventLoop.connect_write_pipecCs�|g}|dur"|�dt|����|durJ|tjkrJ|�dt|����n8|durf|�dt|����|dur�|�dt|����t�d�|��dS)Nzstdin=zstdout=stderr=zstdout=zstderr=� )r:r"rr rrr)rir5r�r�r�r3rrr�_log_subprocess@szBaseEventLoop._log_subprocess) r�r�r��universal_newlinesr�r��encoding�errors�textc �s�t|ttf�std��|r"td��|s.td��|dkr>td��| rJtd��| durZtd��| durjtd��|�} d}|jr�d |}|�||||�|j| |d ||||fi| ��IdH}|jr�|dur�t�d ||�|| fS) Nzcmd must be a string� universal_newlines must be Falsezshell must be Truer�bufsize must be 0�text must be False�encoding must be None�errors must be Nonezrun shell command %rT�%s: %r) rr4rr&rr�r�rr3)rir��cmdr�r�r�r�r�r�r�r�r�r�r�� debug_logrqrrr�subprocess_shellMs6�� zBaseEventLoop.subprocess_shellc �s�|r td��|rtd��|dkr(td��| r4td��| durDtd��| durTtd��|f| }|�}d}|jr�d|��}|�||||�|j||d ||||fi| ��IdH}|jr�|dur�t�d ||�||fS) Nr�zshell must be Falserr�r�r�r�zexecute program Fr�)r&rr�r�rr3)rir�Zprogramr�r�r�r�r�r�r�r�r�r�r�Z popen_argsr�r�rqrrr�subprocess_execqs6   �� zBaseEventLoop.subprocess_execcCs|jSrC)r�rurrr�get_exception_handler�sz#BaseEventLoop.get_exception_handlercCs(|durt|�std|����||_dS)Nz+A callable object or None is expected, got )r�r6r�)riZhandlerrrr�set_exception_handler�s �z#BaseEventLoop.set_exception_handlerc Cs|�d�}|sd}|�d�}|dur6t|�||jf}nd}d|vr`|jdur`|jjr`|jj|d<|g}t|�D]�}|dvr|qn||}|dkr�d�t�|��}d }||� �7}n2|dkr�d�t�|��}d }||� �7}nt |�}|� |�d |���qnt j d �|�|d �dS)Nr�z!Unhandled exception in event looprSFZsource_tracebackZhandle_traceback>r�rSr/z+Object created at (most recent call last): z+Handle created at (most recent call last): rU� r�)�getr?� __traceback__r�r��sortedr� traceback� format_list�rstriprr:rr�) rirr�rSr�Z log_linesr��value�tbrrr�default_exception_handler�s<  ��� z'BaseEventLoop.default_exception_handlerc Cs�|jdurRz|�|�Wq�ttfy0�Yq�tyNtjddd�Yq�0n�z|�||�Wn�ttfyz�Ynrty�}zZz|�d||d��Wn6ttfy��Yn ty�tjddd�Yn0WYd}~n d}~00dS)Nz&Exception in default exception handlerTr�z$Unhandled error in exception handler)r�rSrzeException in default exception handler while handling an unexpected error in custom exception handler)r�r�rTrUr{rr�)rirrXrrrr��s4  ��  �z$BaseEventLoop.call_exception_handlercCs|jr dS|j�|�dSrC)� _cancelledr�r:�rirrrr� _add_callbackszBaseEventLoop._add_callbackcCs|�|�|��dSrC)r�r�r�rrr�_add_callback_signalsafes z&BaseEventLoop._add_callback_signalsafecCs|jr|jd7_dSr[)r�r�r�rrr�_timer_handle_cancelled!sz%BaseEventLoop._timer_handle_cancelledc Cs�t|j�}|tkr`|j|tkr`g}|jD]}|jrr@r=r_rtrqryrwrxr|r�r�r%r2ror�r7Z AI_PASSIVEr�r�r�r�r�rrr�r�r�r�r�r�r�r�r�rrr�r�rrrrr�s� �� � � � �    &    � �  %�� � � /� /�� �  �� z� � %� "29Nr)rr)r)7rG�collections.abcZconcurrent.futuresr*rgr"rLr�r%r�rrr�r�rr�r�r]� ImportErrorr/rrrrrrr r r r r �logr�__all__r�r�r$r9r��objectr�rr"r,rBrQrYr\r^�Protocolr_ZAbstractServerrZAbstractEventLooprrrrr�sd                   ;   Do