https://github.com/pyveci/verlib2
Standalone variant of "distutils.version" and "packaging.version", without anything else.
https://github.com/pyveci/verlib2
distutils packaging packaging-python python python-distutils python-packaging python-version python-versions versioning
Last synced: about 6 hours ago
JSON representation
Standalone variant of "distutils.version" and "packaging.version", without anything else.
- Host: GitHub
- URL: https://github.com/pyveci/verlib2
- Owner: pyveci
- License: bsd-2-clause
- Created: 2023-10-13T23:07:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-01T13:51:57.000Z (26 days ago)
- Last Synced: 2025-06-13T19:03:38.371Z (14 days ago)
- Topics: distutils, packaging, packaging-python, python, python-distutils, python-packaging, python-version, python-versions, versioning
- Language: Python
- Homepage:
- Size: 54.7 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
# verlib2
[](https://github.com/pyveci/verlib2/actions/workflows/main.yml)
[](https://codecov.io/gh/pyveci/verlib2/)
[](https://pypi.org/project/verlib2/)[](https://github.com/pyveci/verlib2/blob/main/LICENSE)
[](https://pypi.org/project/verlib2/)
[](https://pypi.org/project/verlib2/)
[](https://www.pepy.tech/projects/verlib2)» [Changelog]
| [PyPI]
| [Issues]
| [Source code]
| [License][Changelog]: https://github.com/pyveci/verlib2/blob/main/CHANGES.md
[Documentation]: https://verlib2.readthedocs.io/
[Issues]: https://github.com/pyveci/verlib2/issues
[License]: https://github.com/pyveci/verlib2/blob/main/LICENSE
[PyPI]: https://pypi.org/project/verlib2/
[Source code]: https://github.com/pyveci/verlib2## 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
```shell
pip install verlib2
```## Usage
```python
from verlib2 import Versionassert 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:
```python
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
- https://peps.python.org/pep-0386/
- https://peps.python.org/pep-0440/
- http://bitbucket.org/tarek/distutilsversion/
- https://pypi.org/project/verlib/
- https://hg.python.org/distutils2
- https://github.com/pypa/packaging/blob/23.2/src/packaging/version.py
- https://github.com/numpy/numpy/pull/21000
- https://github.com/numpy/numpy/blob/v1.26.0/numpy/_utils/_pep440.py
- https://github.com/crate/crate-python/pull/513
- https://pypi.org/search/?q=pep440
- https://pypi.org/project/pep440/
- https://pypi.org/project/pep440deb/
- https://pypi.org/project/pep440nz/
- https://pypi.org/project/pep440-rs/
- https://pypi.org/project/pep440-utility/
- https://pypi.org/project/pep440-version-utils/
- https://pypi.org/project/version-utils/## Development
Set up package in development mode.
```shell
python3 -m venv .venv
source .venv/bin/activate
pip install --editable='.[develop,test]'
```Run software tests.
```shell
poe check
```[verlib]: https://pypi.org/project/verlib/
[verlib2]: https://pypi.org/project/verlib2/
[PEP 386]: https://peps.python.org/pep-0386/
[PEP 440]: https://peps.python.org/pep-0440/