#!/usr/bin/env python3
"""hos-delta version module: Helpers for managing versions

This module provides support for handling versions.
"""

import re

RE_VERSION = re.compile(r'(\d+)\.(\d+)\.(\d+)(?:-(\w+))?(?:\+(\w+))?')

def is_valid(version):
    """Check if version is valid.

    Parameters
    ----------
    str : version
        The version to validate.

    Returns
    -------
    bool
        Return True is version is valid, otherwise False.
    """

    return re.match(RE_VERSION, version) is not None

def version_key(version):
    """A representation of a version to be used for ordering"""
    res = RE_VERSION.search(version)
    major, minor, patch, label, _ = res.groups()
    result = [int(v) for v in (major, minor, patch)] + [not not label]
    return result
