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 http://python-semanticversion.readthedocs.org/; simple usage is described below.
Install:
$ pip install semantic_version
$
Define a Version:
>>> from semantic_version import Version
>>> v = Version('0.1.1')
Compare it to other versions:
>>> v < Version('0.1.2')
True
>>> 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
True
>>> Version('0.1.1-alpha') in s
False
Define complex specifications:
>>> s = Spec('>=0.1.1,<0.2.0')
>>> Version('0.1.2') in s
True
>>> Version('0.3.0') in s
False
>>> Version('0.2.0') in s
False
Select the best compatible version from a list:
>>> s = Spec('>=0.1.1,<0.2.0')
>>> s.select([Version('0.1.1'), Version('0.1.9-alpha'), Version('0.1.9-alpha+1'))
Version('0.1.9-alpha+1')
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()
- Package on PyPI: http://pypi.python.org/pypi/semantic_version/
- Doc on ReadTheDocs: http://readthedocs.org/docs/python-semanticversion/
- Source on GitHub: http://github.com/rbarrois/python-semanticversion/
- Build on Travis CI: http://travis-ci.org/rbarrois/python-semanticversion/
- Semantic Version specification: http://semver.org/