Enables batch removal of packages from a devpi server.
Léon, the devpi cleaner, enables batch removal of artefacts from a devpi server. Given a package and version specification, it will remove the specified versions of a package from either a single index or all indices of a given user.
Devpi cleaner wraps the original devpi remove command. It provides the following extensions:
- Conditionally limit removal to development packages.
- Conditionally limit removal to versions matching a given regular expression.
- Temporarily switch non-volatile indices to volatile.
- Apply a remove operation to all indices of a user.
Léon by Example
The following command will delete all development packages preceding version 0.2 of delete_me on index index1 of the user:
> devpi-cleaner http://localhost:2414/ user/index1 'delete_me<=0.2' --dev-only Password: Packages to be deleted from user/index1: * delete_me 0.2.dev1 on user/index1 * delete_me 0.2.dev2 on user/index1 Cleaning user/index1… 100% (2 of 2) |###########################| Elapsed Time: 0:00:00 Time: 0:00:00 >
As shown, packages will be listed and confirmation required before they are actually deleted from the server.
usage: devpi-cleaner [-h] [--batch] [--dev-only] [--version-filter REGEX] [--force] [--password PASSWORD] [--login LOGIN] server user[/index] package_specification A utility to batch-remove packages from a Devpi server. positional arguments: server The devpi server to operate on. user[/index] The index from which to remove the packages. If only the user part is specified, all indices of that user will be cleaned. package_specification The specification of the package version(s) to remove. optional arguments: -h, --help show this help message and exit --batch Assume yes on confirmation questions. --dev-only Remove only development versions as specified by PEP 440. --version-filter REGEX Remove only versions in which the given regular expression can be found. --force Temporarily make indices volatile to enable package removal. --password PASSWORD The password with which to authenticate. --login LOGIN The user name to user for authentication. Defaults to the user of the indices to operate on. The arguments --dev-only and --version-filter can be combined. In this case only packages passing both filters will be removed.
This is the version history of devpi_cleaner.
Version 0.2.0 - 2016-04-08
- Allow cleaning of single indices instead of all indices of a user. See --help for the invocation syntax.
- Allow to limit the versions to delete via a regular expression.
- Display a progress bar while performing the removal if multiple packages or package versions are selected.
- Python 3.5 is now officially supported
- PyPy is now officially supported
- Prompt the user for a list of package versions and the indices from which to delete them. Previously the user was shown a list of package URLs. However, devpi_cleaner will actually delete by package version, not by uploaded file.
- Improved performance when deleting multiple package versions from non-volatile indices
- Changelog is now maintained in the format suggested by http://keepachangelog.com/.
- Python 3.2 is no longer supported
Version 0.1.1 - 2015-11-23
- Add support for HTTPS.
Version 0.1.0 - 2015-07-17
- Batch removal of packages from all indices of a Devpi user
- Allow restricting removal to development versions
- Enable removal of packages from non-volatile indices
- Batch mode for non-interactive operation