Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Commit aee19f5

Browse files
authored
bpo-36751: Undeprecate getfullargspec (pythonGH-13245)
1 parent 54b43bb commit aee19f5

File tree

5 files changed

+20
-60
lines changed

5 files changed

+20
-60
lines changed

Doc/library/inspect.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -948,11 +948,6 @@ Classes and functions
948948
APIs. This function is retained primarily for use in code that needs to
949949
maintain compatibility with the Python 2 ``inspect`` module API.
950950

951-
.. deprecated:: 3.8
952-
Use :func:`signature` and
953-
:ref:`Signature Object <inspect-signature-object>`, which provide a
954-
better introspecting API for callables.
955-
956951
.. versionchanged:: 3.4
957952
This function is now based on :func:`signature`, but still ignores
958953
``__wrapped__`` attributes and includes the already bound first

Doc/whatsnew/3.8.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -780,10 +780,6 @@ Deprecated
780780
<positional-only_parameter>`.
781781
(Contributed by Serhiy Storchaka in :issue:`36492`.)
782782

783-
* The function :func:`~inspect.getfullargspec` in the :mod:`inspect`
784-
module is deprecated in favor of the :func:`inspect.signature`
785-
API. (Contributed by Pablo Galindo in :issue:`36751`.)
786-
787783

788784
API and Feature Removals
789785
========================

Lib/inspect.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,16 +1103,10 @@ def getfullargspec(func):
11031103
'kwonlydefaults' is a dictionary mapping names from kwonlyargs to defaults.
11041104
'annotations' is a dictionary mapping parameter names to annotations.
11051105
1106-
.. deprecated:: 3.8
1107-
Use inspect.signature() instead of inspect.getfullargspec().
1108-
11091106
Notable differences from inspect.signature():
11101107
- the "self" parameter is always reported, even for bound methods
11111108
- wrapper chains defined by __wrapped__ *not* unwrapped automatically
11121109
"""
1113-
1114-
warnings.warn("Use inspect.signature() instead of inspect.getfullargspec()",
1115-
DeprecationWarning, stacklevel=2)
11161110
try:
11171111
# Re: `skip_bound_arg=False`
11181112
#

Lib/test/test_inspect.py

Lines changed: 20 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -750,25 +750,22 @@ class D(B, C): pass
750750

751751
def assertArgSpecEquals(self, routine, args_e, varargs_e=None,
752752
varkw_e=None, defaults_e=None, formatted=None):
753-
with self.assertWarns(DeprecationWarning):
754-
args, varargs, varkw, defaults = inspect.getargspec(routine)
753+
args, varargs, varkw, defaults = inspect.getargspec(routine)
755754
self.assertEqual(args, args_e)
756755
self.assertEqual(varargs, varargs_e)
757756
self.assertEqual(varkw, varkw_e)
758757
self.assertEqual(defaults, defaults_e)
759758
if formatted is not None:
760-
with self.assertWarns(DeprecationWarning):
761-
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
762-
formatted)
759+
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
760+
formatted)
763761

764762
def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
765763
varkw_e=None, defaults_e=None,
766764
posonlyargs_e=[], kwonlyargs_e=[],
767765
kwonlydefaults_e=None,
768766
ann_e={}, formatted=None):
769-
with self.assertWarns(DeprecationWarning):
770-
args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = \
771-
inspect.getfullargspec(routine)
767+
args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = \
768+
inspect.getfullargspec(routine)
772769
self.assertEqual(args, args_e)
773770
self.assertEqual(varargs, varargs_e)
774771
self.assertEqual(varkw, varkw_e)
@@ -777,9 +774,8 @@ def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
777774
self.assertEqual(kwonlydefaults, kwonlydefaults_e)
778775
self.assertEqual(ann, ann_e)
779776
if formatted is not None:
780-
with self.assertWarns(DeprecationWarning):
781-
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
782-
kwonlyargs, kwonlydefaults, ann),
777+
self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
778+
kwonlyargs, kwonlydefaults, ann),
783779
formatted)
784780

785781
def test_getargspec(self):
@@ -879,13 +875,11 @@ def test():
879875

880876
def test_getfullargspec_signature_annos(self):
881877
def test(a:'spam') -> 'ham': pass
882-
with self.assertWarns(DeprecationWarning):
883-
spec = inspect.getfullargspec(test)
878+
spec = inspect.getfullargspec(test)
884879
self.assertEqual(test.__annotations__, spec.annotations)
885880

886881
def test(): pass
887-
with self.assertWarns(DeprecationWarning):
888-
spec = inspect.getfullargspec(test)
882+
spec = inspect.getfullargspec(test)
889883
self.assertEqual(test.__annotations__, spec.annotations)
890884

891885
@unittest.skipIf(MISSING_C_DOCSTRINGS,
@@ -910,8 +904,7 @@ def test_getfullargspec_builtin_methods(self):
910904
def test_getfullargspec_builtin_func(self):
911905
import _testcapi
912906
builtin = _testcapi.docstring_with_signature_with_defaults
913-
with self.assertWarns(DeprecationWarning):
914-
spec = inspect.getfullargspec(builtin)
907+
spec = inspect.getfullargspec(builtin)
915908
self.assertEqual(spec.defaults[0], 'avocado')
916909

917910
@cpython_only
@@ -920,20 +913,17 @@ def test_getfullargspec_builtin_func(self):
920913
def test_getfullargspec_builtin_func_no_signature(self):
921914
import _testcapi
922915
builtin = _testcapi.docstring_no_signature
923-
with self.assertWarns(DeprecationWarning):
924-
with self.assertRaises(TypeError):
925-
inspect.getfullargspec(builtin)
916+
with self.assertRaises(TypeError):
917+
inspect.getfullargspec(builtin)
926918

927919
def test_getfullargspec_definition_order_preserved_on_kwonly(self):
928920
for fn in signatures_with_lexicographic_keyword_only_parameters():
929-
with self.assertWarns(DeprecationWarning):
930-
signature = inspect.getfullargspec(fn)
921+
signature = inspect.getfullargspec(fn)
931922
l = list(signature.kwonlyargs)
932923
sorted_l = sorted(l)
933924
self.assertTrue(l)
934925
self.assertEqual(l, sorted_l)
935-
with self.assertWarns(DeprecationWarning):
936-
signature = inspect.getfullargspec(unsorted_keyword_only_parameters_fn)
926+
signature = inspect.getfullargspec(unsorted_keyword_only_parameters_fn)
937927
l = list(signature.kwonlyargs)
938928
self.assertEqual(l, unsorted_keyword_only_parameters)
939929

@@ -1390,9 +1380,8 @@ class TestGetcallargsFunctions(unittest.TestCase):
13901380
def assertEqualCallArgs(self, func, call_params_string, locs=None):
13911381
locs = dict(locs or {}, func=func)
13921382
r1 = eval('func(%s)' % call_params_string, None, locs)
1393-
with self.assertWarns(DeprecationWarning):
1394-
r2 = eval('inspect.getcallargs(func, %s)' % call_params_string, None,
1395-
locs)
1383+
r2 = eval('inspect.getcallargs(func, %s)' % call_params_string, None,
1384+
locs)
13961385
self.assertEqual(r1, r2)
13971386

13981387
def assertEqualException(self, func, call_param_string, locs=None):
@@ -1404,9 +1393,8 @@ def assertEqualException(self, func, call_param_string, locs=None):
14041393
else:
14051394
self.fail('Exception not raised')
14061395
try:
1407-
with self.assertWarns(DeprecationWarning):
1408-
eval('inspect.getcallargs(func, %s)' % call_param_string, None,
1409-
locs)
1396+
eval('inspect.getcallargs(func, %s)' % call_param_string, None,
1397+
locs)
14101398
except Exception as e:
14111399
ex2 = e
14121400
else:
@@ -1564,16 +1552,14 @@ def test_errors(self):
15641552
def f5(*, a): pass
15651553
with self.assertRaisesRegex(TypeError,
15661554
'missing 1 required keyword-only'):
1567-
with self.assertWarns(DeprecationWarning):
1568-
inspect.getcallargs(f5)
1555+
inspect.getcallargs(f5)
15691556

15701557

15711558
# issue20817:
15721559
def f6(a, b, c):
15731560
pass
15741561
with self.assertRaisesRegex(TypeError, "'a', 'b' and 'c'"):
1575-
with self.assertWarns(DeprecationWarning):
1576-
inspect.getcallargs(f6)
1562+
inspect.getcallargs(f6)
15771563

15781564
# bpo-33197
15791565
with self.assertRaisesRegex(ValueError,

Misc/NEWS.d/3.8.0a4.rst

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,6 @@ directory if the :envvar:`PATH` environment variable is not set.
3333

3434
..
3535
36-
.. bpo: 36751
37-
.. date: 2019-04-29-23-30-21
38-
.. nonce: 3NCRbm
39-
.. section: Core and Builtins
40-
41-
The :func:`~inspect.getfullargspec` function in the :mod:`inspect` module is
42-
deprecated in favor of the :func:`inspect.signature` API. Contributed by
43-
Pablo Galindo.
44-
45-
..
46-
4736
.. bpo: 36722
4837
.. date: 2019-04-25-21-02-40
4938
.. nonce: 8NApVM

0 commit comments

Comments
 (0)