Files
NexQuant/rdagent/factor_implementation/task_loader/json_loader.py
T
Xu Yang a126c84c92 Refine all the implementation code to higher quality for release (#29)
* refine CI script

* refine all the code to higher quality

* refine the script to factor extraction and implementation

* add task loader interface

* add a task loader interface && move pdf analysis to pdf task loader

* change the name to global variables

---------

Co-authored-by: xuyang1 <xuyang1@microsoft.com>
2024-06-18 11:50:03 +08:00

32 lines
1.1 KiB
Python

import json
from pathlib import Path
from rdagent.core.task import TaskLoader
from rdagent.factor_implementation.evolving.factor import FactorImplementTask
class FactorImplementationTaskLoaderFromDict(TaskLoader):
def load(self, factor_dict: dict) -> list:
"""Load data from a dict."""
task_l = []
for factor_name, factor_data in factor_dict.items():
task = FactorImplementTask(
factor_name=factor_name,
factor_description=factor_data["description"],
factor_formulation=factor_data["formulation"],
variables=factor_data["variables"],
)
task_l.append(task)
return task_l
class FactorImplementationTaskLoaderFromJsonFile(TaskLoader):
def load(self, json_file_path: Path) -> list:
factor_dict = json.load(json_file_path)
return FactorImplementationTaskLoaderFromDict().load(factor_dict)
class FactorImplementationTaskLoaderFromJsonString(TaskLoader):
def load(self, json_string: str) -> list:
factor_dict = json.loads(json_string)
return FactorImplementationTaskLoaderFromDict().load(factor_dict)