mirror of
https://github.com/python/cpython.git
synced 2024-11-28 20:33:54 +08:00
Issue 24248: Deprecate inspect.Signature.from_function and .from_builtin
This commit is contained in:
parent
45d6156154
commit
57c74fca02
@ -751,6 +751,11 @@ Deprecated Python modules, functions and methods
|
||||
left to a package.
|
||||
(Contributed by Vajrasky Kok and Berker Peksag in :issue:`1322`.)
|
||||
|
||||
* Previously undocumented ``from_function`` and ``from_builtin`` methods
|
||||
of :class:`inspect.Signature` are deprecated. Use new
|
||||
:meth:`inspect.Signature.from_callable` instead. (Contributed by Yury
|
||||
Selivanov in :issue:`24248`.)
|
||||
|
||||
Deprecated functions and types of the C API
|
||||
-------------------------------------------
|
||||
|
||||
|
@ -2661,11 +2661,17 @@ class Signature:
|
||||
@classmethod
|
||||
def from_function(cls, func):
|
||||
"""Constructs Signature for the given python function."""
|
||||
|
||||
warnings.warn("inspect.Signature.from_function() is deprecated, "
|
||||
"use Signature.from_callable()", DeprecationWarning)
|
||||
return _signature_from_function(cls, func)
|
||||
|
||||
@classmethod
|
||||
def from_builtin(cls, func):
|
||||
"""Constructs Signature for the given builtin function."""
|
||||
|
||||
warnings.warn("inspect.Signature.from_builtin() is deprecated, "
|
||||
"use Signature.from_callable()", DeprecationWarning)
|
||||
return _signature_from_builtin(cls, func)
|
||||
|
||||
@classmethod
|
||||
|
@ -1971,13 +1971,6 @@ class TestSignatureObject(unittest.TestCase):
|
||||
with self.assertRaisesRegex(TypeError, 'is not a callable object'):
|
||||
inspect.signature(42)
|
||||
|
||||
with self.assertRaisesRegex(TypeError, 'is not a Python function'):
|
||||
inspect.Signature.from_function(42)
|
||||
|
||||
def test_signature_from_builtin_errors(self):
|
||||
with self.assertRaisesRegex(TypeError, 'is not a Python builtin'):
|
||||
inspect.Signature.from_builtin(42)
|
||||
|
||||
def test_signature_from_functionlike_object(self):
|
||||
def func(a,b, *args, kwonly=True, kwonlyreq, **kwargs):
|
||||
pass
|
||||
@ -1998,9 +1991,9 @@ class TestSignatureObject(unittest.TestCase):
|
||||
def __call__(self, *args, **kwargs):
|
||||
return self.func(*args, **kwargs)
|
||||
|
||||
sig_func = inspect.Signature.from_function(func)
|
||||
sig_func = inspect.Signature.from_callable(func)
|
||||
|
||||
sig_funclike = inspect.Signature.from_function(funclike(func))
|
||||
sig_funclike = inspect.Signature.from_callable(funclike(func))
|
||||
self.assertEqual(sig_funclike, sig_func)
|
||||
|
||||
sig_funclike = inspect.signature(funclike(func))
|
||||
@ -2048,9 +2041,6 @@ class TestSignatureObject(unittest.TestCase):
|
||||
__defaults__ = func.__defaults__
|
||||
__kwdefaults__ = func.__kwdefaults__
|
||||
|
||||
with self.assertRaisesRegex(TypeError, 'is not a Python function'):
|
||||
inspect.Signature.from_function(funclike)
|
||||
|
||||
self.assertEqual(str(inspect.signature(funclike)), '(marker)')
|
||||
|
||||
def test_signature_on_method(self):
|
||||
|
Loading…
Reference in New Issue
Block a user