83 lines
2.2 KiB
Plaintext
83 lines
2.2 KiB
Plaintext
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
|
|
=====
|
|
|
|
|
|
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')
|
|
|
|
|
|
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/
|