changeset: 96182:64fba4ea031b user: Yury Selivanov date: Wed May 20 23:07:02 2015 -0400 files: Doc/whatsnew/3.5.rst Lib/inspect.py Lib/test/test_inspect.py Misc/NEWS description: Issue 24248: Deprecate inspect.Signature.from_function and .from_builtin diff -r 962b42d67b9e -r 64fba4ea031b Doc/whatsnew/3.5.rst --- a/Doc/whatsnew/3.5.rst Wed May 20 21:50:59 2015 +0200 +++ b/Doc/whatsnew/3.5.rst Wed May 20 23:07:02 2015 -0400 @@ -751,6 +751,11 @@ 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 ------------------------------------------- diff -r 962b42d67b9e -r 64fba4ea031b Lib/inspect.py --- a/Lib/inspect.py Wed May 20 21:50:59 2015 +0200 +++ b/Lib/inspect.py Wed May 20 23:07:02 2015 -0400 @@ -2661,11 +2661,17 @@ @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 diff -r 962b42d67b9e -r 64fba4ea031b Lib/test/test_inspect.py --- a/Lib/test/test_inspect.py Wed May 20 21:50:59 2015 +0200 +++ b/Lib/test/test_inspect.py Wed May 20 23:07:02 2015 -0400 @@ -1971,13 +1971,6 @@ 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 @@ def __call__(self, *args, **kwargs): return self.func(*args, **kwargs) - sig_func = inspect.Signature.from_function(func) - - sig_funclike = inspect.Signature.from_function(funclike(func)) + sig_func = inspect.Signature.from_callable(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 @@ __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): diff -r 962b42d67b9e -r 64fba4ea031b Misc/NEWS --- a/Misc/NEWS Wed May 20 21:50:59 2015 +0200 +++ b/Misc/NEWS Wed May 20 23:07:02 2015 -0400 @@ -183,6 +183,9 @@ inspect.Signature.from_callable() and inspect.signature(). Contributed by Yury Selivanov. +- Issue 24248: Deprecate inspect.Signature.from_function() and + inspect.Signature.from_builtin(). + Tests -----