{|jL t d Z ddlmZmZ ddlmZ ddlmZ ddlZddl Z ddl
Z
dZdZd Z
ed g d
Zde_ dej _ d
ej _ dej" _ dej$ _ G d de Z G d de Z G d de Z G d de Z G d de Z ee d r G d de Z ee d r G d d e Z ee d! r G d" d#e Z ee d$ r G d% d&e Zd' Z ed$ reZy ed reZy ed! reZy ed reZyeZy)(z|Selectors module.
This module allows high-level and efficient I/O multiplexing, built upon the
`select` module primitives.
)ABCMetaabstractmethod)
namedtuple)MappingN c t | t r| }n t | j }|dk rt dj
| |S # t t t
f$ r t dj
| dw xY w)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)fileobjfds "/usr/lib64/python3.12/selectors.py_fileobj_to_fdr s '3
?W^^%&B
Av6==bABB
I :6 ? $$*F7O5:>
? ?s A 0A?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.zvOptional opaque data associated to this file object.
For example, this could be used to store a per-client session ID.c ( e Zd ZdZd Zd Zd Zd Zy)_SelectorMappingz)Mapping of file objects to selector keys.c || _ y N) _selector)selfselectors r __init__z_SelectorMapping.__init__? s ! c @ t | j j S r )lenr
_fd_to_keyr s r __len__z_SelectorMapping.__len__B s 4>>,,--r c | j j | }| j j | S # t $ r t dj | d w xY wN{!r} is not registered)r _fileobj_lookupr# KeyErrorr )r r r s r __getitem__z_SelectorMapping.__getitem__E s[ O//8B>>,,R00 O3::7CD$N Os 36 %Ac @ t | j j S r )iterr r# r$ s r __iter__z_SelectorMapping.__iter__L s DNN--..r N)__name__
__module____qualname____doc__r r% r+ r. r r r r <