Files
NexQuant/rdagent/components/coder/factor_coder/CoSTEER/evolvable_subjects.py
T

38 lines
1.3 KiB
Python
Raw Normal View History

2024-07-05 17:42:00 +08:00
from rdagent.components.coder.factor_coder.factor import (
FactorExperiment,
2024-07-17 15:00:13 +08:00
FactorFBWorkspace,
FactorTask,
)
from rdagent.core.evolving_framework import EvolvableSubjects
2024-07-16 20:35:42 +08:00
from rdagent.log import rdagent_logger as logger
2024-07-04 15:56:14 +08:00
class FactorEvolvingItem(FactorExperiment, EvolvableSubjects):
"""
Intermediate item of factor implementation.
"""
def __init__(
self,
sub_tasks: list[FactorTask],
2024-07-17 15:00:13 +08:00
sub_gt_implementations: list[FactorFBWorkspace] = None,
):
FactorExperiment.__init__(self, sub_tasks=sub_tasks)
self.corresponding_selection: list = None
if sub_gt_implementations is not None and len(
sub_gt_implementations,
) != len(self.sub_tasks):
self.sub_gt_implementations = None
2024-07-16 20:35:42 +08:00
logger.warning(
"The length of sub_gt_implementations is not equal to the length of sub_tasks, set sub_gt_implementations to None",
)
else:
self.sub_gt_implementations = sub_gt_implementations
@classmethod
def from_experiment(cls, exp: FactorExperiment) -> "FactorExperiment":
ei = cls(sub_tasks=exp.sub_tasks)
ei.based_experiments = exp.based_experiments
ei.experiment_workspace = exp.experiment_workspace
return ei