summaryrefslogtreecommitdiffstats
path: root/openbb_platform/core/openbb_core/app/model/defaults.py
diff options
context:
space:
mode:
Diffstat (limited to 'openbb_platform/core/openbb_core/app/model/defaults.py')
-rw-r--r--openbb_platform/core/openbb_core/app/model/defaults.py35
1 files changed, 31 insertions, 4 deletions
diff --git a/openbb_platform/core/openbb_core/app/model/defaults.py b/openbb_platform/core/openbb_core/app/model/defaults.py
index 52007edf5de..1f4a176674f 100644
--- a/openbb_platform/core/openbb_core/app/model/defaults.py
+++ b/openbb_platform/core/openbb_core/app/model/defaults.py
@@ -1,19 +1,46 @@
"""Defaults model."""
-from typing import Dict, Optional
+from typing import Dict, List, Optional
+from warnings import warn
-from pydantic import BaseModel, ConfigDict, Field
+from pydantic import BaseModel, ConfigDict, Field, model_validator
+
+from openbb_core.app.model.abstract.warning import OpenBBWarning
class Defaults(BaseModel):
"""Defaults."""
- model_config = ConfigDict(validate_assignment=True)
+ model_config = ConfigDict(validate_assignment=True, populate_by_name=True)
- routes: Dict[str, Dict[str, Optional[str]]] = Field(default_factory=dict)
+ commands: Dict[str, Dict[str, Optional[List[str]]]] = Field(
+ default_factory=dict,
+ alias="routes",
+ )
def __repr__(self) -> str:
"""Return string representation."""
return f"{self.__class__.__name__}\n\n" + "\n".join(
f"{k}: {v}" for k, v in self.model_dump().items()
)
+
+ @model_validator(mode="before")
+ @classmethod
+ def validate_before(cls, values: dict) -> dict:
+ """Validate model (before)."""
+ key = "commands"
+ if "routes" in values:
+ warn(
+ message="'routes' is deprecated. Use 'commands' instead.",
+ category=OpenBBWarning,
+ )
+ key = "routes"
+
+ new_values: Dict[str, Dict[str, Optional[List[str]]]] = {"commands": {}}
+ for k, v in values.get(key, {}).items():
+ clean_k = k.strip("/").replace("/", ".")
+ provider = v.get("provider") if v else None
+ if isinstance(provider, str):
+ v["provider"] = [provider]
+ new_values["commands"][clean_k] = v
+ return new_values