versus

Package version comparison made easy.

PyPI Version Supported Python versions Build Status Documentation Status llms.txt - documentation for LLMs MIT Coverage

versus is a standalone, portable, dependency-free Python module for retrieving and comparing installed package versions. It supports variety of lookups, such as lte, lt, gte, gt and eq.

Prerequisites

Python 3.9+

Installation

pip

pip install versus

Download and copy

versus.py is the sole, self-contained module of the package. It includes tests too. If it’s more convenient to you, you could simply download the versus.py module and include it in your repository.

Since tests are included, it won’t have a negative impact on your test coverage (you might need to tweak your test/coverage configuration).

Documentation

Usage

Comparing Django versions.

from versus import get_version

django_version = get_version("django")
print(django_version)  # 5.2.1

django_version.gte("4.2")  # True
django_version.gte("5.2")  # True
django_version.gte("5.2.1")  # True
django_version.gte("5.2.2")  # False

Comparing sphinx-autobuild versions:

sphinx_autobuild_version = get_version("sphinx-autobuild")
print(sphinx_autobuild_version)  # 2024.10.3

sphinx_autobuild_version.gte("1.0")  # True
sphinx_autobuild_version.gte("2024.09")  # True
sphinx_autobuild_version.gte("2024.11")  # False
sphinx_autobuild_version.lte("2024.11")  # True

Non-existent/non-installed package lookup would return None:

nonexistent_package = get_version("nonexistent-package")
print(nonexistent_package)  # None

Tests

Run the tests with unittest:

python -m unittest versus

Or pytest:

pytest

Writing documentation

Keep the following hierarchy.

=====
title
=====

header
======

sub-header
----------

sub-sub-header
~~~~~~~~~~~~~~

sub-sub-sub-header
^^^^^^^^^^^^^^^^^^

sub-sub-sub-sub-header
++++++++++++++++++++++

sub-sub-sub-sub-sub-header
**************************

License

MIT

Support

For security issues contact me at the e-mail given in the Author section.

For overall issues, go to GitHub.

Author

Artur Barseghyan <artur.barseghyan@gmail.com>

Project documentation

Contents: