From 91f3d7d9721b6ef009c7f57946ff8dbb47441526 Mon Sep 17 00:00:00 2001 From: erik Date: Mon, 20 Feb 2023 14:24:55 +0100 Subject: [PATCH] Refactor version class --- version.py | 52 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/version.py b/version.py index c1e4c59..8d1ea87 100644 --- a/version.py +++ b/version.py @@ -4,7 +4,7 @@ from file_handlers import FileHandler def init_project(): # validate_values() version = Version.from_file('build.gradle') - version.increment(ReleaseLevel.SNAPSHOT) + version.increment(ReleaseType.SNAPSHOT) version.to_file() print(version.get()) @@ -14,7 +14,7 @@ def prepare_release(): def release_in_git(): pass -class ReleaseLevel(Enum): +class ReleaseType(Enum): MAJOR = 0 MINOR = 1 PATCH = 2 @@ -22,27 +22,39 @@ class ReleaseLevel(Enum): class Version(): - def __init__(self, version_list, is_snapshot): - self.version_list = version_list - self.is_snapshot = is_snapshot + def __init__(self, version_list, release_type): + self.version_list = None + self.is_snapshot = None + self.version_string = None - def increment(self, level: ReleaseLevel): + def increment(self, release_type: ReleaseType): self.is_snapshot = False - match level: - case ReleaseLevel.SNAPSHOT: + match release_type: + case ReleaseType.SNAPSHOT: self.is_snapshot = True - case ReleaseLevel.PATCH: - self.version[ReleaseLevel.PATCH.value] += 1 - case ReleaseLevel.MINOR: - self.version[ReleaseLevel.PATCH.value] = 0 - self.version[ReleaseLevel.MINOR.value] += 1 - case ReleaseLevel.MAJOR: - self.version[ReleaseLevel.PATCH.value] = 0 - self.version[ReleaseLevel.MINOR.value] = 0 - self.version[ReleaseLevel.MAJOR.value] += 1 + case ReleaseType.PATCH: + self.version_list[ReleaseType.PATCH.value] += 1 + case ReleaseType.MINOR: + self.version_list[ReleaseType.PATCH.value] = 0 + self.version_list[ReleaseType.MINOR.value] += 1 + case ReleaseType.MAJOR: + self.version_list[ReleaseType.PATCH.value] = 0 + self.version_list[ReleaseType.MINOR.value] = 0 + self.version_list[ReleaseType.MAJOR.value] += 1 def get_version_string(self) -> str: - version_string = ".".join([str(x) for x in self.version_list]) + self.version_string = ".".join([str(x) for x in self.version_list]) if self.is_snapshot: - version_string += "-SNAPSHOT" - return version_string \ No newline at end of file + self.version_string += "-SNAPSHOT" + + @classmethod + def create_release_version(cls, version_list, release_type): + inst = cls(version_list, release_type) + inst.increment(release_type) + + return inst + + + @classmethod + def create_bump_version(cls, version_list, release_type): + pass \ No newline at end of file