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 Black Formatter

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.VersionInfo.parse function:

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

To raise parts of a version, there are a couple of functions available for you. 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.VersionInfo.parse("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=1, patch=0, 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.10.2.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

semver-2.10.2-py2.py3-none-any.whl (12.4 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: semver-2.10.2.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for semver-2.10.2.tar.gz
Algorithm Hash digest
SHA256 c0a4a9d1e45557297a722ee9bac3de2ec2ea79016b6ffcaca609b0bc62cf4276
MD5 3e11ae9782121e8ffe9f8a8b763a8cb5
BLAKE2b-256 aae8cb894f70a52887f001aff5f264f68272c21fa58268495aca17df396c161f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: semver-2.10.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for semver-2.10.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 21e80ca738975ed513cba859db0a0d2faca2380aef1962f48272ebf9a8a44bd4
MD5 72f92ecbd5220330e142dd4f2b1a824a
BLAKE2b-256 9419275d10576ad1b19b801efa478182d7352d244a40164162334010e3a948d5

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