diff options
-rw-r--r-- | mesonbuild/dependencies/pkgconfig.py | 4 | ||||
-rw-r--r-- | mesonbuild/interpreter/interpreter.py | 5 | ||||
-rw-r--r-- | mesonbuild/interpreter/primitives/array.py | 3 | ||||
-rw-r--r-- | mesonbuild/interpreter/primitives/dict.py | 3 | ||||
-rw-r--r-- | mesonbuild/interpreter/primitives/integer.py | 5 | ||||
-rw-r--r-- | mesonbuild/interpreter/primitives/string.py | 5 | ||||
-rw-r--r-- | mesonbuild/interpreter/type_checking.py | 3 | ||||
-rw-r--r-- | mesonbuild/interpreterbase/decorators.py | 6 | ||||
-rw-r--r-- | mesonbuild/interpreterbase/disabler.py | 7 | ||||
-rw-r--r-- | mesonbuild/interpreterbase/interpreterbase.py | 5 | ||||
-rw-r--r-- | mesonbuild/linkers/detect.py | 8 |
11 files changed, 32 insertions, 22 deletions
diff --git a/mesonbuild/dependencies/pkgconfig.py b/mesonbuild/dependencies/pkgconfig.py index 73f2e60..55a364c 100644 --- a/mesonbuild/dependencies/pkgconfig.py +++ b/mesonbuild/dependencies/pkgconfig.py @@ -11,9 +11,10 @@ # 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 .base import ExternalDependency, DependencyException, sort_libpaths, DependencyTypeName -from ..mesonlib import MachineChoice, OptionKey, OrderedSet, PerMachine, Popen_safe +from ..mesonlib import OptionKey, OrderedSet, PerMachine, Popen_safe from ..programs import find_external_program, ExternalProgram from .. import mlog from pathlib import PurePath @@ -24,6 +25,7 @@ import typing as T if T.TYPE_CHECKING: from ..environment import Environment + from ..mesonlib import MachineChoice from .._typing import ImmutableListProtocol class PkgConfigDependency(ExternalDependency): diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 8eca0b3..bc238c7 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -33,10 +33,9 @@ from ..interpreterbase import InterpreterException, InvalidArguments, InvalidCod from ..interpreterbase import Disabler, disablerIfNotFound from ..interpreterbase import FeatureNew, FeatureDeprecated, FeatureNewKwargs, FeatureDeprecatedKwargs from ..interpreterbase import ObjectHolder -from ..interpreterbase.baseobjects import InterpreterObject, TYPE_var, TYPE_kwargs from ..modules import ExtensionModule, ModuleObject, MutableModuleObject, NewExtensionModule, NotFoundExtensionModule from ..cmake import CMakeInterpreter -from ..backend.backends import Backend, ExecutableSerialisation +from ..backend.backends import ExecutableSerialisation from . import interpreterobjects as OBJ from . import compiler as compilerOBJ @@ -96,6 +95,8 @@ if T.TYPE_CHECKING: from typing_extensions import Literal from . import kwargs + from ..backend.backends import Backend + from ..interpreterbase.baseobjects import InterpreterObject, TYPE_var, TYPE_kwargs from ..programs import OverrideProgram # Input source types passed to Targets diff --git a/mesonbuild/interpreter/primitives/array.py b/mesonbuild/interpreter/primitives/array.py index e48e1c2..eeea112 100644 --- a/mesonbuild/interpreter/primitives/array.py +++ b/mesonbuild/interpreter/primitives/array.py @@ -1,5 +1,6 @@ # Copyright 2021 The Meson development team # SPDX-license-identifier: Apache-2.0 +from __future__ import annotations import typing as T @@ -15,7 +16,6 @@ from ...interpreterbase import ( FeatureNew, TYPE_var, - TYPE_kwargs, InvalidArguments, ) @@ -24,6 +24,7 @@ from ...mparser import PlusAssignmentNode if T.TYPE_CHECKING: # Object holders need the actual interpreter from ...interpreter import Interpreter + from ...interpreterbase import TYPE_kwargs class ArrayHolder(ObjectHolder[T.List[TYPE_var]], IterableObject): def __init__(self, obj: T.List[TYPE_var], interpreter: 'Interpreter') -> None: diff --git a/mesonbuild/interpreter/primitives/dict.py b/mesonbuild/interpreter/primitives/dict.py index 24f4d21..ac7c99b 100644 --- a/mesonbuild/interpreter/primitives/dict.py +++ b/mesonbuild/interpreter/primitives/dict.py @@ -1,5 +1,6 @@ # Copyright 2021 The Meson development team # SPDX-license-identifier: Apache-2.0 +from __future__ import annotations import typing as T @@ -14,7 +15,6 @@ from ...interpreterbase import ( typed_pos_args, TYPE_var, - TYPE_kwargs, InvalidArguments, ) @@ -22,6 +22,7 @@ from ...interpreterbase import ( if T.TYPE_CHECKING: # Object holders need the actual interpreter from ...interpreter import Interpreter + from ...interpreterbase import TYPE_kwargs class DictHolder(ObjectHolder[T.Dict[str, TYPE_var]], IterableObject): def __init__(self, obj: T.Dict[str, TYPE_var], interpreter: 'Interpreter') -> None: diff --git a/mesonbuild/interpreter/primitives/integer.py b/mesonbuild/interpreter/primitives/integer.py index 6563ee9..f433f57 100644 --- a/mesonbuild/interpreter/primitives/integer.py +++ b/mesonbuild/interpreter/primitives/integer.py @@ -1,5 +1,6 @@ # Copyright 2021 The Meson development team # SPDX-license-identifier: Apache-2.0 +from __future__ import annotations from ...interpreterbase import ( ObjectHolder, @@ -8,9 +9,6 @@ from ...interpreterbase import ( noKwargs, noPosargs, - TYPE_var, - TYPE_kwargs, - InvalidArguments ) @@ -19,6 +17,7 @@ import typing as T if T.TYPE_CHECKING: # Object holders need the actual interpreter from ...interpreter import Interpreter + from ...interpreterbase import TYPE_var, TYPE_kwargs class IntegerHolder(ObjectHolder[int]): def __init__(self, obj: int, interpreter: 'Interpreter') -> None: diff --git a/mesonbuild/interpreter/primitives/string.py b/mesonbuild/interpreter/primitives/string.py index 9cd51b4..9129303 100644 --- a/mesonbuild/interpreter/primitives/string.py +++ b/mesonbuild/interpreter/primitives/string.py @@ -1,5 +1,6 @@ # Copyright 2021 The Meson development team # SPDX-license-identifier: Apache-2.0 +from __future__ import annotations import re import os @@ -17,9 +18,6 @@ from ...interpreterbase import ( noPosargs, typed_pos_args, - TYPE_var, - TYPE_kwargs, - InvalidArguments, ) @@ -27,6 +25,7 @@ from ...interpreterbase import ( if T.TYPE_CHECKING: # Object holders need the actual interpreter from ...interpreter import Interpreter + from ...interpreterbase import TYPE_var, TYPE_kwargs class StringHolder(ObjectHolder[str]): def __init__(self, obj: str, interpreter: 'Interpreter') -> None: diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index cce0024..37ab192 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -11,7 +11,6 @@ from .. import compilers from ..build import (EnvironmentVariables, EnvInitValueType, CustomTarget, BuildTarget, CustomTargetIndex, ExtractedObjects, GeneratedList, IncludeDirs) from ..coredata import UserFeatureOption -from ..interpreterbase import TYPE_var from ..interpreterbase.decorators import KwargInfo, ContainerTypeInfo from ..mesonlib import File, FileMode, MachineChoice, listify, has_path_sep, OptionKey from ..programs import ExternalProgram @@ -22,6 +21,8 @@ NoneType: T.Type[None] = type(None) if T.TYPE_CHECKING: from typing_extensions import Literal + from ..interpreterbase import TYPE_var + def in_set_validator(choices: T.Set[str]) -> T.Callable[[str], T.Optional[str]]: """Check that the choice given was one of the given set.""" diff --git a/mesonbuild/interpreterbase/decorators.py b/mesonbuild/interpreterbase/decorators.py index 672ef5b..e678fd9 100644 --- a/mesonbuild/interpreterbase/decorators.py +++ b/mesonbuild/interpreterbase/decorators.py @@ -11,12 +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 .. import mesonlib, mlog -from .baseobjects import TV_func, TYPE_var, TYPE_kwargs from .disabler import Disabler from .exceptions import InterpreterException, InvalidArguments -from .operator import MesonOperator from ._unholder import _unholder from dataclasses import dataclass @@ -30,8 +29,9 @@ if T.TYPE_CHECKING: from typing_extensions import Protocol from .. import mparser - from .baseobjects import InterpreterObject + from .baseobjects import InterpreterObject, TV_func, TYPE_var, TYPE_kwargs from .interpreterbase import SubProject + from .operator import MesonOperator _TV_IntegerObject = T.TypeVar('_TV_IntegerObject', bound=InterpreterObject, contravariant=True) _TV_ARG1 = T.TypeVar('_TV_ARG1', bound=TYPE_var, contravariant=True) diff --git a/mesonbuild/interpreterbase/disabler.py b/mesonbuild/interpreterbase/disabler.py index 63b914e..182bb62 100644 --- a/mesonbuild/interpreterbase/disabler.py +++ b/mesonbuild/interpreterbase/disabler.py @@ -11,10 +11,15 @@ # 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 .baseobjects import MesonInterpreterObject, TYPE_var, TYPE_kwargs import typing as T +from .baseobjects import MesonInterpreterObject + +if T.TYPE_CHECKING: + from .baseobjects import TYPE_var, TYPE_kwargs + class Disabler(MesonInterpreterObject): def method_call(self, method_name: str, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> TYPE_var: if method_name == 'found': diff --git a/mesonbuild/interpreterbase/interpreterbase.py b/mesonbuild/interpreterbase/interpreterbase.py index 28211b0..85aabd1 100644 --- a/mesonbuild/interpreterbase/interpreterbase.py +++ b/mesonbuild/interpreterbase/interpreterbase.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 .. import mparser, mesonlib from .. import environment @@ -26,10 +27,7 @@ from .baseobjects import ( ObjectHolder, IterableObject, - SubProject, - TYPE_var, - TYPE_kwargs, HoldableTypes, ) @@ -54,6 +52,7 @@ import typing as T import textwrap if T.TYPE_CHECKING: + from .baseobjects import SubProject, TYPE_kwargs from ..interpreter import Interpreter HolderMapType = T.Dict[ diff --git a/mesonbuild/linkers/detect.py b/mesonbuild/linkers/detect.py index 0bfd708..80e0948 100644 --- a/mesonbuild/linkers/detect.py +++ b/mesonbuild/linkers/detect.py @@ -12,14 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + from ..mesonlib import ( - EnvironmentException, MachineChoice, OptionKey, + EnvironmentException, OptionKey, Popen_safe, search_version ) from .linkers import ( - DynamicLinker, AppleDynamicLinker, - GnuDynamicLinker, GnuGoldDynamicLinker, GnuBFDDynamicLinker, LLVMDynamicLinker, @@ -36,8 +36,10 @@ import shlex import typing as T if T.TYPE_CHECKING: + from .linkers import DynamicLinker, GnuDynamicLinker from ..environment import Environment from ..compilers import Compiler + from ..mesonlib import MachineChoice defaults: T.Dict[str, T.List[str]] = {} defaults['static_linker'] = ['ar', 'gar'] |