Skip to main content

Devpi Cleaner

Coverage Status Latest Version

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

New BSD

Changelog

This is the version history of devpi_cleaner.

Version 0.3.1 - 2026-10-20

Added

  • Compatibility with Python 3.11, 3.12, 3.13, 3.14, and 3.15 has been verified.

Changed

  • Stop marking wheels as universal now that Python 2 is no longer supported.

Removed

  • Compatibility with Python 3.6 to 3.10 as well as PyPy 3.7 to 3.10 is no longer verified.

  • Dropped support for running tests via setup.py test. The mechanism is considered deprecated by upstream and removing it allows us to drop a dependency.

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.

Changed

  • Tests are now executed via pytest to avoid compatibility problems with Python 3.10.

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

Metadata

Release files for devpi-cleaner 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devpi-cleaner 0.3.1
File Size Uploaded Provenance Actions
devpi_cleaner-0.3.1.tar.gz 29.3 kB Without provenance Details for devpi_cleaner-0.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for devpi-cleaner 0.3.1
File Interpreter ABI Platform Actions
devpi_cleaner-0.3.1-py3-none-any.whl Python 3 none any Details for devpi_cleaner-0.3.1-py3-none-any.whl

Total release size: 37.3 kB

Release files / devpi_cleaner-0.3.1.tar.gz

Download URL devpi_cleaner-0.3.1.tar.gz
Size 29.3 kB
Tags Source
SHA-256 checksum
How to use checksums
dfd898cb0b57d21c39ad692d730f5cb954c2443f84bb282b58e5b08d6eff7dab
BLAKE2b-256 checksum
How to use checksums
c8d253894c0b85ac2982183a410c6ee326c5c808af29b8866cae67183ec6e3b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / devpi_cleaner-0.3.1-py3-none-any.whl

Download URL devpi_cleaner-0.3.1-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b11c4bd141df7b071fdd70d3653c097606d56cfb04a0ab8fe50a7b778d83274
BLAKE2b-256 checksum
How to use checksums
6f43a08c465424186cc4f7915c9cdcf2134d1bd301541560cdbea18860a12919
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for devpi-cleaner 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page