From 717d03af1caf35ea73356ef8135f26f3aea98277 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 23 Nov 2021 13:15:28 -0800 Subject: modules/keyval: cleanup imports --- mesonbuild/modules/keyval.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mesonbuild/modules/keyval.py b/mesonbuild/modules/keyval.py index b2d54db01..559380ab4 100644 --- a/mesonbuild/modules/keyval.py +++ b/mesonbuild/modules/keyval.py @@ -12,13 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -from . import ExtensionModule +import os +from . import ExtensionModule from .. import mesonlib -from ..mesonlib import typeslistify from ..interpreterbase import FeatureNew, noKwargs, InvalidCode - -import os +from ..mesonlib import typeslistify class KeyvalModule(ExtensionModule): -- cgit v1.2.3 From 904771c4e1a297dc37676cd9a5fdec826addfc44 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 23 Nov 2021 13:19:49 -0800 Subject: modules/keyval: add type annotations And use typed_pos_args --- mesonbuild/modules/keyval.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/mesonbuild/modules/keyval.py b/mesonbuild/modules/keyval.py index 559380ab4..7cebc91bd 100644 --- a/mesonbuild/modules/keyval.py +++ b/mesonbuild/modules/keyval.py @@ -13,23 +13,28 @@ # limitations under the License. import os +import typing as T from . import ExtensionModule from .. import mesonlib -from ..interpreterbase import FeatureNew, noKwargs, InvalidCode -from ..mesonlib import typeslistify +from ..interpreterbase import FeatureNew, noKwargs, typed_pos_args + +if T.TYPE_CHECKING: + from ..interpreter import Interpreter + from . import ModuleState class KeyvalModule(ExtensionModule): @FeatureNew('Keyval Module', '0.55.0') - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) + def __init__(self, interp: 'Interpreter'): + super().__init__(interp) self.methods.update({ 'load': self.load, }) - def _load_file(self, path_to_config): - result = dict() + @staticmethod + def _load_file(path_to_config: str) -> T.Dict[str, str]: + result: T.Dict[str, str] = {} try: with open(path_to_config, encoding='utf-8') as f: for line in f: @@ -48,12 +53,9 @@ class KeyvalModule(ExtensionModule): return result @noKwargs - def load(self, state, args, kwargs): - sources = typeslistify(args, (str, mesonlib.File)) - if len(sources) != 1: - raise InvalidCode('load takes only one file input.') - - s = sources[0] + @typed_pos_args('keyval.laod', (str, mesonlib.File)) + def load(self, state: 'ModuleState', args: T.Tuple['mesonlib.FileOrString'], kwargs: T.Dict[str, T.Any]) -> T.Dict[str, str]: + s = args[0] is_built = False if isinstance(s, mesonlib.File): is_built = is_built or s.is_built @@ -67,5 +69,5 @@ class KeyvalModule(ExtensionModule): return self._load_file(s) -def initialize(*args, **kwargs): - return KeyvalModule(*args, **kwargs) +def initialize(interp: 'Interpreter') -> KeyvalModule: + return KeyvalModule(interp) -- cgit v1.2.3 From e38c4defcbc357f2b719027506d64fdf3eb72e03 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 23 Nov 2021 13:20:40 -0800 Subject: run_mypy: add modules/keyval --- run_mypy.py | 1 + 1 file changed, 1 insertion(+) diff --git a/run_mypy.py b/run_mypy.py index 38ac67607..ac8954c88 100755 --- a/run_mypy.py +++ b/run_mypy.py @@ -41,6 +41,7 @@ modules = [ 'mesonbuild/modules/fs.py', 'mesonbuild/modules/i18n.py', 'mesonbuild/modules/java.py', + 'mesonbuild/modules/keyval.py', 'mesonbuild/modules/qt.py', 'mesonbuild/modules/unstable_external_project.py', 'mesonbuild/modules/unstable_rust.py', -- cgit v1.2.3