Edit File: selector_events.cpython-38.opt-2.pyc
U ����@��dT�����������������������@���s*��d�Z�ddlZddlZddlZddlZddlZddlZddlZzddlZW�n�e k r`���dZY�nX�ddl mZ�ddl mZ�ddl m Z �ddl mZ�ddl mZ�dd l mZ�dd l mZ�ddl mZ�ddlmZ�d d��Zdd��ZG�dd��dej�ZG�dd��dejej�ZG�dd��de�ZG�dd��de�ZdS�))�BaseSelectorEventLoop�����N����)�base_events)� constants)�events)�futures)� protocols)�sslproto)� transports)�trsock)�loggerc�����������������C���s8���z|���|�}W�n�tk r$���Y�dS�X�t|j|@��S�d�S��NF)�get_key�KeyError�boolr���)�selector�fdZevent�key��r����</opt/alt/python38/lib64/python3.8/asyncio/selector_events.py�_test_selector_event ���s ����r���c�����������������C���s ���t�d�k rt|�t�j�rtd��d�S�)Nz"Socket cannot be of type SSLSocket)�ssl� isinstanceZ SSLSocket� TypeError)�sockr���r���r����_check_ssl_socket+���s����r���c�����������������������s���e�Zd�ZdR��fdd� ZdSddd�dd�ZdTddddejd�d d �ZdUdd�Z��fd d�Z dd��Z dd��Zdd��Zdd��Z dd��Zdddejfdd�Zdddejfdd�Zddejfdd�Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Zd8d9��Zd:d;��Zd<d=��Z d>d?��Z!d@dA��Z"dBdC��Z#dDdE��Z$dFdG��Z%dHdI��Z&dJdK��Z'dLdM��Z(dNdO��Z)dPdQ��Z*���Z+S�)Vr���Nc��������������������sF���t�������|d�krt���}t�d|jj��||�_|�� ���t ���|�_d�S�)NzUsing selector: %s) �super�__init__� selectorsZDefaultSelectorr����debug� __class__�__name__� _selector�_make_self_pipe�weakrefZWeakValueDictionary�_transports)�selfr����r ���r���r���r���6���s���� zBaseSelectorEventLoop.__init__��extra�serverc����������������C���s���t�|�|||||�S��N)�_SelectorSocketTransport)r&���r����protocol�waiterr)���r*���r���r���r����_make_socket_transport@���s���� ��z,BaseSelectorEventLoop._make_socket_transportF)�server_side�server_hostnamer)���r*����ssl_handshake_timeoutc������������� ���C���s0���t�j|�|||||| d�} t|�|| ||d��| jS�)N)r2���r(���)r ���ZSSLProtocolr,���Z_app_transport)r&���Zrawsockr-���� sslcontextr.���r0���r1���r)���r*���r2���Zssl_protocolr���r���r����_make_ssl_transportE���s�����������z)BaseSelectorEventLoop._make_ssl_transportc�����������������C���s���t�|�|||||�S�r+���)�_SelectorDatagramTransport)r&���r���r-����addressr.���r)���r���r���r����_make_datagram_transportR���s �������z.BaseSelectorEventLoop._make_datagram_transportc��������������������sL���|�����rtd��|����rd�S�|�����t������|�jd�k rH|�j����d�|�_d�S�)Nz!Cannot close a running event loop)Z is_running�RuntimeError� is_closed�_close_self_piper����closer"����r&���r'���r���r���r;���W���s���� zBaseSelectorEventLoop.closec�����������������C���sB���|���|�j�����|�j����d�|�_|�j����d�|�_|��jd8��_d�S�)Nr���)�_remove_reader�_ssock�filenor;����_csock� _internal_fdsr<���r���r���r���r:���b���s���� z&BaseSelectorEventLoop._close_self_pipec�����������������C���sN���t����\|�_|�_|�j�d��|�j�d��|��jd7��_|��|�j���|�j��d�S�)NFr���) �socketZ socketpairr>���r@����setblockingrA����_add_readerr?����_read_from_selfr<���r���r���r���r#���j���s ����z%BaseSelectorEventLoop._make_self_pipec�����������������C���s���d�S�r+���r����r&����datar���r���r����_process_self_datar���s����z(BaseSelectorEventLoop._process_self_datac�����������������C���sX���z"|�j��d�}|sW�qT|��|��W�q��tk r:���Y�q�Y�q��tk rP���Y�qTY�q�X�q�d�S�)Ni���)r>����recvrH����InterruptedError�BlockingIOErrorrF���r���r���r���rE���u���s����z%BaseSelectorEventLoop._read_from_selfc�����������������C���sN���|�j�}|d�krd�S�z|�d��W�n(�tk rH���|�jrDtjddd��Y�nX�d�S�)N�����z3Fail to write a null byte into the self-pipe socketT��exc_info)r@����send�OSError�_debugr���r���)r&���Zcsockr���r���r����_write_to_self����s�����z$BaseSelectorEventLoop._write_to_self�d���c�������������� ���C���s"���|���|���|�j||||||��d�S�r+���)rD���r?����_accept_connection)r&����protocol_factoryr���r3���r*����backlogr2���r���r���r����_start_serving����s���������z$BaseSelectorEventLoop._start_servingc����������� ������C���s��t�|�D�]�}z0|���\}} |�jr0t�d|| |��|�d��W�n��tttfk rZ���Y��d�S��t k r��} �zd| j t jt jt j t jfkr�|��d| t�|�d���|��|�����|��tj|�j||||||��n��W�5�d�} ~ X�Y�qX�d| i}|��||||||�}|��|��qd�S�)Nz#%r got a new connection from %r: %rFz&socket.accept() out of system resource)�message� exceptionrB����peername)�range�acceptrQ���r���r���rC���rK���rJ����ConnectionAbortedErrorrP����errnoZEMFILEZENFILEZENOBUFSZENOMEM�call_exception_handlerr����TransportSocketr=���r?���Z call_laterr���ZACCEPT_RETRY_DELAYrW����_accept_connection2Zcreate_task) r&���rU���r���r3���r*���rV���r2����_�conn�addr�excr)���r\���r���r���r���rT�������sV��������������������z(BaseSelectorEventLoop._accept_connectionc�������������� �������s����d�}d�}zt|��}|�����} |r8|�j|||| d|||d�}n|�j||| ||d�}z| I�d�H��W�n�tk rx���|������Y�nX�W�nt�ttfk r������Y�n\�tk r��} �z>|�jr�d| d�}|d�k r�||d<�|d�k r�||d<�|��|��W�5�d�} ~ X�Y�nX�d�S�)NT)r.���r0���r)���r*���r2���)r.���r)���r*���z3Error on transport creation for incoming connection)rX���rY���r-���� transport) � create_futurer4���r/���� BaseExceptionr;���� SystemExit�KeyboardInterruptrQ���r_���)r&���rU���rc���r)���r3���r*���r2���r-���rf���r.���re����contextr���r���r���ra�������sP���������������z)BaseSelectorEventLoop._accept_connection2c�������������� ���C���s����|}t�|t�sJzt|����}W�n*�tttfk rH���td|���d��Y�nX�z|�j|�}W�n�tk rl���Y�nX�|���s�t d|�d|����d�S�)NzInvalid file object: zFile descriptor z is used by transport ) r����intr?����AttributeErrorr���� ValueErrorr%���r���� is_closingr8���)r&���r���r?���rf���r���r���r����_ensure_fd_no_transport����s���� �z-BaseSelectorEventLoop._ensure_fd_no_transportc����������� ��� ���G���s����|������t�|||�d��}z|�j�|�}W�n*�tk rR���|�j�|tj|d�f��Y�n>X�|j|j �}\}}|�j� ||tjB�||f��|d�k r�|����d�S�r+���)� _check_closedr����Handler"���r���r����registerr���� EVENT_READrG����modify�cancel� r&���r����callback�argsZhandler����mask�reader�writerr���r���r���rD�����s����� �z!BaseSelectorEventLoop._add_readerc�����������������C���s����|�����rdS�z|�j�|�}W�n�tk r2���Y�dS�X�|j|j�}\}}|tj�M�}|sd|�j�|��n|�j� ||d�|f��|d�k r�|� ���dS�dS�d�S��NFT)r9���r"���r���r���r���rG���r���rt���� unregisterru���rv����r&���r���r���rz���r{���r|���r���r���r���r=�����s����z$BaseSelectorEventLoop._remove_readerc����������� ��� ���G���s����|������t�|||�d��}z|�j�|�}W�n*�tk rR���|�j�|tjd�|f��Y�n>X�|j|j �}\}}|�j� ||tjB�||f��|d�k r�|����d�S�r+���)rq���r���rr���r"���r���r���rs���r����EVENT_WRITErG���ru���rv���rw���r���r���r����_add_writer%��s����� �z!BaseSelectorEventLoop._add_writerc�����������������C���s����|�����rdS�z|�j�|�}W�n�tk r2���Y�dS�X�|j|j�}\}}|tj�M�}|sd|�j�|��n|�j� |||d�f��|d�k r�|� ���dS�dS�d�S�r}���)r9���r"���r���r���r���rG���r���r����r~���ru���rv���r���r���r���r����_remove_writer4��s����z$BaseSelectorEventLoop._remove_writerc�����������������G���s���|���|��|�j||f|���S�r+���)rp���rD����r&���r���rx���ry���r���r���r���� add_readerK��s���� z BaseSelectorEventLoop.add_readerc�����������������C���s���|���|��|��|�S�r+���)rp���r=����r&���r���r���r���r���� remove_readerP��s���� z#BaseSelectorEventLoop.remove_readerc�����������������G���s���|���|��|�j||f|���S�r+���)rp���r����r����r���r���r���� add_writerU��s���� z BaseSelectorEventLoop.add_writerc�����������������C���s���|���|��|��|�S�r+���)rp���r����r����r���r���r���� remove_writerZ��s���� z#BaseSelectorEventLoop.remove_writerc�������������� �������s����t�|��|�jr"|���dkr"td��z|�|�W�S��ttfk rF���Y�nX�|����}|���}|�� ||�j |||��|�t� |�j|���|I�d�H�S��Nr����the socket must be non-blocking)r���rQ���� gettimeoutrn���rI���rK���rJ���rg���r?���r����� _sock_recv�add_done_callback� functools�partial�_sock_read_done)r&���r����n�futr���r���r���r���� sock_recv_��s�����zBaseSelectorEventLoop.sock_recvc�����������������C���s���|���|��d�S�r+���)r�����r&���r���r����r���r���r���r����t��s����z%BaseSelectorEventLoop._sock_read_donec�������������� ���C���s����|����rd�S�z|�|�}W�n\�ttfk r4���Y�d�S��ttfk rL�����Y�n6�tk rv�}�z|�|��W�5�d�}~X�Y�nX�|�|��d�S�r+���) �donerI���rK���rJ���ri���rj���rh���� set_exception� set_result)r&���r����r���r����rG���re���r���r���r���r����w��s����z BaseSelectorEventLoop._sock_recvc�������������� �������s����t�|��|�jr"|���dkr"td��z|�|�W�S��ttfk rF���Y�nX�|����}|���}|�� ||�j |||��|�t� |�j|���|I�d�H�S�r����)r���rQ���r����rn���� recv_intorK���rJ���rg���r?���r�����_sock_recv_intor����r����r����r����)r&���r����bufr����r���r���r���r����sock_recv_into���s�����z$BaseSelectorEventLoop.sock_recv_intoc�������������� ���C���s����|����rd�S�z|�|�}W�n\�ttfk r4���Y�d�S��ttfk rL�����Y�n6�tk rv�}�z|�|��W�5�d�}~X�Y�nX�|�|��d�S�r+���) r����r����rK���rJ���ri���rj���rh���r����r����)r&���r����r���r�����nbytesre���r���r���r���r�������s����z%BaseSelectorEventLoop._sock_recv_intoc�������������� �������s����t�|��|�jr"|���dkr"td��z|�|�}W�n�ttfk rL���d}Y�nX�|t|�kr^d�S�|����}|� ��}|� t�|�j |���|��||�j||t|�|g��|I�d�H�S�r����)r���rQ���r����rn���rO���rK���rJ����lenrg���r?���r����r����r�����_sock_write_doner����� _sock_sendall� memoryview)r&���r���rG���r����r����r���r���r���r����sock_sendall���s&���� ���z"BaseSelectorEventLoop.sock_sendallc�������������� ���C���s����|����rd�S�|d�}z|�||d����}W�nb�ttfk rD���Y�d�S��ttfk r\�����Y�n2�tk r��}�z|�|��W�Y��d�S�d�}~X�Y�nX�||7�}|t|�kr�|� d���n||d<�d�S�)Nr���) r����rO���rK���rJ���ri���rj���rh���r����r����r����)r&���r����r���Zview�pos�startr����re���r���r���r���r�������s ���� z#BaseSelectorEventLoop._sock_sendallc���������������������s����t�|��|�jr"|���dkr"td��ttd�r8|jtjkrf|�j||j|j |�d�I�d�H�}|d�\}}}}}|�� ��}|��|||��|I�d�H�S�)Nr���r�����AF_UNIX)�family�proto�loop)r���rQ���r����rn����hasattrrB���r����r����Z_ensure_resolvedr����rg���� _sock_connect)r&���r���r6���Zresolvedrb���r����r���r���r����sock_connect���s��������z"BaseSelectorEventLoop.sock_connectc�������������� ���C���s����|����}z|�|��W�n��ttfk rV���|�t�|�j|���|��||�j |||��Y�nN�t tfk rn�����Y�n6�tk r��}�z|� |��W�5�d�}~X�Y�nX�|�d���d�S�r+���)r?���ZconnectrK���rJ���r����r����r����r����r�����_sock_connect_cbri���rj���rh���r����r����)r&���r����r���r6���r���re���r���r���r���r�������s�����z#BaseSelectorEventLoop._sock_connectc�����������������C���s���|���|��d�S�r+���)r����r����r���r���r���r������s����z&BaseSelectorEventLoop._sock_write_donec�������������� ���C���s����|����rd�S�z,|�tjtj�}|dkr6t|d|�����W�nZ�ttfk rP���Y�nN�tt fk rh�����Y�n6�t k r��}�z|�|��W�5�d�}~X�Y�nX�|�d���d�S�)Nr���zConnect call failed ) r����Z getsockoptrB���Z SOL_SOCKETZSO_ERRORrP���rK���rJ���ri���rj���rh���r����r����)r&���r����r���r6����errre���r���r���r���r������s����z&BaseSelectorEventLoop._sock_connect_cbc���������������������sB���t�|��|�jr"|���dkr"td��|����}|��|d|��|I�d�H�S�)Nr���r����F)r���rQ���r����rn���rg����_sock_accept)r&���r���r����r���r���r����sock_accept��s����z!BaseSelectorEventLoop.sock_acceptc�������������� ���C���s����|����}|r|��|��|���r"d�S�z|���\}}|�d��W�nn�ttfk rh���|��||�j|d|��Y�nR�t t fk r������Y�n:�tk r��}�z|�|��W�5�d�}~X�Y�nX�|� ||f��d�S�r}���)r?���r����r����r\���rC���rK���rJ���r����r����ri���rj���rh���r����r����)r&���r����Z registeredr���r���rc���r6���re���r���r���r���r����*��s���� z"BaseSelectorEventLoop._sock_acceptc�������������� �������sp���|�j�|j=�|���}|����|���I�d�H��z |�j|j|||dd�I�d�H�W��S�|����|r^|����||�j�|j<�X�d�S�)NF)Zfallback) r%����_sock_fd� is_reading� pause_reading�_make_empty_waiter�_reset_empty_waiter�resume_readingZ sock_sendfile�_sock)r&���Ztransp�file�offset�countr����r���r���r����_sendfile_native<��s���� �z&BaseSelectorEventLoop._sendfile_nativec�����������������C���s����|D�]v\}}|j�|j�}\}}|tj@�rL|d�k rL|jrB|��|��n |��|��|tj@�r|d�k r|jrp|��|��q|��|��qd�S�r+���) �fileobjrG���r���rt���Z _cancelledr=���Z _add_callbackr����r����)r&���Z event_listr���rz���r����r{���r|���r���r���r����_process_eventsJ��s���� z%BaseSelectorEventLoop._process_eventsc�����������������C���s���|���|�����|����d�S�r+���)r=���r?���r;���)r&���r���r���r���r���� _stop_servingX��s����z#BaseSelectorEventLoop._stop_serving)N)N)N)NNN),r!���� __module__�__qualname__r���r/���r���ZSSL_HANDSHAKE_TIMEOUTr4���r7���r;���r:���r#���rH���rE���rR���rW���rT���ra���rp���rD���r=���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����� __classcell__r���r���r'���r���r���0���s|��� ������������� ��� ��� .�� )r���c�����������������������s����e�Zd�ZdZeZdZd��fdd� Zdd��Zdd��Z d d ��Z dd��Zd d��Zdd��Z ejfdd�Zddd�Zdd��Zdd��Zdd��Zdd��Z���ZS�) �_SelectorTransporti���Nc��������������������s����t����||��t�|�|�jd<�z|���|�jd<�W�n�tk rN���d�|�jd<�Y�nX�d|�jkr�z|���|�jd<�W�n �tj k r����d�|�jd<�Y�nX�||�_ |���|�_d|�_ |��|��||�_|����|�_d|�_d|�_|�jd�k r�|�j����|�|j|�j<�d�S�)NrB���ZsocknamerZ���Fr���)r���r���r���r`����_extraZgetsocknamerP���ZgetpeernamerB����errorr����r?���r�����_protocol_connected�set_protocol�_server�_buffer_factory�_buffer� _conn_lost�_closingZ_attachr%���)r&���r����r���r-���r)���r*���r'���r���r���r���i��s,���� z_SelectorTransport.__init__c�����������������C���s����|�j�jg}|�jd�kr |�d��n|�jr0|�d��|�d|�j�����|�jd�k r�|�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=zread=pollingz read=idle�pollingZidlezwrite=<z , bufsize=�>z<{}>� )r ���r!���r�����appendr����r�����_loopr9���r���r"���r���rt���r�����get_write_buffer_size�format�join)r&����infor�����state�bufsizer���r���r����__repr__���s0���� �� �z_SelectorTransport.__repr__c�����������������C���s���|���d���d�S�r+���)�_force_closer<���r���r���r����abort���s����z_SelectorTransport.abortc�����������������C���s���||�_�d|�_d�S��NT)� _protocolr�����r&���r-���r���r���r���r�������s����z_SelectorTransport.set_protocolc�����������������C���s���|�j�S�r+���)r����r<���r���r���r����get_protocol���s����z_SelectorTransport.get_protocolc�����������������C���s���|�j�S�r+���)r����r<���r���r���r���ro������s����z_SelectorTransport.is_closingc�����������������C���sT���|�j�r d�S�d|�_�|�j�|�j��|�jsP|��jd7��_|�j�|�j��|�j�|�jd���d�S��NTr���) r����r����r=���r����r����r����r����� call_soon�_call_connection_lostr<���r���r���r���r;������s����z_SelectorTransport.closec�����������������C���s,���|�j�d�k r(|d|���t|�d��|�j�����d�S�)Nzunclosed transport )�source)r�����ResourceWarningr;���)r&���Z_warnr���r���r����__del__���s���� z_SelectorTransport.__del__�Fatal error on transportc�����������������C���sN���t�|t�r(|�j���r@tjd|�|dd��n|�j�|||�|�jd���|��|��d�S�)Nz%r: %sTrM���)rX���rY���rf���r-���) r���rP���r����� get_debugr���r���r_���r����r����)r&���re���rX���r���r���r����_fatal_error���s���� �z_SelectorTransport._fatal_errorc�����������������C���sd���|�j�r d�S�|�jr(|�j����|�j�|�j��|�jsBd|�_|�j�|�j��|��j�d7��_�|�j�|�j |��d�S�r����) r����r�����clearr����r����r����r����r=���r����r�����r&���re���r���r���r���r�������s���� z_SelectorTransport._force_closec�����������������C���sV���z|�jr|�j�|��W�5�|�j�����d�|�_�d�|�_d�|�_|�j}|d�k rP|����d�|�_X�d�S�r+���)r����r;���r����r����r����Z_detachr����Zconnection_lost)r&���re���r*���r���r���r���r�������s���� z(_SelectorTransport._call_connection_lostc�����������������C���s ���t�|�j�S�r+���)r����r����r<���r���r���r���r�������s����z(_SelectorTransport.get_write_buffer_sizec�����������������G���s"���|�j�r d�S�|�jj||f|����d�S�r+���)r����r����rD���r����r���r���r���rD������s����z_SelectorTransport._add_reader)NN)r����)r!���r����r�����max_size� bytearrayr����r����r���r����r����r����r����ro���r;����warnings�warnr����r����r����r����r����rD���r����r���r���r'���r���r����]��s ��� r����c�����������������������s����e�Zd�ZdZejjZd#��fdd� Z��fdd�Z dd��Z d d ��Zdd��Zd d��Z dd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Z��fdd�Zdd ��Zd!d"��Z���ZS�)$r,���TNc��������������������s~���d�|�_�t���|||||��d|�_d|�_d�|�_t�|�j��|�j � |�jj|���|�j � |�j |�j|�j��|d�k rz|�j � tj|d���d�S�r ���)�_read_ready_cbr���r����_eof�_paused� _empty_waiterr���Z_set_nodelayr����r����r����r�����connection_maderD���r�����_read_readyr����_set_result_unless_cancelled)r&���r����r���r-���r.���r)���r*���r'���r���r���r������s ���� �� ��z!_SelectorSocketTransport.__init__c��������������������s.���t�|tj�r|�j|�_n|�j|�_t���|��d�S�r+���)r���r���ZBufferedProtocol�_read_ready__get_bufferr�����_read_ready__data_receivedr���r����r����r'���r���r���r���� ��s���� z%_SelectorSocketTransport.set_protocolc�����������������C���s���|�j��o|�j�S�r+���)r����r����r<���r���r���r���r������s����z#_SelectorSocketTransport.is_readingc�����������������C���s>���|�j�s|�jrd�S�d|�_|�j�|�j��|�j���r:t�d|���d�S�)NTz%r pauses reading)r����r����r����r=���r����r����r���r���r<���r���r���r���r������s���� z&_SelectorSocketTransport.pause_readingc�����������������C���s@���|�j�s|�jsd�S�d|�_|��|�j|�j��|�j���r<t�d|���d�S�)NFz%r resumes reading) r����r����rD���r����r����r����r����r���r���r<���r���r���r���r������s���� z'_SelectorSocketTransport.resume_readingc�����������������C���s���|������d�S�r+���)r����r<���r���r���r���r����$��s����z$_SelectorSocketTransport._read_readyc�������������� ���C���s`��|�j�r d�S�z |�j�d�}t|�s(td��W�nL�ttfk rD�����Y�n4�tk rv�}�z|��|d��W�Y��d�S�d�}~X�Y�nX�z|�j � |�}W�nd�ttfk r����Y�d�S��ttfk r������Y�n4�tk r��}�z|��|d��W�Y��d�S�d�}~X�Y�nX�|�s�|�� ���d�S�z|�j�|��W�nJ�ttfk �r,�����Y�n0�tk �rZ�}�z|��|d��W�5�d�}~X�Y�nX�d�S�)N���z%get_buffer() returned an empty bufferz/Fatal error: protocol.get_buffer() call failed.�$Fatal read error on socket transportz3Fatal error: protocol.buffer_updated() call failed.)r����r����Z get_bufferr����r8���ri���rj���rh���r����r����r����rK���rJ����_read_ready__on_eofZbuffer_updated)r&���r����re���r����r���r���r���r����'��sF��������z0_SelectorSocketTransport._read_ready__get_bufferc�������������� ���C���s����|�j�r d�S�z|�j�|�j�}W�nd�ttfk r6���Y�d�S��ttfk rN�����Y�n4�tk r��}�z|�� |d��W�Y��d�S�d�}~X�Y�nX�|s�|�� ���d�S�z|�j�|��W�nF�ttfk r������Y�n.�tk r��}�z|�� |d��W�5�d�}~X�Y�nX�d�S�)Nr����z2Fatal error: protocol.data_received() call failed.) r����r����rI���r����rK���rJ���ri���rj���rh���r����r����r����Z data_received)r&���rG���re���r���r���r���r����L��s.������z3_SelectorSocketTransport._read_ready__data_receivedc�������������� ���C���s����|�j����rt�d|���z|�j���}W�nL�ttfk r>�����Y�n4�tk rp�}�z|�� |d��W�Y��d�S�d�}~X�Y�nX�|r�|�j�� |�j��n|�����d�S�)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.) r����r����r���r���r����Zeof_receivedri���rj���rh���r����r=���r����r;���)r&���Z keep_openre���r���r���r���r����e��s���� ��z,_SelectorSocketTransport._read_ready__on_eofc�������������� ���C���s6��t�|tttf�s$tdt|�j����|�jr2td��|�j d�k rDtd��|sLd�S�|�j rz|�j tjkrht �d��|��j d7��_ d�S�|�j�sz|�j�|�}W�nb�ttfk r����Y�nb�ttfk r������Y�nJ�tk r��}�z|��|d��W�Y��d�S�d�}~X�Y�nX�||d���}|�sd�S�|�j�|�j|�j��|�j�|��|�����d�S�)N�/data argument must be a bytes-like object, not z%Cannot call write() after write_eof()z(unable to write; sendfile is in progress�socket.send() raised exception.r����%Fatal write error on socket transport)r����bytesr����r����r����typer!���r����r8���r����r����r����!LOG_THRESHOLD_FOR_CONNLOST_WRITESr����warningr����r����rO���rK���rJ���ri���rj���rh���r����r����r����r�����_write_ready�extend�_maybe_pause_protocol)r&���rG���r����re���r���r���r����writez��s:���� z_SelectorSocketTransport.writec�������������� ���C���s��|�j�r d�S�z|�j�|�j�}W�n��ttfk r4���Y�n��ttfk rL�����Y�n��tk r��}�z>|�j � |�j��|�j����|�� |d��|�jd�k r�|�j�|��W�5�d�}~X�Y�nnX�|r�|�jd�|�=�|�����|�j�s|�j � |�j��|�jd�k r�|�j�d���|�jr�|��d���n|�j�r|�j�tj��d�S�)Nr����)r����r����rO���r����rK���rJ���ri���rj���rh���r����r����r����r����r����r����r�����_maybe_resume_protocolr����r����r����r�����shutdownrB����SHUT_WR)r&���r����re���r���r���r���r������s2���� z%_SelectorSocketTransport._write_readyc�����������������C���s.���|�j�s|�jrd�S�d|�_|�js*|�j�tj��d�S�r����)r����r����r����r����r��rB���r��r<���r���r���r���� write_eof���s ����z"_SelectorSocketTransport.write_eofc�����������������C���s���dS�r����r���r<���r���r���r���� can_write_eof���s����z&_SelectorSocketTransport.can_write_eofc��������������������s*���t����|��|�jd�k r&|�j�td���d�S�)NzConnection is closed by peer)r���r����r����r�����ConnectionErrorr����r'���r���r���r�������s ���� �z._SelectorSocketTransport._call_connection_lostc�����������������C���s6���|�j�d�k rtd��|�j���|�_�|�js0|�j��d���|�j�S�)NzEmpty waiter is already set)r����r8���r����rg���r����r����r<���r���r���r���r�������s���� z+_SelectorSocketTransport._make_empty_waiterc�����������������C���s ���d�|�_�d�S�r+���)r����r<���r���r���r���r�������s����z,_SelectorSocketTransport._reset_empty_waiter)NNN)r!���r����r����Z_start_tls_compatibler���Z _SendfileModeZ TRY_NATIVEZ_sendfile_compatibler���r����r����r����r����r����r����r����r����r��r���r��r��r����r����r����r����r���r���r'���r���r,������s*��������%'r,���c�����������������������sF���e�Zd�ZejZd��fdd� Zdd��Zdd��Zd dd �Z d d��Z ���ZS�)r5���Nc��������������������s^���t����||||��||�_|�j�|�jj|���|�j�|�j|�j|�j ��|d�k rZ|�j�t j|d���d�S�r+���)r���r����_addressr����r����r����r����rD���r����r����r���r����)r&���r����r���r-���r6���r.���r)���r'���r���r���r������s���� �� ��z#_SelectorDatagramTransport.__init__c�����������������C���s���t�dd��|�jD���S�)Nc�����������������s���s���|�]\}}t�|�V��qd�S�r+���)r����)�.0rG���rb���r���r���r���� <genexpr>���s�����zC_SelectorDatagramTransport.get_write_buffer_size.<locals>.<genexpr>)�sumr����r<���r���r���r���r�������s����z0_SelectorDatagramTransport.get_write_buffer_sizec�������������� ���C���s����|�j�r d�S�z|�j�|�j�\}}W�n��ttfk r8���Y�n��tk rd�}�z|�j�|��W�5�d�}~X�Y�nT�t t fk r|�����Y�n<�tk r��}�z|��|d��W�5�d�}~X�Y�nX�|�j� ||��d�S�)Nz&Fatal read error on datagram transport)r����r����Zrecvfromr����rK���rJ���rP���r�����error_receivedri���rj���rh���r����Zdatagram_received�r&���rG���rd���re���r���r���r���r�������s����z&_SelectorDatagramTransport._read_readyc�������������� ���C���s���t�|tttf�s$tdt|�j����|s,d�S�|�jrV|d�|�jfkrPtd|�j�����|�j}|�j r�|�jr�|�j t jkrxt� d��|��j d7��_ d�S�|�j�slz,|�jd�r�|�j�|��n|�j�||��W�d�S��ttfk r����|�j�|�j|�j��Y�n��tk �r�}�z|�j�|��W�Y��d�S�d�}~X�Y�nP�ttfk �r6�����Y�n6�tk �rj�}�z|��|d��W�Y��d�S�d�}~X�Y�nX�|�j� t|�|f��|��!���d�S�)Nr����z!Invalid address: must be None or r����r���rZ����'Fatal write error on datagram transport)"r���r����r����r����r���r����r!���r ��rn���r����r���r����r���r����r����r����r����rO����sendtorK���rJ���r����r����r����� _sendto_readyrP���r����r��ri���rj���rh���r����r����r��r��r���r���r���r�����sH���� � ��z!_SelectorDatagramTransport.sendtoc�������������� ���C���s��|�j�r�|�j����\}}z*|�jd�r.|�j�|��n|�j�||��W�q��ttfk rj���|�j��||f��Y�q�Y�q��t k r��}�z|�j �|��W�Y��d�S�d�}~X�Y�q��tt fk r������Y�q��tk r��}�z|��|d��W�Y��d�S�d�}~X�Y�q�X�q�|�����|�j��s|�j�|�j��|�j�r|��d���d�S�)NrZ���r��)r�����popleftr����r����rO���r��rK���rJ���� appendleftrP���r����r��ri���rj���rh���r����r��r����r����r����r����r����r��r���r���r���r��*��s2���� ��z(_SelectorDatagramTransport._sendto_ready)NNN)N)r!���r����r�����collections�dequer����r���r����r����r��r��r����r���r���r'���r���r5������s�������� +r5���)�__all__r��r^���r����r���rB���r����r$���r����ImportError��r���r���r���r���r���r ���r ���r����logr���r���r���Z BaseEventLoopr���Z_FlowControlMixinZ Transportr����r,���r5���r���r���r���r����<module>���sD��� ����1���o