a
´iPL ã @ sž d dl mZmZ d dlmZ d dlmZ d dlZd dlZd dl Z dZ
dZdd„ Zed g d
¢ƒZ
de
_e jdkrŽd
e
j_de
j_de
j_de
j_G dd„ deƒZG dd„ ded�ZG dd„ deƒZG dd„ deƒZG dd„ deƒZeedƒrúG dd„ deƒZeedƒ�rG d d!„ d!eƒZeed"ƒ�r2G d#d$„ d$eƒZeed%ƒ�rNG d&d'„ d'eƒZd(d)„ Zed%ƒ�rfeZn4edƒ�rveZn$ed"ƒ�r†eZnedƒ�r–eZneZdS )*é )ÚABCMetaÚabstractmethod)Ú
namedtuple)ÚMappingNé é c
C sd t | tƒr| }n:zt| ¡ ƒ}W n( tttfyH td | ¡ƒd ‚Y n0 |dk r`td |¡ƒ‚|S )NzInvalid file object: {!r}r zInvalid file descriptor: {})Ú
isinstanceÚintÚfilenoÚAttributeErrorÚ TypeErrorÚ
ValueErrorÚformat)ÚfileobjÚfd© r ú!/usr/lib64/python3.9/selectors.pyÚ_fileobj_to_fd s
ÿÿr ÚSelectorKey)r 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)ÚselfÚselectorr r r Ú__init__@ s z_SelectorMapping.__init__c C s t | jjƒS r )Úlenr Ú
_fd_to_key©r r r r Ú__len__C s z_SelectorMapping.__len__c C sB z| j |¡}| j j| W S ty< td |¡ƒd ‚Y n0 d S ©Nú{!r} is not registered)r Ú_fileobj_lookupr ÚKeyErrorr )r r r r r r Ú__getitem__F s
z_SelectorMapping.__getitem__c C s t | jjƒS r )Úiterr r r! r r r Ú__iter__M 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 r ©ÚNotImplementedError©r r r r r r r Úregister` s zBaseSelector.registerc C s t ‚d S r r. )r r r r r Ú
unregisterw s zBaseSelector.unregisterc C s | |¡ | |||¡S r )r2 r1 r0 r r r ÚmodifyŠ s
zBaseSelector.modifyc C s t ‚d S r r. )r Útimeoutr r r Úselect› s zBaseSelector.selectc C s d S r r r! r r r Úclose® s zBaseSelector.closec C sJ | ¡ }|d u rtdƒ‚z
|| W S tyD td |¡ƒd ‚Y n0 d S )NzSelector is closedr$ )Úget_mapÚRuntimeErrorr&