From 9c25d57099eb2b28f7aca7ec8e17cc28ba6bd453 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 23 Sep 2022 12:17:06 -0500 Subject: [PATCH] clean up version handling --- pyproject.toml | 2 +- traitlets/_version.py | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d3b06c19..2736ed79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["hatchling >=0.25"] +requires = ["hatchling >=1.5"] build-backend = "hatchling.build" [project] diff --git a/traitlets/_version.py b/traitlets/_version.py index 209ab05f..c56ac11f 100644 --- a/traitlets/_version.py +++ b/traitlets/_version.py @@ -1,12 +1,17 @@ -version_info = (5, 4, 0) -__version__ = "5.4.0" +""" +handle the current version info of traitlets. +""" +import re +from typing import List -# unlike `.dev`, alpha, beta and rc _must not_ have dots, -# or the wheel and tgz won't look to pip like the same version. +# Version string must appear intact for hatch versioning +__version__ = "5.4.0" -assert __version__ == ( - ".".join(map(str, version_info)).replace(".b", "b").replace(".a", "a").replace(".rc", "rc") -) -assert ".b" not in __version__ -assert ".a" not in __version__ -assert ".rc" not in __version__ +# Build up version_info tuple for backwards compatibility +pattern = r"(?P\d+).(?P\d+).(?P\d+)(?P.*)" +match = re.match(pattern, __version__) +assert match is not None +parts: List[object] = [int(match[part]) for part in ["major", "minor", "patch"]] +if match["rest"]: + parts.append(match["rest"]) +version_info = tuple(parts)