Skip to content

python-semver/python-semver

Repository files navigation

Quickstart

A Python module for semantic versioning. Simplifies comparing versions.

Build status Python versions Monthly downloads from PyPI Software license Documentation Status

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 :func:`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 :func:`semver.parse_version_info` function converts a version string into a :class:`semver.VersionInfo` class. The function :func:`semver.VersionInfo.bump_major` leaves the original object untouched, but returns a new :class:`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 :func:`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!

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy