From 661dcef02b73f157a68ac8fe058d473d573e0444 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Sat, 1 Nov 2025 14:55:00 +0100 Subject: [PATCH 1/3] Remove typing._TypedDict Part of #7580 --- stdlib/typing.pyi | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index 2ca65dad4562..fd70befbda08 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -1015,44 +1015,6 @@ class NamedTuple(tuple[Any, ...]): if sys.version_info >= (3, 13): def __replace__(self, **kwargs: Any) -> typing_extensions.Self: ... -# Internal mypy fallback type for all typed dicts (does not exist at runtime) -# N.B. Keep this mostly in sync with typing_extensions._TypedDict/mypy_extensions._TypedDict -# Obsolete, use _typeshed._type_checker_internals.TypedDictFallback instead. -@type_check_only -class _TypedDict(Mapping[str, object], metaclass=ABCMeta): - __total__: ClassVar[bool] - __required_keys__: ClassVar[frozenset[str]] - __optional_keys__: ClassVar[frozenset[str]] - # __orig_bases__ sometimes exists on <3.12, but not consistently, - # so we only add it to the stub on 3.12+ - if sys.version_info >= (3, 12): - __orig_bases__: ClassVar[tuple[Any, ...]] - if sys.version_info >= (3, 13): - __readonly_keys__: ClassVar[frozenset[str]] - __mutable_keys__: ClassVar[frozenset[str]] - - def copy(self) -> typing_extensions.Self: ... - # Using Never so that only calls using mypy plugin hook that specialize the signature - # can go through. - def setdefault(self, k: _Never, default: object) -> object: ... - # Mypy plugin hook for 'pop' expects that 'default' has a type variable type. - def pop(self, k: _Never, default: _T = ...) -> object: ... # pyright: ignore[reportInvalidTypeVarUse] - def update(self, m: typing_extensions.Self, /) -> None: ... - def __delitem__(self, k: _Never) -> None: ... - def items(self) -> dict_items[str, object]: ... - def keys(self) -> dict_keys[str, object]: ... - def values(self) -> dict_values[str, object]: ... - @overload - def __or__(self, value: typing_extensions.Self, /) -> typing_extensions.Self: ... - @overload - def __or__(self, value: dict[str, Any], /) -> dict[str, object]: ... - @overload - def __ror__(self, value: typing_extensions.Self, /) -> typing_extensions.Self: ... - @overload - def __ror__(self, value: dict[str, Any], /) -> dict[str, object]: ... - # supposedly incompatible definitions of __or__ and __ior__ - def __ior__(self, value: typing_extensions.Self, /) -> typing_extensions.Self: ... # type: ignore[misc] - if sys.version_info >= (3, 14): from annotationlib import ForwardRef as ForwardRef From ce9fb6704bc3a4447971f7dc9115fd8f2eb5e701 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 13:57:28 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/typing.pyi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index fd70befbda08..fd4b23858232 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -4,7 +4,6 @@ import collections # noqa: F401 # pyright: ignore[reportUnusedImport] import sys import typing_extensions -from _collections_abc import dict_items, dict_keys, dict_values from _typeshed import IdentityFunction, ReadableBuffer, SupportsGetItem, SupportsGetItemViewable, SupportsKeysAndGetItem, Viewable from abc import ABCMeta, abstractmethod from re import Match as Match, Pattern as Pattern @@ -20,7 +19,7 @@ from types import ( TracebackType, WrapperDescriptorType, ) -from typing_extensions import Never as _Never, ParamSpec as _ParamSpec, deprecated +from typing_extensions import ParamSpec as _ParamSpec, deprecated if sys.version_info >= (3, 14): from _typeshed import EvaluateFunc From c2bbea26598d8adabc1c6b19c385c4dad83180d1 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Sat, 1 Nov 2025 15:07:16 +0100 Subject: [PATCH 3/3] Update allowlist --- stdlib/@tests/stubtest_allowlists/common.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index d8956df6b327..69450762113a 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -455,10 +455,10 @@ typing.type_check_only # typing decorator that is not available at runtime # Details of runtime definition don't need to be in stubs typing._Final typing._Final.__init_subclass__ -typing\.Protocol -typing(_extensions)?\._TypedDict +typing.Protocol typing(_extensions)?\.Any.* typing(_extensions)?\.TypedDict +typing_extensions._TypedDict typing_extensions\.ParamSpec.* typing_extensions\.TypeVar.*