diff --git a/rdagent/app/cli.py b/rdagent/app/cli.py index 154023d3..0f3411a3 100644 --- a/rdagent/app/cli.py +++ b/rdagent/app/cli.py @@ -5,11 +5,16 @@ This will - make rdagent a nice entry and - autoamtically load dotenv """ +from dotenv import load_dotenv + +load_dotenv(".env") +# 1) Make sure it is at the beginning of the script so that it will load dotenv before initializing BaseSettings. +# 2) The ".env" argument is necessary to make sure it loads `.env` from the current directory. + import subprocess from importlib.resources import path as rpath import fire -from dotenv import load_dotenv from rdagent.app.data_mining.model import main as med_model from rdagent.app.general_model.general_model import ( @@ -20,8 +25,6 @@ from rdagent.app.qlib_rd_loop.factor_from_report import main as fin_factor_repor from rdagent.app.qlib_rd_loop.model import main as fin_model from rdagent.app.utils.info import collect_info -load_dotenv() - def ui(port=80, log_dir="", debug=False): """ diff --git a/rdagent/app/general_model/general_model.py b/rdagent/app/general_model/general_model.py index cb05dd50..5da2c5a9 100644 --- a/rdagent/app/general_model/general_model.py +++ b/rdagent/app/general_model/general_model.py @@ -1,9 +1,3 @@ -from dotenv import load_dotenv - -from rdagent.scenarios.general_model.scenario import GeneralModelScenario - -load_dotenv(override=True) - import fire from rdagent.components.coder.model_coder.task_loader import ( @@ -13,6 +7,7 @@ from rdagent.components.document_reader.document_reader import ( extract_first_page_screenshot_from_pdf, ) from rdagent.log import rdagent_logger as logger +from rdagent.scenarios.general_model.scenario import GeneralModelScenario from rdagent.scenarios.qlib.developer.model_coder import QlibModelCoSTEER diff --git a/rdagent/components/benchmark/conf.py b/rdagent/components/benchmark/conf.py index 095212a7..0a0ad418 100644 --- a/rdagent/components/benchmark/conf.py +++ b/rdagent/components/benchmark/conf.py @@ -2,13 +2,8 @@ from dataclasses import field from pathlib import Path from typing import Optional -from dotenv import load_dotenv from pydantic_settings import BaseSettings -# Load environment variables -load_dotenv(verbose=True, override=True) - - DIRNAME = Path("./") diff --git a/rdagent/components/runner/conf.py b/rdagent/components/runner/conf.py index e7670ace..1791dde7 100644 --- a/rdagent/components/runner/conf.py +++ b/rdagent/components/runner/conf.py @@ -2,12 +2,6 @@ from __future__ import annotations from pathlib import Path -from dotenv import load_dotenv -from pydantic_settings import BaseSettings - -# make sure that env variable is loaded while calling Config() -load_dotenv(verbose=True, override=True) - from pydantic_settings import BaseSettings diff --git a/rdagent/core/conf.py b/rdagent/core/conf.py index 202ac1ea..6d193c7d 100644 --- a/rdagent/core/conf.py +++ b/rdagent/core/conf.py @@ -2,15 +2,11 @@ from __future__ import annotations from pathlib import Path -from dotenv import load_dotenv from pydantic_settings import BaseSettings # TODO: use pydantic for other modules in Qlib # from pydantic_settings import BaseSettings -# make sure that env variable is loaded while calling Config() -load_dotenv(verbose=True, override=True) - class RDAgentSettings(BaseSettings): # TODO: (xiao) I think LLMSetting may be a better name.