]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-120200: Fix `inspect.iscoroutinefunction(inspect) is True` corner case (#120214)
authorNikita Sobolev <mail@sobolevn.me>
Fri, 7 Jun 2024 15:48:31 +0000 (18:48 +0300)
committerGitHub <noreply@github.com>
Fri, 7 Jun 2024 15:48:31 +0000 (18:48 +0300)
Lib/inspect.py
Lib/test/test_inspect/test_inspect.py

index e6e49a4ffa673a7ade9fef1ea9b8a78fc4eb5cd0..2b7f8bec482f8eb0c1ec5e9113bc90bfcce07357 100644 (file)
@@ -403,13 +403,13 @@ def isgeneratorfunction(obj):
     return _has_code_flag(obj, CO_GENERATOR)
 
 # A marker for markcoroutinefunction and iscoroutinefunction.
-_is_coroutine_marker = object()
+_is_coroutine_mark = object()
 
 def _has_coroutine_mark(f):
     while ismethod(f):
         f = f.__func__
     f = functools._unwrap_partial(f)
-    return getattr(f, "_is_coroutine_marker", None) is _is_coroutine_marker
+    return getattr(f, "_is_coroutine_marker", None) is _is_coroutine_mark
 
 def markcoroutinefunction(func):
     """
@@ -417,7 +417,7 @@ def markcoroutinefunction(func):
     """
     if hasattr(func, '__func__'):
         func = func.__func__
-    func._is_coroutine_marker = _is_coroutine_marker
+    func._is_coroutine_marker = _is_coroutine_mark
     return func
 
 def iscoroutinefunction(obj):
index 65007c16203c6dfafb22df76d22263f3ef9d9a35..0a4fa9343f15e0b4902835d4e897b55312d4db90 100644 (file)
@@ -235,6 +235,7 @@ class TestPredicates(IsTestBase):
                     gen_coroutine_function_example))))
         self.assertFalse(inspect.iscoroutinefunction(gen_coro_pmi))
         self.assertFalse(inspect.iscoroutinefunction(gen_coro_pmc))
+        self.assertFalse(inspect.iscoroutinefunction(inspect))
         self.assertFalse(inspect.iscoroutine(gen_coro))
 
         self.assertTrue(