From a74b5e59af6b4271eac7953771e7d3346e76b058 Mon Sep 17 00:00:00 2001 From: Yury Selivanov Date: Tue, 30 Jun 2015 18:19:01 -0400 Subject: [PATCH] Issue #24400: Remove inspect.isawaitable(). isawaitable() was added before collections.abc.Awaitable; now, with Awaitable, it is no longer needed (we don't have ishashable() or isiterable() methods in the inspect module either). --- Doc/library/inspect.rst | 10 ---------- Doc/whatsnew/3.5.rst | 5 ++--- Lib/inspect.py | 4 ---- Lib/test/test_inspect.py | 25 ------------------------- 4 files changed, 2 insertions(+), 42 deletions(-) diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index d4ebffd5845..8bce5223f8b 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -303,16 +303,6 @@ attributes: .. versionadded:: 3.5 -.. function:: isawaitable(object) - - Return true if the object can be used in :keyword:`await` - expression. - - See also :class:`collections.abc.Awaitable`. - - .. versionadded:: 3.5 - - .. function:: istraceback(object) Return true if the object is a traceback. diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index abc1b8db6e2..63a5ff53d8e 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -527,9 +527,8 @@ inspect * New argument ``follow_wrapped`` for :func:`inspect.signature`. (Contributed by Yury Selivanov in :issue:`20691`.) -* New :func:`~inspect.iscoroutine`, :func:`~inspect.iscoroutinefunction`, - and :func:`~inspect.isawaitable` functions. (Contributed by Yury Selivanov - in :issue:`24017`.) +* New :func:`~inspect.iscoroutine` and :func:`~inspect.iscoroutinefunction` + functions. (Contributed by Yury Selivanov in :issue:`24017`.) * New :func:`~inspect.getcoroutinelocals` and :func:`~inspect.getcoroutinestate` functions. (Contributed by Yury Selivanov in :issue:`24400`.) diff --git a/Lib/inspect.py b/Lib/inspect.py index 6285a6cdd5c..f48769e5144 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -186,10 +186,6 @@ def iscoroutinefunction(object): return bool((isfunction(object) or ismethod(object)) and object.__code__.co_flags & CO_COROUTINE) -def isawaitable(object): - """Return true if the object can be used in "await" expression.""" - return isinstance(object, collections.abc.Awaitable) - def isgenerator(object): """Return true if the object is a generator. diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 39fa484abc5..ebd106c1d7a 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -159,31 +159,6 @@ class TestPredicates(IsTestBase): coro.close(); gen_coro.close() # silence warnings - def test_isawaitable(self): - def gen(): yield - self.assertFalse(inspect.isawaitable(gen())) - - coro = coroutine_function_example(1) - gen_coro = gen_coroutine_function_example(1) - - self.assertTrue( - inspect.isawaitable(coro)) - self.assertTrue( - inspect.isawaitable(gen_coro)) - - class Future: - def __await__(): - pass - self.assertTrue(inspect.isawaitable(Future())) - self.assertFalse(inspect.isawaitable(Future)) - - class NotFuture: pass - not_fut = NotFuture() - not_fut.__await__ = lambda: None - self.assertFalse(inspect.isawaitable(not_fut)) - - coro.close(); gen_coro.close() # silence warnings - def test_isroutine(self): self.assertTrue(inspect.isroutine(mod.spam)) self.assertTrue(inspect.isroutine([].count))