mirror of
https://github.com/python/cpython.git
synced 2024-11-29 04:44:13 +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.
|
left to a package.
|
||||||
(Contributed by Vajrasky Kok and Berker Peksag in :issue:`1322`.)
|
(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
|
Deprecated functions and types of the C API
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
|
@ -2661,11 +2661,17 @@ class Signature:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def from_function(cls, func):
|
def from_function(cls, func):
|
||||||
"""Constructs Signature for the given python function."""
|
"""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)
|
return _signature_from_function(cls, func)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_builtin(cls, func):
|
def from_builtin(cls, func):
|
||||||
"""Constructs Signature for the given builtin function."""
|
"""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)
|
return _signature_from_builtin(cls, func)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -1971,13 +1971,6 @@ class TestSignatureObject(unittest.TestCase):
|
|||||||
with self.assertRaisesRegex(TypeError, 'is not a callable object'):
|
with self.assertRaisesRegex(TypeError, 'is not a callable object'):
|
||||||
inspect.signature(42)
|
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 test_signature_from_functionlike_object(self):
|
||||||
def func(a,b, *args, kwonly=True, kwonlyreq, **kwargs):
|
def func(a,b, *args, kwonly=True, kwonlyreq, **kwargs):
|
||||||
pass
|
pass
|
||||||
@ -1998,9 +1991,9 @@ class TestSignatureObject(unittest.TestCase):
|
|||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
return self.func(*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)
|
self.assertEqual(sig_funclike, sig_func)
|
||||||
|
|
||||||
sig_funclike = inspect.signature(funclike(func))
|
sig_funclike = inspect.signature(funclike(func))
|
||||||
@ -2048,9 +2041,6 @@ class TestSignatureObject(unittest.TestCase):
|
|||||||
__defaults__ = func.__defaults__
|
__defaults__ = func.__defaults__
|
||||||
__kwdefaults__ = func.__kwdefaults__
|
__kwdefaults__ = func.__kwdefaults__
|
||||||
|
|
||||||
with self.assertRaisesRegex(TypeError, 'is not a Python function'):
|
|
||||||
inspect.Signature.from_function(funclike)
|
|
||||||
|
|
||||||
self.assertEqual(str(inspect.signature(funclike)), '(marker)')
|
self.assertEqual(str(inspect.signature(funclike)), '(marker)')
|
||||||
|
|
||||||
def test_signature_on_method(self):
|
def test_signature_on_method(self):
|
||||||
|
@ -183,6 +183,9 @@ Library
|
|||||||
inspect.Signature.from_callable() and inspect.signature().
|
inspect.Signature.from_callable() and inspect.signature().
|
||||||
Contributed by Yury Selivanov.
|
Contributed by Yury Selivanov.
|
||||||
|
|
||||||
|
- Issue 24248: Deprecate inspect.Signature.from_function() and
|
||||||
|
inspect.Signature.from_builtin().
|
||||||
|
|
||||||
Tests
|
Tests
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user