fixed proper parameter inheritance

This commit is contained in:
zolliker 2022-06-15 16:02:38 +02:00
parent 5951312d40
commit 80d9a790ec

View File

@ -401,6 +401,7 @@ class SeaModule(Module):
hdbpath = None # hdbpath for main writable
def __new__(cls, name, logger, cfgdict, srv):
print('N', cls, name)
if hasattr(srv, 'extra_sea_modules'):
extra_modules = srv.extra_sea_modules
else:
@ -533,8 +534,11 @@ class SeaModule(Module):
if key in cls.accessibles:
if key == 'target':
kwds['readonly'] = False
pobj = cls.accessibles[key]
pobj.init(kwds)
prev = cls.accessibles[key]
pobj = Parameter(**kwds)
merged_properties = prev.propertyValues.copy()
pobj.updateProperties(merged_properties)
pobj.merge(merged_properties)
datatype = kwds.get('datatype', cls.accessibles[key].datatype)
else:
pobj = Parameter(**kwds)
@ -590,9 +594,10 @@ class SeaModule(Module):
attributes[pname] = pobj
pobj.__set_name__(cls, pname)
classname = '%s_%s' % (cls.__name__, sea_object)
classname = '%s_%s' % (cls.__name__, name)
newcls = type(classname, (cls,), attributes)
return Module.__new__(newcls)
result = Module.__new__(newcls)
return result
def updateEvent(self, module, parameter, value, timestamp, readerror):
upd = getattr(self, 'update_' + parameter, None)