Skip to main content

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

Project description

Quickstart

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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: semver-3.0.0.dev3.tar.gz
  • Upload date:
  • Size: 56.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.12

File hashes

Hashes for semver-3.0.0.dev3.tar.gz
Algorithm Hash digest
SHA256 7175229bdcf96a6702b077e30226f041ce112057146ae81e84b51df08a8a75cf
MD5 4d7c58e124c6693ba9d7c0d073aa1508
BLAKE2b-256 b1c628e6ebddcbfd34d64e27c4376fc5c5e30b1744af0e19ed7c5a4973d76ad3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: semver-3.0.0.dev3-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.12

File hashes

Hashes for semver-3.0.0.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 10651d0dacffdce7a2f0658e58894b138f52c2a080f7d69aa999810ebfc1f97d
MD5 b658fd7a1aecbc641defcd2569d7a528
BLAKE2b-256 2a4c2ddd4ce43c977fceb6ede9b53552dd5e0a04b5c4abe9821b266f49842f46

See more details on using hashes here.

Supported by

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