fix: bundle config/recursion/missing-key fixes
- dataflows/config: deepcopy + one-level dict merge so a partial set_config doesn't clobber sibling defaults - graph: thread max_recur_limit from config to Propagator - openai_client: name the missing env var in the API-key error #788 #764 #680
This commit is contained in:
1 parent
19d22b54a9
commit
9482cae188
5 files changed
+90
-8
No files matched your search
@@ -1,6 +1,8 @@
|
||||
import tradingagents.default_config as default_config
|
||||
from copy import deepcopy
|
||||
from typing import Dict, Optional
|
||||
|
||||
import tradingagents.default_config as default_config
|
||||
|
||||
# Use default config but allow it to be overridden
|
||||
_config: Optional[Dict] = None
|
||||
|
||||
@@ -9,22 +11,31 @@ def initialize_config():
|
||||
"""Initialize the configuration with default values."""
|
||||
global _config
|
||||
if _config is None:
|
||||
_config = default_config.DEFAULT_CONFIG.copy()
|
||||
_config = deepcopy(default_config.DEFAULT_CONFIG)
|
||||
|
||||
|
||||
def set_config(config: Dict):
|
||||
"""Update the configuration with custom values."""
|
||||
"""Update the configuration with custom values.
|
||||
|
||||
Dict-valued keys (e.g. ``data_vendors``) are merged one level deep so a
|
||||
partial update like ``{"data_vendors": {"core_stock_apis": "alpha_vantage"}}``
|
||||
keeps the other nested keys from the default; scalar keys are replaced.
|
||||
"""
|
||||
global _config
|
||||
if _config is None:
|
||||
_config = default_config.DEFAULT_CONFIG.copy()
|
||||
_config.update(config)
|
||||
initialize_config()
|
||||
incoming = deepcopy(config)
|
||||
for key, value in incoming.items():
|
||||
if isinstance(value, dict) and isinstance(_config.get(key), dict):
|
||||
_config[key].update(value)
|
||||
else:
|
||||
_config[key] = value
|
||||
|
||||
|
||||
def get_config() -> Dict:
|
||||
"""Get the current configuration."""
|
||||
if _config is None:
|
||||
initialize_config()
|
||||
return _config.copy()
|
||||
return deepcopy(_config)
|
||||
|
||||
|
||||
# Initialize with default config
|
||||
|
||||
Reference in new issue
Block a user