TradingAgents/tradingagents/dataflows/config.py

46 lines
1.2 KiB
Python

import tradingagents.default_config as default_config
from typing import Dict, Optional
# Use default config but allow it to be overridden
_config: Optional[Dict] = None
def initialize_config():
"""Initialize the configuration with default values."""
global _config
if _config is None:
_config = default_config.get_default_config()
def _merge_config(base: Dict, overrides: Dict) -> Dict:
merged = dict(base)
for key, value in overrides.items():
if (
key in ("data_vendors", "tool_vendors")
and isinstance(value, dict)
and isinstance(merged.get(key), dict)
):
merged[key] = {**merged[key], **value}
else:
merged[key] = value
return merged
def set_config(config: Dict):
"""Update the configuration with custom values."""
global _config
if _config is None:
_config = default_config.get_default_config()
_config = _merge_config(_config, config)
def get_config() -> Dict:
"""Get the current configuration."""
if _config is None:
initialize_config()
return _config.copy()
# Initialize with default config
initialize_config()