Skip to content

Commit

Permalink
bpo-33582: Emit deprecation warning for formatargspec (GH-6994)
Browse files Browse the repository at this point in the history
  • Loading branch information
Carreau authored and ned-deily committed Jun 11, 2018
1 parent fd88f31 commit 46c5cd0
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 6 deletions.
16 changes: 14 additions & 2 deletions Lib/inspect.py
Expand Up @@ -18,7 +18,7 @@
getargvalues(), getcallargs() - get info about function arguments
getfullargspec() - same, with support for Python 3 features
formatargspec(), formatargvalues() - format an argument spec
formatargvalues() - format an argument spec
getouterframes(), getinnerframes() - get info about frames
currentframe() - get the current stack frame
stack(), trace() - get info about frames on the stack or in a traceback
Expand Down Expand Up @@ -1211,7 +1211,19 @@ def formatargspec(args, varargs=None, varkw=None, defaults=None,
kwonlyargs, kwonlydefaults, annotations). The other five arguments
are the corresponding optional formatting functions that are called to
turn names and values into strings. The last argument is an optional
function to format the sequence of arguments."""
function to format the sequence of arguments.
Deprecated since Python 3.5: use the `signature` function and `Signature`
objects.
"""

from warnings import warn

warn("`formatargspec` is deprecated since Python 3.5. Use `signature` and "
" the `Signature` object directly",
DeprecationWarning,
stacklevel=2)

def formatargandannotation(arg):
result = formatarg(arg)
if arg in annotations:
Expand Down
10 changes: 6 additions & 4 deletions Lib/test/test_inspect.py
Expand Up @@ -712,8 +712,9 @@ def assertArgSpecEquals(self, routine, args_e, varargs_e=None,
self.assertEqual(varkw, varkw_e)
self.assertEqual(defaults, defaults_e)
if formatted is not None:
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
formatted)
with self.assertWarns(DeprecationWarning):
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
formatted)

def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
varkw_e=None, defaults_e=None,
Expand All @@ -729,8 +730,9 @@ def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
self.assertEqual(kwonlydefaults, kwonlydefaults_e)
self.assertEqual(ann, ann_e)
if formatted is not None:
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
kwonlyargs, kwonlydefaults, ann),
with self.assertWarns(DeprecationWarning):
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
kwonlyargs, kwonlydefaults, ann),
formatted)

def test_getargspec(self):
Expand Down
@@ -0,0 +1 @@
Emit a deprecation warning for inspect.formatargspec

0 comments on commit 46c5cd0

Please sign in to comment.