gh-136021: Make type_params a required parameter for typing._eval_type (#136332)

This commit is contained in:
sobolevn 2025-07-06 22:11:13 +03:00 committed by GitHub
parent 77a8bd29da
commit c89f76e6c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 4 additions and 32 deletions

View file

@ -6309,31 +6309,6 @@ class NoTypeCheckTests(BaseTestCase):
class InternalsTests(BaseTestCase):
def test_deprecation_for_no_type_params_passed_to__evaluate(self):
with self.assertWarnsRegex(
DeprecationWarning,
(
"Failing to pass a value to the 'type_params' parameter "
"of 'typing._eval_type' is deprecated"
)
) as cm:
self.assertEqual(typing._eval_type(list["int"], globals(), {}), list[int])
self.assertEqual(cm.filename, __file__)
f = ForwardRef("int")
with self.assertWarnsRegex(
DeprecationWarning,
(
"Failing to pass a value to the 'type_params' parameter "
"of 'typing.ForwardRef._evaluate' is deprecated"
)
) as cm:
self.assertIs(f._evaluate(globals(), {}, recursive_guard=frozenset()), int)
self.assertEqual(cm.filename, __file__)
def test_collect_parameters(self):
typing = import_helper.import_fresh_module("typing")
with self.assertWarnsRegex(

View file

@ -437,10 +437,7 @@ class _Sentinel:
return '<sentinel>'
_sentinel = _Sentinel()
def _eval_type(t, globalns, localns, type_params=_sentinel, *, recursive_guard=frozenset(),
def _eval_type(t, globalns, localns, type_params, *, recursive_guard=frozenset(),
format=None, owner=None):
"""Evaluate all forward references in the given type t.
@ -448,9 +445,6 @@ def _eval_type(t, globalns, localns, type_params=_sentinel, *, recursive_guard=f
recursive_guard is used to prevent infinite recursion with a recursive
ForwardRef.
"""
if type_params is _sentinel:
_deprecation_warning_for_no_type_params_passed("typing._eval_type")
type_params = ()
if isinstance(t, _lazy_annotationlib.ForwardRef):
# If the forward_ref has __forward_module__ set, evaluate() infers the globals
# from the module, and it will probably pick better than the globals we have here.

View file

@ -0,0 +1,3 @@
Make ``type_params`` parameter required in :func:`!typing._eval_type` after
a deprecation period for not providing this parameter. Also remove the
:exc:`DeprecationWarning` for the old behavior.