changeset: 96208:3a5fec5e025d user: Yury Selivanov date: Fri May 22 11:38:38 2015 -0400 files: Doc/library/inspect.rst Lib/inspect.py Lib/test/test_inspect.py description: Issue 20438: Deprecate inspect.getargspec() and friends. diff -r c8a3e49f35e7 -r 3a5fec5e025d Doc/library/inspect.rst --- a/Doc/library/inspect.rst Fri May 22 11:30:45 2015 -0400 +++ b/Doc/library/inspect.rst Fri May 22 11:38:38 2015 -0400 @@ -815,15 +815,16 @@ The first four items in the tuple correspond to :func:`getargspec`. - .. note:: - Consider using the new :ref:`Signature Object ` - interface, which provides a better way of introspecting functions. - .. versionchanged:: 3.4 This function is now based on :func:`signature`, but still ignores ``__wrapped__`` attributes and includes the already bound first parameter in the signature output for bound methods. + .. deprecated:: 3.5 + Use :func:`signature` and + :ref:`Signature Object `, which provide a + better introspecting API for callables. + .. function:: getargvalues(frame) @@ -896,8 +897,8 @@ .. versionadded:: 3.2 - .. note:: - Consider using the new :meth:`Signature.bind` instead. + .. deprecated:: 3.5 + Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead. .. function:: getclosurevars(func) diff -r c8a3e49f35e7 -r 3a5fec5e025d Lib/inspect.py --- a/Lib/inspect.py Fri May 22 11:30:45 2015 -0400 +++ b/Lib/inspect.py Fri May 22 11:38:38 2015 -0400 @@ -1033,7 +1033,8 @@ and keyword arguments are supported. getargspec() will raise ValueError if the func has either annotations or keyword arguments. """ - + warnings.warn("inspect.getargspec() is deprecated, " + "use inspect.signature() instead", DeprecationWarning) args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = \ getfullargspec(func) if kwonlyargs or ann: @@ -1057,6 +1058,8 @@ 'annotations' is a dictionary mapping argument names to annotations. The first four items in the tuple correspond to getargspec(). + + This function is deprecated, use inspect.signature() instead. """ try: diff -r c8a3e49f35e7 -r 3a5fec5e025d Lib/test/test_inspect.py --- a/Lib/test/test_inspect.py Fri May 22 11:30:45 2015 -0400 +++ b/Lib/test/test_inspect.py Fri May 22 11:38:38 2015 -0400 @@ -631,7 +631,8 @@ def assertArgSpecEquals(self, routine, args_e, varargs_e=None, varkw_e=None, defaults_e=None, formatted=None): - args, varargs, varkw, defaults = inspect.getargspec(routine) + with self.assertWarns(DeprecationWarning): + args, varargs, varkw, defaults = inspect.getargspec(routine) self.assertEqual(args, args_e) self.assertEqual(varargs, varargs_e) self.assertEqual(varkw, varkw_e)