Skip to main content

Python helper for Semantic Versioning (http://semver.org/)

Project description

A Python module for semantic versioning. Simplifies comparing versions.

Build status Python versions Monthly downloads from PyPI Software license Documentation Status

The module follows the MAJOR.MINOR.PATCH style:

  • MAJOR version when you make incompatible API changes,

  • MINOR version when you add functionality in a backwards compatible manner, and

  • PATCH version when you make backwards compatible bug fixes.

Additional labels for pre-release and build metadata are supported.

To import this library, use:

>>> import semver

Working with the library is quite straightforward. To turn a version string into the different parts, use the semver.parse function:

>>> ver = semver.parse('1.2.3-pre.2+build.4')
>>> ver['major']
1
>>> ver['minor']
2
>>> ver['patch']
3
>>> ver['prerelease']
'pre.2'
>>> ver['build']
'build.5'

To raise parts of a version, there are a couple of functions available for you. The semver.parse_version_info function converts a version string into a semver.VersionInfo class. The function semver.VersionInfo.bump_major leaves the original object untouched, but returns a new semver.VersionInfo instance with the raised major part:

>>> ver = semver.parse_version_info("3.4.5")
>>> ver.bump_major()
VersionInfo(major=4, minor=0, patch=0, prerelease=None, build=None)

It is allowed to concatenate different “bump functions”:

>>> ver.bump_major().bump_minor()
VersionInfo(major=4, minor=0, patch=1, prerelease=None, build=None)

To compare two versions, semver provides the semver.compare function. The return value indicates the relationship between the first and second version:

>>> semver.compare("1.0.0", "2.0.0")
-1
>>> semver.compare("2.0.0", "1.0.0")
1
>>> semver.compare("2.0.0", "2.0.0")
0

There are other functions to discover. Read on!

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

semver-2.9.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

semver-2.9.0-py2.py3-none-any.whl (9.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file semver-2.9.0.tar.gz.

File metadata

  • Download URL: semver-2.9.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for semver-2.9.0.tar.gz
Algorithm Hash digest
SHA256 ed1edeaa0c27f68feb74f09f715077fd07b728446dc2bb7fc470fc0f737873a0
MD5 a411b305a3f6714bca126a0b59dc4429
BLAKE2b-256 bec8392e3c1c4080202b99e8b3b5d0ab6cbcfc4b25d50031c2c21d130871bf88

See more details on using hashes here.

File details

Details for the file semver-2.9.0-py2.py3-none-any.whl.

File metadata

  • Download URL: semver-2.9.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for semver-2.9.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aa1c6be3bf23e346e00c509a7ee87735a7e0fd6b404cf066037cfeab2c770320
MD5 ff733c5c0bee993c8d3baa619d7520b8
BLAKE2b-256 38f10c9b852c5136364c0dd59ee1d89e0d7599bef6c9f1869e0f2e07882253ea

See more details on using hashes here.

Supported by

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