46 lines
1.2 KiB
Python
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()
|