1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
python-semanticversion
======================
.. image:: https://secure.travis-ci.org/rbarrois/python-semanticversion.png?branch=master
:target: http://travis-ci.org/rbarrois/python-semanticversion/
This small python library provides a few tools to handle `SemVer <http://semver.org>`_ 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.
Usage
=====
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,))>
Framework integration
=====================
Integrates with `Django <http://djangoproject.com>`_, 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()
Links
=====
- Package on `PyPI <http://pypi.python.org/>`_: http://pypi.python.org/pypi/semantic_version/
- Doc on `ReadTheDocs <http://readthedocs.org/>`_: http://readthedocs.org/docs/python-semanticversion/
- Source on `GitHub <http://github.com/>`_: http://github.com/rbarrois/python-semanticversion/
- Build on `Travis CI <http://travis-ci.org/>`_: http://travis-ci.org/rbarrois/python-semanticversion/
- Semantic Version specification: http://semver.org/
|