-
Notifications
You must be signed in to change notification settings - Fork 8
/
version_utils.py
31 lines (23 loc) · 936 Bytes
/
version_utils.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
import json
from urllib.request import urlopen
from distutils.version import StrictVersion
from vortexasdk import __name__ as sdk_pkg_name
from vortexasdk.version import __version__
def get_latest_sdk_version() -> str:
"""Retrieves the latest SDK version from PyPI."""
url = f"https://pypi.python.org/pypi/{sdk_pkg_name}/json"
with urlopen(url) as u:
data = json.load(u)
versions = [StrictVersion(release) for release in data["releases"].keys()]
filtered_out_prerelease_versions = [
v for v in versions if v.prerelease is None
]
latest_version = sorted(filtered_out_prerelease_versions)[-1]
return str(latest_version)
def is_sdk_version_outdated():
"""Checks whether SDK version is outdated."""
latest_version = get_latest_sdk_version()
if StrictVersion(__version__) < latest_version:
return latest_version, True
else:
return latest_version, False