mach-nix/mach_nix/versions.py

34 lines
985 B
Python
Raw Permalink Normal View History

2020-04-22 09:28:58 +00:00
import sys
import traceback
2020-11-19 05:16:04 +00:00
import packaging.version
from packaging.version import parse as parse_ver, Version
2020-10-25 18:09:37 +00:00
__all__ = ['parse_ver', 'Version', 'PyVer']
2020-10-25 18:09:37 +00:00
class PyVer:
2020-10-25 18:09:37 +00:00
def __init__(self, vstr):
self.version = packaging.version.Version(vstr)
2021-10-12 18:12:49 +00:00
2020-04-22 09:28:58 +00:00
def nix(self):
res = 'python'
res += str(self.version.release[0])
if len(self.version.release) >= 2:
res += str(self.version.release[1])
2020-04-22 09:28:58 +00:00
return res
def digits(self):
return ''.join(map(str, self.version.release[:2]))
2020-04-22 09:28:58 +00:00
def python_version(self):
return f"{self.version.release[0]}.{self.version.release[1]}"
2020-04-22 09:28:58 +00:00
def python_full_version(self):
try:
return f"{self.version.release[0]}.{self.version.release[1]}.{self.version.release[2]}"
2020-04-22 09:28:58 +00:00
except IndexError:
traceback.print_exc()
print("Error: please specify full python version including bugfix version (like 3.7.5)", file=sys.stderr)
exit(1)