Skip to main content

Python helper for Semantic Versioning (http://semver.org/) Examples: >>> import semver >>> 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 >>> semver.match("2.0.0", ">=1.0.0") True >>> semver.match("1.0.0", ">1.0.0") False >>> semver.format_version(3, 4, 5, 'pre.2', 'build.4') '3.4.5-pre.2+build.4' >>> version_parts = semver.parse("3.4.5-pre.2+build.4") >>> version_parts == { ... 'major': 3, 'minor': 4, 'patch': 5, ... 'prerelease': 'pre.2', 'build': 'build.4'} True >>> version_info = semver.parse_version_info("3.4.5-pre.2+build.4") >>> version_info VersionInfo(major=3, minor=4, patch=5, prerelease='pre.2', build='build.4') >>> version_info.major 3 >>> version_info > (1, 0) True >>> version_info < (3, 5) True >>> semver.bump_major("3.4.5") '4.0.0' >>> semver.bump_minor("3.4.5") '3.5.0' >>> semver.bump_patch("3.4.5") '3.4.6' >>> semver.max_ver("1.0.0", "2.0.0") '2.0.0' >>> semver.min_ver("1.0.0", "2.0.0") '1.0.0'

Project description

Build status Python versions Monthly downloads from PyPI Software license

A Python module for semantic versioning. Simplifies comparing versions.

Usage

This module provides just couple of functions, main of which are:

>>> import semver
>>> 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
>>> semver.match("2.0.0", ">=1.0.0")
True
>>> semver.match("1.0.0", ">1.0.0")
False
>>> semver.format_version(3, 4, 5, 'pre.2', 'build.4')
'3.4.5-pre.2+build.4'
>>> version_parts = semver.parse("3.4.5-pre.2+build.4")
>>> version_parts == {
...     'major': 3, 'minor': 4, 'patch': 5,
...     'prerelease': 'pre.2', 'build': 'build.4'}
True
>>> version_info = semver.parse_version_info("3.4.5-pre.2+build.4")
>>> version_info
VersionInfo(major=3, minor=4, patch=5, prerelease='pre.2', build='build.4')
>>> version_info.major
3
>>> version_info > (1, 0)
True
>>> version_info < (3, 5)
True
>>> semver.bump_major("3.4.5")
'4.0.0'
>>> semver.bump_minor("3.4.5")
'3.5.0'
>>> semver.bump_patch("3.4.5")
'3.4.6'
>>> semver.max_ver("1.0.0", "2.0.0")
'2.0.0'
>>> semver.min_ver("1.0.0", "2.0.0")
'1.0.0'

Installation

For Python 2:

pip install semver

For Python 3:

pip3 install semver

How to Contribute

When you make changes to the code please run the tests before pushing your code to your fork and opening a pull request:

python setup.py test

We use py.test and tox to run tests against all supported Python versions. All test dependencies are resolved automatically, apart from virtualenv, which for the moment you still may have to install manually:

pip install "virtualenv<14.0.0"  # <14.0.0 needed for Python 3.2 only

You can use the clean command to remove build and test files and folders:

python setup.py clean

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

Uploaded Source

Built Distribution

semver-2.7.4.macosx-10.11-x86_64.exe (72.7 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: semver-2.7.4.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for semver-2.7.4.tar.gz
Algorithm Hash digest
SHA256 e30476c7d060ae12aab1d297e1aa3c16bd328ff70689959c58b15570168dea10
MD5 506dec97b6e89a1c72889cf69c34076c
BLAKE2b-256 5f4050f533c998cd97cbc15f20732291b179b946c532b9adba013aa362d4aad7

See more details on using hashes here.

File details

Details for the file semver-2.7.4.macosx-10.11-x86_64.exe.

File metadata

File hashes

Hashes for semver-2.7.4.macosx-10.11-x86_64.exe
Algorithm Hash digest
SHA256 93fc827ee49264bbd2cc777c55e33d7286ebd3b75a34bfe7ce3dd80ce75b4605
MD5 9b4ada06bc59332ee1a6e860af4a786d
BLAKE2b-256 be283c0b23a197fc905ce7a2f36a780546ac855c3127ee5386625960f49ff57b

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