diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2024-06-09 01:03:49 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2024-06-09 01:27:49 +0300 |
commit | fb4fb081f672ee129a8836b3c38ccf5992ec4fc7 (patch) | |
tree | b19f1e9e54a8cc8e00e95b2c32d56b8921389868 /mesonbuild/options.py | |
parent | 3c7d4e0ebf6e380666c5af249391a68556a44e3c (diff) | |
download | meson-optstorerefactor.zip meson-optstorerefactor.tar.gz meson-optstorerefactor.tar.bz2 |
Replace direct indexing with named methods.optstorerefactor
Diffstat (limited to 'mesonbuild/options.py')
-rw-r--r-- | mesonbuild/options.py | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/mesonbuild/options.py b/mesonbuild/options.py index 6ffcf1a..e2da6c2 100644 --- a/mesonbuild/options.py +++ b/mesonbuild/options.py @@ -481,13 +481,36 @@ class OptionStore: def __len__(self): return len(self.d) - def __setitem__(self, key, value): - self.d[key] = value + def ensure_key(self,key: T.Union[OptionKey, str]) -> OptionKey: + if isinstance(key, str): + return OptionKey(key) + return key - def __getitem__(self, key): - return self.d[key] + def get_value_object(self, key: T.Union[OptionKey, str]) -> 'UserOption[T.Any]': + return self.d[self.ensure_key(key)] - def __delitem__(self, key): + def get_value(self, key: T.Union[OptionKey, str]) -> 'T.Any': + return self.get_value_object(key).value + + def add_system_option(self, key: T.Union[OptionKey, str], valobj: 'UserOption[T.Any'): + key = self.ensure_key(key) + self.d[key] = valobj + + def add_project_option(self, key: T.Union[OptionKey, str], valobj: 'UserOption[T.Any]'): + key = self.ensure_key(key) + self.d[key] = valobj + + def set_value(self, key: T.Union[OptionKey, str], new_value: 'T.Any') -> bool: + key = self.ensure_key(key) + return self.d[key].set_value(new_value) + + # FIXME, this should be removed. + def set_value_object(self, key: T.Union[OptionKey, str], new_object: 'UserOption[T.Any]') -> bool: + key = self.ensure_key(key) + self.d[key] = new_object + + + def remove(self, key): del self.d[key] def __contains__(self, key): |