build: fix typing of `Target.get_option`

Which can return any of `ElementaryOptionValues`, but is currently typed
as if it only returns `str | int | bool`.
pull/14230/merge
Dylan Baker 1 month ago
parent 5e7b1a9d1d
commit ea678ed829
  1. 7
      mesonbuild/build.py

@ -49,6 +49,7 @@ if T.TYPE_CHECKING:
from .mesonlib import ExecutableSerialisation, FileMode, FileOrString
from .modules import ModuleState
from .mparser import BaseNode
from .options import ElementaryOptionValues
GeneratedTypes = T.Union['CustomTarget', 'CustomTargetIndex', 'GeneratedList']
LibTypes = T.Union['SharedLibrary', 'StaticLibrary', 'CustomTarget', 'CustomTargetIndex']
@ -679,10 +680,8 @@ class Target(HoldableObject, metaclass=abc.ABCMeta):
def get_options(self) -> coredata.OptionsView:
return self.options
def get_option(self, key: 'OptionKey') -> T.Union[str, int, bool]:
# TODO: if it's possible to annotate get_option or validate_option_value
# in the future we might be able to remove the cast here
return T.cast('T.Union[str, int, bool]', self.options.get_value(key))
def get_option(self, key: OptionKey) -> ElementaryOptionValues:
return self.options.get_value(key)
@staticmethod
def parse_overrides(kwargs: T.Dict[str, T.Any]) -> T.Dict[OptionKey, str]:

Loading…
Cancel
Save