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:
are located in the
meta_package_manager.managerssubpackage, andare sub-classes of
meta_package_manager.manager.PackageManager, and- are not
meta_package_manager.manager.PackageManager.virtual, meaning they have a non-null
meta_package_manager.manager.PackageManager.cli_namesproperty.
- are not
These properties are checked and enforced in unittests.
- class meta_package_manager.pool.ManagerPool[source]ΒΆ
Bases:
objectA 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
*.tomlpackage 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
idis 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. Seemeta_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 frombuiltin_manager_ids.
- property bundled_manager_ids: frozenset[str][source]ΒΆ
IDs of the managers mpm ships as bundled configuration definitions.
Config-defined (built from shipped
*.tomlpackage data, not a Python class) yet always present inregisterlike the built-ins. Disjoint frombuiltin_manager_idsandconfig_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. Seemeta_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_managersto 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_managerscall but were never user-overridden.
- get(key)ΒΆ
- 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
registerfrom outside) so the cache invalidation stays in one place. Applied bymeta_package_manager.config.register_config_managers().- Return type:
- 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.