fix: handle non Readable SeaModules correctly

This commit is contained in:
zolliker 2021-05-19 18:10:48 +02:00
parent 5f65b6b4ce
commit c779d49548
2 changed files with 9 additions and 3 deletions

View File

@ -19,6 +19,6 @@ iodev = sea_main
sea_object = p
[table]
class = secop_psi.sea.SeaReadable
class = secop_psi.sea.SeaModule
iodev = sea_main
sea_object = table

View File

@ -364,6 +364,7 @@ class SeaModule(Module):
visibility_level = cfgdict.pop('visibility_level', 2)
single_module = cfgdict.pop('single_module', None)
print('new module', cls, single_module)
if single_module:
sea_object, base, paramdesc = extra_modules[single_module]
params = [paramdesc]
@ -389,6 +390,7 @@ class SeaModule(Module):
# sea_object, descr = json.load(fp)
with open(join(seaconfdir, json_file)) as fp:
descr = json.load(fp)[sea_object]
print(cls, 'rel_paths', rel_paths)
if rel_paths == '*' or not rel_paths:
# take all
main = descr['params'][0]
@ -418,7 +420,10 @@ class SeaModule(Module):
descr['params'] = result
rel0 = '' if rel_paths[0] == '.' else rel_paths[0]
if result[0]['path'] == rel0:
result[0]['key'] = 'value'
if isinstance(cls, Readable):
result[0]['key'] = 'value'
else:
result.pop(0)
else:
logger.error('%s: no value found', name)
# logger.info('PARAMS %s %r', name, result)
@ -450,7 +455,8 @@ class SeaModule(Module):
if key is None:
if len(pathlist) > 0:
if len(pathlist) == 1:
kwds['group'] = 'more'
if isinstance(cls, Readable):
kwds['group'] = 'more'
else:
kwds['group'] = pathlist[-2]
# flatten path to parameter name