Skip to main content

This python module provides a version class. Instances of this class may be used in representing and version numbers and compare them.

Project description

jk_version

Introduction

This python module provides a version class. Instances of this class may be used in representing and version numbers and compare them.

Information about this module can be found here:

Why this module?

To manage data and software packages in a reasonable way versioning is important. For this you need to represent versions in computer memory. This is what this module does: Provide version objects so that you can work with version information programmatically. That's what this module has been written for.

Functionality

This module provides:

  • Version - An object to represent version numbers in memory. (Parsing of version numbers is provided by this object as well.)
  • Constraint classes that can be used to check versions:
    • BaseVersionConstraint - the abstract base class for all constraints
    • A set of concrete constraint classes: VersionConstraint[GE|GT|LE|LT|NE|EQ|AND|OR]

How to use this module

Import this module

Please include this module into your application using the following code:

import jk_version

Parse a version number

Version numbers can either be specified as lists of integers or as a string. Examples:

  • Version([ 1, 7, 51 ])
  • Version(( 1, 7, 51 ))
  • Version("1.7.51")

Version numbering schema

For compatibility reasons the version number parser is designed to accept the following schema:

[ epoch ":" ] version_data [ "-" extra ]

Where epoch is optional and - if present - must be an integer, and version_data is a regular version string consisting of decimal numbers separated by points.

Examples for valid version numbers:

  • 0
  • 0.1
  • 0.1.2
  • 2020.12.24
  • 2:0.1.2

An extra identifier is supported:

  • 0.1.2-dev
  • 1.2.3-stable
  • 2.3.4-SNAPSHOT
  • 3.4.5-beta2

Comparing version numbers

Version numbers can be compared. Example:

v1 = Version("0.1.2")
v2 = Version("0.2.0")
print(v2 > v1)

This will result in: True

NOTE: Please note that extra identifiers are stored in version objects but are ignored otherwise. If you require to compare two versions and this comparison must take this extra identifier into account you need to implement your own comparison function for this purpose. This is because of the fact that there is no general convention how this extra information can be processed.

Compatible Modules

Version number parsers:

Contact Information

This work is Open Source. This enables you to use this work for free.

Please have in mind this also enables you to contribute. We, the subspecies of software developers, can create great things. But the more collaborate, the more fantastic these things can become. Therefore Feel free to contact the author(s) listed below, either for giving feedback, providing comments, hints, indicate possible collaborations, ideas, improvements. Or maybe for "only" reporting some bugs:

License

This software is provided under the following license:

  • Apache Software License 2.0

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

jk_version-0.2022.2.2.tar.gz (12.0 kB view details)

Uploaded Source

File details

Details for the file jk_version-0.2022.2.2.tar.gz.

File metadata

  • Download URL: jk_version-0.2022.2.2.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.26.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10

File hashes

Hashes for jk_version-0.2022.2.2.tar.gz
Algorithm Hash digest
SHA256 9bee07c6658fdd1107ddcc8483e96553fdfe1ba84f975099de027714cd946d41
MD5 b6dbd0f2b3ffa01250efe1c8b808ca03
BLAKE2b-256 564064a5dcb16d44be64529e74c1d537801836bc9e5234624d8c8dfc34a7a7ab

See more details on using hashes here.

Supported by

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