diff --git a/capsul/attributes/completion_engine.py b/capsul/attributes/completion_engine.py index 5a319ad7..8ca094c9 100644 --- a/capsul/attributes/completion_engine.py +++ b/capsul/attributes/completion_engine.py @@ -987,11 +987,11 @@ def get_completion_engine(self, process, name=None): instance, which is quite incomplete. ''' if hasattr(process, 'completion_engine'): + ce = process.completion_engine # just in case the process has been changed in the CE - if process.completion_engine.process != process: - process.completion_engine.process = weak_proxy( - process, process.completion_engine._clear_node) - return process.completion_engine + if ce and ce.process != process: + ce.process = weak_proxy(process, ce._clear_node) + return ce if isinstance(process, Switch): return SwitchCompletionEngine(process, name=name) diff --git a/capsul/attributes/completion_engine_factory.py b/capsul/attributes/completion_engine_factory.py index 1929973d..92d891b3 100644 --- a/capsul/attributes/completion_engine_factory.py +++ b/capsul/attributes/completion_engine_factory.py @@ -38,11 +38,11 @@ def get_completion_engine(self, process, name=None): conform to the API. ''' if hasattr(process, 'completion_engine'): + ce = process.completion_engine # just in case the process has been changed in the CE - if process.completion_engine.process != process: - process.completion_engine.process = weak_proxy( - process, process.completion_engine._clear_node) - return process.completion_engine + if ce and ce.process != process: + ce.process = weak_proxy(process, ce._clear_node) + return ce study_config = process.get_study_config()