ThirdParty/EditorConfig/editorconfig/versiontools.py

Thu, 01 Feb 2018 19:26:11 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 01 Feb 2018 19:26:11 +0100
changeset 6099
a7fecbc392d7
permissions
-rw-r--r--

Started implementing support for EditorConfig.

"""EditorConfig version tools

Provides ``join_version`` and ``split_version`` classes for converting
__version__ strings to VERSION tuples and vice versa.

"""

import re


__all__ = ['join_version', 'split_version']


_version_re = re.compile(r'^(\d+)\.(\d+)\.(\d+)(\..*)?$', re.VERBOSE)


def join_version(version_tuple):
    """Return a string representation of version from given VERSION tuple"""
    version = "%s.%s.%s" % version_tuple[:3]
    if version_tuple[3] != "final":
        version += "-%s" % version_tuple[3]
    return version


def split_version(version):
    """Return VERSION tuple for given string representation of version"""
    match = _version_re.search(version)
    if not match:
        return None
    else:
        split_version = list(match.groups())
        if split_version[3] is None:
            split_version[3] = "final"
        split_version = list(map(int, split_version[:3])) + split_version[3:]
        return tuple(split_version)

eric ide

mercurial