asyncio: Tulip issue 112: Inline make_handle() into Handle constructor

This commit is contained in:
Victor Stinner 2014-02-10 00:45:44 +01:00
parent 136fea253e
commit dc62b7e261
6 changed files with 9 additions and 14 deletions

View file

@ -240,7 +240,7 @@ class BaseEventLoop(events.AbstractEventLoop):
Any positional arguments after the callback will be passed to Any positional arguments after the callback will be passed to
the callback when it is called. the callback when it is called.
""" """
handle = events.make_handle(callback, args) handle = events.Handle(callback, args)
self._ready.append(handle) self._ready.append(handle)
return handle return handle

View file

@ -20,6 +20,7 @@ class Handle:
"""Object returned by callback registration methods.""" """Object returned by callback registration methods."""
def __init__(self, callback, args): def __init__(self, callback, args):
assert not isinstance(callback, Handle), 'A Handle is not a callback'
self._callback = callback self._callback = callback
self._args = args self._args = args
self._cancelled = False self._cancelled = False
@ -42,12 +43,6 @@ class Handle:
self = None # Needed to break cycles when an exception occurs. self = None # Needed to break cycles when an exception occurs.
def make_handle(callback, args):
# TODO: Inline this? Or make it a private EventLoop method?
assert not isinstance(callback, Handle), 'A Handle is not a callback'
return Handle(callback, args)
class TimerHandle(Handle): class TimerHandle(Handle):
"""Object returned by timed callback registration methods.""" """Object returned by timed callback registration methods."""

View file

@ -132,7 +132,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
def add_reader(self, fd, callback, *args): def add_reader(self, fd, callback, *args):
"""Add a reader callback.""" """Add a reader callback."""
handle = events.make_handle(callback, args) handle = events.Handle(callback, args)
try: try:
key = self._selector.get_key(fd) key = self._selector.get_key(fd)
except KeyError: except KeyError:
@ -167,7 +167,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
def add_writer(self, fd, callback, *args): def add_writer(self, fd, callback, *args):
"""Add a writer callback..""" """Add a writer callback.."""
handle = events.make_handle(callback, args) handle = events.Handle(callback, args)
try: try:
key = self._selector.get_key(fd) key = self._selector.get_key(fd)
except KeyError: except KeyError:

View file

@ -216,7 +216,7 @@ class TestLoop(base_events.BaseEventLoop):
raise AssertionError("Time generator is not finished") raise AssertionError("Time generator is not finished")
def add_reader(self, fd, callback, *args): def add_reader(self, fd, callback, *args):
self.readers[fd] = events.make_handle(callback, args) self.readers[fd] = events.Handle(callback, args)
def remove_reader(self, fd): def remove_reader(self, fd):
self.remove_reader_count[fd] += 1 self.remove_reader_count[fd] += 1
@ -235,7 +235,7 @@ class TestLoop(base_events.BaseEventLoop):
handle._args, args) handle._args, args)
def add_writer(self, fd, callback, *args): def add_writer(self, fd, callback, *args):
self.writers[fd] = events.make_handle(callback, args) self.writers[fd] = events.Handle(callback, args)
def remove_writer(self, fd): def remove_writer(self, fd):
self.remove_writer_count[fd] += 1 self.remove_writer_count[fd] += 1

View file

@ -64,7 +64,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
except ValueError as exc: except ValueError as exc:
raise RuntimeError(str(exc)) raise RuntimeError(str(exc))
handle = events.make_handle(callback, args) handle = events.Handle(callback, args)
self._signal_handlers[sig] = handle self._signal_handlers[sig] = handle
try: try:

View file

@ -1660,12 +1660,12 @@ class HandleTests(unittest.TestCase):
'<function HandleTests.test_handle.<locals>.callback')) '<function HandleTests.test_handle.<locals>.callback'))
self.assertTrue(r.endswith('())<cancelled>'), r) self.assertTrue(r.endswith('())<cancelled>'), r)
def test_make_handle(self): def test_handle(self):
def callback(*args): def callback(*args):
return args return args
h1 = asyncio.Handle(callback, ()) h1 = asyncio.Handle(callback, ())
self.assertRaises( self.assertRaises(
AssertionError, asyncio.events.make_handle, h1, ()) AssertionError, asyncio.Handle, h1, ())
@unittest.mock.patch('asyncio.events.logger') @unittest.mock.patch('asyncio.events.logger')
def test_callback_with_exception(self, log): def test_callback_with_exception(self, log):