From c9938f8f60c0b7cca7a5668807b17badb7861c86 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Tue, 22 Mar 2022 20:28:59 -0400 Subject: move a bunch of imports into TYPE_CHECKING blocks These are only used for type checking, so don't bother importing them at runtime. Generally add future annotations at the same time, to make sure that existing uses of these imports don't need to be quoted. --- mesonbuild/scripts/depscan.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'mesonbuild/scripts/depscan.py') diff --git a/mesonbuild/scripts/depscan.py b/mesonbuild/scripts/depscan.py index 3b26f92..6f92715 100644 --- a/mesonbuild/scripts/depscan.py +++ b/mesonbuild/scripts/depscan.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 json import os @@ -20,9 +21,12 @@ import re import sys import typing as T -from ..backend.ninjabackend import TargetDependencyScannerInfo, ninja_quote +from ..backend.ninjabackend import ninja_quote from ..compilers.compilers import lang_suffixes +if T.TYPE_CHECKING: + from ..backend.ninjabackend import TargetDependencyScannerInfo + CPP_IMPORT_RE = re.compile(r'\w*import ([a-zA-Z0-9]+);') CPP_EXPORT_RE = re.compile(r'\w*export module ([a-zA-Z0-9]+);') @@ -38,13 +42,13 @@ FORTRAN_USE_RE = re.compile(FORTRAN_USE_PAT, re.IGNORECASE) class DependencyScanner: def __init__(self, pickle_file: str, outfile: str, sources: T.List[str]): with open(pickle_file, 'rb') as pf: - self.target_data = pickle.load(pf) # type: TargetDependencyScannerInfo + self.target_data: TargetDependencyScannerInfo = pickle.load(pf) self.outfile = outfile self.sources = sources - self.provided_by = {} # type: T.Dict[str, str] - self.exports = {} # type: T.Dict[str, str] - self.needs = {} # type: T.Dict[str, T.List[str]] - self.sources_with_exports = [] # type: T.List[str] + self.provided_by: T.Dict[str, str] = {} + self.exports: T.Dict[str, str] = {} + self.needs: T.Dict[str, T.List[str]] = {} + self.sources_with_exports: T.List[str] = [] def scan_file(self, fname: str) -> None: suffix = os.path.splitext(fname)[1][1:].lower() -- cgit v1.1