Devpi Cleaner
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.
Rationale
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.
Throttle removal activities if the Devpi server is having difficulties keeping up.
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.
Commandline Usage
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.
License
Changelog
This is the version history of devpi_cleaner.
Version 0.3.0 - 2021-02-05
Added
Throttle deletion if Devpi seems under heavy load.
Python 3.6 to 3.9 are now officially supported.
Removed
Python 2.7, and 3.3 to 3.5 are no longer supported.
Version 0.2.0 - 2016-04-08
Added
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
Changed
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/.
Removed
Python 3.2 is no longer supported
Version 0.1.1 - 2015-11-23
Added
Add support for HTTPS.
Version 0.1.0 - 2015-07-17
Added
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
Release files for devpi-cleaner 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| devpi-cleaner-0.3.0.tar.gz | 25.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devpi_cleaner-0.3.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 33.5 kB
Release files / devpi-cleaner-0.3.0.tar.gz
| Download URL | devpi-cleaner-0.3.0.tar.gz |
|---|---|
| Size | 25.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7a9f80e2a031d536ed4c5957269136a4f704c5e60401b02de3ffae9a17fc4caa
|
|
BLAKE2b-256 checksum How to use checksums |
6fd5cf5032ad76c55c09c3fe9099dfa78b18bd8d4eebab7dd5a03f6a79c415b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.1
|
Release files / devpi_cleaner-0.3.0-py2.py3-none-any.whl
| Download URL | devpi_cleaner-0.3.0-py2.py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
946c5fb50fc9905b7bec973dca2240edeb04eef31409b193c39d785f41a0bb1a
|
|
BLAKE2b-256 checksum How to use checksums |
526daf884e3738175743490dde7521e0b95212a23d067b6ec920b52da63b4d70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.1
|