diff options
author | Diogo Sousa <montezdesousa@gmail.com> | 2024-05-21 18:40:53 +0100 |
---|---|---|
committer | Diogo Sousa <montezdesousa@gmail.com> | 2024-05-21 18:40:53 +0100 |
commit | 2f892d31cc321c43a13569a7ab9c8c6437da1af1 (patch) | |
tree | ecf2fbc0a474095b125d88c078d37ca4ba6c659c | |
parent | 1a0748c2d4d94937788aaf7d2919c4e1b9d958cc (diff) |
fix: raise if all providers fail
-rw-r--r-- | openbb_platform/core/openbb_core/app/static/container.py | 22 |
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 |