mirror of
https://github.com/BrentNeale1/fx-quant.git
synced 2026-08-17 12:08:07 +00:00
Add config-driven system.yaml and multi-window indicators
- Create config/system.yaml with full master prompt template - Create src/config_loader.py to load YAML config and .env - Update data_engine.build_all_features() to support lists of windows (e.g. sma_windows: [3, 20] produces sma_3 and sma_20 columns) - Rewrite get_candles.py to loop over all instruments × granularities from config instead of hardcoding EUR_USD/M5 - Fix supabase_upload.py indentation bug and wire up config for table name Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
256dffaae1
commit
0d0c363bfa
@@ -0,0 +1,44 @@
|
||||
# src/config_loader.py
|
||||
"""
|
||||
Loads config/system.yaml and config/.env for the fx-quant project.
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
import yaml
|
||||
|
||||
|
||||
def get_project_root() -> Path:
|
||||
"""Return the fx-quant project root (parent of src/)."""
|
||||
return Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
def load_config(path=None) -> dict:
|
||||
"""
|
||||
Load config/system.yaml and config/.env.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
path : str or Path, optional
|
||||
Explicit path to a YAML config file. Defaults to
|
||||
<project_root>/config/system.yaml.
|
||||
|
||||
Returns
|
||||
-------
|
||||
dict
|
||||
Parsed YAML contents.
|
||||
"""
|
||||
root = get_project_root()
|
||||
|
||||
# Always load .env as a side effect
|
||||
env_path = root / "config" / ".env"
|
||||
if env_path.exists():
|
||||
load_dotenv(env_path)
|
||||
|
||||
if path is None:
|
||||
path = root / "config" / "system.yaml"
|
||||
|
||||
with open(path, "r") as f:
|
||||
cfg = yaml.safe_load(f)
|
||||
|
||||
return cfg
|
||||
Reference in New Issue
Block a user