diff options
Diffstat (limited to 'cli/openbb_cli/controllers/cli_controller.py')
-rw-r--r-- | cli/openbb_cli/controllers/cli_controller.py | 77 |
1 files changed, 37 insertions, 40 deletions
diff --git a/cli/openbb_cli/controllers/cli_controller.py b/cli/openbb_cli/controllers/cli_controller.py index f6e0998fc2a..8c79ae6f842 100644 --- a/cli/openbb_cli/controllers/cli_controller.py +++ b/cli/openbb_cli/controllers/cli_controller.py @@ -66,6 +66,7 @@ DATA_PROCESSING_ROUTERS = ["technical", "quantitative", "econometrics"] logger = logging.getLogger(__name__) env_file = str(ENV_FILE_SETTINGS) +session = Session() if is_installer(): # Necessary for installer so that it can locate the correct certificates for @@ -163,11 +164,9 @@ class CLIController(BaseController): def update_runtime_choices(self): """Update runtime choices.""" - routines_directory = Path( - Session().user.preferences.export_directory, "routines" - ) + routines_directory = Path(session.user.preferences.export_directory, "routines") - if Session().prompt_session and Session().settings.USE_PROMPT_TOOLKIT: + if session.prompt_session and session.settings.USE_PROMPT_TOOLKIT: # choices: dict = self.choices_default choices: dict = {c: {} for c in self.controller_choices} # type: ignore choices["hold"] = {c: None for c in ["on", "off", "-s", "--sameaxis"]} @@ -241,8 +240,8 @@ class CLIController(BaseController): .get("description") ) or "" mt.add_menu( - key_menu=router, - menu_description=menu_description.split(".")[0].lower(), + name=router, + description=menu_description.split(".")[0].lower(), ) else: mt.add_cmd(router) @@ -259,8 +258,8 @@ class CLIController(BaseController): .get("description") ) or "" mt.add_menu( - key_menu=router, - menu_description=menu_description.split(".")[0].lower(), + name=router, + description=menu_description.split(".")[0].lower(), ) else: mt.add_cmd(router) @@ -276,8 +275,8 @@ class CLIController(BaseController): .get("description") ) or "" mt.add_menu( - key_menu=router, - menu_description=menu_description.split(".")[0].lower(), + name=router, + description=menu_description.split(".")[0].lower(), ) else: mt.add_cmd(router) @@ -285,7 +284,7 @@ class CLIController(BaseController): mt.add_raw("\n cached results (OBBjects)\n") mt.add_cmd("results") - Session().console.print(text=mt.menu_text, menu="Home") + session.console.print(text=mt.menu_text, menu="Home") self.update_runtime_choices() def parse_input(self, an_input: str) -> List: @@ -314,7 +313,7 @@ class CLIController(BaseController): other_args += self.queue if not other_args: - Session().console.print( + session.console.print( "[info]Provide a path to the routine you wish to execute. For an example, please use " "`exe --example` and for documentation and to learn how create your own script " "type `about exe`.\n[/info]" @@ -369,7 +368,7 @@ class CLIController(BaseController): if ns_parser: if ns_parser.example: routine_path = ASSETS_DIRECTORY / "routines" / "routine_example.openbb" - Session().console.print( + session.console.print( "[info]Executing an example, please type `about exe` " "to learn how to create your own script.[/info]\n" ) @@ -389,14 +388,12 @@ class CLIController(BaseController): final_url = f"{url}?raw=true" response = requests.get(final_url, timeout=10) if response.status_code != 200: - Session().console.print( + session.console.print( "[red]Could not find the requested script.[/red]" ) return routine_text = response.json()["script"] - file_path = Path( - Session().user.preferences.export_directory, "routines" - ) + file_path = Path(session.user.preferences.export_directory, "routines") routine_path = file_path / file_name with open(routine_path, "w") as file: file.write(routine_text) @@ -441,7 +438,7 @@ class CLIController(BaseController): # issue in parsing the routine and therefore we don't want to feed it # to the terminal if err: - Session().console.print(err) + session.console.print(err) return self.queue = [ @@ -466,12 +463,12 @@ class CLIController(BaseController): # Check if the directory exists if os.path.isdir(export_path): - Session().console.print( + session.console.print( f"Export data to be saved in the selected folder: '{export_path}'" ) else: os.makedirs(export_path) - Session().console.print( + session.console.print( f"[green]Folder '{export_path}' successfully created.[/green]" ) self.queue = self.queue[1:] @@ -485,7 +482,7 @@ class CLIController(BaseController): df, show_index=True, index_name="stack index", title="OBBject Results" ) else: - Session().console.print("[info]No results found.[/info]") + session.console.print("[info]No results found.[/info]") def handle_job_cmds(jobs_cmds: Optional[List[str]]) -> Optional[List[str]]: @@ -513,12 +510,12 @@ def handle_job_cmds(jobs_cmds: Optional[List[str]]) -> Optional[List[str]]: # Check if the directory exists if os.path.isdir(export_path): - Session().console.print( + session.console.print( f"Export data to be saved in the selected folder: '{export_path}'" ) else: os.makedirs(export_path) - Session().console.print( + session.console.print( f"[green]Folder '{export_path}' successfully created.[/green]" ) return jobs_cmds @@ -560,16 +557,16 @@ def run_cli(jobs_cmds: Optional[List[str]] = None, test_mode=False): # Print the current location because this was an instruction and we want user to know what was the action if an_input and an_input.split(" ")[0] in t_controller.CHOICES_COMMANDS: - Session().console.print(f"{get_flair_and_username()} / $ {an_input}") + session.console.print(f"{get_flair_and_username()} / $ {an_input}") # Get input command from user else: try: # Get input from user using auto-completion - if Session().prompt_session and Session().settings.USE_PROMPT_TOOLKIT: + if session.prompt_session and session.settings.USE_PROMPT_TOOLKIT: # Check if toolbar hint was enabled - if Session().settings.TOOLBAR_HINT: - an_input = Session().prompt_session.prompt( # type: ignore[union-attr] + if session.settings.TOOLBAR_HINT: + an_input = session.prompt_session.prompt( # type: ignore[union-attr] f"{get_flair_and_username()} / $ ", completer=t_controller.completer, search_ignore_case=True, @@ -588,7 +585,7 @@ def run_cli(jobs_cmds: Optional[List[str]] = None, test_mode=False): ), ) else: - an_input = Session().prompt_session.prompt( # type: ignore[union-attr] + an_input = session.prompt_session.prompt( # type: ignore[union-attr] f"{get_flair_and_username()} / $ ", completer=t_controller.completer, search_ignore_case=True, @@ -620,7 +617,7 @@ def run_cli(jobs_cmds: Optional[List[str]] = None, test_mode=False): "The command '%s' doesn't exist on the / menu.", an_input, ) - Session().console.print( + session.console.print( f"[red]The command '{an_input}' doesn't exist on the / menu.[/red]\n", ) similar_cmd = difflib.get_close_matches( @@ -638,11 +635,11 @@ def run_cli(jobs_cmds: Optional[List[str]] = None, test_mode=False): if candidate_input == an_input: an_input = "" t_controller.queue = [] - Session().console.print("\n") + session.console.print("\n") continue an_input = candidate_input - Session().console.print(f"[green]Replacing by '{an_input}'.[/green]") + session.console.print(f"[green]Replacing by '{an_input}'.[/green]") t_controller.queue.insert(0, an_input) @@ -682,7 +679,7 @@ def run_scripts( Whether to log tests to txt files """ if not path.exists(): - Session().console.print(f"File '{path}' doesn't exist. Launching base CLI.\n") + session.console.print(f"File '{path}' doesn't exist. Launching base CLI.\n") if not test_mode: run_cli() @@ -736,7 +733,7 @@ def run_scripts( run_cli(file_cmds, test_mode=True) else: with suppress_stdout(): - Session().console.print(f"To ensure: {output}") + session.console.print(f"To ensure: {output}") if output: timestamp = datetime.now().timestamp() stamp_str = str(timestamp).replace(".", "") @@ -777,7 +774,7 @@ def replace_dynamic(match: re.Match, special_arguments: Dict[str, str]) -> str: def run_routine(file: str, routines_args=Optional[str]): """Execute command routine from .openbb file.""" - user_routine_path = Path(Session().user.preferences.export_directory, "routines") + user_routine_path = Path(session.user.preferences.export_directory, "routines") default_routine_path = ASSETS_DIRECTORY / "routines" / file if user_routine_path.exists(): @@ -785,7 +782,7 @@ def run_routine(file: str, routines_args=Optional[str]): elif default_routine_path.exists(): run_scripts(path=default_routine_path, routines_args=routines_args) else: - Session().console.print( + session.console.print( f"Routine not found, please put your `.openbb` file into : {user_routine_path}." ) @@ -819,12 +816,12 @@ def main( E.g. GME,AMC,BTC-USD """ if debug: - Session().settings.DEBUG_MODE = True + session.settings.DEBUG_MODE = True if dev: - Session().settings.DEV_BACKEND = True - Session().settings.BASE_URL = "https://payments.openbb.dev/" - Session().settings.HUB_URL = "https://my.openbb.dev" + session.settings.DEV_BACKEND = True + session.settings.BASE_URL = "https://payments.openbb.dev/" + session.settings.HUB_URL = "https://my.openbb.dev" if isinstance(path_list, list) and path_list[0].endswith(".openbb"): run_routine(file=path_list[0], routines_args=routines_args) @@ -917,7 +914,7 @@ def parse_args_and_run(): # Use -d flag if you want to see the unknown args. if unknown: if ns_parser.debug: - Session().console.print(unknown) + session.console.print(unknown) else: sys.exit(-1) |