Merge pull request #1613 from chrismullins/parameter-unpacking

Add keys() method to Parameter class
This commit is contained in:
Ogi Moore 2021-03-02 11:05:47 -08:00 committed by GitHub
commit fb6ae0ff2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View File

@ -704,6 +704,9 @@ class Parameter(QtCore.QObject):
names = (names,)
return self.param(*names).setValue(value)
def keys(self):
return self.names
def child(self, *names):
"""Return a child parameter.
Accepts the name of the child or a tuple (path, to, child)

View File

@ -34,3 +34,20 @@ def test_parameter_hasdefault_none(passdefault):
p.setDefault(None)
assert not p.hasDefault()
def test_unpack_parameter():
# test that **unpacking correctly returns child name/value maps
params = [
dict(name='a', type='int', value=1),
dict(name='b', type='str', value='2'),
dict(name='c', type='float', value=3.0),
]
p = Parameter.create(name='params', type='group', children=params)
result = dict(**p)
assert 'a' in result
assert result['a'] == 1
assert 'b' in result
assert result['b'] == '2'
assert 'c' in result
assert result['c'] == 3.0