Edit File: selectors.cpython-36.opt-2.pyc
3 � \�K������������������@���s���d�dl�mZmZ�d�dlmZmZ�d�dlZd�dlZd�dlZd(Z d)Z dd��Zeddd d dg�Zde_ ejd*kr�dej_ dej_ dej_ dej_ G�dd��de�ZG�dd��ded�ZG�dd��de�ZG�dd��de�Zeed�r�G�dd��de�Zeed��rG�d d!��d!e�Zeed"��rG�d#d$��d$e�Zeed%��r:G�d&d'��d'e�Zd'e��k�rLeZn:d!e��k�r^eZn(d$e��k�rpeZnde��k�r�eZneZdS�)+�����)�ABCMeta�abstractmethod)� namedtuple�MappingN����c���������� ���C���sf���t�|�t�r|�}n<yt|�j���}W�n*�tttfk rJ���tdj|���d��Y�nX�|dk�rbtdj|���|S�)NzInvalid file object: {!r}r���zInvalid file descriptor: {})� isinstance�int�fileno�AttributeError� TypeError� ValueError�format)�fileobj�fd��r����!/usr/lib64/python3.6/selectors.py�_fileobj_to_fd���s���� r����SelectorKeyr���r����events�dataz�SelectorKey(fileobj, fd, events, data) Object used to associate a file object to its backing file descriptor, selected event mask, and attached data. ��������zFile object registered.zUnderlying file descriptor.z3Events that must be waited for on this file object.zzOptional opaque data associated to this file object. For example, this could be used to store a per-client session ID.c���������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �_SelectorMappingc�������������C���s ���||�_�d�S�)N)� _selector)�selfZselectorr���r���r����__init__>���s����z_SelectorMapping.__init__c�������������C���s���t�|�jj�S�)N)�lenr���� _fd_to_key)r���r���r���r����__len__A���s����z_SelectorMapping.__len__c�������������C���sB���y|�j�j|�}|�j�j|�S��tk r<���tdj|��d��Y�nX�d�S�)Nz{!r} is not registered)r����_fileobj_lookupr����KeyErrorr ���)r���r���r���r���r���r����__getitem__D���s ����z_SelectorMapping.__getitem__c�������������C���s���t�|�jj�S�)N)�iterr���r���)r���r���r���r����__iter__K���s����z_SelectorMapping.__iter__N)�__name__� __module__�__qualname__r���r���r!���r#���r���r���r���r���r���;���s���r���c���������������@���sj���e�Zd�Zeddd��Zedd���Zddd�Zeddd ��Zd d��Zdd ��Z edd���Z dd��Zdd��ZdS�)�BaseSelectorNc�������������C���s���t��d�S�)N)�NotImplementedError)r���r���r���r���r���r���r����register^���s����zBaseSelector.registerc�������������C���s���t��d�S�)N)r(���)r���r���r���r���r���� unregisteru���s����zBaseSelector.unregisterc�������������C���s���|�j�|��|�j|||�S�)N)r*���r)���)r���r���r���r���r���r���r����modify����s���� zBaseSelector.modifyc�������������C���s���t��d�S�)N)r(���)r����timeoutr���r���r����select����s����zBaseSelector.selectc�������������C���s���d�S�)Nr���)r���r���r���r����close����s����zBaseSelector.closec�������������C���sJ���|�j���}|d�krtd��y||�S��tk rD���tdj|��d��Y�nX�d�S�)NzSelector is closedz{!r} is not registered)�get_map�RuntimeErrorr ���r ���)r���r����mappingr���r���r����get_key����s����zBaseSelector.get_keyc�������������C���s���t��d�S�)N)r(���)r���r���r���r���r/�������s����zBaseSelector.get_mapc�������������C���s���|�S�)Nr���)r���r���r���r���� __enter__����s����zBaseSelector.__enter__c�������������G���s���|�j����d�S�)N)r.���)r����argsr���r���r����__exit__����s����zBaseSelector.__exit__)N)N)N) r$���r%���r&���r���r)���r*���r+���r-���r.���r2���r/���r3���r5���r���r���r���r���r'���O���s��� r'���)� metaclassc���������������@���sP���e�Zd�Zdd��Zdd��Zddd�Zdd ��Zdd d�Zdd ��Zdd��Z dd��Z dS�)�_BaseSelectorImplc�������������C���s���i�|�_�t|��|�_d�S�)N)r���r����_map)r���r���r���r���r�������s����z_BaseSelectorImpl.__init__c�������������C���sH���yt�|�S��tk rB���x"|�jj��D�]}|j|kr$|jS�q$W���Y�nX�d�S�)N)r���r���r����valuesr���r���)r���r����keyr���r���r���r�������s���� z!_BaseSelectorImpl._fileobj_lookupNc�������������C���sd���|�s|t�tB��@�r"tdj|���t||�j|�||�}|j|�jkrTtdj||j���||�j|j<�|S�)NzInvalid events: {!r}z"{!r} (FD {}) is already registered) � EVENT_READ�EVENT_WRITEr���r ���r���r���r���r���r ���)r���r���r���r���r:���r���r���r���r)�������s����z_BaseSelectorImpl.registerc�������������C���s@���y|�j�j|�j|��}W�n$�tk r:���tdj|��d��Y�nX�|S�)Nz{!r} is not registered)r����popr���r ���r ���)r���r���r:���r���r���r���r*�������s ����z_BaseSelectorImpl.unregisterc�������������C���s����y|�j�|�j|��}W�n$�tk r8���tdj|��d��Y�nX�||jkr^|�j|��|�j|||�}n"||jkr�|j|d�}||�j�|j <�|S�)Nz{!r} is not registered)r���) r���r���r ���r ���r���r*���r)���r����_replacer���)r���r���r���r���r:���r���r���r���r+�������s���� z_BaseSelectorImpl.modifyc�������������C���s���|�j�j���d�|�_d�S�)N)r����clearr8���)r���r���r���r���r.�����s���� z_BaseSelectorImpl.closec�������������C���s���|�j�S�)N)r8���)r���r���r���r���r/�����s����z_BaseSelectorImpl.get_mapc�������������C���s$���y |�j�|�S��tk r���d�S�X�d�S�)N)r���r ���)r���r���r���r���r����_key_from_fd��s���� z_BaseSelectorImpl._key_from_fd)N)N)r$���r%���r&���r���r���r)���r*���r+���r.���r/���r@���r���r���r���r���r7�������s��� r7���c�������������������s\���e�Zd�Z��fdd�Zd ��fdd� Z��fdd�ZejdkrDdd d �Zne j Zddd�Z ���Z S�)�SelectSelectorc����������������s���t���j���t��|�_t��|�_d�S�)N)�superr����set�_readers�_writers)r���)� __class__r���r���r���%��s���� zSelectSelector.__init__Nc����������������s@���t���j|||�}|t@�r&|�jj|j��|t@�r<|�jj|j��|S�)N)rB���r)���r;���rD����addr���r<���rE���)r���r���r���r���r:���)rF���r���r���r)���*��s����zSelectSelector.registerc����������������s,���t���j|�}|�jj|j��|�jj|j��|S�)N)rB���r*���rD����discardr���rE���)r���r���r:���)rF���r���r���r*���2��s����zSelectSelector.unregisterZwin32c�������������C���s$���t�j�||||�\}}}|||�g�fS�)N)r-���)r����r�w�_r,����xr���r���r����_select9��s����zSelectSelector._selectc������� ��� ���C���s����|d�krd�nt�|d�}g�}y|�j|�j|�jg�|�\}}}W�n�tk rL���|S�X�t|�}t|�}xV||B�D�]J}d}||kr�|tO�}||kr�|tO�}|�j|�}|rh|j |||j @�f��qhW�|S�)Nr���)�maxrM���rD���rE����InterruptedErrorrC���r;���r<���r@����appendr���) r���r,����readyrI���rJ���rK���r���r���r:���r���r���r���r-���?��s$���� zSelectSelector.select)N)N)N)r$���r%���r&���r���r)���r*����sys�platformrM���r-���� __classcell__r���r���)rF���r���rA���"��s��� rA����pollc�������������������s@���e�Zd�Z��fdd�Zd ��fdd� Z��fdd�Zddd �Z���ZS�)�PollSelectorc����������������s���t���j���tj��|�_d�S�)N)rB���r���r-���rU����_poll)r���)rF���r���r���r���Z��s���� zPollSelector.__init__Nc����������������sL���t���j|||�}d}|t@�r&|tjO�}|t@�r8|tjO�}|�jj|j|��|S�)Nr���) rB���r)���r;���r-����POLLINr<����POLLOUTrW���r���)r���r���r���r���r:����poll_events)rF���r���r���r)���^��s���� zPollSelector.registerc����������������s���t���j|�}|�jj|j��|S�)N)rB���r*���rW���r���)r���r���r:���)rF���r���r���r*���h��s����zPollSelector.unregisterc���������� ���C���s����|d�krd�}n|dkrd}nt�j|d��}g�}y|�jj|�}W�n�tk rR���|S�X�x^|D�]V\}}d}|tj�@�rz|tO�}|tj�@�r�|t O�}|�j |�}|rZ|j|||j@�f��qZW�|S�)Nr���g�����@�@) �math�ceilrW���rU���rO���r-���rX���r<���rY���r;���r@���rP���r���)r���r,���rQ���� fd_event_listr����eventr���r:���r���r���r���r-���m��s(���� zPollSelector.select)N)N)r$���r%���r&���r���r)���r*���r-���rT���r���r���)rF���r���rV���W��s��� rV����epollc�������������������sT���e�Zd�Z��fdd�Zdd��Zd��fdd� Z��fdd �Zdd d�Z��fdd �Z���Z S�)� EpollSelectorc����������������s���t���j���tj��|�_d�S�)N)rB���r���r-���r_����_epoll)r���)rF���r���r���r������s���� zEpollSelector.__init__c�������������C���s ���|�j�j��S�)N)ra���r ���)r���r���r���r���r ������s����zEpollSelector.filenoNc����������������st���t���j|||�}d}|t@�r&|tjO�}|t@�r8|tjO�}y|�jj|j|��W�n"�t k rn���t���j |����Y�nX�|S�)Nr���)rB���r)���r;���r-����EPOLLINr<����EPOLLOUTra���r���� BaseExceptionr*���)r���r���r���r���r:���Zepoll_events)rF���r���r���r)������s���� zEpollSelector.registerc����������������s8���t���j|�}y|�jj|j��W�n�tk r2���Y�nX�|S�)N)rB���r*���ra���r����OSError)r���r���r:���)rF���r���r���r*������s����zEpollSelector.unregisterc������� ��� ���C���s����|d�krd}n |dkrd}nt�j|d��d�}tt|�j�d�}g�}y|�jj||�}W�n�tk rh���|S�X�x^|D�]V\}}d}|tj �@�r�|t O�}|tj�@�r�|tO�}|�j |�}|rp|j|||j@�f��qpW�|S�)Nr���r���g�����@�@g����MbP?���)r[���r\���rN���r���r���ra���rU���rO���r-���rb���r<���rc���r;���r@���rP���r���) r���r,����max_evrQ���r]���r���r^���r���r:���r���r���r���r-������s*���� zEpollSelector.selectc����������������s���|�j�j���t��j���d�S�)N)ra���r.���rB���)r���)rF���r���r���r.������s���� zEpollSelector.close)N)N) r$���r%���r&���r���r ���r)���r*���r-���r.���rT���r���r���)rF���r���r`������s��� r`����devpollc�������������������sT���e�Zd�Z��fdd�Zdd��Zd��fdd� Z��fdd �Zdd d�Z��fdd �Z���Z S�)�DevpollSelectorc����������������s���t���j���tj��|�_d�S�)N)rB���r���r-���rh����_devpoll)r���)rF���r���r���r������s���� zDevpollSelector.__init__c�������������C���s ���|�j�j��S�)N)rj���r ���)r���r���r���r���r ������s����zDevpollSelector.filenoNc����������������sL���t���j|||�}d}|t@�r&|tjO�}|t@�r8|tjO�}|�jj|j|��|S�)Nr���) rB���r)���r;���r-���rX���r<���rY���rj���r���)r���r���r���r���r:���rZ���)rF���r���r���r)������s���� zDevpollSelector.registerc����������������s���t���j|�}|�jj|j��|S�)N)rB���r*���rj���r���)r���r���r:���)rF���r���r���r*������s����zDevpollSelector.unregisterc���������� ���C���s����|d�krd�}n|dkrd}nt�j|d��}g�}y|�jj|�}W�n�tk rR���|S�X�x^|D�]V\}}d}|tj�@�rz|tO�}|tj�@�r�|t O�}|�j |�}|rZ|j|||j@�f��qZW�|S�)Nr���g�����@�@) r[���r\���rj���rU���rO���r-���rX���r<���rY���r;���r@���rP���r���)r���r,���rQ���r]���r���r^���r���r:���r���r���r���r-������s(���� zDevpollSelector.selectc����������������s���|�j�j���t��j���d�S�)N)rj���r.���rB���)r���)rF���r���r���r.�����s���� zDevpollSelector.close)N)N) r$���r%���r&���r���r ���r)���r*���r-���r.���rT���r���r���)rF���r���ri������s��� ri����kqueuec�������������������sT���e�Zd�Z��fdd�Zdd��Zd��fdd� Z��fdd �Zdd d�Z��fdd �Z���Z S�)�KqueueSelectorc����������������s���t���j���tj��|�_d�S�)N)rB���r���r-���rk����_kqueue)r���)rF���r���r���r�����s���� zKqueueSelector.__init__c�������������C���s ���|�j�j��S�)N)rm���r ���)r���r���r���r���r �����s����zKqueueSelector.filenoNc����������������s����t���j|||�}y`|t@�r@tj|jtjtj�}|�jj |gdd��|t @�rntj|jtjtj�}|�jj |gdd��W�n"�tk r����t���j |����Y�nX�|S�)Nr���)rB���r)���r;���r-����keventr����KQ_FILTER_READZ KQ_EV_ADDrm����controlr<����KQ_FILTER_WRITErd���r*���)r���r���r���r���r:����kev)rF���r���r���r)�����s����zKqueueSelector.registerc����������������s����t���j|�}|jt@�rVtj|jtjtj�}y|�j j |gdd��W�n�tk rT���Y�nX�|jt@�r�tj|jtj tj�}y|�j j |gdd��W�n�tk r����Y�nX�|S�)Nr���)rB���r*���r���r;���r-���rn���r���ro���ZKQ_EV_DELETErm���rp���re���r<���rq���)r���r���r:���rr���)rF���r���r���r*���'��s ���� zKqueueSelector.unregisterc������� ��� ���C���s����|d�krd�nt�|d�}t|�j�}g�}y|�jjd�||�}W�n�tk rL���|S�X�xb|D�]Z}|j}|j}d}|tj krz|t O�}|tjkr�|tO�}|�j |�} | rT|j| || j@�f��qTW�|S�)Nr���)rN���r���r���rm���rp���rO���Zident�filterr-���ro���r;���rq���r<���r@���rP���r���) r���r,���rg���rQ���Zkev_listrr���r����flagr���r:���r���r���r���r-���<��s&���� zKqueueSelector.selectc����������������s���|�j�j���t��j���d�S�)N)rm���r.���rB���)r���)rF���r���r���r.���R��s���� zKqueueSelector.close)N)N) r$���r%���r&���r���r ���r)���r*���r-���r.���rT���r���r���)rF���r���rl��� ��s��� rl���r�������)r���r���)�abcr���r����collectionsr���r���r[���r-���rR���r;���r<���r���r����__doc__�version_infor���r���r���r���r���r'���r7���rA����hasattrrV���r`���ri���rl����globalsZDefaultSelectorr���r���r���r����<module>���sF��� ~U3 1G8M