varios fixes at psi repo, as of 2022-02-01

Change-Id: I8cdc849126d52ef0f2f27a0faf661830aac6f874
This commit is contained in:
2022-02-02 09:57:30 +01:00
parent 5e3fb10884
commit acb3bdad6a
4 changed files with 93 additions and 52 deletions

View File

@ -153,7 +153,7 @@ class Change:
self._reply = None
def __getattr__(self, key):
"""return attribute from module key is not in self._valuedict"""
"""return attribute from module key when not in self._valuedict"""
if key in self._valuedict:
return self._valuedict[key]
return getattr(self._module, key)
@ -174,6 +174,9 @@ class Change:
self._valuedict.update(result)
return self._reply
def __repr__(self):
return 'Change<%s>' % ', '.join('%s=%r' % kv for kv in self._valuedict.items())
class IOHandlerBase:
"""abstract IO handler
@ -280,6 +283,8 @@ class IOHandler(IOHandlerBase):
reply = self.send_command(module)
# convert them to parameters
result = self.analyze(module, *reply)
module.log.debug('result of analyze_%s: %s', self.group,
', '.join('%s=%r' % kv for kv in result.items()))
for pname, value in result.items():
setattr(module, pname, value)
for pname in self.parameters:
@ -322,6 +327,7 @@ class IOHandler(IOHandlerBase):
change = Change(self, module, valuedict)
if force_read:
change.readValues()
module.log.debug('call change_%s(%r)', self.group, change)
values = self.change(module, change)
if values is None: # this indicates that nothing has to be written
return