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

Uploaded Source

Built Distribution

semver-2.9.1-py2.py3-none-any.whl (9.8 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: semver-2.9.1.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.10

File hashes

Hashes for semver-2.9.1.tar.gz
Algorithm Hash digest
SHA256 723be40c74b6468861e0e3dbb80a41fc3b171a2a45bf956c245304773dc06055
MD5 628edf6eb7d3b07db1e3d0a60efacf8f
BLAKE2b-256 7af6caeed415475f817542307b09fd80ed2c5f2d167be86e692d3d7b52222a46

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for semver-2.9.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 095c3cba6d5433f21451101463b22cf831fe6996fcc8a603407fd8bea54f116b
MD5 846f252a0e3a0cc303e3f34bf3b88866
BLAKE2b-256 cb48009529f08dd0f71262a229f0a7948dd5d27eb0e0a9edc74e6e6860ff2925

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