Kaydet (Commit) dc62b7e2 authored tarafından Victor Stinner's avatar Victor Stinner

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

üst 136fea25
...@@ -240,7 +240,7 @@ class BaseEventLoop(events.AbstractEventLoop): ...@@ -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
......
...@@ -20,6 +20,7 @@ class Handle: ...@@ -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: ...@@ -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."""
......
...@@ -132,7 +132,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop): ...@@ -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): ...@@ -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:
......
...@@ -216,7 +216,7 @@ class TestLoop(base_events.BaseEventLoop): ...@@ -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): ...@@ -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
......
...@@ -64,7 +64,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop): ...@@ -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:
......
...@@ -1660,12 +1660,12 @@ class HandleTests(unittest.TestCase): ...@@ -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):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment