summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiogo Sousa <montezdesousa@gmail.com>2024-05-21 18:40:53 +0100
committerDiogo Sousa <montezdesousa@gmail.com>2024-05-21 18:40:53 +0100
commit2f892d31cc321c43a13569a7ab9c8c6437da1af1 (patch)
treeecf2fbc0a474095b125d88c078d37ca4ba6c659c
parent1a0748c2d4d94937788aaf7d2919c4e1b9d958cc (diff)
fix: raise if all providers fail
-rw-r--r--openbb_platform/core/openbb_core/app/static/container.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/openbb_platform/core/openbb_core/app/static/container.py b/openbb_platform/core/openbb_core/app/static/container.py
index ad8585d1dd7..5404873cc6a 100644
--- a/openbb_platform/core/openbb_core/app/static/container.py
+++ b/openbb_platform/core/openbb_core/app/static/container.py
@@ -27,9 +27,10 @@ class Container:
def _check_credentials(self, provider: str) -> bool:
"""Check required credentials are populated."""
credentials = self._command_runner.user_settings.credentials
- required = credentials.origins.get(provider, [])
- current = credentials.model_dump(exclude_none=True)
- return all(item in current for item in required)
+ if provider not in credentials.origins:
+ return False
+ required = credentials.origins.get(provider)
+ return all(getattr(credentials, r, None) for r in required)
def _get_provider(
self, choice: Optional[str], cmd: str, available: Tuple[str, ...]
@@ -37,10 +38,13 @@ class Container:
"""Get the provider to use in execution."""
if choice is None:
routes = self._command_runner.user_settings.defaults.routes
- if provider := (routes.get(cmd, {}).get("provider") or available):
- for p in [provider] if isinstance(provider, str) else provider:
- if self._check_credentials(p):
- return p
- continue
- raise OpenBBError("Provider fallback failed, please specify the provider.")
+ provider = routes.get(cmd, {}).get("provider", []) or available
+ providers = [provider] if isinstance(provider, str) else provider
+ for p in providers:
+ if self._check_credentials(p):
+ return p
+ continue
+ raise OpenBBError(
+ f"Please specify the provider. Fallback failed, tried -> {', '.join(providers)}."
+ )
return choice