From a339bcfc9e9f9946b64ef5b3a8802e2307724907 Mon Sep 17 00:00:00 2001 From: Claudio Dekker Date: Fri, 21 Apr 2023 10:49:36 +0200 Subject: [PATCH] WIP --- launch.py | 6 ++---- setup.py | 48 ++++++++++++++++++++++++++---------------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/launch.py b/launch.py index 895c9f140..82e92f32a 100644 --- a/launch.py +++ b/launch.py @@ -7,10 +7,8 @@ import setup import modules.paths_internal from modules import cmd_args -try: - from rich import print # pylint: disable=redefined-builtin -except ImportError: - pass +setup.ensure_base_requirements() +from rich import print # pylint: disable=redefined-builtin ### majority of this file is superflous, but used by some extensions as helpers during extension installation diff --git a/setup.py b/setup.py index fd1c50d10..4550682e2 100644 --- a/setup.py +++ b/setup.py @@ -34,27 +34,21 @@ def setup_logging(clean=False): except: pass logging.basicConfig(level=logging.DEBUG, format='%(asctime)s | %(levelname)s | %(pathname)s | %(message)s', filename='setup.log', filemode='a', encoding='utf-8', force=True) - try: # we may not have rich on the first run - from rich.theme import Theme - from rich.logging import RichHandler - from rich.console import Console - from rich.pretty import install as pretty_install - from rich.traceback import install as traceback_install - console = Console(log_time=True, log_time_format='%H:%M:%S-%f', theme=Theme({ - "traceback.border": "black", - "traceback.border.syntax_error": "black", - "inspect.value.border": "black", - })) - pretty_install(console=console) - traceback_install(console=console, extra_lines=1, width=console.width, word_wrap=False, indent_guides=False, suppress=[]) - rh = RichHandler(show_time=True, omit_repeated_times=False, show_level=True, show_path=False, markup=False, rich_tracebacks=True, log_time_format='%H:%M:%S-%f', level=logging.DEBUG if args.debug else logging.INFO, console=console) - rh.set_name(logging.DEBUG if args.debug else logging.INFO) - log.addHandler(rh) - except: - sh = logging.StreamHandler() - sh.setLevel(logging.DEBUG if args.debug else logging.INFO) - log.addHandler(sh) - + from rich.theme import Theme + from rich.logging import RichHandler + from rich.console import Console + from rich.pretty import install as pretty_install + from rich.traceback import install as traceback_install + console = Console(log_time=True, log_time_format='%H:%M:%S-%f', theme=Theme({ + "traceback.border": "black", + "traceback.border.syntax_error": "black", + "inspect.value.border": "black", + })) + pretty_install(console=console) + traceback_install(console=console, extra_lines=1, width=console.width, word_wrap=False, indent_guides=False, suppress=[]) + rh = RichHandler(show_time=True, omit_repeated_times=False, show_level=True, show_path=False, markup=False, rich_tracebacks=True, log_time_format='%H:%M:%S-%f', level=logging.DEBUG if args.debug else logging.INFO, console=console) + rh.set_name(logging.DEBUG if args.debug else logging.INFO) + log.addHandler(rh) # check if package is installed def installed(package, friendly: str = None): @@ -312,7 +306,17 @@ def install_submodules(): log.error(f'Error updating submodule: {submodule}') -# install requirements +def ensure_package(package): + try: + import package + except ImportError: + install(package) + + +def ensure_base_requirements(): + ensure_package('rich') + + def install_requirements(): if args.skip_requirements: return