Skip to content

Commit 920e5f6

Browse files
committed
♻️ Refactor to use enum
1 parent 4f405d1 commit 920e5f6

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

scripts/prepare_release.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,23 @@
22

33
import re
44
from datetime import date
5+
from enum import Enum
56
from pathlib import Path
6-
from typing import Annotated, Literal
7+
from typing import Annotated
78

89
import typer
910

1011
VERSION_PATTERN = re.compile(r'(?m)^__version__ = "(\d+\.\d+\.\d+)"$')
1112
VERSION_HEADING_PATTERN = re.compile(r"(?m)^## (\d+\.\d+\.\d+)(?: \([^)]+\))?$")
1213
RELEASE_NOTES_HEADER = "# Release Notes\n\n"
1314
LATEST_CHANGES_HEADER = "## Latest Changes"
14-
BumpType = Literal["major", "minor", "patch"]
15+
16+
17+
class BumpType(str, Enum):
18+
major = "major"
19+
minor = "minor"
20+
patch = "patch"
21+
1522

1623
app = typer.Typer()
1724

@@ -36,9 +43,9 @@ def get_current_version(content: str, version_file: Path) -> str:
3643

3744
def bump_version(version: str, bump: BumpType) -> str:
3845
major, minor, patch = parse_version(version)
39-
if bump == "major":
46+
if bump is BumpType.major:
4047
return f"{major + 1}.0.0"
41-
if bump == "minor":
48+
if bump is BumpType.minor:
4249
return f"{major}.{minor + 1}.0"
4350
return f"{major}.{minor}.{patch + 1}"
4451

tests/test_prepare_release.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
@pytest.mark.parametrize(
2020
("current_version", "bump", "new_version"),
2121
[
22-
("0.0.24", "major", "1.0.0"),
23-
("0.0.24", "minor", "0.1.0"),
24-
("0.0.24", "patch", "0.0.25"),
22+
("0.0.24", BumpType.major, "1.0.0"),
23+
("0.0.24", BumpType.minor, "0.1.0"),
24+
("0.0.24", BumpType.patch, "0.0.25"),
2525
],
2626
)
2727
def test_bump_version(current_version: str, bump: BumpType, new_version: str) -> None:

0 commit comments

Comments
 (0)