mirror of https://github.com/python/cpython
asyncio: Tulip issue 112: Inline make_handle() into Handle constructor
This commit is contained in:
parent
136fea253e
commit
dc62b7e261
|
@ -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
|
||||
|
||||
|
|
|
@ -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."""
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue