diff --git a/openbb_terminal/base_helpers.py b/openbb_terminal/base_helpers.py index 66b4c542fb9..a44980d6e5c 100644 --- a/openbb_terminal/base_helpers.py +++ b/openbb_terminal/base_helpers.py @@ -98,7 +98,8 @@ def strtobool(val): def load_dotenv_and_reload_configs(): - """Loads the dotenv files in the following order: + """ + Loads the dotenv files in the following order: 1. Repository .env file 2. Package .env file 3. User .env file diff --git a/openbb_terminal/session/sdk_session.py b/openbb_terminal/session/sdk_session.py index 3edbe7d3dd6..eac33ad98ec 100644 --- a/openbb_terminal/session/sdk_session.py +++ b/openbb_terminal/session/sdk_session.py @@ -53,15 +53,14 @@ def login( session = Local.get_session() if not session: + console.print("No local session found. Creating new session.") session = get_session(email, password, token, keep_session) else: - console.print("Using saved session to login.") + console.print("Using local session to login.") - if session_model.login(session) in [ - session_model.LoginStatus.FAILED, - session_model.LoginStatus.NO_RESPONSE, - ]: - raise Exception("Login failed.") + status = session_model.login(session) + if status != session_model.LoginStatus.SUCCESS: + raise Exception(f"Login failed with status `{status.value}`.") console.print("[green]Login successful.[/green]") diff --git a/openbb_terminal/session/session_model.py b/openbb_terminal/session/session_model.py index c4482efc9d6..c001e5628a9 100644 --- a/openbb_terminal/session/session_model.py +++ b/openbb_terminal/session/session_model.py @@ -22,6 +22,7 @@ class LoginStatus(Enum): SUCCESS = "success" FAILED = "failed" NO_RESPONSE = "no_response" + UNAUTHORIZED = "unauthorized" def create_session(email: str, password: str, save: bool) -> dict: @@ -84,6 +85,8 @@ def login(session: dict) -> LoginStatus: else None ) return LoginStatus.SUCCESS + if response.status_code == 401: + return LoginStatus.UNAUTHORIZED return LoginStatus.FAILED return LoginStatus.NO_RESPONSE diff --git a/pyproject.toml b/pyproject.toml index 72ab315124f..1e8a1cf2ca0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,13 +7,14 @@ authors = ["Didier Rodrigues Lopes"] packages = [ { include = "openbb_terminal" }, ] +include = ["terminal.py"] readme = "website/content/sdk/quickstart/installation.md" homepage = "https://openbb.co" repository = "https://github.com/OpenBB-finance/OpenBBTerminal" documentation = "https://docs.openbb.co/sdk" [tool.poetry.scripts] -openbb = 'openbb_terminal.terminal_controller:parse_args_and_run' +openbb = 'terminal:main' [tool.poetry.dependencies] python = "^3.8,<3.11, !=3.9.7" diff --git a/terminal.py b/terminal.py index 048e06c345b..2c3035fff25 100644 --- a/terminal.py +++ b/terminal.py @@ -4,7 +4,10 @@ import sys from openbb_terminal.base_helpers import load_dotenv_and_reload_configs from openbb_terminal.terminal_helper import is_auth_enabled -if __name__ == "__main__": +# pylint: disable=import-outside-toplevel + + +def main(): multiprocessing.freeze_support() sent_args = sys.argv[1:] @@ -21,3 +24,7 @@ if __name__ == "__main__": session_controller.main() else: session_controller.launch_terminal() + + +if __name__ == "__main__": + main()