Skip to content
/ verlib2 Public

Standalone variant of "distutils.version" and "packaging.version", without anything else.

License

Notifications You must be signed in to change notification settings

pyveci/verlib2

Repository files navigation

verlib2

Tests Test coverage Python versions

License Status PyPI Downloads

» Changelog | PyPI | Issues | Source code | License

About

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

verlib is the implementation of PEP 386. verlib2 is the implementation of PEP 440. It also includes the original distutils.version implementation, for those who need it going forward.

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.

Setup

pip install verlib2

Usage

from verlib2 import Version

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

Note: verlib2.Version provides packaging's Version, while both implementations can be accessed like this:

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

Acknowledgements

Greg Stein, Greg Ward, Donald Stufft, Tarek Ziadé, and all contributors to distutilsversion, verlib, distutils, distutils2, packaging.version, PEP-0386, PEP-0440, and most probably many more.

Prior Art

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