From 214bf15dced99665936f5283fc9b42775de4547d Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Tue, 7 Jun 2022 13:32:19 +0200 Subject: [PATCH] Use "all +=" instead of duplicating the branches (#7865) --- stdlib/typing.pyi | 546 ++++++-------------------------- stdlib/zipfile.pyi | 46 +-- test_cases/stdlib/typing/all.py | 15 + 3 files changed, 127 insertions(+), 480 deletions(-) create mode 100644 test_cases/stdlib/typing/all.py diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index 37ea55c9f..07575b6ed 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -11,466 +11,112 @@ if sys.version_info >= (3, 7): if sys.version_info >= (3, 9): from types import GenericAlias -if sys.version_info >= (3, 11): - __all__ = [ - "Annotated", - "Any", - "Callable", - "ClassVar", - "Concatenate", - "Final", - "ForwardRef", - "Generic", - "Literal", - "LiteralString", - "NotRequired", - "Optional", - "ParamSpec", - "Protocol", - "Required", - "Tuple", - "Type", - "TypeVar", - "TypeVarTuple", - "Union", - "Unpack", - "AbstractSet", - "ByteString", - "Container", - "ContextManager", - "Hashable", - "ItemsView", - "Iterable", - "Iterator", - "KeysView", - "Mapping", - "MappingView", - "MutableMapping", - "MutableSequence", - "MutableSet", - "Sequence", - "Sized", - "ValuesView", - "Awaitable", - "AsyncIterator", - "AsyncIterable", - "Coroutine", - "Collection", - "AsyncGenerator", +__all__ = [ + "AbstractSet", + "Any", + "AnyStr", + "ByteString", + "Callable", + "ClassVar", + "Container", + "ContextManager", + "Counter", + "DefaultDict", + "Deque", + "Dict", + "FrozenSet", + "Generator", + "Generic", + "Hashable", + "ItemsView", + "Iterable", + "Iterator", + "KeysView", + "List", + "Mapping", + "MappingView", + "MutableMapping", + "MutableSequence", + "MutableSet", + "NamedTuple", + "NewType", + "Optional", + "Reversible", + "Sequence", + "Set", + "Sized", + "SupportsAbs", + "SupportsBytes", + "SupportsComplex", + "SupportsFloat", + "SupportsInt", + "SupportsRound", + "Text", + "Tuple", + "Type", + "TypeVar", + "Union", + "ValuesView", + "TYPE_CHECKING", + "cast", + "get_type_hints", + "no_type_check", + "no_type_check_decorator", + "overload", +] + +if sys.version_info < (3, 7): + __all__ += ["GenericMeta"] + +if sys.version_info >= (3, 7): + __all__ += [ "AsyncContextManager", - "Reversible", - "SupportsAbs", - "SupportsBytes", - "SupportsComplex", - "SupportsFloat", - "SupportsIndex", - "SupportsInt", - "SupportsRound", + "AsyncGenerator", + "AsyncIterable", + "AsyncIterator", + "Awaitable", "ChainMap", - "Counter", - "Deque", - "Dict", - "DefaultDict", - "List", + "Collection", + "Coroutine", + "ForwardRef", + "NoReturn", "OrderedDict", - "Set", - "FrozenSet", - "NamedTuple", + ] + +if sys.version_info >= (3, 8): + __all__ += [ + "Final", + "Literal", + "Protocol", + "SupportsIndex", "TypedDict", - "Generator", - "BinaryIO", - "IO", - "Match", - "Pattern", - "TextIO", - "AnyStr", + "final", + "get_args", + "get_origin", + "runtime_checkable", + ] + +if sys.version_info >= (3, 9): + __all__ += ["Annotated", "BinaryIO", "IO", "Match", "Pattern", "TextIO"] + +if sys.version_info >= (3, 10): + __all__ += ["Concatenate", "ParamSpec", "ParamSpecArgs", "ParamSpecKwargs", "TypeAlias", "TypeGuard", "is_typeddict"] + +if sys.version_info >= (3, 11): + __all__ += [ + "LiteralString", + "Never", + "NotRequired", + "Required", + "Self", + "TypeVarTuple", + "Unpack", "assert_never", "assert_type", - "cast", "clear_overloads", "dataclass_transform", - "final", - "get_args", - "get_origin", "get_overloads", - "get_type_hints", - "is_typeddict", - "Never", - "NewType", - "no_type_check", - "no_type_check_decorator", - "NoReturn", - "overload", - "ParamSpecArgs", - "ParamSpecKwargs", "reveal_type", - "runtime_checkable", - "Self", - "Text", - "TYPE_CHECKING", - "TypeAlias", - "TypeGuard", - ] -elif sys.version_info >= (3, 10): - __all__ = [ - "Annotated", - "Any", - "Callable", - "ClassVar", - "Concatenate", - "Final", - "ForwardRef", - "Generic", - "Literal", - "Optional", - "ParamSpec", - "Protocol", - "Tuple", - "Type", - "TypeVar", - "Union", - "AbstractSet", - "ByteString", - "Container", - "ContextManager", - "Hashable", - "ItemsView", - "Iterable", - "Iterator", - "KeysView", - "Mapping", - "MappingView", - "MutableMapping", - "MutableSequence", - "MutableSet", - "Sequence", - "Sized", - "ValuesView", - "Awaitable", - "AsyncIterator", - "AsyncIterable", - "Coroutine", - "Collection", - "AsyncGenerator", - "AsyncContextManager", - "Reversible", - "SupportsAbs", - "SupportsBytes", - "SupportsComplex", - "SupportsFloat", - "SupportsIndex", - "SupportsInt", - "SupportsRound", - "ChainMap", - "Counter", - "Deque", - "Dict", - "DefaultDict", - "List", - "OrderedDict", - "Set", - "FrozenSet", - "NamedTuple", - "TypedDict", - "Generator", - "BinaryIO", - "IO", - "Match", - "Pattern", - "TextIO", - "AnyStr", - "cast", - "final", - "get_args", - "get_origin", - "get_type_hints", - "is_typeddict", - "NewType", - "no_type_check", - "no_type_check_decorator", - "NoReturn", - "overload", - "ParamSpecArgs", - "ParamSpecKwargs", - "runtime_checkable", - "Text", - "TYPE_CHECKING", - "TypeAlias", - "TypeGuard", - ] -elif sys.version_info >= (3, 9): - __all__ = [ - "Annotated", - "Any", - "Callable", - "ClassVar", - "Final", - "ForwardRef", - "Generic", - "Literal", - "Optional", - "Protocol", - "Tuple", - "Type", - "TypeVar", - "Union", - "AbstractSet", - "ByteString", - "Container", - "ContextManager", - "Hashable", - "ItemsView", - "Iterable", - "Iterator", - "KeysView", - "Mapping", - "MappingView", - "MutableMapping", - "MutableSequence", - "MutableSet", - "Sequence", - "Sized", - "ValuesView", - "Awaitable", - "AsyncIterator", - "AsyncIterable", - "Coroutine", - "Collection", - "AsyncGenerator", - "AsyncContextManager", - "Reversible", - "SupportsAbs", - "SupportsBytes", - "SupportsComplex", - "SupportsFloat", - "SupportsIndex", - "SupportsInt", - "SupportsRound", - "ChainMap", - "Counter", - "Deque", - "Dict", - "DefaultDict", - "List", - "OrderedDict", - "Set", - "FrozenSet", - "NamedTuple", - "TypedDict", - "Generator", - "BinaryIO", - "IO", - "Match", - "Pattern", - "TextIO", - "AnyStr", - "cast", - "final", - "get_args", - "get_origin", - "get_type_hints", - "NewType", - "no_type_check", - "no_type_check_decorator", - "NoReturn", - "overload", - "runtime_checkable", - "Text", - "TYPE_CHECKING", - ] -elif sys.version_info >= (3, 8): - __all__ = [ - "Any", - "Callable", - "ClassVar", - "Final", - "ForwardRef", - "Generic", - "Literal", - "Optional", - "Protocol", - "Tuple", - "Type", - "TypeVar", - "Union", - "AbstractSet", - "ByteString", - "Container", - "ContextManager", - "Hashable", - "ItemsView", - "Iterable", - "Iterator", - "KeysView", - "Mapping", - "MappingView", - "MutableMapping", - "MutableSequence", - "MutableSet", - "Sequence", - "Sized", - "ValuesView", - "Awaitable", - "AsyncIterator", - "AsyncIterable", - "Coroutine", - "Collection", - "AsyncGenerator", - "AsyncContextManager", - "Reversible", - "SupportsAbs", - "SupportsBytes", - "SupportsComplex", - "SupportsFloat", - "SupportsIndex", - "SupportsInt", - "SupportsRound", - "ChainMap", - "Counter", - "Deque", - "Dict", - "DefaultDict", - "List", - "OrderedDict", - "Set", - "FrozenSet", - "NamedTuple", - "TypedDict", - "Generator", - "AnyStr", - "cast", - "final", - "get_args", - "get_origin", - "get_type_hints", - "NewType", - "no_type_check", - "no_type_check_decorator", - "NoReturn", - "overload", - "runtime_checkable", - "Text", - "TYPE_CHECKING", - ] -elif sys.version_info >= (3, 7): - __all__ = [ - "Any", - "Callable", - "ClassVar", - "ForwardRef", - "Generic", - "Optional", - "Tuple", - "Type", - "TypeVar", - "Union", - "AbstractSet", - "ByteString", - "Container", - "ContextManager", - "Hashable", - "ItemsView", - "Iterable", - "Iterator", - "KeysView", - "Mapping", - "MappingView", - "MutableMapping", - "MutableSequence", - "MutableSet", - "Sequence", - "Sized", - "ValuesView", - "Awaitable", - "AsyncIterator", - "AsyncIterable", - "Coroutine", - "Collection", - "AsyncGenerator", - "AsyncContextManager", - "Reversible", - "SupportsAbs", - "SupportsBytes", - "SupportsComplex", - "SupportsFloat", - "SupportsInt", - "SupportsRound", - "ChainMap", - "Counter", - "Deque", - "Dict", - "DefaultDict", - "List", - "OrderedDict", - "Set", - "FrozenSet", - "NamedTuple", - "Generator", - "AnyStr", - "cast", - "get_type_hints", - "NewType", - "no_type_check", - "no_type_check_decorator", - "NoReturn", - "overload", - "Text", - "TYPE_CHECKING", - ] -else: - __all__ = [ - "Any", - "Callable", - "ClassVar", - "Generic", - "Optional", - "Tuple", - "Type", - "TypeVar", - "Union", - "AbstractSet", - "GenericMeta", - "ByteString", - "Container", - "ContextManager", - "Hashable", - "ItemsView", - "Iterable", - "Iterator", - "KeysView", - "Mapping", - "MappingView", - "MutableMapping", - "MutableSequence", - "MutableSet", - "Sequence", - "Sized", - "ValuesView", - "Reversible", - "SupportsAbs", - "SupportsBytes", - "SupportsComplex", - "SupportsFloat", - "SupportsInt", - "SupportsRound", - "Counter", - "Deque", - "Dict", - "DefaultDict", - "List", - "Set", - "FrozenSet", - "NamedTuple", - "Generator", - "AnyStr", - "cast", - "get_type_hints", - "NewType", - "no_type_check", - "no_type_check_decorator", - "overload", - "Text", - "TYPE_CHECKING", ] Any = object() diff --git a/stdlib/zipfile.pyi b/stdlib/zipfile.pyi index 130b09213..c799cf9b4 100644 --- a/stdlib/zipfile.pyi +++ b/stdlib/zipfile.pyi @@ -7,37 +7,23 @@ from types import TracebackType from typing import IO, Any, Protocol, overload from typing_extensions import Literal, TypeAlias +__all__ = [ + "BadZipFile", + "BadZipfile", + "error", + "ZIP_STORED", + "ZIP_DEFLATED", + "ZIP_BZIP2", + "ZIP_LZMA", + "is_zipfile", + "ZipInfo", + "ZipFile", + "PyZipFile", + "LargeZipFile", +] + if sys.version_info >= (3, 8): - __all__ = [ - "BadZipFile", - "BadZipfile", - "error", - "ZIP_STORED", - "ZIP_DEFLATED", - "ZIP_BZIP2", - "ZIP_LZMA", - "is_zipfile", - "ZipInfo", - "ZipFile", - "PyZipFile", - "LargeZipFile", - "Path", - ] -else: - __all__ = [ - "BadZipFile", - "BadZipfile", - "error", - "ZIP_STORED", - "ZIP_DEFLATED", - "ZIP_BZIP2", - "ZIP_LZMA", - "is_zipfile", - "ZipInfo", - "ZipFile", - "PyZipFile", - "LargeZipFile", - ] + __all__ += ["Path"] _DateTuple: TypeAlias = tuple[int, int, int, int, int, int] _ReadWriteMode: TypeAlias = Literal["r", "w"] diff --git a/test_cases/stdlib/typing/all.py b/test_cases/stdlib/typing/all.py new file mode 100644 index 000000000..3519912e1 --- /dev/null +++ b/test_cases/stdlib/typing/all.py @@ -0,0 +1,15 @@ +# pyright: reportWildcardImportFromLibrary=false + +""" +This tests that star imports work when using "all += " syntax. +""" + +import sys +from typing import * # noqa: F403 +from zipfile import * # noqa: F403 + +if sys.version_info >= (3, 9): + x: Annotated[int, 42] # noqa: F405 + +if sys.version_info >= (3, 8): + p: Path # noqa: F405