Skip to content

Commit 46c5cd0

Browse files
Carreauned-deily
authored andcommitted
bpo-33582: Emit deprecation warning for formatargspec (GH-6994)
1 parent fd88f31 commit 46c5cd0

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

Lib/inspect.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
1919
getargvalues(), getcallargs() - get info about function arguments
2020
getfullargspec() - same, with support for Python 3 features
21-
formatargspec(), formatargvalues() - format an argument spec
21+
formatargvalues() - format an argument spec
2222
getouterframes(), getinnerframes() - get info about frames
2323
currentframe() - get the current stack frame
2424
stack(), trace() - get info about frames on the stack or in a traceback
@@ -1211,7 +1211,19 @@ def formatargspec(args, varargs=None, varkw=None, defaults=None,
12111211
kwonlyargs, kwonlydefaults, annotations). The other five arguments
12121212
are the corresponding optional formatting functions that are called to
12131213
turn names and values into strings. The last argument is an optional
1214-
function to format the sequence of arguments."""
1214+
function to format the sequence of arguments.
1215+
1216+
Deprecated since Python 3.5: use the `signature` function and `Signature`
1217+
objects.
1218+
"""
1219+
1220+
from warnings import warn
1221+
1222+
warn("`formatargspec` is deprecated since Python 3.5. Use `signature` and "
1223+
" the `Signature` object directly",
1224+
DeprecationWarning,
1225+
stacklevel=2)
1226+
12151227
def formatargandannotation(arg):
12161228
result = formatarg(arg)
12171229
if arg in annotations:

Lib/test/test_inspect.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -712,8 +712,9 @@ def assertArgSpecEquals(self, routine, args_e, varargs_e=None,
712712
self.assertEqual(varkw, varkw_e)
713713
self.assertEqual(defaults, defaults_e)
714714
if formatted is not None:
715-
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
716-
formatted)
715+
with self.assertWarns(DeprecationWarning):
716+
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
717+
formatted)
717718

718719
def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
719720
varkw_e=None, defaults_e=None,
@@ -729,8 +730,9 @@ def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
729730
self.assertEqual(kwonlydefaults, kwonlydefaults_e)
730731
self.assertEqual(ann, ann_e)
731732
if formatted is not None:
732-
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
733-
kwonlyargs, kwonlydefaults, ann),
733+
with self.assertWarns(DeprecationWarning):
734+
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
735+
kwonlyargs, kwonlydefaults, ann),
734736
formatted)
735737

736738
def test_getargspec(self):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Emit a deprecation warning for inspect.formatargspec

0 commit comments

Comments
 (0)