meta_package_manager.base
- Package manager definition¶
-
exception
meta_package_manager.base.
CLIError
(code, output, error)[source]¶ Bases:
Exception
An error occured when running package manager CLI.
The exception internally keeps the result of CLI execution.
-
class
meta_package_manager.base.
PackageManager
[source]¶ Bases:
object
Base class from which all package manager definitions should inherits.
-
cli_args
= []¶
-
platforms
= frozenset({})¶
-
requirement
= None¶
-
cli_name
¶ Package manager’s CLI name.
Is derived by default from the manager’s ID.
-
cli_path
¶ Fully qualified path to the package manager CLI.
Automaticaly search the location of the CLI in the system.
Returns None if CLI is not found or is not a file.
-
version_string
¶ Raw but cleaned string of the package manager version.
Returns None if the manager had an issue extracting its version.
-
version
¶ Parsed and normalized package manager’s own version.
Returns an instance of
packaging.Version
or None.
-
id
¶ Return package manager’s ID. Defaults based on class name.
This ID must be unique among all package manager definitions and lower-case as they’re used as feature flags for the mpm CLI.
-
name
¶ Return package manager’s common name. Defaults based on class name.
-
supported
¶ Is the package manager supported on that platform?
-
executable
¶ Is the package manager CLI can be executed by the current user?
-
fresh
¶ Does the package manager match the version requirement?
-
available
¶ Is the package manager available and ready-to-use on the system?
- Returns True only if the main CLI:
1 - is supported on the current platform, 2 - was found on the system, 3 - is executable, and 4 - match the version requirement.
-
run
(args, dry_run=False)[source]¶ Run a shell command, return the output and keep error message.
Removes ANSI escape codes, and returns ready-to-use strings.
-
property
sync
¶ Refresh local manager metadata from remote repository.
-
property
installed
¶ List packages currently installed on the system.
Returns a dict indexed by package IDs. Each item is a dict with package ID, name and version.
-
static
exact_match
(query, result)[source]¶ Compare search query and matching result.
Returns True if the matching result exactly match the search query.
Still pplies a light normalization and tokenization of strings before comparison to make the “exactiness” in the human sense instead of strictly machine sense.
-
search
(query)[source]¶ Search packages whose ID contain exact or partial query.
Returns a dict indexed by package IDs. Each item is a dict with package ID, name, version and a boolean indicating if the match is exact or partial.
-
property
outdated
¶ List currently installed packages having a new version available.
Returns a dict indexed by package IDs. Each item is a dict with package ID, name, current installed version and latest upgradeable version.
-
upgrade
(package_id=None, dry_run=False)[source]¶ Perform the upgrade of the provided package to latest version.
-