Refactor GUI backend config to constants.py

Extracts the hardcoded BeeWare GUI backend configuration (package names, versions, and SHA256 hashes) from `src/seedpass/cli/__init__.py` into a new `GUI_BACKEND_CONFIG` dictionary in `src/constants.py`. This improves maintainability by centralizing configuration and simplifying the CLI logic.

- Adds `GUI_BACKEND_CONFIG` to `src/constants.py`.
- Updates `src/seedpass/cli/__init__.py` to import and use `GUI_BACKEND_CONFIG`.

Co-authored-by: PR0M3TH3AN <[email protected]>
This commit is contained in:
google-labs-jules[bot]andPR0M3TH3AN committed 2026-02-26 19:25:24 +00:00
1 parent ece0dda09f
commit 9e08e5082b
2 files changed
+30 -13

No files matched your search

+21
View File
@@ -55,6 +55,27 @@ INACTIVITY_TIMEOUT = 15 * 60 # 15 minutes
# Duration in seconds that a notification remains active
NOTIFICATION_DURATION = 10
# -----------------------------------
# GUI Backend Configuration
# -----------------------------------
GUI_BACKEND_CONFIG = {
"linux": {
"pkg": "toga-gtk",
"version": "0.5.2",
"sha256": "15b346ac1a2584de5effe5e73a3888f055c68c93300aeb111db9d64186b31646",
},
"win32": {
"pkg": "toga-winforms",
"version": "0.5.2",
"sha256": "83181309f204bcc4a34709d23fdfd68467ae8ecc39c906d13c661cb9a0ef581b",
},
"darwin": {
"pkg": "toga-cocoa",
"version": "0.5.2",
"sha256": "a4d5d1546bf92372a6fb1b450164735fb107b2ee69d15bf87421fec3c78465f9",
},
}
# -----------------------------------
# Additional Constants (if any)
# -----------------------------------
+9 -13
View File
@@ -10,6 +10,7 @@ import typer
from .common import _get_services
from seedpass.core.errors import SeedPassError
from constants import GUI_BACKEND_CONFIG
app = typer.Typer(
help="SeedPass command line interface",
@@ -110,25 +111,20 @@ def gui(
confirmation.
"""
if not _gui_backend_available():
if sys.platform.startswith("linux"):
pkg = "toga-gtk"
version = "0.5.2"
sha256 = "15b346ac1a2584de5effe5e73a3888f055c68c93300aeb111db9d64186b31646"
elif sys.platform == "win32":
pkg = "toga-winforms"
version = "0.5.2"
sha256 = "83181309f204bcc4a34709d23fdfd68467ae8ecc39c906d13c661cb9a0ef581b"
elif sys.platform == "darwin":
pkg = "toga-cocoa"
version = "0.5.2"
sha256 = "a4d5d1546bf92372a6fb1b450164735fb107b2ee69d15bf87421fec3c78465f9"
else:
platform_key = "linux" if sys.platform.startswith("linux") else sys.platform
backend_info = GUI_BACKEND_CONFIG.get(platform_key)
if not backend_info:
typer.echo(
f"Unsupported platform '{sys.platform}' for BeeWare GUI.",
err=True,
)
raise typer.Exit(1)
pkg = backend_info["pkg"]
version = backend_info["version"]
sha256 = backend_info["sha256"]
if not install:
typer.echo(
f"BeeWare GUI backend not found. Please install {pkg} manually or rerun "