mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-10-27 07:52:03 +00:00
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]>
84 lines
2.7 KiB
Python
84 lines
2.7 KiB
Python
# constants.py
|
|
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
# Instantiate the logger
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# -----------------------------------
|
|
# Nostr Relay Connection Settings
|
|
# -----------------------------------
|
|
# Retry fewer times with a shorter wait by default. These values
|
|
# act as defaults that can be overridden via ``ConfigManager``
|
|
# entries ``nostr_max_retries`` and ``nostr_retry_delay``.
|
|
MAX_RETRIES = 2 # Default maximum number of retry attempts
|
|
RETRY_DELAY = 1 # Default seconds to wait before retrying
|
|
MIN_HEALTHY_RELAYS = 2 # Minimum relays that should return data on startup
|
|
|
|
# -----------------------------------
|
|
# Application Directory and Paths
|
|
# -----------------------------------
|
|
APP_DIR = Path.home() / ".seedpass"
|
|
PARENT_SEED_FILE = APP_DIR / "parent_seed.enc" # Encrypted parent seed
|
|
|
|
# -----------------------------------
|
|
# Checksum Files for Integrity
|
|
# -----------------------------------
|
|
SCRIPT_CHECKSUM_FILE = (
|
|
APP_DIR / "seedpass_script_checksum.txt"
|
|
) # Checksum for main script
|
|
|
|
|
|
def initialize_app() -> None:
|
|
"""Ensure the application directory exists."""
|
|
try:
|
|
APP_DIR.mkdir(exist_ok=True, parents=True)
|
|
logger.debug("Application directory created at %s", APP_DIR)
|
|
except Exception as exc:
|
|
logger.error("Failed to create application directory: %s", exc, exc_info=True)
|
|
|
|
|
|
# -----------------------------------
|
|
# Password Generation Constants
|
|
# -----------------------------------
|
|
DEFAULT_PASSWORD_LENGTH = 16 # Default length for generated passwords
|
|
MIN_PASSWORD_LENGTH = 8 # Minimum allowed password length
|
|
MAX_PASSWORD_LENGTH = 128 # Maximum allowed password length
|
|
|
|
# Characters considered safe for passwords when limiting punctuation
|
|
SAFE_SPECIAL_CHARS = "!@#$%^*-_+=?"
|
|
|
|
# Timeout in seconds before the vault locks due to inactivity
|
|
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)
|
|
# -----------------------------------
|
|
# Add any other constants here as your project expands
|
|
DEFAULT_SEED_BACKUP_FILENAME = "parent_seed_backup.enc"
|