Skip to main content

A library for comparing version strings

Project description

Compare package versions in all their varied glory.

Description

This module provides the compare() function which compares two version strings and returns a negative value, zero, or a positive value depending on whether the first string represents a version number lower than, equal to, or higher than the second one, and the key_compare() function which may be used as a key for e.g. sorted().

This module does not strive for completeness in the formats of version strings that it supports. Some version strings sorted by its rules are:

  • 0.1.0
  • 0.2.alpha
  • 0.2
  • 0.2.1
  • 0.2a
  • 0.2a.1
  • 0.2a3
  • 0.2a4
  • 0.2p3
  • 1.0~bpo3
  • 1.0.beta
  • 1.0.beta.2
  • 1.0.beta2
  • 1.0.beta3
  • 1.0

Contact

This module is developed in a Gitlab repository. The author is Peter Pentchev.

Version history

2.0.0

  • INCOMPATIBLE CHANGE: teach the comparison algorithm about strings followed by numbers, e.g. RedHat's .el7 suffixes, and also about Debian's ~bpo suffixes that should compare less than anything, even the empty string, similarly to .beta-style suffixes
  • catch up with mypy's unbundling of type definitions for third-party libraries
  • use black version 21 with no changes to the source code
  • follow pylint's suggestion to use an f-string

1.0.1

  • add a MANIFEST.in file so that more files will be included in the source distribution even if built without setuptools_scm
  • move some options to the tools invoked by tox.ini to the setup.cfg and pyproject.toml files

1.0.0

  • reformat the source code using black 20
  • drop Python 2.x compatibility:
    • use types and modules from the Python 3 standard library
    • use type annotations, not type hints
    • subclass NamedTuple, using Python 3.6 variable type annotations
  • switch to a declarative setup.cfg file
  • install the module into the unit_tests tox environment
  • add a PEP 517 buildsystem definition to the pyproject.toml file
  • add the py.typed marker
  • push the source down into a src/ subdirectory
  • add a command-line utility exposing some of the functionality
  • add a shell tool for testing the command-line utility
  • add a manual page generated from an scdoc source file

0.1.0

  • first public release

Project details


Download files

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

Source Distribution

trivver-2.0.0.tar.gz (12.7 kB view hashes)

Uploaded Source

Built Distribution

trivver-2.0.0-py3-none-any.whl (9.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page