Replace ElementaryOptionValues with OptionValueType

Both are really the same type. No need to have both.
pull/14273/head
Charles Brunet 2 weeks ago
parent 1b54239a88
commit 034d0f8228
No known key found for this signature in database
  1. 12
      mesonbuild/coredata.py
  2. 6
      mesonbuild/interpreter/interpreter.py
  3. 6
      mesonbuild/interpreter/kwargs.py
  4. 4
      mesonbuild/interpreter/type_checking.py
  5. 1
      mesonbuild/options.py

@ -42,7 +42,7 @@ if T.TYPE_CHECKING:
from .mesonlib import FileOrString
from .cmake.traceparser import CMakeCacheEntry
from .interpreterbase import SubProject
from .options import ElementaryOptionValues
from .options import OptionValueType
from .build import BuildTarget
class SharedCMDOptions(Protocol):
@ -394,13 +394,13 @@ class CoreData:
'Default project to execute in Visual Studio',
''))
def get_option(self, key: OptionKey) -> ElementaryOptionValues:
def get_option(self, key: OptionKey) -> OptionValueType:
return self.optstore.get_value_for(key.name, key.subproject)
def get_option_object_for_target(self, target: 'BuildTarget', key: T.Union[str, OptionKey]) -> options.AnyOptionType:
return self.get_option_for_subproject(key, target.subproject)
def get_option_for_target(self, target: 'BuildTarget', key: T.Union[str, OptionKey]) -> ElementaryOptionValues:
def get_option_for_target(self, target: 'BuildTarget', key: T.Union[str, OptionKey]) -> OptionValueType:
if isinstance(key, str):
assert ':' not in key
newkey = OptionKey(key, target.subproject)
@ -417,7 +417,7 @@ class CoreData:
return option_object.validate_value(override)
return value
def get_option_for_subproject(self, key: T.Union[str, OptionKey], subproject) -> ElementaryOptionValues:
def get_option_for_subproject(self, key: T.Union[str, OptionKey], subproject) -> OptionValueType:
if isinstance(key, str):
key = OptionKey(key, subproject=subproject)
if key.subproject != subproject:
@ -909,7 +909,7 @@ class OptionsView(abc.Mapping):
# python 3.8 or typing_extensions
original_options: T.Union[KeyedOptionDictType, 'dict[OptionKey, options.AnyOptionType]']
subproject: T.Optional[str] = None
overrides: T.Optional[T.Mapping[OptionKey, ElementaryOptionValues]] = dataclasses.field(default_factory=dict)
overrides: T.Optional[T.Mapping[OptionKey, OptionValueType]] = dataclasses.field(default_factory=dict)
def __getitem__(self, key: OptionKey) -> options.UserOption:
# FIXME: This is fundamentally the same algorithm than interpreter.get_option_internal().
@ -953,7 +953,7 @@ class OptionsView(abc.Mapping):
key = OptionKey(key)
return self[key].value
def set_value(self, key: T.Union[str, OptionKey], value: ElementaryOptionValues):
def set_value(self, key: T.Union[str, OptionKey], value: OptionValueType):
if isinstance(key, str):
key = OptionKey(key)
self.overrides[key] = value

@ -1640,7 +1640,7 @@ class Interpreter(InterpreterBase, HoldableObject):
# the host machine.
def find_program_impl(self, args: T.List[mesonlib.FileOrString],
for_machine: MachineChoice = MachineChoice.HOST,
default_options: T.Optional[T.Dict[OptionKey, options.ElementaryOptionValues]] = None,
default_options: T.Optional[T.Dict[OptionKey, options.OptionValueType]] = None,
required: bool = True, silent: bool = True,
wanted: T.Union[str, T.List[str]] = '',
search_dirs: T.Optional[T.List[str]] = None,
@ -1671,7 +1671,7 @@ class Interpreter(InterpreterBase, HoldableObject):
return progobj
def program_lookup(self, args: T.List[mesonlib.FileOrString], for_machine: MachineChoice,
default_options: T.Optional[T.Dict[OptionKey, options.ElementaryOptionValues]],
default_options: T.Optional[T.Dict[OptionKey, options.OptionValueType]],
required: bool,
search_dirs: T.Optional[T.List[str]],
wanted: T.Union[str, T.List[str]],
@ -1739,7 +1739,7 @@ class Interpreter(InterpreterBase, HoldableObject):
return True
def find_program_fallback(self, fallback: str, args: T.List[mesonlib.FileOrString],
default_options: T.Dict[OptionKey, options.ElementaryOptionValues],
default_options: T.Dict[OptionKey, options.OptionValueType],
required: bool, extra_info: T.List[mlog.TV_Loggable]
) -> T.Optional[T.Union[ExternalProgram, build.Executable, OverrideProgram]]:
mlog.log('Fallback to subproject', mlog.bold(fallback), 'which provides program',

@ -239,7 +239,7 @@ class Summary(TypedDict):
class FindProgram(ExtractRequired, ExtractSearchDirs):
default_options: T.Dict[OptionKey, options.ElementaryOptionValues]
default_options: T.Dict[OptionKey, options.OptionValueType]
native: MachineChoice
version: T.List[str]
@ -312,7 +312,7 @@ class ConfigureFile(TypedDict):
class Subproject(ExtractRequired):
default_options: T.Dict[OptionKey, options.ElementaryOptionValues]
default_options: T.Dict[OptionKey, options.OptionValueType]
version: T.List[str]
@ -346,7 +346,7 @@ class _BaseBuildTarget(TypedDict):
name_suffix: T.Optional[str]
native: MachineChoice
objects: T.List[build.ObjectTypes]
override_options: T.Dict[OptionKey, options.ElementaryOptionValues]
override_options: T.Dict[OptionKey, options.OptionValueType]
depend_files: NotRequired[T.List[File]]
resources: T.List[str]

@ -26,7 +26,7 @@ if T.TYPE_CHECKING:
from ..build import ObjectTypes
from ..interpreterbase import TYPE_var
from ..options import ElementaryOptionValues
from ..options import OptionValueType
from ..mesonlib import EnvInitValueType
_FullEnvInitValueType = T.Union[EnvironmentVariables, T.List[str], T.List[T.List[str]], EnvInitValueType, str, None]
@ -293,7 +293,7 @@ COMMAND_KW: KwargInfo[T.List[T.Union[str, BuildTarget, CustomTarget, CustomTarge
)
OVERRIDE_OPTIONS_KW: KwargInfo[T.Union[str, T.Dict[str, ElementaryOptionValues], T.List[str]]] = KwargInfo(
OVERRIDE_OPTIONS_KW: KwargInfo[T.Union[str, T.Dict[str, OptionValueType], T.List[str]]] = KwargInfo(
'override_options',
(str, ContainerTypeInfo(list, str), ContainerTypeInfo(dict, (str, int, bool, list))),
default={},

@ -41,7 +41,6 @@ if T.TYPE_CHECKING:
'UserBooleanOption', 'UserComboOption', 'UserFeatureOption',
'UserIntegerOption', 'UserStdOption', 'UserStringArrayOption',
'UserStringOption', 'UserUmaskOption']
ElementaryOptionValues: TypeAlias = T.Union[str, int, bool, T.List[str]]
class ArgparseKWs(TypedDict, total=False):

Loading…
Cancel
Save