Skip to content

Commit cb21ec4

Browse files
committed
better fix for cached completion engine losing its process
1 parent 817e4bc commit cb21ec4

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

capsul/attributes/completion_engine.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -983,6 +983,10 @@ def get_completion_engine(self, process, name=None):
983983
instance, which is quite incomplete.
984984
'''
985985
if hasattr(process, 'completion_engine'):
986+
# just in case the process has been changed in the CE
987+
if process.completion_engine.process != process:
988+
process.completion_engine.process = weak_proxy(
989+
process, process.completion_engine._clear_node)
986990
return process.completion_engine
987991

988992
if isinstance(process, Switch):

capsul/attributes/completion_engine_factory.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
FomProcessCompletionEngineIteration
1919
from capsul.pipeline.process_iteration import ProcessIteration
2020
from capsul.pipeline.pipeline_nodes import ProcessNode
21+
from soma.utils.weak_proxy import weak_proxy
2122

2223

2324
class BuiltinProcessCompletionEngineFactory(ProcessCompletionEngineFactory):
@@ -38,7 +39,9 @@ def get_completion_engine(self, process, name=None):
3839
'''
3940
if hasattr(process, 'completion_engine'):
4041
# just in case the process has been changed in the CE
41-
process.completion_engine.process = process
42+
if process.completion_engine.process != process:
43+
process.completion_engine.process = weak_proxy(
44+
process, process.completion_engine._clear_node)
4245
return process.completion_engine
4346

4447
study_config = process.get_study_config()

0 commit comments

Comments
 (0)