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
the callback when it is called.
"""
handle = events.make_handle(callback, args)
handle = events.Handle(callback, args)
self._ready.append(handle)
return handle

View File

@ -20,6 +20,7 @@ class Handle:
"""Object returned by callback registration methods."""
def __init__(self, callback, args):
assert not isinstance(callback, Handle), 'A Handle is not a callback'
self._callback = callback
self._args = args
self._cancelled = False
@ -42,12 +43,6 @@ class Handle:
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):
"""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):
"""Add a reader callback."""
handle = events.make_handle(callback, args)
handle = events.Handle(callback, args)
try:
key = self._selector.get_key(fd)
except KeyError:
@ -167,7 +167,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
def add_writer(self, fd, callback, *args):
"""Add a writer callback.."""
handle = events.make_handle(callback, args)
handle = events.Handle(callback, args)
try:
key = self._selector.get_key(fd)
except KeyError:

View File

@ -216,7 +216,7 @@ class TestLoop(base_events.BaseEventLoop):
raise AssertionError("Time generator is not finished")
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):
self.remove_reader_count[fd] += 1
@ -235,7 +235,7 @@ class TestLoop(base_events.BaseEventLoop):
handle._args, 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):
self.remove_writer_count[fd] += 1

View File

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

View File

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