Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion rdagent/components/coder/factor_coder/evolving_strategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,16 @@ def assign_code_list_to_evo(self, code_list, evo):
continue
if evo.sub_workspace_list[index] is None:
evo.sub_workspace_list[index] = FactorFBWorkspace(target_task=evo.sub_tasks[index])
evo.sub_workspace_list[index].inject_files(**{"factor.py": code_list[index]})
# code_list[index] should be either a string (for new implementations)
# or a dict (for existing implementations from knowledge base)
if isinstance(code_list[index], str):
# New implementation - code is a string
evo.sub_workspace_list[index].inject_files(**{"factor.py": code_list[index]})
elif isinstance(code_list[index], dict):
# Existing implementation - code_list[index] is already a file_dict
if "factor.py" not in code_list[index]:
raise ValueError(f"Dictionary at code_list[{index}] must contain 'factor.py' key")
evo.sub_workspace_list[index].inject_files(**code_list[index])
else:
raise TypeError(f"Expected str or dict for code_list[{index}], got {type(code_list[index])}")
return evo