# 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) if logger.isEnabledFor(logging.DEBUG): logger.info(f"Application directory created at {APP_DIR}") except Exception as exc: if logger.isEnabledFor(logging.DEBUG): logger.error( f"Failed to create application directory: {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 # ----------------------------------- # Additional Constants (if any) # ----------------------------------- # Add any other constants here as your project expands DEFAULT_SEED_BACKUP_FILENAME = "parent_seed_backup.enc"