diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-06-14 00:42:26 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-07-03 14:11:31 -0400 |
commit | 0703ee0aef68e235c1e22d6448b79dfbbb5c8039 (patch) | |
tree | 0f7ba031362d926b726852d2070ecc8377bdb5bd | |
parent | 46148f923b196e1b1d004e68d43edc2daca4dd25 (diff) | |
download | meson-0703ee0aef68e235c1e22d6448b79dfbbb5c8039.zip meson-0703ee0aef68e235c1e22d6448b79dfbbb5c8039.tar.gz meson-0703ee0aef68e235c1e22d6448b79dfbbb5c8039.tar.bz2 |
move various unused typing-only imports into type-checking blocks
-rw-r--r-- | mesonbuild/ast/interpreter.py | 22 | ||||
-rw-r--r-- | mesonbuild/ast/postprocess.py | 5 | ||||
-rw-r--r-- | mesonbuild/ast/visitor.py | 6 | ||||
-rw-r--r-- | mesonbuild/build.py | 5 | ||||
-rw-r--r-- | mesonbuild/cmake/executor.py | 7 | ||||
-rw-r--r-- | mesonbuild/cmake/interpreter.py | 7 | ||||
-rw-r--r-- | mesonbuild/cmake/toolchain.py | 3 | ||||
-rw-r--r-- | mesonbuild/compilers/compilers.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers/cpp.py | 6 | ||||
-rw-r--r-- | mesonbuild/compilers/cuda.py | 7 | ||||
-rw-r--r-- | mesonbuild/compilers/d.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers/fortran.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers/java.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers/objc.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers/swift.py | 4 | ||||
-rw-r--r-- | mesonbuild/compilers/vala.py | 4 | ||||
-rw-r--r-- | mesonbuild/mintro.py | 11 | ||||
-rw-r--r-- | mesonbuild/modules/__init__.py | 1 | ||||
-rw-r--r-- | mesonbuild/modules/gnome.py | 3 |
19 files changed, 77 insertions, 34 deletions
diff --git a/mesonbuild/ast/interpreter.py b/mesonbuild/ast/interpreter.py index 63eb3e2..c510eee 100644 --- a/mesonbuild/ast/interpreter.py +++ b/mesonbuild/ast/interpreter.py @@ -14,12 +14,12 @@ # This class contains the basic functionality needed to run any interpreter # or an interpreter-based tool. +from __future__ import annotations import os import sys import typing as T -from .visitor import AstVisitor from .. import mparser, mesonlib from .. import environment @@ -30,8 +30,6 @@ from ..interpreterbase import ( BreakRequest, ContinueRequest, default_resolve_key, - TYPE_nvar, - TYPE_nkwargs, ) from ..interpreter import ( @@ -43,29 +41,33 @@ from ..interpreter import ( ) from ..mparser import ( - AndNode, ArgumentNode, ArithmeticNode, ArrayNode, AssignmentNode, BaseNode, - ComparisonNode, ElementaryNode, EmptyNode, - ForeachClauseNode, IdNode, - IfClauseNode, - IndexNode, MethodNode, NotNode, - OrNode, PlusAssignmentNode, TernaryNode, - UMinusNode, ) if T.TYPE_CHECKING: + from .visitor import AstVisitor from ..interpreter import Interpreter + from ..interpreterbase import TYPE_nkwargs, TYPE_nvar + from ..mparser import ( + AndNode, + ComparisonNode, + ForeachClauseNode, + IfClauseNode, + IndexNode, + OrNode, + UMinusNode, + ) class DontCareObject(MesonInterpreterObject): pass diff --git a/mesonbuild/ast/postprocess.py b/mesonbuild/ast/postprocess.py index 6d808be..0c28af0 100644 --- a/mesonbuild/ast/postprocess.py +++ b/mesonbuild/ast/postprocess.py @@ -14,11 +14,14 @@ # This class contains the basic functionality needed to run any interpreter # or an interpreter-based tool +from __future__ import annotations from . import AstVisitor -from .. import mparser import typing as T +if T.TYPE_CHECKING: + from .. import mparser + class AstIndentationGenerator(AstVisitor): def __init__(self) -> None: self.level = 0 diff --git a/mesonbuild/ast/visitor.py b/mesonbuild/ast/visitor.py index 34a76a8..8a0e77b 100644 --- a/mesonbuild/ast/visitor.py +++ b/mesonbuild/ast/visitor.py @@ -14,8 +14,12 @@ # This class contains the basic functionality needed to run any interpreter # or an interpreter-based tool +from __future__ import annotations -from .. import mparser +import typing as T + +if T.TYPE_CHECKING: + from .. import mparser class AstVisitor: def __init__(self) -> None: diff --git a/mesonbuild/build.py b/mesonbuild/build.py index c987840..8655507 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -39,18 +39,19 @@ from .mesonlib import ( MesonBugException ) from .compilers import ( - Compiler, is_object, clink_langs, sort_clink, lang_suffixes, all_languages, + is_object, clink_langs, sort_clink, lang_suffixes, all_languages, is_known_suffix, detect_static_linker ) -from .linkers import StaticLinker from .interpreterbase import FeatureNew, FeatureDeprecated if T.TYPE_CHECKING: from typing_extensions import Literal from ._typing import ImmutableListProtocol from .backend.backends import Backend, ExecutableSerialisation + from .compilers import Compiler from .interpreter.interpreter import Test, SourceOutputs, Interpreter from .interpreterbase import SubProject + from .linkers import StaticLinker from .mesonlib import FileMode, FileOrString from .modules import ModuleState from .mparser import BaseNode diff --git a/mesonbuild/cmake/executor.py b/mesonbuild/cmake/executor.py index 309b429..526620d 100644 --- a/mesonbuild/cmake/executor.py +++ b/mesonbuild/cmake/executor.py @@ -14,20 +14,23 @@ # This class contains the basic functionality needed to run any interpreter # or an interpreter-based tool. +from __future__ import annotations import subprocess as S -from pathlib import Path from threading import Thread import typing as T import re import os from .. import mlog -from ..mesonlib import PerMachine, Popen_safe, version_compare, MachineChoice, is_windows, OptionKey +from ..mesonlib import PerMachine, Popen_safe, version_compare, is_windows, OptionKey from ..programs import find_external_program, NonExistingExternalProgram if T.TYPE_CHECKING: + from pathlib import Path + from ..environment import Environment + from ..mesonlib import MachineChoice from ..programs import ExternalProgram TYPE_result = T.Tuple[int, T.Optional[str], T.Optional[str]] diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py index 2d88079..88ab13f 100644 --- a/mesonbuild/cmake/interpreter.py +++ b/mesonbuild/cmake/interpreter.py @@ -14,6 +14,7 @@ # This class contains the basic functionality needed to run any interpreter # or an interpreter-based tool. +from __future__ import annotations from functools import lru_cache from os import environ @@ -21,11 +22,11 @@ from pathlib import Path import re import typing as T -from .common import CMakeException, CMakeTarget, TargetOptions, CMakeConfiguration, language_map, cmake_get_generator_args, check_cmake_args +from .common import CMakeException, CMakeTarget, language_map, cmake_get_generator_args, check_cmake_args from .fileapi import CMakeFileAPI from .executor import CMakeExecutor from .toolchain import CMakeToolchain, CMakeExecScope -from .traceparser import CMakeTraceParser, CMakeGeneratorTarget +from .traceparser import CMakeTraceParser from .tracetargets import resolve_cmake_trace_targets from .. import mlog, mesonlib from ..mesonlib import MachineChoice, OrderedSet, path_is_in_root, relative_to_if_possible, OptionKey @@ -51,6 +52,8 @@ from ..mparser import ( if T.TYPE_CHECKING: + from .common import CMakeConfiguration, TargetOptions + from .traceparser import CMakeGeneratorTarget from .._typing import ImmutableListProtocol from ..build import Build from ..backend.backends import Backend diff --git a/mesonbuild/cmake/toolchain.py b/mesonbuild/cmake/toolchain.py index e30f642..b70a5bc 100644 --- a/mesonbuild/cmake/toolchain.py +++ b/mesonbuild/cmake/toolchain.py @@ -11,11 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations from pathlib import Path from .traceparser import CMakeTraceParser from ..envconfig import CMakeSkipCompilerTest -from ..mesonlib import MachineChoice from ..compilers import VisualStudioLikeCompiler from .common import language_map, cmake_get_generator_args from .. import mlog @@ -29,6 +29,7 @@ if T.TYPE_CHECKING: from .executor import CMakeExecutor from ..environment import Environment from ..compilers import Compiler + from ..mesonlib import MachineChoice class CMakeExecScope(Enum): SUBPROJECT = 'subproject' diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 18ba6e9..5aab9c1 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import abc import contextlib, os.path, re @@ -24,7 +25,7 @@ from .. import mlog from .. import mesonlib from ..mesonlib import ( HoldableObject, - EnvironmentException, MachineChoice, MesonException, + EnvironmentException, MesonException, Popen_safe, LibType, TemporaryDirectoryWinProof, OptionKey, ) @@ -36,6 +37,7 @@ if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment from ..linkers import DynamicLinker, RSPFileSyntax + from ..mesonlib import MachineChoice from ..dependencies import Dependency CompilerType = T.TypeVar('CompilerType', bound='Compiler') diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py index 253dc42..c8f0df4 100644 --- a/mesonbuild/compilers/cpp.py +++ b/mesonbuild/compilers/cpp.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import copy import functools @@ -19,13 +20,12 @@ import typing as T from .. import coredata from .. import mlog -from ..mesonlib import MesonException, MachineChoice, version_compare, OptionKey +from ..mesonlib import MesonException, version_compare, OptionKey from .compilers import ( gnu_winlibs, msvc_winlibs, Compiler, - CompileCheckMode, ) from .c_function_attributes import CXX_FUNC_ATTRIBUTES, C_FUNC_ATTRIBUTES from .mixins.clike import CLikeCompiler @@ -41,11 +41,13 @@ from .mixins.pgi import PGICompiler from .mixins.emscripten import EmscriptenMixin if T.TYPE_CHECKING: + from .compilers import CompileCheckMode from ..coredata import MutableKeyedOptionDictType, KeyedOptionDictType from ..dependencies import Dependency from ..envconfig import MachineInfo from ..environment import Environment from ..linkers import DynamicLinker + from ..mesonlib import MachineChoice from ..programs import ExternalProgram CompilerMixinBase = CLikeCompiler else: diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py index 78a58c7..172b9a5 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import enum import os.path @@ -20,19 +21,21 @@ import typing as T from .. import coredata from .. import mlog from ..mesonlib import ( - EnvironmentException, MachineChoice, Popen_safe, OptionOverrideProxy, + EnvironmentException, Popen_safe, OptionOverrideProxy, is_windows, LibType, OptionKey, ) from .compilers import (Compiler, cuda_buildtype_args, cuda_optimization_args, - cuda_debug_args, CompileCheckMode) + cuda_debug_args) if T.TYPE_CHECKING: + from .compilers import CompileCheckMode from ..build import BuildTarget from ..coredata import MutableKeyedOptionDictType, KeyedOptionDictType from ..dependencies import Dependency from ..environment import Environment # noqa: F401 from ..envconfig import MachineInfo from ..linkers import DynamicLinker + from ..mesonlib import MachineChoice from ..programs import ExternalProgram diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 35ab024..f4fd0cd 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import os.path import re @@ -22,7 +23,7 @@ from .. import mlog from ..arglist import CompilerArgs from ..linkers import RSPFileSyntax from ..mesonlib import ( - EnvironmentException, MachineChoice, version_compare, OptionKey, is_windows + EnvironmentException, version_compare, OptionKey, is_windows ) from . import compilers @@ -42,6 +43,7 @@ if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment from ..linkers import DynamicLinker + from ..mesonlib import MachineChoice CompilerMixinBase = Compiler else: diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py index 0a0c3ec..263b46b 100644 --- a/mesonbuild/compilers/fortran.py +++ b/mesonbuild/compilers/fortran.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations from pathlib import Path import typing as T @@ -31,7 +32,7 @@ from .mixins.elbrus import ElbrusCompiler from .mixins.pgi import PGICompiler from mesonbuild.mesonlib import ( - version_compare, EnvironmentException, MesonException, MachineChoice, + version_compare, EnvironmentException, MesonException, LibType, OptionKey, ) @@ -41,6 +42,7 @@ if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment from ..linkers import DynamicLinker + from ..mesonlib import MachineChoice from ..programs import ExternalProgram from .compilers import CompileCheckMode diff --git a/mesonbuild/compilers/java.py b/mesonbuild/compilers/java.py index 05c271a..9794c69 100644 --- a/mesonbuild/compilers/java.py +++ b/mesonbuild/compilers/java.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import os import os.path @@ -19,13 +20,14 @@ import subprocess import textwrap import typing as T -from ..mesonlib import EnvironmentException, MachineChoice +from ..mesonlib import EnvironmentException from .compilers import Compiler, java_buildtype_args from .mixins.islinker import BasicLinkerIsCompilerMixin if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment + from ..mesonlib import MachineChoice class JavaCompiler(BasicLinkerIsCompilerMixin, Compiler): diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py index 22a2012..bd358c3 100644 --- a/mesonbuild/compilers/objc.py +++ b/mesonbuild/compilers/objc.py @@ -11,11 +11,12 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import typing as T from .. import coredata -from ..mesonlib import MachineChoice, OptionKey +from ..mesonlib import OptionKey from .compilers import Compiler from .mixins.clike import CLikeCompiler @@ -27,6 +28,7 @@ if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment from ..linkers import DynamicLinker + from ..mesonlib import MachineChoice class ObjCCompiler(CLikeCompiler, Compiler): diff --git a/mesonbuild/compilers/swift.py b/mesonbuild/compilers/swift.py index a2b57b8..2e427f1 100644 --- a/mesonbuild/compilers/swift.py +++ b/mesonbuild/compilers/swift.py @@ -11,11 +11,12 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import subprocess, os.path import typing as T -from ..mesonlib import EnvironmentException, MachineChoice +from ..mesonlib import EnvironmentException from .compilers import Compiler, swift_buildtype_args, clike_debug_args @@ -23,6 +24,7 @@ if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment from ..linkers import DynamicLinker + from ..mesonlib import MachineChoice swift_optimization_args = { '0': [], diff --git a/mesonbuild/compilers/vala.py b/mesonbuild/compilers/vala.py index 7c3eac0..14bc39b 100644 --- a/mesonbuild/compilers/vala.py +++ b/mesonbuild/compilers/vala.py @@ -11,18 +11,20 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import os.path import typing as T from .. import mlog -from ..mesonlib import EnvironmentException, MachineChoice, version_compare, OptionKey +from ..mesonlib import EnvironmentException, version_compare, OptionKey from .compilers import Compiler, LibType if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment + from ..mesonlib import MachineChoice class ValaCompiler(Compiler): diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py index 5421af3..eee2e7c 100644 --- a/mesonbuild/mintro.py +++ b/mesonbuild/mintro.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations """This is a helper script for IDE developers. It allows you to extract information such as list of targets, files, compiler flags, @@ -19,7 +20,6 @@ tests and so on. All output is in JSON for simple parsing. Currently only works for the Ninja backend. Others use generated project files and don't need this info.""" -import argparse import collections import json import os @@ -29,9 +29,14 @@ import typing as T from . import build, mesonlib, mlog, coredata as cdata from .ast import IntrospectionInterpreter, BUILD_TARGET_FUNCTIONS, AstConditionLevel, AstIDGenerator, AstIndentationGenerator, AstJSONPrinter from .backend import backends -from .interpreter import Interpreter from .mesonlib import OptionKey -from .mparser import BaseNode, FunctionNode, ArrayNode, ArgumentNode, StringNode +from .mparser import FunctionNode, ArrayNode, ArgumentNode, StringNode + +if T.TYPE_CHECKING: + import argparse + + from .interpreter import Interpreter + from .mparser import BaseNode def get_meson_info_file(info_dir: str) -> str: return os.path.join(info_dir, 'meson-info.json') diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index 54abc43..56370d1 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -23,6 +23,7 @@ from ..interpreterbase.decorators import noKwargs, noPosargs from ..programs import ExternalProgram if T.TYPE_CHECKING: + from .. import build from ..interpreter import Interpreter from ..interpreter.interpreterobjects import MachineHolder from ..interpreterbase import TYPE_var, TYPE_kwargs diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 212bd50..425385b 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -39,7 +39,7 @@ from ..interpreterbase.decorators import typed_pos_args from ..mesonlib import ( MachineChoice, MesonException, OrderedSet, Popen_safe, join_args, ) -from ..programs import ExternalProgram, OverrideProgram, EmptyExternalProgram +from ..programs import OverrideProgram, EmptyExternalProgram from ..scripts.gettext import read_linguas if T.TYPE_CHECKING: @@ -51,6 +51,7 @@ if T.TYPE_CHECKING: from ..interpreter import Interpreter from ..interpreterbase import TYPE_var, TYPE_kwargs from ..mesonlib import FileOrString + from ..programs import ExternalProgram class PostInstall(TypedDict): glib_compile_schemas: bool |