mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-04-22 02:23:48 +00:00
68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
version_info = (6, 5, 0)
|
|
pre_info = ""
|
|
dev_info = ""
|
|
|
|
|
|
def create_valid_version(release_info, epoch=None, pre_input="", dev_input=""):
|
|
"""
|
|
Creates a pep440 valid version of version number given a tuple integers
|
|
and optional epoch, prerelease and developmental info.
|
|
|
|
Parameters
|
|
----------
|
|
release_info : Tuple(Int)
|
|
epoch : Int, default None
|
|
pre_input : Str, default ''
|
|
dev_input : Str, default ''
|
|
"""
|
|
|
|
pep440_err = "The version number is not a pep 440 compliant version number"
|
|
|
|
if epoch is not None:
|
|
epoch_seg = str(epoch) + "!"
|
|
else:
|
|
epoch_seg = ""
|
|
|
|
release_seg = ".".join(map(str, release_info))
|
|
|
|
_magic_pre = ["a", "b", "rc"]
|
|
if pre_input != "" and not any([pre_input.startswith(prefix) for prefix in _magic_pre]):
|
|
raise ValueError(pep440_err + "\n please fix your prerelease segment.")
|
|
else:
|
|
pre_seg = pre_input
|
|
|
|
if dev_input == "":
|
|
dev_seg = dev_input
|
|
elif not dev_input.startswith(".") and dev_input.startswith("dev"):
|
|
dev_seg = "".join([".", dev_input])
|
|
elif dev_input.startswith(".dev"):
|
|
dev_seg = dev_input
|
|
elif dev_input != "":
|
|
raise ValueError(pep440_err + "\n please fix your development segment.")
|
|
|
|
if dev_input != "" and not any([dev_seg.endswith(str(n)) for n in range(10)]):
|
|
dev_seg = "".join([dev_seg, "0"])
|
|
|
|
out_version = "".join([epoch_seg, release_seg, pre_seg, dev_seg])
|
|
|
|
import re
|
|
|
|
def is_canonical(version):
|
|
return (
|
|
re.match(
|
|
r"^([1-9]\d*!)?(0|[1-9]\d*)"
|
|
r"(\.(0|[1-9]\d*))*((a|b|rc)(0|[1-9]\d*))?"
|
|
r"(\.post(0|[1-9]\d*))?(\.dev(0|[1-9]\d*))?$",
|
|
version,
|
|
)
|
|
is not None
|
|
)
|
|
|
|
if is_canonical(out_version):
|
|
return out_version
|
|
else:
|
|
raise ValueError(pep440_err)
|
|
|
|
|
|
__version__ = create_valid_version(version_info, pre_input=pre_info, dev_input=dev_info)
|