models
appimage_updater.core.models
¶
Data models for releases and updates.
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).