/usr/lib/python3.10/__pycache__
Edit: /usr/lib/python3.10/__pycache__/selectors.cpython-310.pyc (17105B)
o
9jPL @ s d Z ddlmZmZ ddlmZ ddlmZ ddlZddl Z ddl
Z
dZdZdd Z
ed
g dZde_ e
jd
krIdej_ dej_ dej_ dej_ G dd deZG dd dedZG dd deZG dd deZG dd deZee drG dd deZee d rG d!d" d"eZee d#rG d$d% d%eZee d&rG d'd( d(eZd)d* Zed&reZdS ed reZdS ed#reZdS edreZdS eZdS )+z|Selectors module.
This module allows high-level and efficient I/O multiplexing, built upon the
`select` module primitives.
)ABCMetaabstractmethod)
namedtuple)MappingN c
C s` t | tr| }nzt| }W n tttfy" td| dw |dk r.td||S )zReturn a file descriptor from a file object.
Parameters:
fileobj -- file object or file descriptor
Returns:
corresponding file descriptor
Raises:
ValueError if the object is invalid
zInvalid file object: {!r}Nr zInvalid file descriptor: {})
isinstanceintfilenoAttributeError TypeError
ValueErrorformat)fileobjfd r /usr/lib/python3.10/selectors.py_fileobj_to_fd s
r SelectorKey)r r eventsdatazSelectorKey(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 @ s0 e Zd ZdZdd Zdd Zdd Zdd Zd
S )_SelectorMappingz)Mapping of file objects to selector keys.c C s
|| _ d S N) _selector)selfselectorr r r __init__@
z_SelectorMapping.__init__c C t | jjS r )lenr
_fd_to_keyr r r r __len__C z_SelectorMapping.__len__c C s: z
| j |}| j j| W S ty td|d w N{!r} is not registered)r _fileobj_lookupr" KeyErrorr )r r r r r r __getitem__F s z_SelectorMapping.__getitem__c C r r )iterr r" r# r r r __iter__M r% z_SelectorMapping.__iter__N)__name__
__module____qualname____doc__r r$ r* r, r r r r r = s r c @ sn e Zd ZdZedddZedd ZdddZedd d
Zdd Z d
d Z
edd Zdd Zdd Z
dS )BaseSelectora- Selector abstract base class.
A selector supports registering file objects to be monitored for specific
I/O events.
A file object is a file descriptor or any object with a `fileno()` method.
An arbitrary object can be attached to the file object, which can be used
for example to store context information, a callback, etc.
A selector can use various implementations (select(), poll(), epoll()...)
depending on the platform. The default `Selector` class uses the most
efficient implementation on the current platform.
Nc C t )a3 Register a file object.
Parameters:
fileobj -- file object or file descriptor
events -- events to monitor (bitwise mask of EVENT_READ|EVENT_WRITE)
data -- attached data
Returns:
SelectorKey instance
Raises:
ValueError if events is invalid
KeyError if fileobj is already registered
OSError if fileobj is closed or otherwise is unacceptable to
the underlying system call (if a system call is made)
Note:
OSError may or may not be raised
NotImplementedErrorr r r r r r r register` s zBaseSelector.registerc C r2 )aj Unregister a file object.
Parameters:
fileobj -- file object or file descriptor
Returns:
SelectorKey instance
Raises:
KeyError if fileobj is not registered
Note:
If fileobj is registered but has since been closed this does
*not* raise OSError (even if the wrapped syscall does)
r3 )r r r r r
unregisterw zBaseSelector.unregisterc C s | | | |||S )ay Change a registered file object monitored events or attached data.
Parameters:
fileobj -- file object or file descriptor
events -- events to monitor (bitwise mask of EVENT_READ|EVENT_WRITE)
data -- attached data
Returns:
SelectorKey instance
Raises:
Anything that unregister() or register() raises
)r7 r6 r5 r r r modify s
zBaseSelector.modifyc C r2 )aq Perform the actual selection, until some monitored file objects are
ready or a timeout expires.
Parameters:
timeout -- if timeout > 0, this specifies the maximum wait time, in
seconds
if timeout <= 0, the select() call won't block, and will
report the currently ready file objects
if timeout is None, select() will block until a monitored
file object becomes ready
Returns:
list of (key, events) for ready file objects
`events` is a bitwise mask of EVENT_READ|EVENT_WRITE
r3 )r timeoutr r r select r8 zBaseSelector.selectc C s dS )zmClose the selector.
This must be called to make sure that any underlying resource is freed.
Nr r# r r r close s zBaseSelector.closec C sB | }|du rtdz|| W S ty td|dw )zzReturn the key associated to a registered file object.
Returns:
SelectorKey for this file object
NzSelector is closedr' )get_mapRuntimeErrorr) r )r r mappingr r r get_key s
zBaseSelector.get_keyc C r2 )z2Return a mapping of file objects to selector keys.r3 r# r r r r= s zBaseSelector.get_mapc C s | S r r r# r r r __enter__ s zBaseSelector.__enter__c G s | d S r )r<