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

Uploaded Source

Built Distribution

semver-3.0.2-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for semver-3.0.2.tar.gz
Algorithm Hash digest
SHA256 6253adb39c70f6e51afed2fa7152bcd414c411286088fb4b9effb133885ab4cc
MD5 0bbc4d74959c9f1522f75ffb4ae0934d
BLAKE2b-256 416ca536cc008f38fd83b3c1b98ce19ead13b746b5588c9a0cb9dd9f6ea434bc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for semver-3.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4
MD5 4317e148d323525fcd740d0ac312be14
BLAKE2b-256 9a770cc7a8a3bc7e53d07e8f47f147b92b0960e902b8254859f4aee5c4d7866b

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page