""" Functions used for elda management """
import re
[docs]def version_from_text(version_text):
"""
Converts a text to a tuple containing major and minor version number
Example:
>>> version_from_text('V1.3')
(1, 3)
Args:
version_text (str): Text formatted version number like 'V2.3'
Returns:
(int, int): (major, minor)
"""
# Asserts the input respects the format
assert re.match(r"^V\d+\.\d+$", version_text)
version_text = version_text[1:]
major, minor = version_text.split(".")
return int(major), int(minor)
[docs]def text_from_version(major, minor):
"""
Converts major and minor version numbers in a string
Example:
>>> text_from_version(1,3)
'V1.3'
Args:
major (int): Major version number
minor (int): Minor version number
Returns:
str: Text formatted version number
"""
return f"V{major}.{minor}"
[docs]def add_major_version_from_text(version_text):
"""
Returns the next major version from a text formatted version number
Example:
>>> add_major_version_from_text('V1.3')
'V2.0'
Args:
version_text (str): Text formatted version number like 'V2.3'
Returns:
str: Text formatted version number
"""
major, minor = version_from_text(version_text)
major += 1
minor = 0
return text_from_version(major, minor)
[docs]def add_minor_version_from_text(version_text):
"""
Returns the next minor version from a text formatted version number
Example:
>>> add_minor_version_from_text('V1.3')
'V1.4'
Args:
version_text (str): Text formatted version number like 'V2.3'
Returns:
str: Text formatted version number
"""
major, minor = version_from_text(version_text)
minor += 1
return text_from_version(major, minor)