FreedomBox/plinth/version.py
James Valleroy 4920e33160
version: Compare Debian package version numbers
Provides a Version class wrapper around apt_pkg.version_compare.

Replaces distutils.version which is deprecated.

Closes: #2261.

Tests:

- Install ejabberd.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
[sunil: Add two more version comparison tests]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-09-08 21:38:58 -07:00

23 lines
514 B
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Compare Debian package version numbers.
"""
from functools import total_ordering
from apt import apt_pkg
@total_ordering
class Version:
"""The version number of a Debian package."""
def __init__(self, version: str):
self.version = version
def __eq__(self, other):
return apt_pkg.version_compare(self.version, other.version) == 0
def __lt__(self, other):
return apt_pkg.version_compare(self.version, other.version) < 0