diff options
-rw-r--r-- | mesonbuild/modules/__init__.py | 17 | ||||
-rwxr-xr-x | run_mypy.py | 1 |
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', |