Skip to main content

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

Project description

A Python module to simplify semantic versioning.

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

Uploaded Source

Built Distribution

semver-3.0.4-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for semver-3.0.4.tar.gz
Algorithm Hash digest
SHA256 afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602
MD5 a0d76b528e489bf7ce1255a0a1486123
BLAKE2b-256 72d1d3159231aec234a59dd7d601e9dd9fe96f3afff15efd33c1070019b26132

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for semver-3.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746
MD5 c20a46e57c495eb73e8007aaa19cce6e
BLAKE2b-256 a6244d91e05817e92e3a61c8a21e08fd0f390f5301f1c448b137c57c4bc6e543

See more details on using hashes here.

Supported by

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