diff options
| author | Marvin Scholz <epirat07@gmail.com> | 2025-04-01 22:11:14 +0200 |
|---|---|---|
| committer | Xavier Claessens <xclaesse@gmail.com> | 2025-08-29 17:36:44 -0400 |
| commit | 17aa0acd0b91df8c38fb3be948b5d32ff73fd91d (patch) | |
| tree | 7134ae0217638340e889d7a8b3695ddee2578e3a /mesonbuild/interpreter | |
| parent | 36a47e91619fc47312ebcbf7b4832207ae46e017 (diff) | |
| download | meson-17aa0acd0b91df8c38fb3be948b5d32ff73fd91d.tar.gz | |
interpreter: add dict.values() method
Analogous to keys(), this returns the values in an array. It uses the
same sorting as keys(), else it would quite confusing to return values
in a different order than the corresponding keys.
Diffstat (limited to 'mesonbuild/interpreter')
| -rw-r--r-- | mesonbuild/interpreter/primitives/dict.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mesonbuild/interpreter/primitives/dict.py b/mesonbuild/interpreter/primitives/dict.py index d641fa88f..794c1505e 100644 --- a/mesonbuild/interpreter/primitives/dict.py +++ b/mesonbuild/interpreter/primitives/dict.py @@ -9,6 +9,7 @@ from ...interpreterbase import ( IterableObject, MesonOperator, ObjectHolder, + FeatureNew, typed_operator, noKwargs, noPosargs, @@ -48,6 +49,9 @@ class DictHolder(ObjectHolder[T.Dict[str, TYPE_var]], IterableObject): def size(self) -> int: return len(self.held_object) + def _keys_getter(self) -> T.List[str]: + return sorted(self.held_object) + @noKwargs @typed_pos_args('dict.has_key', str) @InterpreterObject.method('has_key') @@ -58,7 +62,14 @@ class DictHolder(ObjectHolder[T.Dict[str, TYPE_var]], IterableObject): @noPosargs @InterpreterObject.method('keys') def keys_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> T.List[str]: - return sorted(self.held_object) + return self._keys_getter() + + @noKwargs + @noPosargs + @InterpreterObject.method('values') + @FeatureNew('dict.values', '1.10.0') + def values_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> T.List[TYPE_var]: + return [self.held_object[k] for k in self._keys_getter()] @noArgsFlattening @noKwargs |
