Annotate TypedDict as _SpecialForm rather than object. (#12985)

* Annotate TypedDict as _SpecialForm rather than object.

Let's see if this works...

* Get typing_extensions.TypedDict as well, try to fix tests.

* Import typing_extensions.TypedDict, delete _SpecialForm.__getitem__.

* Back out deletion of _SpecialForm.__getitem__.
This commit is contained in:
Rebecca Chen
2024-11-19 22:50:42 -08:00
committed by GitHub
parent 4addb8dd0b
commit 921c65304e
3 changed files with 3 additions and 5 deletions

View File

@@ -464,6 +464,7 @@ typing_extensions\.ParamSpec.*
typing(_extensions)?\.Generic
typing\.Protocol
typing(_extensions)?\._TypedDict
typing(_extensions)?\.TypedDict
typing._Final
typing._Final.__init_subclass__

View File

@@ -213,8 +213,7 @@ Tuple: _SpecialForm
Final: _SpecialForm
Literal: _SpecialForm
# TypedDict is a (non-subscriptable) special form.
TypedDict: object
TypedDict: _SpecialForm
if sys.version_info >= (3, 11):
Self: _SpecialForm

View File

@@ -58,6 +58,7 @@ from typing import ( # noqa: Y022,Y037,Y038,Y039
TextIO as TextIO,
Tuple as Tuple,
Type as Type,
TypedDict as TypedDict,
Union as Union,
ValuesView as ValuesView,
_Alias,
@@ -255,9 +256,6 @@ class _TypedDict(Mapping[str, object], metaclass=abc.ABCMeta):
# supposedly incompatible definitions of `__ior__` and `__or__`:
def __ior__(self, value: Self, /) -> Self: ... # type: ignore[misc]
# TypedDict is a (non-subscriptable) special form.
TypedDict: object
OrderedDict = _Alias()
def get_type_hints(