summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2017-03-22 14:19:20 +0100
committerSebastian Koslowski <koslowski@kit.edu>2017-03-22 14:19:20 +0100
commita8158a55279a7ae4ad43d6aaf8855c0f3711d5c2 (patch)
tree46d904ed7996e7ec779fd3b896ba399edca62fd1
parent114b39a434c13a239f33ff65cebce10fcebd26ec (diff)
grc: fix refactored handling of <base_key> tags
-rw-r--r--grc/core/Block.py15
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)