Reduce duplication of code between typing and typing_extensions (#7075)

This commit is contained in:
Alex Waygood
2022-01-29 15:44:42 +00:00
committed by GitHub
parent 54eef59fe4
commit 99cec2d16b
4 changed files with 13 additions and 15 deletions

View File

@@ -20,6 +20,7 @@ class TypeVar:
_promote = object()
# N.B. Keep this definition in sync with typing_extensions._SpecialForm
class _SpecialForm(object):
def __getitem__(self, typeargs: Any) -> object: ...
@@ -44,7 +45,7 @@ _F = TypeVar("_F", bound=Callable[..., Any])
def final(f: _F) -> _F: ...
def overload(f: _F) -> _F: ...
Literal: _SpecialForm = ...
Literal: _SpecialForm
# TypedDict is a (non-subscriptable) special form.
TypedDict: object

View File

@@ -27,8 +27,9 @@ from typing import ( # noqa Y022
_T = TypeVar("_T")
_F = TypeVar("_F", bound=Callable[..., Any])
# unfortunately we have to duplicate this class definition from typing.pyi or we break pytype
class _SpecialForm:
def __getitem__(self, typeargs: Any) -> Any: ...
def __getitem__(self, typeargs: Any) -> object: ...
# This alias for above is kept here for backwards compatibility.
runtime = runtime_checkable