aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/__init__.py17
-rwxr-xr-xrun_mypy.py1
2 files changed, 10 insertions, 8 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index b63a5da..3b7c299 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -86,10 +86,13 @@ class ModuleState:
return dirs_str
- def find_program(self, prog: T.Union[str, T.List[str]], required: bool = True,
- version_func: T.Optional[T.Callable[['ExternalProgram'], str]] = None,
+ def find_program(self, prog: T.Union[mesonlib.FileOrString, T.List[mesonlib.FileOrString]],
+ required: bool = True,
+ version_func: T.Optional[T.Callable[[T.Union[ExternalProgram, Executable, OverrideProgram]], str]] = None,
wanted: T.Optional[str] = None, silent: bool = False,
- for_machine: MachineChoice = MachineChoice.HOST) -> 'ExternalProgram':
+ for_machine: MachineChoice = MachineChoice.HOST) -> T.Union[ExternalProgram, Executable, OverrideProgram]:
+ if not isinstance(prog, list):
+ prog = [prog]
return self._interpreter.find_program_impl(prog, required=required, version_func=version_func,
wanted=wanted, silent=silent, for_machine=for_machine)
@@ -117,7 +120,7 @@ class ModuleState:
def dependency(self, depname: str, native: bool = False, required: bool = True,
wanted: T.Optional[str] = None) -> 'Dependency':
- kwargs = {'native': native, 'required': required}
+ kwargs: T.Dict[str, object] = {'native': native, 'required': required}
if wanted:
kwargs['version'] = wanted
# FIXME: Even if we fix the function, mypy still can't figure out what's
@@ -142,7 +145,7 @@ class ModuleState:
def get_option(self, name: str, subproject: str = '',
machine: MachineChoice = MachineChoice.HOST,
lang: T.Optional[str] = None,
- module: T.Optional[str] = None) -> T.Union[str, int, bool, 'WrapMode']:
+ module: T.Optional[str] = None) -> T.Union[T.List[str], str, int, bool, 'WrapMode']:
return self.environment.coredata.get_option(mesonlib.OptionKey(name, subproject, machine, lang, module))
def is_user_defined_option(self, name: str, subproject: str = '',
@@ -243,13 +246,11 @@ class NotFoundExtensionModule(NewExtensionModule):
return False
-def is_module_library(fname):
+def is_module_library(fname: mesonlib.FileOrString) -> bool:
'''
Check if the file is a library-like file generated by a module-specific
target, such as GirTarget or TypelibTarget
'''
- if hasattr(fname, 'fname'):
- fname = fname.fname
suffix = fname.split('.')[-1]
return suffix in {'gir', 'typelib'}
diff --git a/run_mypy.py b/run_mypy.py
index 3daf7c7..119ee39 100755
--- a/run_mypy.py
+++ b/run_mypy.py
@@ -40,6 +40,7 @@ modules = [
'mesonbuild/mintro.py',
'mesonbuild/mlog.py',
'mesonbuild/msubprojects.py',
+ 'mesonbuild/modules/__init__.py',
'mesonbuild/modules/external_project.py',
'mesonbuild/modules/fs.py',
'mesonbuild/modules/gnome.py',