From 50b9a54e7e8d3eebb03219c5ac6f587bafdd2391 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Mon, 3 Jul 2023 20:16:23 +0300 Subject: [PATCH 1/3] Run `pyupgrade --py38-plus` on the source code --- misc/analyze_cache.py | 3 ++- misc/incremental_checker.py | 3 ++- mypy/build.py | 3 ++- mypy/checker.py | 5 +++-- mypy/checkexpr.py | 5 +++-- mypy/checkpattern.py | 2 +- mypy/checkstrformat.py | 3 ++- mypy/config_parser.py | 3 ++- mypy/constant_fold.py | 2 +- mypy/constraints.py | 2 +- mypy/defaults.py | 2 +- mypy/dmypy_server.py | 3 ++- mypy/dmypy_util.py | 2 +- mypy/errorcodes.py | 2 +- mypy/errors.py | 3 ++- mypy/evalexpr.py | 2 +- mypy/expandtype.py | 2 +- mypy/fastparse.py | 3 ++- mypy/find_sources.py | 4 ++-- mypy/fixup.py | 2 +- mypy/ipc.py | 2 +- mypy/literals.py | 3 ++- mypy/main.py | 2 +- mypy/message_registry.py | 2 +- mypy/messages.py | 2 +- mypy/modulefinder.py | 3 ++- mypy/nodes.py | 3 ++- mypy/operators.py | 2 +- mypy/options.py | 4 ++-- mypy/plugins/attrs.py | 3 ++- mypy/plugins/dataclasses.py | 4 ++-- mypy/plugins/enums.py | 2 +- mypy/plugins/functools.py | 2 +- mypy/plugins/singledispatch.py | 3 ++- mypy/reachability.py | 2 +- mypy/renaming.py | 2 +- mypy/report.py | 3 ++- mypy/semanal.py | 3 ++- mypy/semanal_classprop.py | 2 +- mypy/semanal_enum.py | 2 +- mypy/semanal_main.py | 3 ++- mypy/semanal_namedtuple.py | 2 +- mypy/semanal_shared.py | 3 ++- mypy/semanal_typeddict.py | 2 +- mypy/server/mergecheck.py | 2 +- mypy/server/objgraph.py | 2 +- mypy/server/trigger.py | 2 +- mypy/server/update.py | 3 ++- mypy/sharedparse.py | 2 +- mypy/state.py | 2 +- mypy/stats.py | 2 +- mypy/stubdoc.py | 3 ++- mypy/stubgen.py | 2 +- mypy/stubgenc.py | 4 ++-- mypy/subtypes.py | 3 ++- mypy/test/data.py | 3 ++- mypy/type_visitor.py | 2 +- mypy/typeanal.py | 3 ++- mypy/types.py | 3 ++- mypy/typestate.py | 3 ++- mypy/util.py | 3 ++- mypyc/analysis/attrdefined.py | 4 ++-- mypyc/codegen/cstring.py | 2 +- mypyc/codegen/emit.py | 4 ++-- mypyc/codegen/emitfunc.py | 8 ++++---- mypyc/codegen/literals.py | 5 +++-- mypyc/common.py | 2 +- mypyc/ir/class_ir.py | 6 +++--- mypyc/ir/func_ir.py | 4 ++-- mypyc/ir/ops.py | 18 +++++++++--------- mypyc/ir/pprint.py | 2 +- mypyc/ir/rtypes.py | 2 +- mypyc/irbuild/builder.py | 3 ++- mypyc/irbuild/classdef.py | 2 +- mypyc/irbuild/constant_fold.py | 2 +- mypyc/irbuild/format_str_tokenizer.py | 2 +- mypyc/irbuild/ll_builder.py | 2 +- mypyc/irbuild/specialize.py | 2 +- mypyc/primitives/registry.py | 12 ++++++------ mypyc/test-data/fixtures/testutil.py | 2 +- 80 files changed, 137 insertions(+), 108 deletions(-) diff --git a/misc/analyze_cache.py b/misc/analyze_cache.py index 45c44139b4734..b91adb576afe1 100644 --- a/misc/analyze_cache.py +++ b/misc/analyze_cache.py @@ -7,7 +7,8 @@ import os.path from collections import Counter from typing import Any, Dict, Iterable -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final ROOT: Final = ".mypy_cache/3.5" diff --git a/misc/incremental_checker.py b/misc/incremental_checker.py index 85239b6462b88..8a055401a3c90 100755 --- a/misc/incremental_checker.py +++ b/misc/incremental_checker.py @@ -45,7 +45,8 @@ import time from argparse import ArgumentParser, Namespace, RawDescriptionHelpFormatter from typing import Any, Dict -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final CACHE_PATH: Final = ".incremental_checker_cache.json" MYPY_REPO_URL: Final = "https://github.com/python/mypy.git" diff --git a/mypy/build.py b/mypy/build.py index 5a6f8c00896e3..361b9b551a897 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -38,7 +38,8 @@ Sequence, TextIO, ) -from typing_extensions import Final, TypeAlias as _TypeAlias, TypedDict +from typing_extensions import TypeAlias as _TypeAlias, TypedDict +from typing import Final import mypy.semanal_main from mypy.checker import TypeChecker diff --git a/mypy/checker.py b/mypy/checker.py index cdce42ddaaa1f..d16849dea0aea 100644 --- a/mypy/checker.py +++ b/mypy/checker.py @@ -22,7 +22,8 @@ cast, overload, ) -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final import mypy.checkexpr from mypy import errorcodes as codes, message_registry, nodes, operators @@ -1546,7 +1547,7 @@ def check_reverse_op_method( if opt_meta is not None: forward_inst = opt_meta - def has_readable_member(typ: Union[UnionType, Instance], name: str) -> bool: + def has_readable_member(typ: UnionType | Instance, name: str) -> bool: # TODO: Deal with attributes of TupleType etc. if isinstance(typ, Instance): return typ.type.has_readable_member(name) diff --git a/mypy/checkexpr.py b/mypy/checkexpr.py index 986e58c217620..c11e23d1ce592 100644 --- a/mypy/checkexpr.py +++ b/mypy/checkexpr.py @@ -7,7 +7,8 @@ from collections import defaultdict from contextlib import contextmanager from typing import Callable, ClassVar, Iterable, Iterator, List, Optional, Sequence, cast -from typing_extensions import Final, TypeAlias as _TypeAlias, overload +from typing_extensions import TypeAlias as _TypeAlias, overload +from typing import Final import mypy.checker import mypy.errorcodes as codes @@ -5581,7 +5582,7 @@ def replace_callable_return_type(c: CallableType, new_ret_type: Type) -> Callabl return c.copy_modified(ret_type=new_ret_type) -def apply_poly(tp: CallableType, poly_tvars: Sequence[TypeVarLikeType]) -> Optional[CallableType]: +def apply_poly(tp: CallableType, poly_tvars: Sequence[TypeVarLikeType]) -> CallableType | None: """Make free type variables generic in the type if possible. This will translate the type `tp` while trying to create valid bindings for diff --git a/mypy/checkpattern.py b/mypy/checkpattern.py index 50d7b8a9826f0..b5c5031991083 100644 --- a/mypy/checkpattern.py +++ b/mypy/checkpattern.py @@ -4,7 +4,7 @@ from collections import defaultdict from typing import NamedTuple -from typing_extensions import Final +from typing import Final import mypy.checker from mypy import message_registry diff --git a/mypy/checkstrformat.py b/mypy/checkstrformat.py index 974985d8b4fc7..f210fcfbe5177 100644 --- a/mypy/checkstrformat.py +++ b/mypy/checkstrformat.py @@ -14,7 +14,8 @@ import re from typing import TYPE_CHECKING, Callable, Dict, Match, Pattern, Tuple, Union, cast -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final import mypy.errorcodes as codes from mypy.errors import Errors diff --git a/mypy/config_parser.py b/mypy/config_parser.py index 05af2ba6e21e7..fa052cf406f34 100644 --- a/mypy/config_parser.py +++ b/mypy/config_parser.py @@ -28,7 +28,8 @@ Tuple, Union, ) -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy import defaults from mypy.options import PER_MODULE_OPTIONS, Options diff --git a/mypy/constant_fold.py b/mypy/constant_fold.py index 6881ecae9e885..b372746d21025 100644 --- a/mypy/constant_fold.py +++ b/mypy/constant_fold.py @@ -6,7 +6,7 @@ from __future__ import annotations from typing import Union -from typing_extensions import Final +from typing import Final from mypy.nodes import ( ComplexExpr, diff --git a/mypy/constraints.py b/mypy/constraints.py index 803b9819be6f9..a9302da405feb 100644 --- a/mypy/constraints.py +++ b/mypy/constraints.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Iterable, List, Sequence, cast -from typing_extensions import Final +from typing import Final import mypy.subtypes import mypy.typeops diff --git a/mypy/defaults.py b/mypy/defaults.py index 59a99cd58888c..2a881975a27ce 100644 --- a/mypy/defaults.py +++ b/mypy/defaults.py @@ -1,7 +1,7 @@ from __future__ import annotations import os -from typing_extensions import Final +from typing import Final PYTHON2_VERSION: Final = (2, 7) diff --git a/mypy/dmypy_server.py b/mypy/dmypy_server.py index 2427f83c57674..cec57ca4234a7 100644 --- a/mypy/dmypy_server.py +++ b/mypy/dmypy_server.py @@ -18,7 +18,8 @@ import traceback from contextlib import redirect_stderr, redirect_stdout from typing import AbstractSet, Any, Callable, List, Sequence, Tuple -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final import mypy.build import mypy.errors diff --git a/mypy/dmypy_util.py b/mypy/dmypy_util.py index a1b419617f735..c8a82b51a6a07 100644 --- a/mypy/dmypy_util.py +++ b/mypy/dmypy_util.py @@ -7,7 +7,7 @@ import json from typing import Any -from typing_extensions import Final +from typing import Final from mypy.ipc import IPCBase diff --git a/mypy/errorcodes.py b/mypy/errorcodes.py index b9448f3d5af92..68ae4b49a8061 100644 --- a/mypy/errorcodes.py +++ b/mypy/errorcodes.py @@ -6,7 +6,7 @@ from __future__ import annotations from collections import defaultdict -from typing_extensions import Final +from typing import Final from mypy_extensions import mypyc_attr diff --git a/mypy/errors.py b/mypy/errors.py index 6739d30f16a4b..a4cd9188136bd 100644 --- a/mypy/errors.py +++ b/mypy/errors.py @@ -5,7 +5,8 @@ import traceback from collections import defaultdict from typing import Callable, Iterable, NoReturn, Optional, TextIO, Tuple, TypeVar -from typing_extensions import Final, Literal, TypeAlias as _TypeAlias +from typing_extensions import Literal, TypeAlias as _TypeAlias +from typing import Final from mypy import errorcodes as codes from mypy.errorcodes import IMPORT, ErrorCode diff --git a/mypy/evalexpr.py b/mypy/evalexpr.py index 2bc6966fa2fac..4b3abb1be3e2b 100644 --- a/mypy/evalexpr.py +++ b/mypy/evalexpr.py @@ -7,7 +7,7 @@ """ import ast -from typing_extensions import Final +from typing import Final import mypy.nodes from mypy.visitor import ExpressionVisitor diff --git a/mypy/expandtype.py b/mypy/expandtype.py index 5bbdd5311da7f..b42e935ff7d9c 100644 --- a/mypy/expandtype.py +++ b/mypy/expandtype.py @@ -1,7 +1,7 @@ from __future__ import annotations from typing import Iterable, Mapping, Sequence, TypeVar, cast, overload -from typing_extensions import Final +from typing import Final from mypy.nodes import ARG_POS, ARG_STAR, ArgKind, Var from mypy.state import state diff --git a/mypy/fastparse.py b/mypy/fastparse.py index fa185be21f9e3..0cd1af82cf0a2 100644 --- a/mypy/fastparse.py +++ b/mypy/fastparse.py @@ -5,7 +5,8 @@ import sys import warnings from typing import Any, Callable, List, Optional, Sequence, TypeVar, Union, cast -from typing_extensions import Final, Literal, overload +from typing_extensions import Literal, overload +from typing import Final from mypy import defaults, errorcodes as codes, message_registry from mypy.errors import Errors diff --git a/mypy/find_sources.py b/mypy/find_sources.py index a3ef2d3db052f..ad7f1bbe16627 100644 --- a/mypy/find_sources.py +++ b/mypy/find_sources.py @@ -5,7 +5,7 @@ import functools import os from typing import Sequence -from typing_extensions import Final +from typing import Final from mypy.fscache import FileSystemCache from mypy.modulefinder import PYTHON_EXTENSIONS, BuildSource, matches_exclude, mypy_path @@ -160,7 +160,7 @@ def crawl_up(self, path: str) -> tuple[str, str]: def crawl_up_dir(self, dir: str) -> tuple[str, str]: return self._crawl_up_helper(dir) or ("", dir) - @functools.lru_cache() # noqa: B019 + @functools.lru_cache # noqa: B019 def _crawl_up_helper(self, dir: str) -> tuple[str, str] | None: """Given a directory, maybe returns module and base directory. diff --git a/mypy/fixup.py b/mypy/fixup.py index 15f4c13c20fa2..9e592949bef84 100644 --- a/mypy/fixup.py +++ b/mypy/fixup.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Any -from typing_extensions import Final +from typing import Final from mypy.lookup import lookup_fully_qualified from mypy.nodes import ( diff --git a/mypy/ipc.py b/mypy/ipc.py index 21ef61918de57..9f6561c510a95 100644 --- a/mypy/ipc.py +++ b/mypy/ipc.py @@ -13,7 +13,7 @@ import tempfile from types import TracebackType from typing import Callable -from typing_extensions import Final +from typing import Final if sys.platform == "win32": # This may be private, but it is needed for IPC on Windows, and is basically stable diff --git a/mypy/literals.py b/mypy/literals.py index 53ba559c56bba..c35af2e74d83a 100644 --- a/mypy/literals.py +++ b/mypy/literals.py @@ -1,7 +1,8 @@ from __future__ import annotations from typing import Any, Iterable, Optional, Tuple -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy.nodes import ( LITERAL_NO, diff --git a/mypy/main.py b/mypy/main.py index 9d95bb6cb1f62..1c0e8840a396c 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -9,7 +9,7 @@ import time from gettext import gettext from typing import IO, Any, NoReturn, Sequence, TextIO -from typing_extensions import Final +from typing import Final from mypy import build, defaults, state, util from mypy.config_parser import get_config_module_names, parse_config_file, parse_version diff --git a/mypy/message_registry.py b/mypy/message_registry.py index 4e08f0dab5eda..9e1e64852fa75 100644 --- a/mypy/message_registry.py +++ b/mypy/message_registry.py @@ -9,7 +9,7 @@ from __future__ import annotations from typing import NamedTuple -from typing_extensions import Final +from typing import Final from mypy import errorcodes as codes diff --git a/mypy/messages.py b/mypy/messages.py index 8e59e73291682..00048a484052f 100644 --- a/mypy/messages.py +++ b/mypy/messages.py @@ -17,7 +17,7 @@ from contextlib import contextmanager from textwrap import dedent from typing import Any, Callable, Collection, Iterable, Iterator, List, Sequence, cast -from typing_extensions import Final +from typing import Final import mypy.typeops from mypy import errorcodes as codes, message_registry diff --git a/mypy/modulefinder.py b/mypy/modulefinder.py index e0406bffcc7be..85c9d9078f087 100644 --- a/mypy/modulefinder.py +++ b/mypy/modulefinder.py @@ -22,7 +22,8 @@ import tomli as tomllib from typing import Dict, List, NamedTuple, Optional, Tuple, Union -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy import pyinfo from mypy.fscache import FileSystemCache diff --git a/mypy/nodes.py b/mypy/nodes.py index 212ddb5def377..94eb57d8ddf91 100644 --- a/mypy/nodes.py +++ b/mypy/nodes.py @@ -20,7 +20,8 @@ Union, cast, ) -from typing_extensions import Final, TypeAlias as _TypeAlias, TypeGuard +from typing_extensions import TypeAlias as _TypeAlias, TypeGuard +from typing import Final from mypy_extensions import trait diff --git a/mypy/operators.py b/mypy/operators.py index 2b383ef199bb0..07ec5a24fa77c 100644 --- a/mypy/operators.py +++ b/mypy/operators.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final # Map from binary operator id to related method name (in Python 3). op_methods: Final = { diff --git a/mypy/options.py b/mypy/options.py index daa666dc76381..de4c9580686dc 100644 --- a/mypy/options.py +++ b/mypy/options.py @@ -5,7 +5,7 @@ import sys import sysconfig from typing import Any, Callable, Dict, Mapping, Pattern -from typing_extensions import Final +from typing import Final from mypy import defaults from mypy.errorcodes import ErrorCode, error_codes @@ -529,7 +529,7 @@ def compile_glob(self, s: str) -> Pattern[str]: return re.compile(expr + "\\Z") def select_options_affecting_cache(self) -> Mapping[str, object]: - result: Dict[str, object] = {} + result: dict[str, object] = {} for opt in OPTIONS_AFFECTING_CACHE: val = getattr(self, opt) if opt in ("disabled_error_codes", "enabled_error_codes"): diff --git a/mypy/plugins/attrs.py b/mypy/plugins/attrs.py index e05a8e44b2f83..3751dbe3e58ac 100644 --- a/mypy/plugins/attrs.py +++ b/mypy/plugins/attrs.py @@ -5,7 +5,8 @@ from collections import defaultdict from functools import reduce from typing import Iterable, List, Mapping, cast -from typing_extensions import Final, Literal +from typing_extensions import Literal +from typing import Final import mypy.plugin # To avoid circular imports. from mypy.applytype import apply_generic_arguments diff --git a/mypy/plugins/dataclasses.py b/mypy/plugins/dataclasses.py index 9e054493828f2..8c920290a5880 100644 --- a/mypy/plugins/dataclasses.py +++ b/mypy/plugins/dataclasses.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Iterator, Optional -from typing_extensions import Final +from typing import Final from mypy import errorcodes, message_registry from mypy.expandtype import expand_type, expand_type_by_instance @@ -132,7 +132,7 @@ def to_argument(self, current_info: TypeInfo) -> Argument: kind=arg_kind, ) - def expand_type(self, current_info: TypeInfo) -> Optional[Type]: + def expand_type(self, current_info: TypeInfo) -> Type | None: if self.type is not None and self.info.self_type is not None: # In general, it is not safe to call `expand_type()` during semantic analyzis, # however this plugin is called very late, so all types should be fully ready. diff --git a/mypy/plugins/enums.py b/mypy/plugins/enums.py index 1acf42d11ee6d..75ac48f53e0a8 100644 --- a/mypy/plugins/enums.py +++ b/mypy/plugins/enums.py @@ -13,7 +13,7 @@ from __future__ import annotations from typing import Iterable, Sequence, TypeVar, cast -from typing_extensions import Final +from typing import Final import mypy.plugin # To avoid circular imports. from mypy.nodes import TypeInfo diff --git a/mypy/plugins/functools.py b/mypy/plugins/functools.py index eba4d77f2343b..75820c7778130 100644 --- a/mypy/plugins/functools.py +++ b/mypy/plugins/functools.py @@ -2,7 +2,7 @@ from __future__ import annotations from typing import NamedTuple -from typing_extensions import Final +from typing import Final import mypy.plugin from mypy.nodes import ARG_POS, ARG_STAR2, Argument, FuncItem, Var diff --git a/mypy/plugins/singledispatch.py b/mypy/plugins/singledispatch.py index a44493f900b14..f7b4f051e7a49 100644 --- a/mypy/plugins/singledispatch.py +++ b/mypy/plugins/singledispatch.py @@ -1,7 +1,8 @@ from __future__ import annotations from typing import NamedTuple, Sequence, TypeVar, Union -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy.messages import format_type from mypy.nodes import ARG_POS, Argument, Block, ClassDef, Context, SymbolTable, TypeInfo, Var diff --git a/mypy/reachability.py b/mypy/reachability.py index 8602fc645e2b2..1d0e4e4847f1c 100644 --- a/mypy/reachability.py +++ b/mypy/reachability.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Tuple, TypeVar -from typing_extensions import Final +from typing import Final from mypy.literals import literal from mypy.nodes import ( diff --git a/mypy/renaming.py b/mypy/renaming.py index 2fa3ef168a66c..86bdfe1a7dd21 100644 --- a/mypy/renaming.py +++ b/mypy/renaming.py @@ -2,7 +2,7 @@ from contextlib import contextmanager from typing import Iterator -from typing_extensions import Final +from typing import Final from mypy.nodes import ( AssignmentStmt, diff --git a/mypy/report.py b/mypy/report.py index 81d49baf50da5..97f38912b9764 100644 --- a/mypy/report.py +++ b/mypy/report.py @@ -13,7 +13,8 @@ from abc import ABCMeta, abstractmethod from operator import attrgetter from typing import Any, Callable, Dict, Iterator, Tuple -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from urllib.request import pathname2url from mypy import stats diff --git a/mypy/semanal.py b/mypy/semanal.py index 25393096bc5f0..d488e8ecbb7d6 100644 --- a/mypy/semanal.py +++ b/mypy/semanal.py @@ -52,7 +52,8 @@ from contextlib import contextmanager from typing import Any, Callable, Collection, Iterable, Iterator, List, TypeVar, cast -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy import errorcodes as codes, message_registry from mypy.constant_fold import constant_fold_expr diff --git a/mypy/semanal_classprop.py b/mypy/semanal_classprop.py index 3f5bc9c4c2de2..dfd4e5b6f1224 100644 --- a/mypy/semanal_classprop.py +++ b/mypy/semanal_classprop.py @@ -5,7 +5,7 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final from mypy.errors import Errors from mypy.nodes import ( diff --git a/mypy/semanal_enum.py b/mypy/semanal_enum.py index f8d321ffada99..6742ebeb59659 100644 --- a/mypy/semanal_enum.py +++ b/mypy/semanal_enum.py @@ -6,7 +6,7 @@ from __future__ import annotations from typing import cast -from typing_extensions import Final +from typing import Final from mypy.nodes import ( ARG_NAMED, diff --git a/mypy/semanal_main.py b/mypy/semanal_main.py index d7e9712fa4270..5a8111d47b67b 100644 --- a/mypy/semanal_main.py +++ b/mypy/semanal_main.py @@ -28,7 +28,8 @@ from contextlib import nullcontext from typing import TYPE_CHECKING, Callable, List, Optional, Tuple, Union -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final import mypy.build import mypy.state diff --git a/mypy/semanal_namedtuple.py b/mypy/semanal_namedtuple.py index c690d4ec6d20f..2801afc6279a3 100644 --- a/mypy/semanal_namedtuple.py +++ b/mypy/semanal_namedtuple.py @@ -7,7 +7,7 @@ from contextlib import contextmanager from typing import Iterator, List, Mapping, cast -from typing_extensions import Final +from typing import Final from mypy.exprtotype import TypeTranslationError, expr_to_unanalyzed_type from mypy.nodes import ( diff --git a/mypy/semanal_shared.py b/mypy/semanal_shared.py index d097e1fb08dc8..f09dc03c6e2fe 100644 --- a/mypy/semanal_shared.py +++ b/mypy/semanal_shared.py @@ -4,7 +4,8 @@ from abc import abstractmethod from typing import Callable, overload -from typing_extensions import Final, Literal, Protocol +from typing_extensions import Literal, Protocol +from typing import Final from mypy_extensions import trait diff --git a/mypy/semanal_typeddict.py b/mypy/semanal_typeddict.py index 47a3f558aa13e..aba5bf69b1303 100644 --- a/mypy/semanal_typeddict.py +++ b/mypy/semanal_typeddict.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final from mypy import errorcodes as codes, message_registry from mypy.errorcodes import ErrorCode diff --git a/mypy/server/mergecheck.py b/mypy/server/mergecheck.py index ef6f5b86c8f3c..6f044a5ea8b94 100644 --- a/mypy/server/mergecheck.py +++ b/mypy/server/mergecheck.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final from mypy.nodes import Decorator, FakeInfo, FuncDef, SymbolNode, Var from mypy.server.objgraph import get_path, get_reachable_graph diff --git a/mypy/server/objgraph.py b/mypy/server/objgraph.py index 37d0f4d2ca1a2..024499401c8b1 100644 --- a/mypy/server/objgraph.py +++ b/mypy/server/objgraph.py @@ -6,7 +6,7 @@ import weakref from collections.abc import Iterable from typing import Iterator, Mapping -from typing_extensions import Final +from typing import Final method_descriptor_type: Final = type(object.__dir__) method_wrapper_type: Final = type(object().__ne__) diff --git a/mypy/server/trigger.py b/mypy/server/trigger.py index 5f2115739d382..97b5f89cd3ba5 100644 --- a/mypy/server/trigger.py +++ b/mypy/server/trigger.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final # Used as a suffix for triggers to handle "from m import *" dependencies (see also # make_wildcard_trigger) diff --git a/mypy/server/update.py b/mypy/server/update.py index dafed6642d1e6..173c3ae7f2e3e 100644 --- a/mypy/server/update.py +++ b/mypy/server/update.py @@ -119,7 +119,8 @@ import sys import time from typing import Callable, NamedTuple, Sequence, Union -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy.build import ( DEBUG_FINE_GRAINED, diff --git a/mypy/sharedparse.py b/mypy/sharedparse.py index 6f864ccce816d..ef2e4f7206649 100644 --- a/mypy/sharedparse.py +++ b/mypy/sharedparse.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final """Shared logic between our three mypy parser files.""" diff --git a/mypy/state.py b/mypy/state.py index 2e44a936f8190..2987419841bf0 100644 --- a/mypy/state.py +++ b/mypy/state.py @@ -2,7 +2,7 @@ from contextlib import contextmanager from typing import Iterator -from typing_extensions import Final +from typing import Final # These are global mutable state. Don't add anything here unless there's a very # good reason. diff --git a/mypy/stats.py b/mypy/stats.py index 5f4b9d4d201fc..f5b173512bb46 100644 --- a/mypy/stats.py +++ b/mypy/stats.py @@ -6,7 +6,7 @@ from collections import Counter from contextlib import contextmanager from typing import Iterator -from typing_extensions import Final +from typing import Final from mypy import nodes from mypy.argmap import map_formals_to_actuals diff --git a/mypy/stubdoc.py b/mypy/stubdoc.py index 7c8751bbd6ed1..053b0fe2e14bb 100644 --- a/mypy/stubdoc.py +++ b/mypy/stubdoc.py @@ -11,7 +11,8 @@ import re import tokenize from typing import Any, MutableMapping, MutableSequence, NamedTuple, Sequence, Tuple -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final # Type alias for signatures strings in format ('func_name', '(arg, opt_arg=False)'). Sig: _TypeAlias = Tuple[str, str] diff --git a/mypy/stubgen.py b/mypy/stubgen.py index ba71456af4a42..d72ceab04bb8a 100755 --- a/mypy/stubgen.py +++ b/mypy/stubgen.py @@ -50,7 +50,7 @@ import traceback from collections import defaultdict from typing import Iterable, Mapping -from typing_extensions import Final +from typing import Final import mypy.build import mypy.mixedtraverser diff --git a/mypy/stubgenc.py b/mypy/stubgenc.py index 4fc9f8c6fdfaa..98a4c4f8557b4 100755 --- a/mypy/stubgenc.py +++ b/mypy/stubgenc.py @@ -13,7 +13,7 @@ from abc import abstractmethod from types import ModuleType from typing import Any, Iterable, Mapping -from typing_extensions import Final +from typing import Final from mypy.moduleinspect import is_c_module from mypy.stubdoc import ( @@ -502,7 +502,7 @@ def generate_c_type_stub( """ raw_lookup = getattr(obj, "__dict__") # noqa: B009 items = sorted(get_members(obj), key=lambda x: method_name_sort_key(x[0])) - names = set(x[0] for x in items) + names = {x[0] for x in items} methods: list[str] = [] types: list[str] = [] static_properties: list[str] = [] diff --git a/mypy/subtypes.py b/mypy/subtypes.py index c9de56edfa36b..ec07f4011cfac 100644 --- a/mypy/subtypes.py +++ b/mypy/subtypes.py @@ -2,7 +2,8 @@ from contextlib import contextmanager from typing import Any, Callable, Iterator, List, TypeVar, cast -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final import mypy.applytype import mypy.constraints diff --git a/mypy/test/data.py b/mypy/test/data.py index 9b3931ee8be61..b9ed8f8e26992 100644 --- a/mypy/test/data.py +++ b/mypy/test/data.py @@ -13,7 +13,8 @@ from dataclasses import dataclass from pathlib import Path from typing import Any, Iterator, NamedTuple, NoReturn, Pattern, Union -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final import pytest diff --git a/mypy/type_visitor.py b/mypy/type_visitor.py index 2efae49e9e103..776b1cee6b6a9 100644 --- a/mypy/type_visitor.py +++ b/mypy/type_visitor.py @@ -15,7 +15,7 @@ from abc import abstractmethod from typing import Any, Callable, Generic, Iterable, Sequence, TypeVar, cast -from typing_extensions import Final +from typing import Final from mypy_extensions import mypyc_attr, trait diff --git a/mypy/typeanal.py b/mypy/typeanal.py index d577f355dbc8f..1fc76a7870096 100644 --- a/mypy/typeanal.py +++ b/mypy/typeanal.py @@ -5,7 +5,8 @@ import itertools from contextlib import contextmanager from typing import Callable, Iterable, Iterator, List, Sequence, Tuple, TypeVar -from typing_extensions import Final, Protocol +from typing_extensions import Protocol +from typing import Final from mypy import errorcodes as codes, message_registry, nodes from mypy.errorcodes import ErrorCode diff --git a/mypy/types.py b/mypy/types.py index 131383790ec8c..169aee3278e62 100644 --- a/mypy/types.py +++ b/mypy/types.py @@ -17,7 +17,8 @@ Union, cast, ) -from typing_extensions import Final, Self, TypeAlias as _TypeAlias, TypeGuard, overload +from typing_extensions import Self, TypeAlias as _TypeAlias, TypeGuard, overload +from typing import Final import mypy.nodes from mypy.bogus_type import Bogus diff --git a/mypy/typestate.py b/mypy/typestate.py index ff5933af5928d..051ae7542b5ec 100644 --- a/mypy/typestate.py +++ b/mypy/typestate.py @@ -6,7 +6,8 @@ from __future__ import annotations from typing import Dict, Set, Tuple -from typing_extensions import Final, TypeAlias as _TypeAlias +from typing_extensions import TypeAlias as _TypeAlias +from typing import Final from mypy.nodes import TypeInfo from mypy.server.trigger import make_trigger diff --git a/mypy/util.py b/mypy/util.py index 2960818d0984a..963767fc10e16 100644 --- a/mypy/util.py +++ b/mypy/util.py @@ -12,7 +12,8 @@ import time from importlib import resources as importlib_resources from typing import IO, Callable, Container, Iterable, Sequence, Sized, TypeVar -from typing_extensions import Final, Literal +from typing_extensions import Literal +from typing import Final try: import curses diff --git a/mypyc/analysis/attrdefined.py b/mypyc/analysis/attrdefined.py index 02e02a82a4f99..463626fbf5005 100644 --- a/mypyc/analysis/attrdefined.py +++ b/mypyc/analysis/attrdefined.py @@ -64,7 +64,7 @@ def foo(self) -> int: from __future__ import annotations from typing import Set, Tuple -from typing_extensions import Final +from typing import Final from mypyc.analysis.dataflow import ( CFG, @@ -414,7 +414,7 @@ def update_always_defined_attrs_using_subclasses(cl: ClassIR, seen: set[ClassIR] seen.add(cl) -def detect_undefined_bitmap(cl: ClassIR, seen: Set[ClassIR]) -> None: +def detect_undefined_bitmap(cl: ClassIR, seen: set[ClassIR]) -> None: if cl.is_trait: return diff --git a/mypyc/codegen/cstring.py b/mypyc/codegen/cstring.py index e006f12e09ecf..853787f8161d4 100644 --- a/mypyc/codegen/cstring.py +++ b/mypyc/codegen/cstring.py @@ -21,7 +21,7 @@ from __future__ import annotations import string -from typing_extensions import Final +from typing import Final CHAR_MAP: Final = [f"\\{i:03o}" for i in range(256)] diff --git a/mypyc/codegen/emit.py b/mypyc/codegen/emit.py index 8f0e0bc65edc4..675012e59a6dc 100644 --- a/mypyc/codegen/emit.py +++ b/mypyc/codegen/emit.py @@ -6,7 +6,7 @@ import sys import textwrap from typing import Callable -from typing_extensions import Final +from typing import Final from mypyc.codegen.literals import Literals from mypyc.common import ( @@ -926,7 +926,7 @@ def emit_unbox( elif is_float_rprimitive(typ): assert not optional # Not supported for overlapping error values if declare_dest: - self.emit_line("double {};".format(dest)) + self.emit_line(f"double {dest};") # TODO: Don't use __float__ and __index__ self.emit_line(f"{dest} = PyFloat_AsDouble({src});") self.emit_lines(f"if ({dest} == -1.0 && PyErr_Occurred()) {{", failure, "}") diff --git a/mypyc/codegen/emitfunc.py b/mypyc/codegen/emitfunc.py index 7e6d775d74b4d..b4d31544b1967 100644 --- a/mypyc/codegen/emitfunc.py +++ b/mypyc/codegen/emitfunc.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing_extensions import Final +from typing import Final from mypyc.analysis.blockfreq import frequently_executed_blocks from mypyc.codegen.emit import DEBUG_ERRORS, Emitter, TracebackAndGotoHandler, c_array_initializer @@ -686,10 +686,10 @@ def visit_float_op(self, op: FloatOp) -> None: lhs = self.reg(op.lhs) rhs = self.reg(op.rhs) if op.op != FloatOp.MOD: - self.emit_line("%s = %s %s %s;" % (dest, lhs, op.op_str[op.op], rhs)) + self.emit_line(f"{dest} = {lhs} {op.op_str[op.op]} {rhs};") else: # TODO: This may set errno as a side effect, that is a little sketchy. - self.emit_line("%s = fmod(%s, %s);" % (dest, lhs, rhs)) + self.emit_line(f"{dest} = fmod({lhs}, {rhs});") def visit_float_neg(self, op: FloatNeg) -> None: dest = self.reg(op) @@ -700,7 +700,7 @@ def visit_float_comparison_op(self, op: FloatComparisonOp) -> None: dest = self.reg(op) lhs = self.reg(op.lhs) rhs = self.reg(op.rhs) - self.emit_line("%s = %s %s %s;" % (dest, lhs, op.op_str[op.op], rhs)) + self.emit_line(f"{dest} = {lhs} {op.op_str[op.op]} {rhs};") def visit_load_mem(self, op: LoadMem) -> None: dest = self.reg(op) diff --git a/mypyc/codegen/literals.py b/mypyc/codegen/literals.py index 8f84089221c3e..ee16055115c52 100644 --- a/mypyc/codegen/literals.py +++ b/mypyc/codegen/literals.py @@ -1,7 +1,8 @@ from __future__ import annotations from typing import FrozenSet, List, Tuple, Union -from typing_extensions import Final, TypeGuard +from typing_extensions import TypeGuard +from typing import Final # Supported Python literal types. All tuple / frozenset items must have supported # literal types as well, but we can't represent the type precisely. @@ -140,7 +141,7 @@ def encoded_complex_values(self) -> list[str]: def encoded_tuple_values(self) -> list[str]: return self._encode_collection_values(self.tuple_literals) - def encoded_frozenset_values(self) -> List[str]: + def encoded_frozenset_values(self) -> list[str]: return self._encode_collection_values(self.frozenset_literals) def _encode_collection_values( diff --git a/mypyc/common.py b/mypyc/common.py index 05e13370cb98c..17328af8e4f6b 100644 --- a/mypyc/common.py +++ b/mypyc/common.py @@ -3,7 +3,7 @@ import sys import sysconfig from typing import Any, Dict -from typing_extensions import Final +from typing import Final from mypy.util import unnamed_function diff --git a/mypyc/ir/class_ir.py b/mypyc/ir/class_ir.py index a5ac2133ce134..bbee910d4516c 100644 --- a/mypyc/ir/class_ir.py +++ b/mypyc/ir/class_ir.py @@ -70,10 +70,10 @@ class VTableMethod(NamedTuple): - cls: "ClassIR" + cls: ClassIR name: str method: FuncIR - shadow_method: Optional[FuncIR] + shadow_method: FuncIR | None VTableEntries = List[VTableMethod] @@ -192,7 +192,7 @@ def __init__( # bitmap for types such as native ints that can't have a dedicated error # value that doesn't overlap a valid value. The bitmap is used if the # value of an attribute is the same as the error value. - self.bitmap_attrs: List[str] = [] + self.bitmap_attrs: list[str] = [] def __repr__(self) -> str: return ( diff --git a/mypyc/ir/func_ir.py b/mypyc/ir/func_ir.py index dbb45fc7ec294..da170f9aba940 100644 --- a/mypyc/ir/func_ir.py +++ b/mypyc/ir/func_ir.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Sequence -from typing_extensions import Final +from typing import Final from mypy.nodes import ARG_POS, ArgKind, Block, FuncDef from mypyc.common import BITMAP_BITS, JsonDict, bitmap_name, get_id_from_name, short_id_from_name @@ -86,7 +86,7 @@ def real_args(self) -> tuple[RuntimeArg, ...]: return self.args[: -self.num_bitmap_args] return self.args - def bound_sig(self) -> "FuncSignature": + def bound_sig(self) -> FuncSignature: if self.num_bitmap_args: return FuncSignature(self.args[1 : -self.num_bitmap_args], self.ret_type) else: diff --git a/mypyc/ir/ops.py b/mypyc/ir/ops.py index 6007f8a4ce042..eb56c38034035 100644 --- a/mypyc/ir/ops.py +++ b/mypyc/ir/ops.py @@ -13,7 +13,7 @@ from abc import abstractmethod from typing import TYPE_CHECKING, Dict, Generic, List, NamedTuple, Sequence, TypeVar, Union -from typing_extensions import Final +from typing import Final from mypy_extensions import trait @@ -1204,10 +1204,10 @@ def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None: self.rhs = rhs self.op = op - def sources(self) -> List[Value]: + def sources(self) -> list[Value]: return [self.lhs, self.rhs] - def accept(self, visitor: "OpVisitor[T]") -> T: + def accept(self, visitor: OpVisitor[T]) -> T: return visitor.visit_float_op(self) @@ -1226,10 +1226,10 @@ def __init__(self, src: Value, line: int = -1) -> None: self.type = float_rprimitive self.src = src - def sources(self) -> List[Value]: + def sources(self) -> list[Value]: return [self.src] - def accept(self, visitor: "OpVisitor[T]") -> T: + def accept(self, visitor: OpVisitor[T]) -> T: return visitor.visit_float_neg(self) @@ -1254,10 +1254,10 @@ def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None: self.rhs = rhs self.op = op - def sources(self) -> List[Value]: + def sources(self) -> list[Value]: return [self.lhs, self.rhs] - def accept(self, visitor: "OpVisitor[T]") -> T: + def accept(self, visitor: OpVisitor[T]) -> T: return visitor.visit_float_comparison_op(self) @@ -1575,5 +1575,5 @@ def visit_keep_alive(self, op: KeepAlive) -> T: # (Serialization and deserialization *will* be used for incremental # compilation but so far it is not hooked up to anything.) class DeserMaps(NamedTuple): - classes: Dict[str, "ClassIR"] - functions: Dict[str, "FuncIR"] + classes: dict[str, ClassIR] + functions: dict[str, FuncIR] diff --git a/mypyc/ir/pprint.py b/mypyc/ir/pprint.py index 4d10a91835cac..f1272fa5cade9 100644 --- a/mypyc/ir/pprint.py +++ b/mypyc/ir/pprint.py @@ -4,7 +4,7 @@ from collections import defaultdict from typing import Any, Sequence, Union -from typing_extensions import Final +from typing import Final from mypyc.common import short_name from mypyc.ir.func_ir import FuncIR, all_values_full diff --git a/mypyc/ir/rtypes.py b/mypyc/ir/rtypes.py index 61f83c9c041eb..1212d6f33bcca 100644 --- a/mypyc/ir/rtypes.py +++ b/mypyc/ir/rtypes.py @@ -24,7 +24,7 @@ from abc import abstractmethod from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar -from typing_extensions import Final +from typing import Final from mypyc.common import IS_32_BIT_PLATFORM, PLATFORM_SIZE, JsonDict, short_name from mypyc.namegen import NameGenerator diff --git a/mypyc/irbuild/builder.py b/mypyc/irbuild/builder.py index 86c28882d7388..dde13aafe8af7 100644 --- a/mypyc/irbuild/builder.py +++ b/mypyc/irbuild/builder.py @@ -14,7 +14,8 @@ from contextlib import contextmanager from typing import Any, Callable, Iterator, Sequence, Union -from typing_extensions import Final, overload +from typing_extensions import overload +from typing import Final from mypy.build import Graph from mypy.maptype import map_instance_to_supertype diff --git a/mypyc/irbuild/classdef.py b/mypyc/irbuild/classdef.py index ef8db97c818e2..63855f799900a 100644 --- a/mypyc/irbuild/classdef.py +++ b/mypyc/irbuild/classdef.py @@ -5,7 +5,7 @@ import typing_extensions from abc import abstractmethod from typing import Callable -from typing_extensions import Final +from typing import Final from mypy.nodes import ( AssignmentStmt, diff --git a/mypyc/irbuild/constant_fold.py b/mypyc/irbuild/constant_fold.py index dc21be4689e28..678c78446b62a 100644 --- a/mypyc/irbuild/constant_fold.py +++ b/mypyc/irbuild/constant_fold.py @@ -11,7 +11,7 @@ from __future__ import annotations from typing import Union -from typing_extensions import Final +from typing import Final from mypy.constant_fold import constant_fold_binary_op, constant_fold_unary_op from mypy.nodes import ( diff --git a/mypyc/irbuild/format_str_tokenizer.py b/mypyc/irbuild/format_str_tokenizer.py index 480c683aa1641..0b46887811fb5 100644 --- a/mypyc/irbuild/format_str_tokenizer.py +++ b/mypyc/irbuild/format_str_tokenizer.py @@ -3,7 +3,7 @@ from __future__ import annotations from enum import Enum, unique -from typing_extensions import Final +from typing import Final from mypy.checkstrformat import ( ConversionSpecifier, diff --git a/mypyc/irbuild/ll_builder.py b/mypyc/irbuild/ll_builder.py index a37bcc0dbb86a..c3c9c485a34f8 100644 --- a/mypyc/irbuild/ll_builder.py +++ b/mypyc/irbuild/ll_builder.py @@ -11,7 +11,7 @@ from __future__ import annotations from typing import Callable, Optional, Sequence, Tuple -from typing_extensions import Final +from typing import Final from mypy.argmap import map_actuals_to_formals from mypy.nodes import ARG_POS, ARG_STAR, ARG_STAR2, ArgKind diff --git a/mypyc/irbuild/specialize.py b/mypyc/irbuild/specialize.py index 06af4d6d74269..2f22b4bfc9d20 100644 --- a/mypyc/irbuild/specialize.py +++ b/mypyc/irbuild/specialize.py @@ -755,7 +755,7 @@ def translate_bool(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Value @specialize_function("builtins.float") -def translate_float(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Optional[Value]: +def translate_float(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Value | None: if len(expr.args) != 1 or expr.arg_kinds[0] != ARG_POS: return None arg = expr.args[0] diff --git a/mypyc/primitives/registry.py b/mypyc/primitives/registry.py index 1e2cf2695ee7c..1f3eca06b63f5 100644 --- a/mypyc/primitives/registry.py +++ b/mypyc/primitives/registry.py @@ -38,7 +38,7 @@ from __future__ import annotations from typing import List, NamedTuple, Optional, Tuple -from typing_extensions import Final +from typing import Final from mypyc.ir.ops import StealsDescription from mypyc.ir.rtypes import RType @@ -50,16 +50,16 @@ class CFunctionDescription(NamedTuple): name: str - arg_types: List[RType] + arg_types: list[RType] return_type: RType - var_arg_type: Optional[RType] - truncated_type: Optional[RType] + var_arg_type: RType | None + truncated_type: RType | None c_function_name: str error_kind: int steals: StealsDescription is_borrowed: bool - ordering: Optional[List[int]] - extra_int_constants: List[Tuple[int, RType]] + ordering: list[int] | None + extra_int_constants: list[tuple[int, RType]] priority: int diff --git a/mypyc/test-data/fixtures/testutil.py b/mypyc/test-data/fixtures/testutil.py index 5a4b1d0f549e2..7f00ee5aea001 100644 --- a/mypyc/test-data/fixtures/testutil.py +++ b/mypyc/test-data/fixtures/testutil.py @@ -7,7 +7,7 @@ Any, Iterator, TypeVar, Generator, Optional, List, Tuple, Sequence, Union, Callable, Awaitable, ) -from typing_extensions import Final +from typing import Final FLOAT_MAGIC: Final = -113.0 From 584b7a8f493235734ecb65f88b3bce2e068ee9a0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:19:44 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- misc/analyze_cache.py | 3 +-- misc/incremental_checker.py | 3 +-- mypy/build.py | 2 +- mypy/checker.py | 2 +- mypy/checkexpr.py | 3 +-- mypy/checkpattern.py | 3 +-- mypy/checkstrformat.py | 3 +-- mypy/config_parser.py | 2 +- mypy/constant_fold.py | 3 +-- mypy/constraints.py | 3 +-- mypy/dmypy_server.py | 3 +-- mypy/dmypy_util.py | 3 +-- mypy/errors.py | 3 +-- mypy/expandtype.py | 3 +-- mypy/fastparse.py | 3 +-- mypy/find_sources.py | 3 +-- mypy/fixup.py | 3 +-- mypy/ipc.py | 3 +-- mypy/literals.py | 3 +-- mypy/main.py | 3 +-- mypy/message_registry.py | 3 +-- mypy/messages.py | 3 +-- mypy/modulefinder.py | 3 +-- mypy/nodes.py | 2 +- mypy/options.py | 3 +-- mypy/plugins/attrs.py | 3 +-- mypy/plugins/dataclasses.py | 3 +-- mypy/plugins/enums.py | 3 +-- mypy/plugins/functools.py | 3 +-- mypy/plugins/singledispatch.py | 3 +-- mypy/reachability.py | 3 +-- mypy/renaming.py | 3 +-- mypy/report.py | 3 +-- mypy/semanal.py | 3 +-- mypy/semanal_enum.py | 3 +-- mypy/semanal_main.py | 3 +-- mypy/semanal_namedtuple.py | 3 +-- mypy/semanal_shared.py | 3 +-- mypy/server/objgraph.py | 3 +-- mypy/server/update.py | 3 +-- mypy/state.py | 3 +-- mypy/stats.py | 3 +-- mypy/stubdoc.py | 3 +-- mypy/stubgen.py | 3 +-- mypy/stubgenc.py | 3 +-- mypy/subtypes.py | 3 +-- mypy/test/data.py | 3 +-- mypy/type_visitor.py | 3 +-- mypy/typeanal.py | 3 +-- mypy/types.py | 2 +- mypy/typestate.py | 3 +-- mypy/util.py | 3 +-- mypyc/analysis/attrdefined.py | 3 +-- mypyc/codegen/emit.py | 3 +-- mypyc/codegen/literals.py | 3 +-- mypyc/common.py | 3 +-- mypyc/ir/class_ir.py | 2 +- mypyc/ir/func_ir.py | 3 +-- mypyc/ir/ops.py | 3 +-- mypyc/ir/pprint.py | 3 +-- mypyc/ir/rtypes.py | 3 +-- mypyc/irbuild/builder.py | 3 +-- mypyc/irbuild/classdef.py | 3 +-- mypyc/irbuild/constant_fold.py | 3 +-- mypyc/irbuild/ll_builder.py | 3 +-- mypyc/primitives/registry.py | 3 +-- 66 files changed, 66 insertions(+), 126 deletions(-) diff --git a/misc/analyze_cache.py b/misc/analyze_cache.py index b91adb576afe1..33205f5132fc3 100644 --- a/misc/analyze_cache.py +++ b/misc/analyze_cache.py @@ -6,9 +6,8 @@ import os import os.path from collections import Counter -from typing import Any, Dict, Iterable +from typing import Any, Dict, Final, Iterable from typing_extensions import TypeAlias as _TypeAlias -from typing import Final ROOT: Final = ".mypy_cache/3.5" diff --git a/misc/incremental_checker.py b/misc/incremental_checker.py index 8a055401a3c90..4e42aef333bb4 100755 --- a/misc/incremental_checker.py +++ b/misc/incremental_checker.py @@ -44,9 +44,8 @@ import textwrap import time from argparse import ArgumentParser, Namespace, RawDescriptionHelpFormatter -from typing import Any, Dict +from typing import Any, Dict, Final from typing_extensions import TypeAlias as _TypeAlias -from typing import Final CACHE_PATH: Final = ".incremental_checker_cache.json" MYPY_REPO_URL: Final = "https://github.com/python/mypy.git" diff --git a/mypy/build.py b/mypy/build.py index 361b9b551a897..5a0a481ae1a2f 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -31,6 +31,7 @@ Callable, ClassVar, Dict, + Final, Iterator, Mapping, NamedTuple, @@ -39,7 +40,6 @@ TextIO, ) from typing_extensions import TypeAlias as _TypeAlias, TypedDict -from typing import Final import mypy.semanal_main from mypy.checker import TypeChecker diff --git a/mypy/checker.py b/mypy/checker.py index d16849dea0aea..bf200299d8b33 100644 --- a/mypy/checker.py +++ b/mypy/checker.py @@ -9,6 +9,7 @@ AbstractSet, Callable, Dict, + Final, Generic, Iterable, Iterator, @@ -23,7 +24,6 @@ overload, ) from typing_extensions import TypeAlias as _TypeAlias -from typing import Final import mypy.checkexpr from mypy import errorcodes as codes, message_registry, nodes, operators diff --git a/mypy/checkexpr.py b/mypy/checkexpr.py index c11e23d1ce592..aee8d58a69f69 100644 --- a/mypy/checkexpr.py +++ b/mypy/checkexpr.py @@ -6,9 +6,8 @@ import time from collections import defaultdict from contextlib import contextmanager -from typing import Callable, ClassVar, Iterable, Iterator, List, Optional, Sequence, cast +from typing import Callable, ClassVar, Final, Iterable, Iterator, List, Optional, Sequence, cast from typing_extensions import TypeAlias as _TypeAlias, overload -from typing import Final import mypy.checker import mypy.errorcodes as codes diff --git a/mypy/checkpattern.py b/mypy/checkpattern.py index b5c5031991083..e432675b0b5a9 100644 --- a/mypy/checkpattern.py +++ b/mypy/checkpattern.py @@ -3,8 +3,7 @@ from __future__ import annotations from collections import defaultdict -from typing import NamedTuple -from typing import Final +from typing import Final, NamedTuple import mypy.checker from mypy import message_registry diff --git a/mypy/checkstrformat.py b/mypy/checkstrformat.py index f210fcfbe5177..cda603be086b1 100644 --- a/mypy/checkstrformat.py +++ b/mypy/checkstrformat.py @@ -13,9 +13,8 @@ from __future__ import annotations import re -from typing import TYPE_CHECKING, Callable, Dict, Match, Pattern, Tuple, Union, cast +from typing import TYPE_CHECKING, Callable, Dict, Final, Match, Pattern, Tuple, Union, cast from typing_extensions import TypeAlias as _TypeAlias -from typing import Final import mypy.errorcodes as codes from mypy.errors import Errors diff --git a/mypy/config_parser.py b/mypy/config_parser.py index fa052cf406f34..47b0bc3acabc0 100644 --- a/mypy/config_parser.py +++ b/mypy/config_parser.py @@ -19,6 +19,7 @@ Any, Callable, Dict, + Final, Iterable, List, Mapping, @@ -29,7 +30,6 @@ Union, ) from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy import defaults from mypy.options import PER_MODULE_OPTIONS, Options diff --git a/mypy/constant_fold.py b/mypy/constant_fold.py index b372746d21025..4582b2a7396d7 100644 --- a/mypy/constant_fold.py +++ b/mypy/constant_fold.py @@ -5,8 +5,7 @@ from __future__ import annotations -from typing import Union -from typing import Final +from typing import Final, Union from mypy.nodes import ( ComplexExpr, diff --git a/mypy/constraints.py b/mypy/constraints.py index a9302da405feb..f9124630a706e 100644 --- a/mypy/constraints.py +++ b/mypy/constraints.py @@ -2,8 +2,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Iterable, List, Sequence, cast -from typing import Final +from typing import TYPE_CHECKING, Final, Iterable, List, Sequence, cast import mypy.subtypes import mypy.typeops diff --git a/mypy/dmypy_server.py b/mypy/dmypy_server.py index cec57ca4234a7..a50ebc5415ba9 100644 --- a/mypy/dmypy_server.py +++ b/mypy/dmypy_server.py @@ -17,9 +17,8 @@ import time import traceback from contextlib import redirect_stderr, redirect_stdout -from typing import AbstractSet, Any, Callable, List, Sequence, Tuple +from typing import AbstractSet, Any, Callable, Final, List, Sequence, Tuple from typing_extensions import TypeAlias as _TypeAlias -from typing import Final import mypy.build import mypy.errors diff --git a/mypy/dmypy_util.py b/mypy/dmypy_util.py index c8a82b51a6a07..2aae41d998da4 100644 --- a/mypy/dmypy_util.py +++ b/mypy/dmypy_util.py @@ -6,8 +6,7 @@ from __future__ import annotations import json -from typing import Any -from typing import Final +from typing import Any, Final from mypy.ipc import IPCBase diff --git a/mypy/errors.py b/mypy/errors.py index a4cd9188136bd..2badac3e3d6d5 100644 --- a/mypy/errors.py +++ b/mypy/errors.py @@ -4,9 +4,8 @@ import sys import traceback from collections import defaultdict -from typing import Callable, Iterable, NoReturn, Optional, TextIO, Tuple, TypeVar +from typing import Callable, Final, Iterable, NoReturn, Optional, TextIO, Tuple, TypeVar from typing_extensions import Literal, TypeAlias as _TypeAlias -from typing import Final from mypy import errorcodes as codes from mypy.errorcodes import IMPORT, ErrorCode diff --git a/mypy/expandtype.py b/mypy/expandtype.py index b42e935ff7d9c..3928fe1a5ed7e 100644 --- a/mypy/expandtype.py +++ b/mypy/expandtype.py @@ -1,7 +1,6 @@ from __future__ import annotations -from typing import Iterable, Mapping, Sequence, TypeVar, cast, overload -from typing import Final +from typing import Final, Iterable, Mapping, Sequence, TypeVar, cast, overload from mypy.nodes import ARG_POS, ARG_STAR, ArgKind, Var from mypy.state import state diff --git a/mypy/fastparse.py b/mypy/fastparse.py index 0cd1af82cf0a2..eeeda16f9d8da 100644 --- a/mypy/fastparse.py +++ b/mypy/fastparse.py @@ -4,9 +4,8 @@ import re import sys import warnings -from typing import Any, Callable, List, Optional, Sequence, TypeVar, Union, cast +from typing import Any, Callable, Final, List, Optional, Sequence, TypeVar, Union, cast from typing_extensions import Literal, overload -from typing import Final from mypy import defaults, errorcodes as codes, message_registry from mypy.errors import Errors diff --git a/mypy/find_sources.py b/mypy/find_sources.py index ad7f1bbe16627..3565fc4609cd9 100644 --- a/mypy/find_sources.py +++ b/mypy/find_sources.py @@ -4,8 +4,7 @@ import functools import os -from typing import Sequence -from typing import Final +from typing import Final, Sequence from mypy.fscache import FileSystemCache from mypy.modulefinder import PYTHON_EXTENSIONS, BuildSource, matches_exclude, mypy_path diff --git a/mypy/fixup.py b/mypy/fixup.py index 9e592949bef84..2b2e1210ee4e1 100644 --- a/mypy/fixup.py +++ b/mypy/fixup.py @@ -2,8 +2,7 @@ from __future__ import annotations -from typing import Any -from typing import Final +from typing import Any, Final from mypy.lookup import lookup_fully_qualified from mypy.nodes import ( diff --git a/mypy/ipc.py b/mypy/ipc.py index 9f6561c510a95..d026f2429a0f2 100644 --- a/mypy/ipc.py +++ b/mypy/ipc.py @@ -12,8 +12,7 @@ import sys import tempfile from types import TracebackType -from typing import Callable -from typing import Final +from typing import Callable, Final if sys.platform == "win32": # This may be private, but it is needed for IPC on Windows, and is basically stable diff --git a/mypy/literals.py b/mypy/literals.py index c35af2e74d83a..cba5712644be2 100644 --- a/mypy/literals.py +++ b/mypy/literals.py @@ -1,8 +1,7 @@ from __future__ import annotations -from typing import Any, Iterable, Optional, Tuple +from typing import Any, Final, Iterable, Optional, Tuple from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy.nodes import ( LITERAL_NO, diff --git a/mypy/main.py b/mypy/main.py index 1c0e8840a396c..f6e617e4d84f0 100644 --- a/mypy/main.py +++ b/mypy/main.py @@ -8,8 +8,7 @@ import sys import time from gettext import gettext -from typing import IO, Any, NoReturn, Sequence, TextIO -from typing import Final +from typing import IO, Any, Final, NoReturn, Sequence, TextIO from mypy import build, defaults, state, util from mypy.config_parser import get_config_module_names, parse_config_file, parse_version diff --git a/mypy/message_registry.py b/mypy/message_registry.py index 9e1e64852fa75..bd3b8571b69e9 100644 --- a/mypy/message_registry.py +++ b/mypy/message_registry.py @@ -8,8 +8,7 @@ from __future__ import annotations -from typing import NamedTuple -from typing import Final +from typing import Final, NamedTuple from mypy import errorcodes as codes diff --git a/mypy/messages.py b/mypy/messages.py index 00048a484052f..021ad2c7390cd 100644 --- a/mypy/messages.py +++ b/mypy/messages.py @@ -16,8 +16,7 @@ import re from contextlib import contextmanager from textwrap import dedent -from typing import Any, Callable, Collection, Iterable, Iterator, List, Sequence, cast -from typing import Final +from typing import Any, Callable, Collection, Final, Iterable, Iterator, List, Sequence, cast import mypy.typeops from mypy import errorcodes as codes, message_registry diff --git a/mypy/modulefinder.py b/mypy/modulefinder.py index 85c9d9078f087..c780015c639dc 100644 --- a/mypy/modulefinder.py +++ b/mypy/modulefinder.py @@ -21,9 +21,8 @@ else: import tomli as tomllib -from typing import Dict, List, NamedTuple, Optional, Tuple, Union +from typing import Dict, Final, List, NamedTuple, Optional, Tuple, Union from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy import pyinfo from mypy.fscache import FileSystemCache diff --git a/mypy/nodes.py b/mypy/nodes.py index 94eb57d8ddf91..eb093f5d45b06 100644 --- a/mypy/nodes.py +++ b/mypy/nodes.py @@ -11,6 +11,7 @@ Any, Callable, Dict, + Final, Iterator, List, Optional, @@ -21,7 +22,6 @@ cast, ) from typing_extensions import TypeAlias as _TypeAlias, TypeGuard -from typing import Final from mypy_extensions import trait diff --git a/mypy/options.py b/mypy/options.py index de4c9580686dc..75343acd38bb1 100644 --- a/mypy/options.py +++ b/mypy/options.py @@ -4,8 +4,7 @@ import re import sys import sysconfig -from typing import Any, Callable, Dict, Mapping, Pattern -from typing import Final +from typing import Any, Callable, Final, Mapping, Pattern from mypy import defaults from mypy.errorcodes import ErrorCode, error_codes diff --git a/mypy/plugins/attrs.py b/mypy/plugins/attrs.py index 3751dbe3e58ac..a6a383405ac6a 100644 --- a/mypy/plugins/attrs.py +++ b/mypy/plugins/attrs.py @@ -4,9 +4,8 @@ from collections import defaultdict from functools import reduce -from typing import Iterable, List, Mapping, cast +from typing import Final, Iterable, List, Mapping, cast from typing_extensions import Literal -from typing import Final import mypy.plugin # To avoid circular imports. from mypy.applytype import apply_generic_arguments diff --git a/mypy/plugins/dataclasses.py b/mypy/plugins/dataclasses.py index 8c920290a5880..746e632ba9397 100644 --- a/mypy/plugins/dataclasses.py +++ b/mypy/plugins/dataclasses.py @@ -2,8 +2,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Iterator, Optional -from typing import Final +from typing import TYPE_CHECKING, Final, Iterator from mypy import errorcodes, message_registry from mypy.expandtype import expand_type, expand_type_by_instance diff --git a/mypy/plugins/enums.py b/mypy/plugins/enums.py index 75ac48f53e0a8..7869a8b5cdfab 100644 --- a/mypy/plugins/enums.py +++ b/mypy/plugins/enums.py @@ -12,8 +12,7 @@ """ from __future__ import annotations -from typing import Iterable, Sequence, TypeVar, cast -from typing import Final +from typing import Final, Iterable, Sequence, TypeVar, cast import mypy.plugin # To avoid circular imports. from mypy.nodes import TypeInfo diff --git a/mypy/plugins/functools.py b/mypy/plugins/functools.py index 75820c7778130..0aa2824c9b510 100644 --- a/mypy/plugins/functools.py +++ b/mypy/plugins/functools.py @@ -1,8 +1,7 @@ """Plugin for supporting the functools standard library module.""" from __future__ import annotations -from typing import NamedTuple -from typing import Final +from typing import Final, NamedTuple import mypy.plugin from mypy.nodes import ARG_POS, ARG_STAR2, Argument, FuncItem, Var diff --git a/mypy/plugins/singledispatch.py b/mypy/plugins/singledispatch.py index f7b4f051e7a49..c5ce20233a0a4 100644 --- a/mypy/plugins/singledispatch.py +++ b/mypy/plugins/singledispatch.py @@ -1,8 +1,7 @@ from __future__ import annotations -from typing import NamedTuple, Sequence, TypeVar, Union +from typing import Final, NamedTuple, Sequence, TypeVar, Union from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy.messages import format_type from mypy.nodes import ARG_POS, Argument, Block, ClassDef, Context, SymbolTable, TypeInfo, Var diff --git a/mypy/reachability.py b/mypy/reachability.py index 1d0e4e4847f1c..a25b9dff45813 100644 --- a/mypy/reachability.py +++ b/mypy/reachability.py @@ -2,8 +2,7 @@ from __future__ import annotations -from typing import Tuple, TypeVar -from typing import Final +from typing import Final, Tuple, TypeVar from mypy.literals import literal from mypy.nodes import ( diff --git a/mypy/renaming.py b/mypy/renaming.py index 86bdfe1a7dd21..c960eb4b1ce82 100644 --- a/mypy/renaming.py +++ b/mypy/renaming.py @@ -1,8 +1,7 @@ from __future__ import annotations from contextlib import contextmanager -from typing import Iterator -from typing import Final +from typing import Final, Iterator from mypy.nodes import ( AssignmentStmt, diff --git a/mypy/report.py b/mypy/report.py index 97f38912b9764..5d93351aa37da 100644 --- a/mypy/report.py +++ b/mypy/report.py @@ -12,9 +12,8 @@ import tokenize from abc import ABCMeta, abstractmethod from operator import attrgetter -from typing import Any, Callable, Dict, Iterator, Tuple +from typing import Any, Callable, Dict, Final, Iterator, Tuple from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from urllib.request import pathname2url from mypy import stats diff --git a/mypy/semanal.py b/mypy/semanal.py index d488e8ecbb7d6..75d41b3446989 100644 --- a/mypy/semanal.py +++ b/mypy/semanal.py @@ -51,9 +51,8 @@ from __future__ import annotations from contextlib import contextmanager -from typing import Any, Callable, Collection, Iterable, Iterator, List, TypeVar, cast +from typing import Any, Callable, Collection, Final, Iterable, Iterator, List, TypeVar, cast from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy import errorcodes as codes, message_registry from mypy.constant_fold import constant_fold_expr diff --git a/mypy/semanal_enum.py b/mypy/semanal_enum.py index 6742ebeb59659..cd11204c3bcc6 100644 --- a/mypy/semanal_enum.py +++ b/mypy/semanal_enum.py @@ -5,8 +5,7 @@ from __future__ import annotations -from typing import cast -from typing import Final +from typing import Final, cast from mypy.nodes import ( ARG_NAMED, diff --git a/mypy/semanal_main.py b/mypy/semanal_main.py index 5a8111d47b67b..51a7014fac1ab 100644 --- a/mypy/semanal_main.py +++ b/mypy/semanal_main.py @@ -27,9 +27,8 @@ from __future__ import annotations from contextlib import nullcontext -from typing import TYPE_CHECKING, Callable, List, Optional, Tuple, Union +from typing import TYPE_CHECKING, Callable, Final, List, Optional, Tuple, Union from typing_extensions import TypeAlias as _TypeAlias -from typing import Final import mypy.build import mypy.state diff --git a/mypy/semanal_namedtuple.py b/mypy/semanal_namedtuple.py index 2801afc6279a3..454708492879b 100644 --- a/mypy/semanal_namedtuple.py +++ b/mypy/semanal_namedtuple.py @@ -6,8 +6,7 @@ from __future__ import annotations from contextlib import contextmanager -from typing import Iterator, List, Mapping, cast -from typing import Final +from typing import Final, Iterator, List, Mapping, cast from mypy.exprtotype import TypeTranslationError, expr_to_unanalyzed_type from mypy.nodes import ( diff --git a/mypy/semanal_shared.py b/mypy/semanal_shared.py index f09dc03c6e2fe..425e5906926a6 100644 --- a/mypy/semanal_shared.py +++ b/mypy/semanal_shared.py @@ -3,9 +3,8 @@ from __future__ import annotations from abc import abstractmethod -from typing import Callable, overload +from typing import Callable, Final, overload from typing_extensions import Literal, Protocol -from typing import Final from mypy_extensions import trait diff --git a/mypy/server/objgraph.py b/mypy/server/objgraph.py index 024499401c8b1..a13fd84129340 100644 --- a/mypy/server/objgraph.py +++ b/mypy/server/objgraph.py @@ -5,8 +5,7 @@ import types import weakref from collections.abc import Iterable -from typing import Iterator, Mapping -from typing import Final +from typing import Final, Iterator, Mapping method_descriptor_type: Final = type(object.__dir__) method_wrapper_type: Final = type(object().__ne__) diff --git a/mypy/server/update.py b/mypy/server/update.py index 173c3ae7f2e3e..0cc7a2229514d 100644 --- a/mypy/server/update.py +++ b/mypy/server/update.py @@ -118,9 +118,8 @@ import re import sys import time -from typing import Callable, NamedTuple, Sequence, Union +from typing import Callable, Final, NamedTuple, Sequence, Union from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy.build import ( DEBUG_FINE_GRAINED, diff --git a/mypy/state.py b/mypy/state.py index 2987419841bf0..cd3a360dd15f3 100644 --- a/mypy/state.py +++ b/mypy/state.py @@ -1,8 +1,7 @@ from __future__ import annotations from contextlib import contextmanager -from typing import Iterator -from typing import Final +from typing import Final, Iterator # These are global mutable state. Don't add anything here unless there's a very # good reason. diff --git a/mypy/stats.py b/mypy/stats.py index f5b173512bb46..b8803e03b9d2d 100644 --- a/mypy/stats.py +++ b/mypy/stats.py @@ -5,8 +5,7 @@ import os from collections import Counter from contextlib import contextmanager -from typing import Iterator -from typing import Final +from typing import Final, Iterator from mypy import nodes from mypy.argmap import map_formals_to_actuals diff --git a/mypy/stubdoc.py b/mypy/stubdoc.py index 053b0fe2e14bb..232d9e9762e90 100644 --- a/mypy/stubdoc.py +++ b/mypy/stubdoc.py @@ -10,9 +10,8 @@ import io import re import tokenize -from typing import Any, MutableMapping, MutableSequence, NamedTuple, Sequence, Tuple +from typing import Any, Final, MutableMapping, MutableSequence, NamedTuple, Sequence, Tuple from typing_extensions import TypeAlias as _TypeAlias -from typing import Final # Type alias for signatures strings in format ('func_name', '(arg, opt_arg=False)'). Sig: _TypeAlias = Tuple[str, str] diff --git a/mypy/stubgen.py b/mypy/stubgen.py index d72ceab04bb8a..229559ac81209 100755 --- a/mypy/stubgen.py +++ b/mypy/stubgen.py @@ -49,8 +49,7 @@ import sys import traceback from collections import defaultdict -from typing import Iterable, Mapping -from typing import Final +from typing import Final, Iterable, Mapping import mypy.build import mypy.mixedtraverser diff --git a/mypy/stubgenc.py b/mypy/stubgenc.py index 98a4c4f8557b4..8aa1fb3d2c0a8 100755 --- a/mypy/stubgenc.py +++ b/mypy/stubgenc.py @@ -12,8 +12,7 @@ import re from abc import abstractmethod from types import ModuleType -from typing import Any, Iterable, Mapping -from typing import Final +from typing import Any, Final, Iterable, Mapping from mypy.moduleinspect import is_c_module from mypy.stubdoc import ( diff --git a/mypy/subtypes.py b/mypy/subtypes.py index ec07f4011cfac..a6dc071f92b00 100644 --- a/mypy/subtypes.py +++ b/mypy/subtypes.py @@ -1,9 +1,8 @@ from __future__ import annotations from contextlib import contextmanager -from typing import Any, Callable, Iterator, List, TypeVar, cast +from typing import Any, Callable, Final, Iterator, List, TypeVar, cast from typing_extensions import TypeAlias as _TypeAlias -from typing import Final import mypy.applytype import mypy.constraints diff --git a/mypy/test/data.py b/mypy/test/data.py index b9ed8f8e26992..940776bf7b19a 100644 --- a/mypy/test/data.py +++ b/mypy/test/data.py @@ -12,9 +12,8 @@ from abc import abstractmethod from dataclasses import dataclass from pathlib import Path -from typing import Any, Iterator, NamedTuple, NoReturn, Pattern, Union +from typing import Any, Final, Iterator, NamedTuple, NoReturn, Pattern, Union from typing_extensions import TypeAlias as _TypeAlias -from typing import Final import pytest diff --git a/mypy/type_visitor.py b/mypy/type_visitor.py index 776b1cee6b6a9..cbfa43a77b812 100644 --- a/mypy/type_visitor.py +++ b/mypy/type_visitor.py @@ -14,8 +14,7 @@ from __future__ import annotations from abc import abstractmethod -from typing import Any, Callable, Generic, Iterable, Sequence, TypeVar, cast -from typing import Final +from typing import Any, Callable, Final, Generic, Iterable, Sequence, TypeVar, cast from mypy_extensions import mypyc_attr, trait diff --git a/mypy/typeanal.py b/mypy/typeanal.py index 1fc76a7870096..d894e2cc8c514 100644 --- a/mypy/typeanal.py +++ b/mypy/typeanal.py @@ -4,9 +4,8 @@ import itertools from contextlib import contextmanager -from typing import Callable, Iterable, Iterator, List, Sequence, Tuple, TypeVar +from typing import Callable, Final, Iterable, Iterator, List, Sequence, Tuple, TypeVar from typing_extensions import Protocol -from typing import Final from mypy import errorcodes as codes, message_registry, nodes from mypy.errorcodes import ErrorCode diff --git a/mypy/types.py b/mypy/types.py index 169aee3278e62..784ef538f197f 100644 --- a/mypy/types.py +++ b/mypy/types.py @@ -9,6 +9,7 @@ Any, ClassVar, Dict, + Final, Iterable, NamedTuple, NewType, @@ -18,7 +19,6 @@ cast, ) from typing_extensions import Self, TypeAlias as _TypeAlias, TypeGuard, overload -from typing import Final import mypy.nodes from mypy.bogus_type import Bogus diff --git a/mypy/typestate.py b/mypy/typestate.py index 051ae7542b5ec..b32fb0ef6df14 100644 --- a/mypy/typestate.py +++ b/mypy/typestate.py @@ -5,9 +5,8 @@ from __future__ import annotations -from typing import Dict, Set, Tuple +from typing import Dict, Final, Set, Tuple from typing_extensions import TypeAlias as _TypeAlias -from typing import Final from mypy.nodes import TypeInfo from mypy.server.trigger import make_trigger diff --git a/mypy/util.py b/mypy/util.py index 963767fc10e16..268ba8f9de813 100644 --- a/mypy/util.py +++ b/mypy/util.py @@ -11,9 +11,8 @@ import sys import time from importlib import resources as importlib_resources -from typing import IO, Callable, Container, Iterable, Sequence, Sized, TypeVar +from typing import IO, Callable, Container, Final, Iterable, Sequence, Sized, TypeVar from typing_extensions import Literal -from typing import Final try: import curses diff --git a/mypyc/analysis/attrdefined.py b/mypyc/analysis/attrdefined.py index 463626fbf5005..350158246cdb1 100644 --- a/mypyc/analysis/attrdefined.py +++ b/mypyc/analysis/attrdefined.py @@ -63,8 +63,7 @@ def foo(self) -> int: from __future__ import annotations -from typing import Set, Tuple -from typing import Final +from typing import Final, Set, Tuple from mypyc.analysis.dataflow import ( CFG, diff --git a/mypyc/codegen/emit.py b/mypyc/codegen/emit.py index 675012e59a6dc..1bd376754ab94 100644 --- a/mypyc/codegen/emit.py +++ b/mypyc/codegen/emit.py @@ -5,8 +5,7 @@ import pprint import sys import textwrap -from typing import Callable -from typing import Final +from typing import Callable, Final from mypyc.codegen.literals import Literals from mypyc.common import ( diff --git a/mypyc/codegen/literals.py b/mypyc/codegen/literals.py index ee16055115c52..1f0c3bc6ec7bd 100644 --- a/mypyc/codegen/literals.py +++ b/mypyc/codegen/literals.py @@ -1,8 +1,7 @@ from __future__ import annotations -from typing import FrozenSet, List, Tuple, Union +from typing import Final, FrozenSet, Tuple, Union from typing_extensions import TypeGuard -from typing import Final # Supported Python literal types. All tuple / frozenset items must have supported # literal types as well, but we can't represent the type precisely. diff --git a/mypyc/common.py b/mypyc/common.py index 17328af8e4f6b..4615bf30d7427 100644 --- a/mypyc/common.py +++ b/mypyc/common.py @@ -2,8 +2,7 @@ import sys import sysconfig -from typing import Any, Dict -from typing import Final +from typing import Any, Dict, Final from mypy.util import unnamed_function diff --git a/mypyc/ir/class_ir.py b/mypyc/ir/class_ir.py index bbee910d4516c..a577990688b0b 100644 --- a/mypyc/ir/class_ir.py +++ b/mypyc/ir/class_ir.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import List, NamedTuple, Optional +from typing import List, NamedTuple from mypyc.common import PROPSET_PREFIX, JsonDict from mypyc.ir.func_ir import FuncDecl, FuncIR, FuncSignature diff --git a/mypyc/ir/func_ir.py b/mypyc/ir/func_ir.py index da170f9aba940..44847c7bb0b3b 100644 --- a/mypyc/ir/func_ir.py +++ b/mypyc/ir/func_ir.py @@ -2,8 +2,7 @@ from __future__ import annotations -from typing import Sequence -from typing import Final +from typing import Final, Sequence from mypy.nodes import ARG_POS, ArgKind, Block, FuncDef from mypyc.common import BITMAP_BITS, JsonDict, bitmap_name, get_id_from_name, short_id_from_name diff --git a/mypyc/ir/ops.py b/mypyc/ir/ops.py index eb56c38034035..29c47a1cde146 100644 --- a/mypyc/ir/ops.py +++ b/mypyc/ir/ops.py @@ -12,8 +12,7 @@ from __future__ import annotations from abc import abstractmethod -from typing import TYPE_CHECKING, Dict, Generic, List, NamedTuple, Sequence, TypeVar, Union -from typing import Final +from typing import TYPE_CHECKING, Final, Generic, List, NamedTuple, Sequence, TypeVar, Union from mypy_extensions import trait diff --git a/mypyc/ir/pprint.py b/mypyc/ir/pprint.py index f1272fa5cade9..c86060c495945 100644 --- a/mypyc/ir/pprint.py +++ b/mypyc/ir/pprint.py @@ -3,8 +3,7 @@ from __future__ import annotations from collections import defaultdict -from typing import Any, Sequence, Union -from typing import Final +from typing import Any, Final, Sequence, Union from mypyc.common import short_name from mypyc.ir.func_ir import FuncIR, all_values_full diff --git a/mypyc/ir/rtypes.py b/mypyc/ir/rtypes.py index 1212d6f33bcca..fe0c51ea2221d 100644 --- a/mypyc/ir/rtypes.py +++ b/mypyc/ir/rtypes.py @@ -23,8 +23,7 @@ from __future__ import annotations from abc import abstractmethod -from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar -from typing import Final +from typing import TYPE_CHECKING, ClassVar, Final, Generic, TypeVar from mypyc.common import IS_32_BIT_PLATFORM, PLATFORM_SIZE, JsonDict, short_name from mypyc.namegen import NameGenerator diff --git a/mypyc/irbuild/builder.py b/mypyc/irbuild/builder.py index dde13aafe8af7..10f057a29bbb9 100644 --- a/mypyc/irbuild/builder.py +++ b/mypyc/irbuild/builder.py @@ -13,9 +13,8 @@ from __future__ import annotations from contextlib import contextmanager -from typing import Any, Callable, Iterator, Sequence, Union +from typing import Any, Callable, Final, Iterator, Sequence, Union from typing_extensions import overload -from typing import Final from mypy.build import Graph from mypy.maptype import map_instance_to_supertype diff --git a/mypyc/irbuild/classdef.py b/mypyc/irbuild/classdef.py index 63855f799900a..fc2bb4a1fc2f3 100644 --- a/mypyc/irbuild/classdef.py +++ b/mypyc/irbuild/classdef.py @@ -4,8 +4,7 @@ import typing_extensions from abc import abstractmethod -from typing import Callable -from typing import Final +from typing import Callable, Final from mypy.nodes import ( AssignmentStmt, diff --git a/mypyc/irbuild/constant_fold.py b/mypyc/irbuild/constant_fold.py index 678c78446b62a..12a4b15dd40c8 100644 --- a/mypyc/irbuild/constant_fold.py +++ b/mypyc/irbuild/constant_fold.py @@ -10,8 +10,7 @@ from __future__ import annotations -from typing import Union -from typing import Final +from typing import Final, Union from mypy.constant_fold import constant_fold_binary_op, constant_fold_unary_op from mypy.nodes import ( diff --git a/mypyc/irbuild/ll_builder.py b/mypyc/irbuild/ll_builder.py index c3c9c485a34f8..e34f037040476 100644 --- a/mypyc/irbuild/ll_builder.py +++ b/mypyc/irbuild/ll_builder.py @@ -10,8 +10,7 @@ from __future__ import annotations -from typing import Callable, Optional, Sequence, Tuple -from typing import Final +from typing import Callable, Final, Optional, Sequence, Tuple from mypy.argmap import map_actuals_to_formals from mypy.nodes import ARG_POS, ARG_STAR, ARG_STAR2, ArgKind diff --git a/mypyc/primitives/registry.py b/mypyc/primitives/registry.py index 1f3eca06b63f5..aa96b35aec562 100644 --- a/mypyc/primitives/registry.py +++ b/mypyc/primitives/registry.py @@ -37,8 +37,7 @@ from __future__ import annotations -from typing import List, NamedTuple, Optional, Tuple -from typing import Final +from typing import Final, NamedTuple from mypyc.ir.ops import StealsDescription from mypyc.ir.rtypes import RType From 61f5a979a02ad5179acb93aa27f19c2d7cac4433 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Mon, 3 Jul 2023 20:40:16 +0300 Subject: [PATCH 3/3] Keep forward references in NamedTuples to due to mypyc bug --- mypyc/ir/class_ir.py | 2 +- mypyc/ir/ops.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mypyc/ir/class_ir.py b/mypyc/ir/class_ir.py index a577990688b0b..682e306291189 100644 --- a/mypyc/ir/class_ir.py +++ b/mypyc/ir/class_ir.py @@ -70,7 +70,7 @@ class VTableMethod(NamedTuple): - cls: ClassIR + cls: "ClassIR" name: str method: FuncIR shadow_method: FuncIR | None diff --git a/mypyc/ir/ops.py b/mypyc/ir/ops.py index 29c47a1cde146..cb8d9662820c5 100644 --- a/mypyc/ir/ops.py +++ b/mypyc/ir/ops.py @@ -1574,5 +1574,5 @@ def visit_keep_alive(self, op: KeepAlive) -> T: # (Serialization and deserialization *will* be used for incremental # compilation but so far it is not hooked up to anything.) class DeserMaps(NamedTuple): - classes: dict[str, ClassIR] - functions: dict[str, FuncIR] + classes: dict[str, "ClassIR"] + functions: dict[str, "FuncIR"]