cpython: b0ae96700301 (original) (raw)

Mercurial > cpython

changeset 86784:b0ae96700301

Issue #19172: Add a get_map() method to selectors. [#19172]

Charles-François Natali cf.natali@gmail.com
date Wed, 30 Oct 2013 20:31:04 +0100
parents b49f9aa12dae
children 14069b168246
files Doc/library/selectors.rst Lib/selectors.py Lib/test/test_selectors.py
diffstat 3 files changed, 61 insertions(+), 1 deletions(-)[+] [-] Doc/library/selectors.rst 8 Lib/selectors.py 27 Lib/test/test_selectors.py 27

line wrap: on

line diff

--- a/Doc/library/selectors.rst +++ b/Doc/library/selectors.rst @@ -164,6 +164,14 @@ below: This returns the :class:SelectorKey instance associated to this file object, or raises :exc:KeyError if the file object is not registered.

+

+ .. class:: DefaultSelector()

--- a/Lib/selectors.py +++ b/Lib/selectors.py @@ -6,7 +6,7 @@ This module allows high-level and effici from abc import ABCMeta, abstractmethod -from collections import namedtuple +from collections import namedtuple, Mapping import functools import select import sys @@ -44,6 +44,25 @@ SelectorKey = namedtuple('SelectorKey', selected event mask and attached data.""" +class _SelectorMapping(Mapping):

+

+

+

+

+ + class BaseSelector(metaclass=ABCMeta): """Base selector class. @@ -62,6 +81,8 @@ class BaseSelector(metaclass=ABCMeta): def init(self): # this maps file descriptors to keys self._fd_to_key = {}

def register(self, fileobj, events, data=None): """Register a file object. @@ -162,6 +183,10 @@ class BaseSelector(metaclass=ABCMeta): except KeyError: raise KeyError("{!r} is not registered".format(fileobj)) from None

+ def enter(self): return self

--- a/Lib/test/test_selectors.py +++ b/Lib/test/test_selectors.py @@ -153,6 +153,33 @@ class BaseSelectorTestCase(unittest.Test # unknown file obj self.assertRaises(KeyError, s.get_key, 999999)

+

+

+

+

+ def test_select(self): s = self.SELECTOR() self.addCleanup(s.close)