models
appimage_updater.core.models
¶
Data models for releases and updates.
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
Asset
¶
Represents a downloadable asset.
architecture
property
¶
Extract architecture from filename.
checksum_asset = Field(default=None, description='Associated checksum file asset')
class-attribute
instance-attribute
¶
created_at = Field(description='Asset creation time')
class-attribute
instance-attribute
¶
download_url
property
¶
Get download URL (alias for url).
file_extension
property
¶
Extract file extension from filename.
name = Field(description='Asset filename')
class-attribute
instance-attribute
¶
platform
property
¶
Extract platform from filename.
size = Field(description='File size in bytes')
class-attribute
instance-attribute
¶
url = Field(description='Download URL')
class-attribute
instance-attribute
¶
CheckResult
¶
Result of checking for updates.
app_name = Field(description='Application name')
class-attribute
instance-attribute
¶
asset = Field(default=None, description='Associated asset')
class-attribute
instance-attribute
¶
available_version = Field(default=None, description='Available version')
class-attribute
instance-attribute
¶
candidate = Field(default=None, description='Update candidate')
class-attribute
instance-attribute
¶
checked_at = Field(default_factory=(datetime.now), description='Check time')
class-attribute
instance-attribute
¶
current_version = Field(default=None, description='Current version')
class-attribute
instance-attribute
¶
download_url = Field(default=None, description='Download URL')
class-attribute
instance-attribute
¶
error_message = Field(default=None, description='Error message if failed')
class-attribute
instance-attribute
¶
message = Field(default=None, description='Status message')
class-attribute
instance-attribute
¶
success = Field(description='Whether check was successful')
class-attribute
instance-attribute
¶
update_available = Field(default=False, description='Whether update is available')
class-attribute
instance-attribute
¶
ChecksumResult
¶
Result of checksum verification.
actual = Field(default=None, description='Actual checksum')
class-attribute
instance-attribute
¶
algorithm = Field(default=None, description='Hash algorithm used')
class-attribute
instance-attribute
¶
error_message = Field(default=None, description='Error if verification failed')
class-attribute
instance-attribute
¶
expected = Field(default=None, description='Expected checksum')
class-attribute
instance-attribute
¶
verified = Field(description='Whether checksum was verified')
class-attribute
instance-attribute
¶
DownloadResult
¶
Result of downloading an update.
app_name = Field(description='Application name')
class-attribute
instance-attribute
¶
checksum_result = Field(default=None, description='Checksum verification result')
class-attribute
instance-attribute
¶
download_size = Field(default=0, description='Downloaded bytes')
class-attribute
instance-attribute
¶
duration_seconds = Field(default=0.0, description='Download duration')
class-attribute
instance-attribute
¶
error_message = Field(default=None, description='Error message if failed')
class-attribute
instance-attribute
¶
file_path = Field(default=None, description='Downloaded file path')
class-attribute
instance-attribute
¶
success = Field(description='Whether download was successful')
class-attribute
instance-attribute
¶
InteractiveResult
¶
Result from interactive operations.
cancelled = Field(default=False, description='Whether the operation was cancelled by user')
class-attribute
instance-attribute
¶
data = Field(default=None, description='Operation result data')
class-attribute
instance-attribute
¶
reason = Field(default=None, description='Reason for cancellation or failure')
class-attribute
instance-attribute
¶
success = Field(description='Whether the operation completed successfully')
class-attribute
instance-attribute
¶
cancelled_result(reason)
classmethod
¶
Release
¶
Represents a software release.
assets = Field(description='Available assets')
class-attribute
instance-attribute
¶
is_draft = Field(default=False, description='Is draft')
class-attribute
instance-attribute
¶
is_prerelease = Field(default=False, description='Is prerelease')
class-attribute
instance-attribute
¶
name = Field(default=None, description='Release name')
class-attribute
instance-attribute
¶
published_at = Field(description='Release publication time')
class-attribute
instance-attribute
¶
tag_name = Field(description='Git tag name')
class-attribute
instance-attribute
¶
version = Field(description='Release version')
class-attribute
instance-attribute
¶
get_matching_assets(pattern, filter_compatible=False)
¶
Get assets matching the given pattern.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pattern
|
str
|
Regex pattern to match asset names |
required |
filter_compatible
|
bool
|
If True, filter out incompatible architectures/platforms |
False
|
Returns:
Type | Description |
---|---|
list[Asset]
|
List of matching assets, optionally filtered for compatibility |
Source code in src/appimage_updater/core/models.py
UpdateCandidate
¶
Represents an available update.
app_config = Field(default=None, description='Application configuration for rotation settings')
class-attribute
instance-attribute
¶
app_name = Field(description='Application name')
class-attribute
instance-attribute
¶
asset = Field(description='Asset to download')
class-attribute
instance-attribute
¶
checksum_required = Field(default=False, description='Whether checksum verification is required')
class-attribute
instance-attribute
¶
current_version = Field(description='Currently installed version')
class-attribute
instance-attribute
¶
download_path = Field(description='Local download path')
class-attribute
instance-attribute
¶
is_newer = Field(description='Whether this is actually newer')
class-attribute
instance-attribute
¶
latest_version = Field(description='Latest available version')
class-attribute
instance-attribute
¶
needs_update
property
¶
Check if update is needed.
release = Field(default=None, description='Associated release')
class-attribute
instance-attribute
¶
version
property
¶
Get version string (alias for latest_version).
rebuild_models()
¶
Rebuild models after all imports are resolved.