From 3d907bd11c924ae1ae2c4200a84f96b9f756e751 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Fri, 20 Jun 2025 13:43:58 +0200 Subject: [PATCH] resolve problem with DefuncDevice renew envlist even when not changed if not, devices in envlist are not exchanged by new instances. --- devices.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/devices.py b/devices.py index 49c4572..c4bab25 100644 --- a/devices.py +++ b/devices.py @@ -632,8 +632,6 @@ class FrappyConfig(Device): to_remove = to_remove.difference(addedenv) prevenv = [k for k in session.experiment.envlist if k not in to_remove] envlist = prevenv + [k for k in addedenv if k not in prevenv] - if set(envlist) == set(prevenv): - envlist = None predef_changes = [] for aliasname, cfg in predef_aliases: @@ -644,7 +642,7 @@ class FrappyConfig(Device): def check_envalias(self): envlist, new_aliases, predef_aliases = self.needed_envalias() - if envlist: + if set(envlist) != set(session.experiment.envlist): return f"envlist should be {', '.join(envlist)}" anew = [k for k, v in new_aliases.items() if v is not None] removed = set(new_aliases).difference(anew) @@ -695,15 +693,19 @@ class FrappyConfig(Device): applyAliasConfig() # for other aliases - if envlist is not None: - prev = session.experiment.envlist - removed = set(prev).difference(envlist) - session.experiment.setEnvironment(envlist) - if removed: - session.log.info('removed %s from environment', ', '.join(removed)) - added = set(envlist).difference(prev) - if added: - session.log.info('added %s to environment', ', '.join(added)) + prev = set(session.experiment.envlist) + remove = ', '.join(prev.difference(envlist)) + session.experiment.setEnvironment(envlist) + show = [] + keep = ', '.join(d for d in envlist if d in prev) + if keep: + show.append(f'keep {keep}') + add = ', '.join(d for d in envlist if d not in prev) + if add: + show.append(f'add {add}') + if remove: + show.append(f'remove {remove}') + session.log.info('environment: %s', '; '.join(show)) class FrappyNode(SecNodeDevice, Moveable):