TradingAgents/tradingagents/i18n/__init__.py

37 lines
1.3 KiB
Python

from functools import reduce
import importlib
from tradingagents.default_config import DEFAULT_CONFIG
def get_value(dictionary: dict, *keys, default=None):
"""
Get values from a dictionary using a list of keys.
If a key is not found, it returns the default value.
"""
try:
return reduce((lambda d, key: d[key]), keys, dictionary)
except (KeyError, TypeError):
return default
def get_lang(*keys, default="") -> str | dict:
lang_code = DEFAULT_CONFIG.get("language", "zh")
try:
lang_module = importlib.import_module(f"tradingagents.i18n.{lang_code}")
if not keys:
return lang_module.LANG
return get_value(lang_module.LANG, *keys, default=default)
except Exception:
# fallback to zh
from .interface.zh import LANG
if not keys:
return LANG
return get_value(LANG, *keys, default=default)
def get_prompts(*keys, default="") -> str:
lang_code = DEFAULT_CONFIG.get("language", "zh")
try:
lang_module = importlib.import_module(f"tradingagents.i18n.{lang_code}")
return get_value(lang_module.PROMPTS, *keys, default=default)
except Exception:
# fallback to zh
from .prompts.zh import PROMPTS
return get_value(PROMPTS, *keys, default=default)