meta_package_manager.pool moduleΒΆ

Registration, indexing and caching of package manager supported by mpm.

meta_package_manager.pool.manager_classes = (<class 'meta_package_manager.managers.am.AM'>, <class 'meta_package_manager.managers.antidote.Antidote'>, <class 'meta_package_manager.managers.antigen.Antigen'>, <class 'meta_package_manager.managers.apk.APK'>, <class 'meta_package_manager.managers.apm.APM'>, <class 'meta_package_manager.managers.apt.APT'>, <class 'meta_package_manager.managers.apt.APT_Mint'>, <class 'meta_package_manager.managers.asdf.ASDF'>, <class 'meta_package_manager.managers.bin.Bin'>, <class 'meta_package_manager.managers.homebrew.Brew'>, <class 'meta_package_manager.managers.homebrew.Cask'>, <class 'meta_package_manager.managers.composer.Composer'>, <class 'meta_package_manager.managers.conda.Conda'>, <class 'meta_package_manager.managers.deb_get.Deb_Get'>, <class 'meta_package_manager.managers.pacman.DkpPacman'>, <class 'meta_package_manager.managers.dnf.DNF'>, <class 'meta_package_manager.managers.dnf.DNF5'>, <class 'meta_package_manager.managers.dotnet.DotNet'>, <class 'meta_package_manager.managers.emerge.Emerge'>, <class 'meta_package_manager.managers.eopkg.EOPKG'>, <class 'meta_package_manager.managers.fisher.Fisher'>, <class 'meta_package_manager.managers.flatpak.Flatpak'>, <class 'meta_package_manager.managers.fwupd.FWUPD'>, <class 'meta_package_manager.managers.gem.Gem'>, <class 'meta_package_manager.managers.gext.Gext'>, <class 'meta_package_manager.managers.ghcup.GHCup'>, <class 'meta_package_manager.managers.guix.Guix'>, <class 'meta_package_manager.managers.neovim.Lazy'>, <class 'meta_package_manager.managers.luarocks.LuaRocks'>, <class 'meta_package_manager.managers.mamba.Mamba'>, <class 'meta_package_manager.managers.mas.MAS'>, <class 'meta_package_manager.managers.neovim.Mason'>, <class 'meta_package_manager.managers.mamba.Micromamba'>, <class 'meta_package_manager.managers.miktex.MiKTeX'>, <class 'meta_package_manager.managers.mise.Mise'>, <class 'meta_package_manager.managers.nala.Nala'>, <class 'meta_package_manager.managers.nimble.Nimble'>, <class 'meta_package_manager.managers.nix.Nix'>, <class 'meta_package_manager.managers.npm.NPM'>, <class 'meta_package_manager.managers.oh_my_fish.OhMyFish'>, <class 'meta_package_manager.managers.pacman.Pacaur'>, <class 'meta_package_manager.managers.pacman.Pacman'>, <class 'meta_package_manager.managers.pacstall.Pacstall'>, <class 'meta_package_manager.managers.pacman.Paru'>, <class 'meta_package_manager.managers.pacman.Pikaur'>, <class 'meta_package_manager.managers.pip.Pip'>, <class 'meta_package_manager.managers.pipx.Pipx'>, <class 'meta_package_manager.managers.pixi.Pixi'>, <class 'meta_package_manager.managers.pkcon.Pkcon'>, <class 'meta_package_manager.managers.pkg.PKG'>, <class 'meta_package_manager.managers.pnpm.PNPM'>, <class 'meta_package_manager.managers.pkg.Ports'>, <class 'meta_package_manager.managers.pwsh_gallery.PWSH_Gallery'>, <class 'meta_package_manager.managers.scoop.Scoop'>, <class 'meta_package_manager.managers.sdkman.SDKMAN'>, <class 'meta_package_manager.managers.sfsu.SFSU'>, <class 'meta_package_manager.managers.sheldon.Sheldon'>, <class 'meta_package_manager.managers.snap.Snap'>, <class 'meta_package_manager.managers.spack.Spack'>, <class 'meta_package_manager.managers.sun_tools.Sun_Tools'>, <class 'meta_package_manager.managers.tazpkg.Tazpkg'>, <class 'meta_package_manager.managers.pacman.Trizen'>, <class 'meta_package_manager.managers.uv.UV'>, <class 'meta_package_manager.managers.uv.UVX'>, <class 'meta_package_manager.managers.vagrant.Vagrant'>, <class 'meta_package_manager.managers.vcpkg.VCPKG'>, <class 'meta_package_manager.managers.neovim.Vim_Pack'>, <class 'meta_package_manager.managers.volta.Volta'>, <class 'meta_package_manager.managers.winget.WinGet'>, <class 'meta_package_manager.managers.xbps.XBPS'>, <class 'meta_package_manager.managers.yarn.YarnBerry'>, <class 'meta_package_manager.managers.yarn.YarnClassic'>, <class 'meta_package_manager.managers.pacman.Yay'>, <class 'meta_package_manager.managers.dnf.YUM'>, <class 'meta_package_manager.managers.zef.Zef'>, <class 'meta_package_manager.managers.zero_install.ZeroInstall'>, <class 'meta_package_manager.managers.zim.Zim'>, <class 'meta_package_manager.managers.zinit.Zinit'>, <class 'meta_package_manager.managers.zplug.Zplug'>, <class 'meta_package_manager.managers.zypper.Zypper'>)ΒΆ

The list of all classes implementing the specific package managers.

Is considered valid package manager, definitions classes which:

  1. are located in the meta_package_manager.managers subpackage, and

  2. are sub-classes of meta_package_manager.manager.PackageManager, and

  3. are not meta_package_manager.manager.PackageManager.virtual, meaning they

    have a non-null meta_package_manager.manager.PackageManager.cli_names property.

These properties are checked and enforced in unittests.

class meta_package_manager.pool.ManagerPool[source]ΒΆ

Bases: object

A dict-like register, instantiating all supported package managers.

ALLOWED_EXTRA_OPTION: Final = frozenset({'cooldown', 'cooldown_policy', 'dry_run', 'ignore_auto_updates', 'plan', 'progress', 'stop_on_error', 'sudo', 'timeout'})ΒΆ

List of extra options that are allowed to be set on managers during the use of the meta_package_manager.pool.ManagerPool.select_managers() helper below.

property register: dict[str, PackageManager][source]ΒΆ

Instantiate all supported package managers.

Built-in classes first, then mpm’s bundled configuration-defined managers (built from shipped *.toml package data). Both land here at construction time, so the augmented pool is complete before the CLI enumerates it to build the dynamic --<id> flags, in every context including the test runner.

property builtin_manager_ids: frozenset[str][source]ΒΆ

IDs of the managers shipped with mpm, taken from manager_classes.

Computed from the classes (their id is set by the metaclass at class creation, no instantiation needed). Lets the configuration layer tell a built-in override apart from a brand-new manager definition: a [mpm.managers.<id>] section whose ID is in this set tunes a built-in, any other ID defines a new manager. See meta_package_manager.config.validate_manager_overrides_section().

property config_defined_ids: set[str][source]ΒΆ

IDs of managers added at runtime from configuration definitions.

Populated by add_manager(). Disjoint from builtin_manager_ids.

property bundled_manager_ids: frozenset[str][source]ΒΆ

IDs of the managers mpm ships as bundled configuration definitions.

Config-defined (built from shipped *.toml package data, not a Python class) yet always present in register like the built-ins. Disjoint from builtin_manager_ids and config_defined_ids.

property known_manager_ids: frozenset[str][source]ΒΆ

Every manager ID mpm ships: built-in classes plus bundled definitions.

A [mpm.managers.<id>] section keyed by one of these tunes a shipped manager (an override); any other ID defines a brand-new one. The configuration layer routes override-versus-definition on this set. See meta_package_manager.config.validate_manager_overrides_section().

property overridden_fields: dict[str, set[str]][source]ΒΆ

Per-manager attribute names that the user explicitly overrode via [mpm.managers.<id>].

Populated by meta_package_manager.config.apply_manager_overrides(). Read by _select_managers to skip the global --<flag> defaults for fields the user has explicitly set per manager. Tracked separately from instance __dict__ membership so the global defaults can still refresh fields that were previously set by an earlier _select_managers call but were never user-overridden.

get(key)ΒΆ
values()[source]ΒΆ
items()[source]ΒΆ
add_manager(manager)[source]ΒΆ

Register a runtime-built manager (from a config definition) into the pool.

Inserts the instance and evicts the cached ID lists so the new manager is picked up by selection, default-set computation and the dynamic CLI flags. Built into the pool (rather than mutating register from outside) so the cache invalidation stays in one place. Applied by meta_package_manager.config.register_config_managers().

Return type:

None

property all_manager_ids: tuple[str, ...][source]ΒΆ

All recognized manager IDs.

Returns a list of sorted items to provide consistency across all UI, and reproducibility in the order package managers are evaluated.

property maintained_manager_ids: tuple[str, ...][source]ΒΆ

All manager IDs which are not unmaintained.

property default_manager_ids: tuple[str, ...][source]ΒΆ

All manager IDs supported on the current platform and not unmaintained.

Must keep the same order defined by meta_package_manager.pool.ManagerPool.all_manager_ids.

property unsupported_manager_ids: tuple[str, ...][source]ΒΆ

All manager IDs unsupported on the current platform but still maintained.

Order is not important here as this list will be used to discard managers from selection sets.

select_managers(*args, **kwargs)[source]ΒΆ

Wraps _select_managers() to stop CLI execution if no manager are selected.

Return type:

Iterator[PackageManager]