diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2025-08-01 15:40:44 -0700 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-20 15:15:53 -0700 |
| commit | 035b8e4c013d686da7ab433b643338f696e15500 (patch) | |
| tree | bf3fc4dcbf4e7e2f3014dfcdbf95efc7fcb34039 /mesonbuild/dependencies/ui.py | |
| parent | ae89ca1015fd1d8306bbb78c31f1bde53375a712 (diff) | |
| download | meson-035b8e4c013d686da7ab433b643338f696e15500.tar.gz | |
dependency: Use a TypedDict to describe the keyword arguments to Dependency
This allows us to check that all of the keyword arguments are of the
correct type.
Diffstat (limited to 'mesonbuild/dependencies/ui.py')
| -rw-r--r-- | mesonbuild/dependencies/ui.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py index edf3c310a..4d9215644 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py @@ -24,10 +24,11 @@ from .factory import DependencyFactory if T.TYPE_CHECKING: from ..environment import Environment + from .base import DependencyObjectKWs class GLDependencySystem(SystemDependency): - def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any]) -> None: + def __init__(self, name: str, environment: 'Environment', kwargs: DependencyObjectKWs) -> None: super().__init__(name, environment, kwargs) if self.env.machines[self.for_machine].is_darwin(): @@ -56,11 +57,11 @@ class GnuStepDependency(ConfigToolDependency): tools = ['gnustep-config'] tool_name = 'gnustep-config' - def __init__(self, environment: 'Environment', kwargs: T.Dict[str, T.Any]) -> None: + def __init__(self, environment: 'Environment', kwargs: DependencyObjectKWs) -> None: super().__init__('gnustep', environment, kwargs, language='objc') if not self.is_found: return - self.modules = kwargs.get('modules', []) + self.modules = T.cast('T.List[str]', kwargs.get('modules', [])) self.compile_args = self.filter_args( self.get_config_value(['--objc-flags'], 'compile_args')) self.link_args = self.weird_filter(self.get_config_value( @@ -135,7 +136,7 @@ class SDL2DependencyConfigTool(ConfigToolDependency): tools = ['sdl2-config'] tool_name = 'sdl2-config' - def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any]): + def __init__(self, name: str, environment: 'Environment', kwargs: DependencyObjectKWs): super().__init__(name, environment, kwargs) if not self.is_found: return @@ -148,7 +149,7 @@ class WxDependency(ConfigToolDependency): tools = ['wx-config-3.0', 'wx-config-3.1', 'wx-config', 'wx-config-gtk3'] tool_name = 'wx-config' - def __init__(self, environment: 'Environment', kwargs: T.Dict[str, T.Any]): + def __init__(self, environment: 'Environment', kwargs: DependencyObjectKWs): super().__init__('WxWidgets', environment, kwargs, language='cpp') if not self.is_found: return @@ -171,10 +172,10 @@ class WxDependency(ConfigToolDependency): self.link_args = self.get_config_value(['--libs'] + extra_args + self.requested_modules, 'link_args') @staticmethod - def get_requested(kwargs: T.Dict[str, T.Any]) -> T.List[str]: + def get_requested(kwargs: DependencyObjectKWs) -> T.List[str]: if 'modules' not in kwargs: return [] - candidates = extract_as_list(kwargs, 'modules') + candidates = T.cast('T.List[str]', extract_as_list(kwargs, 'modules')) # type: ignore[arg-type] for c in candidates: if not isinstance(c, str): raise DependencyException('wxwidgets module argument is not a string') @@ -184,7 +185,7 @@ packages['wxwidgets'] = WxDependency class VulkanDependencySystem(SystemDependency): - def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.Any], language: T.Optional[str] = None) -> None: + def __init__(self, name: str, environment: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None) -> None: super().__init__(name, environment, kwargs, language=language) self.vulkan_sdk = os.environ.get('VULKAN_SDK', os.environ.get('VK_SDK_PATH')) |
