-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_latest_version.py
53 lines (41 loc) · 1.66 KB
/
get_latest_version.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import os
import pathlib
from typing import Tuple, List, Union
import requests
def get_latest_version_number() -> str:
req = requests.get("https://pypi.org/pypi/baraldi-fib-py/json")
return req.json()["info"]["version"]
def unpack_version_number(version_string: str) -> Tuple[int, int, int]:
version_buffer: List[str] = version_string.split(".")
return int(version_buffer[0]), int(version_buffer[1]), int(version_buffer[2])
def increase_version_number(version_buffer: Union[Tuple[int, int, int], List[int]]) -> List[int]:
first: int = version_buffer[0]
second: int = version_buffer[1]
third: int = version_buffer[2]
third += 1
if third >= 10:
third = 0
second += 1
if second >= 10:
second = 0
first += 1
return [first, second, third]
def pack_version_number(version_buffer: Union[Tuple[int, int, int], List[int]]) -> str:
return f"{version_buffer[0]}.{version_buffer[1]}.{version_buffer[2]}"
def write_version_to_file(version_number: str) -> None:
version_file_path: str = str(pathlib.Path(__file__).parent.absolute()
) + "/baraldi_fib_py/version.py"
if os.path.exists(version_file_path):
os.remove(version_file_path)
with open(version_file_path, "w", encoding="utf-8") as f:
f.write(f"VERSION='{version_number}'")
if __name__ == "__main__":
write_version_to_file(
version_number=pack_version_number(
version_buffer=increase_version_number(
version_buffer=unpack_version_number(
version_string=get_latest_version_number()
)
)
)
)