Skip to main content

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

Project description

A Python module for semantic versioning. Simplifies comparing versions.

Python Python versions Monthly downloads from PyPI Software license Documentation Status Black Formatter Percentage of open issues GitHub Discussion

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

>>> ver = semver.Version.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.Version.bump_major leaves the original object untouched, but returns a new semver.Version instance with the raised major part:

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

It is allowed to concatenate different “bump functions”:

>>> ver.bump_major().bump_minor()
Version(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-3.0.0.tar.gz (204.4 kB view details)

Uploaded Source

Built Distribution

semver-3.0.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: semver-3.0.0.tar.gz
  • Upload date:
  • Size: 204.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for semver-3.0.0.tar.gz
Algorithm Hash digest
SHA256 94df43924c4521ec7d307fc86da1531db6c2c33d9d5cdc3e64cca0eb68569269
MD5 0d36e4e2b2c4366f2b4b5c53b2abe3c0
BLAKE2b-256 9f93b7389cdd7e573e70cfbeb4b0bbe101af1050a6681342f5d2bc6f1bf2d150

See more details on using hashes here.

File details

Details for the file semver-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: semver-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for semver-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab4f69fb1d1ecfb5d81f96411403d7a611fa788c45d252cf5b408025df3ab6ce
MD5 65ce71af42f187cceb31ba36466ead1d
BLAKE2b-256 5ee2699f6c2e9c4782694cd670a25806fa653e5fd065e9edf5dac33029dcb687

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