Merge remote-tracking branch 'remotes/bignose-debian/wip/feature/make-version-info'
This commit is contained in:
commit
ee30d2c9e7
13
CHANGELOG
13
CHANGELOG
@ -9,6 +9,19 @@ All notable changes to this code base will be documented in this file,
|
||||
in every released version.
|
||||
|
||||
|
||||
Version NEXT
|
||||
============
|
||||
|
||||
:Released: FUTURE
|
||||
:Maintainer: UNKNOWN <unknown>
|
||||
|
||||
Additions
|
||||
---------
|
||||
|
||||
* Add ‘parse_version_info’ to parse a version string to a version info
|
||||
tuple.
|
||||
|
||||
|
||||
Version 2.6.0
|
||||
=============
|
||||
|
||||
|
14
README.rst
14
README.rst
@ -43,6 +43,20 @@ This module provides just couple of functions, main of which are:
|
||||
False
|
||||
>>> semver.format_version(3, 4, 5, 'pre.2', 'build.4')
|
||||
'3.4.5-pre.2+build.4'
|
||||
>>> version_parts = semver.parse("3.4.5-pre.2+build.4")
|
||||
>>> version_parts == {
|
||||
... 'major': 3, 'minor': 4, 'patch': 5,
|
||||
... 'prerelease': 'pre.2', 'build': 'build.4'}
|
||||
True
|
||||
>>> version_info = semver.parse_version_info("3.4.5-pre.2+build.4")
|
||||
>>> version_info
|
||||
VersionInfo(major=3, minor=4, patch=5, prerelease='pre.2', build='build.4')
|
||||
>>> version_info.major
|
||||
3
|
||||
>>> version_info > (1, 0)
|
||||
True
|
||||
>>> version_info < (3, 5)
|
||||
True
|
||||
>>> semver.bump_major("3.4.5")
|
||||
'4.0.0'
|
||||
>>> semver.bump_minor("3.4.5")
|
||||
|
28
semver.py
28
semver.py
@ -1,8 +1,11 @@
|
||||
"""
|
||||
Python helper for Semantic Versioning (http://semver.org/)
|
||||
"""
|
||||
|
||||
import collections
|
||||
import re
|
||||
|
||||
|
||||
__version__ = '2.6.0'
|
||||
__author__ = 'Konstantine Rybnikov'
|
||||
__author_email__ = 'k-bx@k-bx.com'
|
||||
@ -28,13 +31,28 @@ def parse(version):
|
||||
if match is None:
|
||||
raise ValueError('%s is not valid SemVer string' % version)
|
||||
|
||||
verinfo = match.groupdict()
|
||||
version_parts = match.groupdict()
|
||||
|
||||
verinfo['major'] = int(verinfo['major'])
|
||||
verinfo['minor'] = int(verinfo['minor'])
|
||||
verinfo['patch'] = int(verinfo['patch'])
|
||||
version_parts['major'] = int(version_parts['major'])
|
||||
version_parts['minor'] = int(version_parts['minor'])
|
||||
version_parts['patch'] = int(version_parts['patch'])
|
||||
|
||||
return verinfo
|
||||
return version_parts
|
||||
|
||||
|
||||
VersionInfo = collections.namedtuple(
|
||||
'VersionInfo', 'major minor patch prerelease build')
|
||||
|
||||
def parse_version_info(version):
|
||||
"""
|
||||
Parse version string to a VersionInfo instance.
|
||||
"""
|
||||
parts = parse(version)
|
||||
version_info = VersionInfo(
|
||||
parts['major'], parts['minor'], parts['patch'],
|
||||
parts['prerelease'], parts['build'])
|
||||
|
||||
return version_info
|
||||
|
||||
|
||||
def compare(ver1, ver2):
|
||||
|
Loading…
x
Reference in New Issue
Block a user