Skip to content

factory

get_package_manager(*, distro, manager)

Return a unified package manager backend for the given environment.

Parameters:

Name Type Description Default
distro str

A normalized distro identifier (e.g. "ubuntu").

required
manager str

The package manager identifier (e.g. "apt").

required

Returns:

Type Description
PackageManager | None

A PackageManager instance if supported, otherwise None.

Source code in src/awesome_os/tasks/factory.py
def get_package_manager(*, distro: str, manager: str) -> PackageManager | None:
    """Return a unified package manager backend for the given environment.

    Args:
        distro: A normalized distro identifier (e.g. `"ubuntu"`).
        manager: The package manager identifier (e.g. `"apt"`).

    Returns:
        A `PackageManager` instance if supported, otherwise `None`.
    """
    factory = _PACKAGE_MANAGER_FACTORY_BY_DISTRO.get(distro, {}).get(manager)
    return factory() if factory else None