models
appimage_updater.config.models
¶
Configuration models for AppImage updater.
ApplicationConfig
¶
Configuration for a single application.
basename = Field(default=None, description='Base name for file matching (defaults to app name if not specified)')
class-attribute
instance-attribute
¶
checksum = Field(default_factory=ChecksumConfig, description='Checksum verification settings')
class-attribute
instance-attribute
¶
download_dir = Field(description='Download directory')
class-attribute
instance-attribute
¶
enabled = Field(default=True, description='Whether to check for updates')
class-attribute
instance-attribute
¶
name = Field(description='Application name')
class-attribute
instance-attribute
¶
pattern = Field(description='File pattern to match')
class-attribute
instance-attribute
¶
prerelease = Field(default=False, description='Include prerelease versions')
class-attribute
instance-attribute
¶
retain_count = Field(default=3, ge=1, le=10, description='Number of old files to retain (1 = keep .old only, 2 = keep .old and .old2, etc.)')
class-attribute
instance-attribute
¶
rotation_enabled = Field(default=False, description='Enable image rotation (.current/.old/.old2, etc.) and symlink management')
class-attribute
instance-attribute
¶
source_type = Field(description='Source type')
class-attribute
instance-attribute
¶
symlink_path = Field(default=None, description='Path to symlink that points to current image (required if rotation_enabled=True)')
class-attribute
instance-attribute
¶
url = Field(description='Source URL')
class-attribute
instance-attribute
¶
model_post_init(__context)
¶
Post-initialization validation.
Source code in src/appimage_updater/config/models.py
validate_download_dir(v)
classmethod
¶
validate_pattern(v)
classmethod
¶
Validate regex pattern.
Source code in src/appimage_updater/config/models.py
validate_symlink_path(v)
classmethod
¶
Validate symlink path (expand user but don't resolve symlinks).
Source code in src/appimage_updater/config/models.py
ChecksumConfig
¶
Configuration for checksum verification.
algorithm = Field(default='sha256', description='Hash algorithm used in checksum file')
class-attribute
instance-attribute
¶
enabled = Field(default=True, description='Whether to verify checksums')
class-attribute
instance-attribute
¶
pattern = Field(default='{filename}-SHA256.txt', description='Pattern to find checksum files (use {filename} as placeholder)')
class-attribute
instance-attribute
¶
required = Field(default=False, description='Whether checksum verification is required (fail if no checksum file)')
class-attribute
instance-attribute
¶
Config
¶
Main configuration container.
applications = Field(default_factory=list)
class-attribute
instance-attribute
¶
global_config = Field(default_factory=GlobalConfig)
class-attribute
instance-attribute
¶
apply_global_defaults_to_config(app_config, app_name)
¶
Apply global defaults to an application configuration dictionary.
Source code in src/appimage_updater/config/models.py
get_effective_config_for_app(app_name)
¶
Get the effective configuration for an app (global defaults + app-specific settings).
Source code in src/appimage_updater/config/models.py
DefaultsConfig
¶
Default settings for new applications.
auto_subdir = Field(default=False, description='Automatically create {appname} subdirectory in download_dir')
class-attribute
instance-attribute
¶
checksum_algorithm = Field(default='sha256', description='Default checksum algorithm')
class-attribute
instance-attribute
¶
checksum_enabled = Field(default=True, description='Enable checksum verification by default')
class-attribute
instance-attribute
¶
checksum_pattern = Field(default='{filename}-SHA256.txt', description='Default checksum file pattern')
class-attribute
instance-attribute
¶
checksum_required = Field(default=False, description='Require checksum verification by default')
class-attribute
instance-attribute
¶
download_dir = Field(default=None, description='Default download directory (None means no global default)')
class-attribute
instance-attribute
¶
prerelease = Field(default=False, description='Include prerelease versions by default')
class-attribute
instance-attribute
¶
retain_count = Field(default=3, ge=1, le=10, description='Default number of old files to retain')
class-attribute
instance-attribute
¶
rotation_enabled = Field(default=False, description='Enable file rotation by default')
class-attribute
instance-attribute
¶
symlink_dir = Field(default=None, description='Default directory for symlinks (None means no global default)')
class-attribute
instance-attribute
¶
symlink_enabled = Field(default=False, description='Enable automatic symlink creation by default')
class-attribute
instance-attribute
¶
symlink_pattern = Field(default='{appname}.AppImage', description='Default pattern for symlink names')
class-attribute
instance-attribute
¶
get_default_download_dir(app_name)
¶
Get effective download directory for an app.
Source code in src/appimage_updater/config/models.py
get_default_symlink_path(app_name)
¶
Get effective symlink path for an app.
Source code in src/appimage_updater/config/models.py
validate_paths(v)
classmethod
¶
Validate and expand user paths.
GlobalConfig
¶
Global configuration settings.