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.12.0.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

semver-2.12.0-py2.py3-none-any.whl (12.9 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: semver-2.12.0.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.22.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.10

File hashes

Hashes for semver-2.12.0.tar.gz
Algorithm Hash digest
SHA256 9661f6920fe546b70c7cdde8ca6420d852516efdfa2dbc1e58ab5972e773f43d
MD5 c12721b1055936adb8fc41fdcf549751
BLAKE2b-256 f45cebc546bbc236a56330b0fb3711f80f8ebc278cde81aef9d9158cec4f91d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: semver-2.12.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.22.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.10

File hashes

Hashes for semver-2.12.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a7b14edf94747ebdd08a5ee7c1d0366b039cf144f0e0eba6553b2c6d2bf9b6f8
MD5 6d9fe6c68a1e87d244af8a7c5b6ba249
BLAKE2b-256 1edd37a34ebb0536d824e0a736343195305d9ad8c733f48ab9f82a56eaa09b45

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