diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2017-03-22 14:19:20 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2017-03-22 14:19:20 +0100 |
commit | a8158a55279a7ae4ad43d6aaf8855c0f3711d5c2 (patch) | |
tree | 46d904ed7996e7ec779fd3b896ba399edca62fd1 | |
parent | 114b39a434c13a239f33ff65cebce10fcebd26ec (diff) |
grc: fix refactored handling of <base_key> tags
-rw-r--r-- | grc/core/Block.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/grc/core/Block.py b/grc/core/Block.py index f707175551..8350828092 100644 --- a/grc/core/Block.py +++ b/grc/core/Block.py @@ -133,18 +133,17 @@ class Block(Element): add_param(key='maxoutbuf', name='Max Output Buffer', type='int', hide='part', value='0', tab=ADVANCED_PARAM_TAB) - base_params_n = {n['key']: n for n in params_n} + base_params_n = {} for param_n in params_n: key = param_n['key'] if key in self.params: - # raise Exception('Key "{}" already exists in params'.format(key)) - print('Key "{}" already exists in params in block {}' - ''.format(key, self.key)) - continue + raise Exception('Key "{}" already exists in params'.format(key)) - extended_param_n = base_params_n.get(param_n.pop('base_key', None), {}) - extended_param_n.update(param_n) - self.params[key] = param_factory(self, **extended_param_n) + base_key = param_n.get('base_key', None) + param_n_ext = base_params_n.get(base_key, {}).copy() + param_n_ext.update(param_n) + self.params[key] = param_factory(self, **param_n_ext) + base_params_n[key] = param_n_ext add_param(key='comment', name='Comment', type='_multiline', hide='part', value='', tab=ADVANCED_PARAM_TAB) |