Skip to main content

A library implementing the 'SemVer' scheme.

Project description


This small python library provides a few tools to handle SemVer in Python.

Handles the full 2.0.0-rc1 version of the SemVer scheme, and provides tools to declare version ranges.

The full doc is available on; simple usage is described below.


Define a Version:

>>> from semantic_version import Version
>>> v = Version('0.1.1')

Compare it to other versions:

>>> v < Version('0.1.2')
>>> sorted([Version('0.1.1'), Version('0.11.1'), Version('0.1.1-alpha')])
[Version('0.1.1-alpha'), Version('0.1.1'), Version('0.11.1')]

Define a simple specification:

>>> from semantic_version import Spec
>>> s = Spec('>=0.1.1')
>>> Version('0.1.1') in s
>>> Version('0.1.1-alpha') in s

Define complex specifications:

>>> s = Spec('>=0.1.1,<0.2.0')
>>> Version('0.1.2') in s
>>> Version('0.3.0') in s
>>> Version('0.2.0') in s

Select the best compatible version from a list:

>>> s = Spec('>=0.1.1,<0.2.0')
>>>[Version('0.1.1'), Version('0.1.9-alpha'), Version('0.1.9-alpha+1'))

Framework integration

Integrates with Django, through the VersionField and SpecField custom fields:

from semantic_version import django_fields as semver_fields

class MyComputer(models.Model):
    name = models.CharField(max_length=40)
    kernel_version = semver_fields.VersionField()

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

semantic_version-2.1.0.tar.gz (10.1 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page