Skip to content

Commit

Permalink
Issue 20438: Deprecate inspect.getargspec() and friends.
Browse files Browse the repository at this point in the history
  • Loading branch information
1st1 committed May 22, 2015
1 parent 8d006e7 commit 3cfec2e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
13 changes: 7 additions & 6 deletions Doc/library/inspect.rst
Original file line number Diff line number Diff line change
Expand Up @@ -815,15 +815,16 @@ Classes and functions

The first four items in the tuple correspond to :func:`getargspec`.

.. note::
Consider using the new :ref:`Signature Object <inspect-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 <inspect-signature-object>`, which provide a
better introspecting API for callables.


.. function:: getargvalues(frame)

Expand Down Expand Up @@ -896,8 +897,8 @@ Classes and functions

.. 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)
Expand Down
5 changes: 4 additions & 1 deletion Lib/inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -1033,7 +1033,8 @@ def getargspec(func):
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:
Expand All @@ -1057,6 +1058,8 @@ def getfullargspec(func):
'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:
Expand Down
3 changes: 2 additions & 1 deletion Lib/test/test_inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,8 @@ class D(B, C): pass

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)
Expand Down

0 comments on commit 3cfec2e

Please sign in to comment.