From ae65590ef942e52b3cb69e3614f93574e4c9aa5f Mon Sep 17 00:00:00 2001 From: Thomas VINCENT Date: Mon, 8 Jul 2024 14:33:55 +0200 Subject: [PATCH] Fix version --- src/hdf5plugin/_version.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/hdf5plugin/_version.py b/src/hdf5plugin/_version.py index 0195cfcd..4986d4fe 100644 --- a/src/hdf5plugin/_version.py +++ b/src/hdf5plugin/_version.py @@ -37,19 +37,17 @@ class _VersionInfo(NamedTuple): releaselevel: str = "final" serial: int = 0 - def __init__(self, version: str): - pattern = r"(?P\d+)\.(?P\d+)\.(?P\d+)((?Pa|b|rc)(?P\d+))?" - match = re.fullmatch(pattern, version, re.ASCII) - fields = {k: v for k, v in match.groupdict().items() if v is not None} - # Convert prerelease to releaselevel - prerelease = fields.pop("prerelease", None) - if prerelease is not None: - fields["releaselevel"] = {"a": "alpha", "b": "beta", "rc": "candidate"}[ - prerelease - ] +def _version_info(version: str) -> _VersionInfo: + pattern = r"(?P\d+)\.(?P\d+)\.(?P\d+)((?Pa|b|rc)(?P\d+))?" + match = re.fullmatch(pattern, version, re.ASCII) + fields = {k: v for k, v in match.groupdict().items() if v is not None} + # Remove prerelease and convert it to releaselevel + prerelease = fields.pop("prerelease", None) + releaselevel = {"a": "alpha", "b": "beta", "rc": "candidate", None: "final"}[prerelease] + version_fields = {k: int(v) for k, v in fields.items()} - super().__init__(**fields) + return _VersionInfo(releaselevel=releaselevel, **version_fields) -version_info = _VersionInfo(version) +version_info = _version_info(version)