Skip to content

Commit

Permalink
[Feature] CLI logging (#6487)
Browse files Browse the repository at this point in the history
* remove old logging references

* cli as logging subapp option

* changing the subapp to the cli on init
  • Loading branch information
hjoaquim authored Jun 7, 2024
1 parent d7a9e66 commit aa7bccc
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 14 deletions.
10 changes: 9 additions & 1 deletion cli/openbb_cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import sys

from openbb_cli.utils.utils import change_logging_sub_app, reset_logging_sub_app


def main():
"""Use the main entry point for the OpenBB Platform CLI."""
Expand All @@ -20,4 +22,10 @@ def main():


if __name__ == "__main__":
main()
initial_logging_sub_app = change_logging_sub_app()
try:
main()
except Exception as e:
pass
finally:
reset_logging_sub_app(initial_logging_sub_app)
12 changes: 0 additions & 12 deletions cli/openbb_cli/controllers/cli_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import argparse
import contextlib
import difflib
import logging
import os
import re
import sys
Expand Down Expand Up @@ -60,8 +59,6 @@
# pylint: disable=too-many-public-methods,import-outside-toplevel, too-many-function-args
# pylint: disable=too-many-branches,no-member,C0302,too-many-return-statements, inconsistent-return-statements

logger = logging.getLogger(__name__)

env_file = str(ENV_FILE_SETTINGS)
session = Session()

Expand Down Expand Up @@ -498,11 +495,6 @@ def call_exe(self, other_args: List[str]):

def handle_job_cmds(jobs_cmds: Optional[List[str]]) -> Optional[List[str]]:
"""Handle job commands."""
# If the path selected does not start from the user root,
# give relative location from root
if jobs_cmds is not None and jobs_cmds:
logger.info("INPUT: %s", "/".join(jobs_cmds))

export_path = ""
if jobs_cmds and "export" in jobs_cmds[0]:
commands = jobs_cmds[0].split("/")
Expand Down Expand Up @@ -620,10 +612,6 @@ def run_cli(jobs_cmds: Optional[List[str]] = None, test_mode=False):
break

except SystemExit:
logger.exception(
"The command '%s' doesn't exist on the / menu.",
an_input,
)
session.console.print(
f"[red]The command '{an_input}' doesn't exist on the / menu.[/red]\n",
)
Expand Down
34 changes: 34 additions & 0 deletions cli/openbb_cli/utils/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""OpenBB Platform CLI utilities."""

import json
from pathlib import Path

HOME_DIRECTORY = Path.home()
OPENBB_PLATFORM_DIRECTORY = Path(HOME_DIRECTORY, ".openbb_platform")
SYSTEM_SETTINGS_PATH = Path(OPENBB_PLATFORM_DIRECTORY, "system_settings.json")


def change_logging_sub_app() -> str:
"""Build OpenBB Platform setting files."""
with open(SYSTEM_SETTINGS_PATH) as file:
system_settings = json.load(file)

initial_logging_sub_app = system_settings.get("logging_sub_app", "")

system_settings["logging_sub_app"] = "cli"

with open(SYSTEM_SETTINGS_PATH, "w") as file:
json.dump(system_settings, file, indent=4)

return initial_logging_sub_app


def reset_logging_sub_app(initial_logging_sub_app: str):
"""Reset OpenBB Platform setting files."""
with open(SYSTEM_SETTINGS_PATH) as file:
system_settings = json.load(file)

system_settings["logging_sub_app"] = initial_logging_sub_app

with open(SYSTEM_SETTINGS_PATH, "w") as file:
json.dump(system_settings, file, indent=4)
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class SystemSettings(Tagged):
logging_handlers: List[str] = Field(default_factory=lambda: ["file"])
logging_rolling_clock: bool = False
logging_verbosity: int = 20
logging_sub_app: Literal["python", "api", "pro"] = "python"
logging_sub_app: Literal["python", "api", "pro", "cli"] = "python"
logging_suppress: bool = False
log_collect: bool = True

Expand Down

0 comments on commit aa7bccc

Please sign in to comment.