33 lines
985 B
Python
33 lines
985 B
Python
import sys
|
|
import traceback
|
|
|
|
import packaging.version
|
|
from packaging.version import parse as parse_ver, Version
|
|
|
|
__all__ = ['parse_ver', 'Version', 'PyVer']
|
|
|
|
|
|
class PyVer:
|
|
def __init__(self, vstr):
|
|
self.version = packaging.version.Version(vstr)
|
|
|
|
def nix(self):
|
|
res = 'python'
|
|
res += str(self.version.release[0])
|
|
if len(self.version.release) >= 2:
|
|
res += str(self.version.release[1])
|
|
return res
|
|
|
|
def digits(self):
|
|
return ''.join(map(str, self.version.release[:2]))
|
|
|
|
def python_version(self):
|
|
return f"{self.version.release[0]}.{self.version.release[1]}"
|
|
|
|
def python_full_version(self):
|
|
try:
|
|
return f"{self.version.release[0]}.{self.version.release[1]}.{self.version.release[2]}"
|
|
except IndexError:
|
|
traceback.print_exc()
|
|
print("Error: please specify full python version including bugfix version (like 3.7.5)", file=sys.stderr)
|
|
exit(1)
|