summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMatthias Bussonnier <bussonniermatthias@gmail.com>2018-06-11 20:08:16 (GMT)
committerNed Deily <nad@python.org>2018-06-11 20:08:16 (GMT)
commit46c5cd0f6e22bdfbdd3f0b18f1d01eda754e7e11 (patch)
treefdc149ebe8a8bd24143db2f3301bb69e54b9bc04 /Lib
parentfd88f319a4f40682b989b63f0b6378d69465fda4 (diff)
downloadcpython-46c5cd0f6e22bdfbdd3f0b18f1d01eda754e7e11.zip
cpython-46c5cd0f6e22bdfbdd3f0b18f1d01eda754e7e11.tar.gz
cpython-46c5cd0f6e22bdfbdd3f0b18f1d01eda754e7e11.tar.bz2
bpo-33582: Emit deprecation warning for `formatargspec` (GH-6994)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/inspect.py16
-rw-r--r--Lib/test/test_inspect.py10
2 files changed, 20 insertions, 6 deletions
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 8dad817..238a368 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -18,7 +18,7 @@ Here are some of the useful functions provided by this module:
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
@@ -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:
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index 35e86b5..cda8d5c 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -712,8 +712,9 @@ class TestClassesAndFunctions(unittest.TestCase):
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,
@@ -729,8 +730,9 @@ class TestClassesAndFunctions(unittest.TestCase):
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):