Skip to main content

verlib2

Tests Test coverage Python versions

License Status PyPI Downloads

» Changelog | PyPI | Issues | Source code | License

About

A standalone bundle of distutils.version and packaging.version, without anything else.

verlib and Distutils are the implementations of PEP 386. packaging.version is the implementation of PEP 440. verlib2 bundles both of them into a standalone package.

To retain backward compatibility with earlier versions of Python, syntax features like PEP 570 have been removed from the original code.

Rationale

Everyone needs to compare versions, but no one wants to add packaging as a dependency. distutils is deprecated, and Python 3.12 removed it from the standard library.

Following PEP 632 to leave distutils behind, we found that people started bundling pep440.py files into their projects, causing some redundancy across the board.

Setup

pip install verlib2

Usage

from verlib2 import Version

assert Version("1.0.dev456") < Version("1!1.2.rev33+123456") 

Note: The verlib2.Version symbol links to verlib2.packaging.version, effectively providing packaging's Version class as the default variant. Both implementations can be accessed like this:

from verlib2.distutils.version import LooseVersion, StrictVersion
from verlib2.packaging.version import Version

Versioning

The version numbering of verlib2 follows that of the packaging package, because most changes to verlib2.packaging.version are mirroring corresponding updates to packaging.version.

Acknowledgements

Alyssa Coghlan, Andrew Kuchling, Donald Stufft, Greg Stein, Greg Ward, Tarek Ziadé, and all contributors to PEP-0386, PEP-0440 and their predecessors, including other members of the Python Distutils-SIG and authors and contributors to the distutilsversion, verlib, distutils, distutils2, packaging.version packages.

Other projects

Notable other projects are pep440-rs and pep440-version-utils if you need better speed or more features. The former implements PEP440 in Rust, and the latter makes it easier to handle version bumps, also following the PEP440 specification. Both packages require Python 3.8 and higher.

Prior Art

We had a look at the pep440, pep440deb, pep440nz, pep440-utility, and version-utils, but apparently, they did not include what we have been looking for.

Development

Set up package in development mode.

python3 -m venv .venv
source .venv/bin/activate
pip install --editable='.[develop,test]'

Run software tests.

poe check

Supported by

JetBrains logo.

Special thanks to the people at JetBrains s.r.o. for supporting us with excellent development tooling.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verlib2-26.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verlib2-26.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file verlib2-26.0.tar.gz.

File metadata

  • Download URL: verlib2-26.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for verlib2-26.0.tar.gz
Algorithm Hash digest
SHA256 6cf64babba084800cb828e1d8d3ef11364ef1dc18e6d73b357cd4b505de1a888
MD5 94eecc8fef699b9d8979b00c31b7c862
BLAKE2b-256 01b8a2b5430ef82770c0d47d6fa31b4ebfb70e4c78317a12512a9382c76e8cc5

See more details on using hashes here.

File details

Details for the file verlib2-26.0-py3-none-any.whl.

File metadata

  • Download URL: verlib2-26.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for verlib2-26.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb3390fb1d6dcac8645fc30850e8879fcbdb5eb0988806541a726e7fd8780dca
MD5 71e2c4b82a13b4465e7f76286043f4b2
BLAKE2b-256 f73434a0465df56931ce496e1bfb0ed517619498c15768168828d2fa9b703c84

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page