summaryrefslogtreecommitdiff
path: root/releases/utils.py
blob: 2a661badc54cd409c2fa0cecb272496a7a72a3da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from django.utils.regex_helper import _lazy_re_compile

version_component_re = _lazy_re_compile(r"(\d+|[a-z]+|\.)")


def get_loose_version_tuple(version):
    """
    Return a tuple of version numbers (e.g. (1, 2, 3, 'b', 2)) from the version
    string (e.g. '1.2.3b2').
    """
    version_numbers = []
    for item in version_component_re.split(version):
        if item and item != ".":
            try:
                component = int(item)
            except ValueError:
                component = item
            version_numbers.append(component)
    return tuple(version_numbers)