Skip to content

version

util.version

POSTFIXES module-attribute

POSTFIXES = {None: -9999, 'rc': 1, 'beta': 2, 'alpha': 3}

Postfix

Postfix(postfix: Optional[str] = None)

Defines pre-release version type. (None > "rc" > "beta" > "alpha")

Usage

version = Version(0, 0, 0, "rc1") print(version.postfix.name) rc print(version.postfix.version) 1

Raises:

  • VersionFormatError

    postfix must be one of "rc", "beta", "alpha" or None

Source code in SaigeToolkit/util/version.py
def __init__(self, postfix: Optional[str] = None):
    if postfix is None:
        self.name, self.version = None, None
    else:
        match = re.match(r"^([a-zA-Z]+)(\d+)$", postfix)
        if match:
            self.name = match.groups()[0]
            self.version = int(match.groups()[-1])
        else:
            raise VersionFormatError
    self.priority = POSTFIXES[self.name]

Version

Version(major: Union[int, str], minor: Union[int, str], patch: Union[int, str], postfix: Optional[str] = None)

Defines Version type: https://semver.org/

Usage

version = Version(0, 0, 0) print(version) 0.0.0 version_rc = Version(0, 0, 0, "rc1") print(version_rc) 0.0.0-rc1 version2 = Version.from_string("0.0.1") print(version2 > version) True print(Version.from_string("0.0.1") > Version(0, 0, 1, "rc1")) True print(Version.from_string("0.0.1-rc1") > Version(0, 0, 1, "beta2")) True

Raises:

  • VersionFormatError

    version string format should be f"{self.major}.{self.minor}.{self.patch}-{self.postfix}"

Source code in SaigeToolkit/util/version.py
def __init__(
    self,
    major: Union[int, str],
    minor: Union[int, str],
    patch: Union[int, str],
    postfix: Optional[str] = None,
):

    self.major = int(major)
    self.minor = int(minor)
    self.patch = int(patch)
    self.postfix = Postfix(postfix)