From d096c8bc9651f64bd351ec8e9e1b1d698e47dccc Mon Sep 17 00:00:00 2001 From: ethan Date: Sat, 11 Oct 2025 12:23:46 -0600 Subject: [PATCH] #2 Adds "red" rich styling for remaining error messages on any word that references a package or the exact reason for the error message. --- dexi/commands/installer.py | 8 ++++---- dexi/commands/manager.py | 14 +++++++------- dexi/core/errors.py | 6 +++--- dexi/core/package.py | 7 +++---- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/dexi/commands/installer.py b/dexi/commands/installer.py index f94f384..09aa5f1 100644 --- a/dexi/commands/installer.py +++ b/dexi/commands/installer.py @@ -42,7 +42,7 @@ def uninstall_package(package: str): found_package = fetch_package(package, dexi_tool["packages"]) if found_package is None: - error(f"Could not find '{package}' package") + error(f"Could not find [red]'{package}'[/red] package") return data = Package.from_git(found_package["git"], found_package["branch"]) @@ -107,8 +107,8 @@ def install_package( if data.app is not None: if not app_operations_supported(): error( - f"DexI packages with Django apps are not supported " - f"on Ballsdex v$BD_V, please update to v{SUPPORTED_APP_VERSION}+" + f"[red]DexI packages[/red] with Django apps are not supported " + f"on [red]Ballsdex v$BD_V[/red], please update to v{SUPPORTED_APP_VERSION}+" ) app_desination = f"{os.getcwd()}/admin_panel/{data.app.target}" @@ -124,7 +124,7 @@ def install_package( response = requests.get(zip_url) if not response.ok: - error(f"Failed to fetch {name}") + error(f"Failed to fetch [red]{name}[/red]") with zipfile.ZipFile(io.BytesIO(response.content)) as z: base_folder = f"{repository}-{branch}/" diff --git a/dexi/commands/manager.py b/dexi/commands/manager.py index ad61dfe..d21da26 100644 --- a/dexi/commands/manager.py +++ b/dexi/commands/manager.py @@ -46,9 +46,9 @@ def add_package(package: str, branch: str): if installed_version not in specifier: error( - f"Ballsdex version requirement for '{package}' is set to " - f"'{data.ballsdex_version}', while this instance is on " - f"version '{ballsdex}'" + f"Ballsdex version requirement for [red]'{package}'[/red] is set to " + f"[red]'{data.ballsdex_version}'[/red], while this instance is on " + f"version [red]'{ballsdex}'[/red]" ) project = parse_pyproject() @@ -58,7 +58,7 @@ def add_package(package: str, branch: str): dexi = tool.setdefault("dexi", table()) if not initialized and fetch_package(package, fetch_all_packages()) is not None: - error("This package has already been added") + error("This [red]package[/red] has already been added") package_array = dexi.setdefault("packages", array().multiline(True)) @@ -113,7 +113,7 @@ def remove_package(package: str): package_entry = fetch_package(package, dexi_tool["packages"]) if package_entry is None: - error(f"Could not find '{package}' package") + error(f"Could not find [red]'{package}'[/red] package") return uninstall_package(package) @@ -176,12 +176,12 @@ def update_package(package: str | PackageEntry): dexi_project = parse_pyproject() if "tool" not in dexi_project or "dexi" not in dexi_project["tool"]: # type: ignore - error("pyproject.toml contains invalid DexI data") + error("[red]pyproject.toml[/red] contains invalid [red]DexI data[/red]") dexi_tool = dexi_project["tool"]["dexi"] # type: ignore if "packages" not in dexi_tool: # type: ignore - error("pyproject.toml contains invalid DexI data") + error("[[red]pyproject.toml[/red] contains invalid [red]DexI data[/red]") packages = dexi_tool["packages"] # type: ignore diff --git a/dexi/core/errors.py b/dexi/core/errors.py index 89cd1e0..3a74fb7 100644 --- a/dexi/core/errors.py +++ b/dexi/core/errors.py @@ -21,14 +21,14 @@ def invalid_project() -> None: if os.path.isdir("ballsdex") and os.path.isfile("pyproject.toml"): return - error("Attempted to use DexI command on an invalid project") + error("Attempted to use [red]DexI[/red] command on an [red]invalid project[/red]") @staticmethod def no_config_found() -> None: if os.path.isfile("config.yml"): return - error("No 'config.yml' file detected") + error("No [red]'config.yml'[/red] file detected") @staticmethod def invalid_version() -> None: @@ -36,7 +36,7 @@ def invalid_version() -> None: return error( - "DexI does not support Ballsdex v$BD_V, please update to " + "DexI does not support [red]Ballsdex v$BD_V[/red], please update to " f"v{SUPPORTED_VERSION}+" ) diff --git a/dexi/core/package.py b/dexi/core/package.py index 452f2c3..8a49d71 100644 --- a/dexi/core/package.py +++ b/dexi/core/package.py @@ -3,7 +3,6 @@ from .utils import error, fetch_pyproject, package_name - @dataclass class PackageConfig: """ @@ -44,19 +43,19 @@ class Package: def from_git(cls, package: str, branch: str) -> Self: if package.count("/") != 1: error( - "Invalid GitHub repository identifier entered; Expected " + "Invalid GitHub repository identifier entered; Expected [red][/red]" ) data = fetch_pyproject(package, branch) if not data or "tool" not in data or "dexi" not in data["tool"]: - error(f"Could not locate {package_name(package, branch)}") + error(f"Could not locate [red]{package_name(package, branch)}[/red]") dexi_tool = data["tool"]["dexi"] dexi_package = dexi_tool["package"] if not dexi_tool.get("public", False): - error(f"Could not locate {package_name(package, branch)}") + error(f"Could not locate [red]{package_name(package, branch)}[/red]") package_config = PackageConfig( dexi_package["source"], dexi_package["target"], dexi_package.get("exclude")