Skip to content

leekchan/python-semanticversion

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python-semanticversion

image

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.

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, 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

About

Semantic version comparison for Python (see http://semver.org/)

Resources

License

Stars

Watchers

Forks

Packages

No packages published