mirror of
https://github.com/python/cpython.git
synced 2025-11-03 03:22:27 +00:00
gh-119180: Use equality when comparing against annotationlib.Format (#131755)
This commit is contained in:
parent
8a00c9a4d2
commit
af2afd7c22
3 changed files with 7 additions and 5 deletions
|
|
@ -517,7 +517,7 @@ class TestGetAnnotations(unittest.TestCase):
|
|||
|
||||
foo.__annotations__ = {"a": "foo", "b": "str"}
|
||||
for format in Format:
|
||||
if format is Format.VALUE_WITH_FAKE_GLOBALS:
|
||||
if format == Format.VALUE_WITH_FAKE_GLOBALS:
|
||||
continue
|
||||
with self.subTest(format=format):
|
||||
self.assertEqual(
|
||||
|
|
@ -816,7 +816,7 @@ class TestGetAnnotations(unittest.TestCase):
|
|||
|
||||
wa = WeirdAnnotations()
|
||||
for format in Format:
|
||||
if format is Format.VALUE_WITH_FAKE_GLOBALS:
|
||||
if format == Format.VALUE_WITH_FAKE_GLOBALS:
|
||||
continue
|
||||
with (
|
||||
self.subTest(format=format),
|
||||
|
|
|
|||
|
|
@ -7158,6 +7158,8 @@ class GetTypeHintTests(BaseTestCase):
|
|||
|
||||
self.assertEqual(get_type_hints(C, format=annotationlib.Format.STRING),
|
||||
{'x': 'undefined'})
|
||||
# Make sure using an int as format also works:
|
||||
self.assertEqual(get_type_hints(C, format=4), {'x': 'undefined'})
|
||||
|
||||
def test_get_type_hints_format_function(self):
|
||||
def func(x: undefined) -> undefined: ...
|
||||
|
|
|
|||
|
|
@ -2315,7 +2315,7 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False,
|
|||
hints = {}
|
||||
for base in reversed(obj.__mro__):
|
||||
ann = annotationlib.get_annotations(base, format=format)
|
||||
if format is annotationlib.Format.STRING:
|
||||
if format == annotationlib.Format.STRING:
|
||||
hints.update(ann)
|
||||
continue
|
||||
if globalns is None:
|
||||
|
|
@ -2339,7 +2339,7 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False,
|
|||
value = _eval_type(value, base_globals, base_locals, base.__type_params__,
|
||||
format=format, owner=obj)
|
||||
hints[name] = value
|
||||
if include_extras or format is annotationlib.Format.STRING:
|
||||
if include_extras or format == annotationlib.Format.STRING:
|
||||
return hints
|
||||
else:
|
||||
return {k: _strip_annotations(t) for k, t in hints.items()}
|
||||
|
|
@ -2353,7 +2353,7 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False,
|
|||
and not hasattr(obj, '__annotate__')
|
||||
):
|
||||
raise TypeError(f"{obj!r} is not a module, class, or callable.")
|
||||
if format is annotationlib.Format.STRING:
|
||||
if format == annotationlib.Format.STRING:
|
||||
return hints
|
||||
|
||||
if globalns is None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue