Skip to content

version_checker

appimage_updater.core.version_checker

Version checking and comparison utilities.

VersionChecker(repository_client=None, interactive=True)

Handles version checking for applications.

Parameters:

Name Type Description Default
repository_client RepositoryClient | None

Repository client instance (optional, will be created per-app if not provided)

None
interactive bool

Whether to allow interactive distribution selection

True
Source code in src/appimage_updater/core/version_checker.py
def __init__(self, repository_client: RepositoryClient | None = None, interactive: bool = True) -> None:
    """Initialize version checker.

    Args:
        repository_client: Repository client instance (optional, will be created per-app if not provided)
        interactive: Whether to allow interactive distribution selection
    """
    self.repository_client = repository_client
    self.interactive = interactive

interactive = interactive instance-attribute

repository_client = repository_client instance-attribute

check_for_updates(app_config) async

Check for updates for a single application.

Source code in src/appimage_updater/core/version_checker.py
async def check_for_updates(self, app_config: ApplicationConfig) -> CheckResult:
    """Check for updates for a single application."""
    event_bus = get_event_bus()

    # Publish start event
    start_event = UpdateCheckEvent(
        app_name=app_config.name,
        status="checking",
        source="version_checker",
    )
    event_bus.publish(start_event)

    try:
        result = await self._check_repository_updates(app_config)

        # Publish completion event
        completion_event = UpdateCheckEvent(
            app_name=app_config.name,
            status="completed",
            current_version=result.current_version,
            available_version=result.available_version,
            update_available=result.update_available,
            source="version_checker",
        )
        event_bus.publish(completion_event)

        return result
    except Exception as e:
        # Publish error event
        error_event = UpdateCheckEvent(
            app_name=app_config.name,
            status="error",
            error=str(e),
            source="version_checker",
        )
        event_bus.publish(error_event)

        return CheckResult(
            app_name=app_config.name,
            success=False,
            error_message=str(e),
        )