From 561b5158ce342177a305b8d4d6b890d80cd121e4 Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Fri, 12 Jul 2024 19:32:13 +0300 Subject: [PATCH] version: use importlib --- doc/conf.py | 13 ++++--------- meshmode/version.py | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 1f3db875..8750b71b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,3 +1,4 @@ +from importlib import metadata from urllib.request import urlopen @@ -13,15 +14,9 @@ extensions.extend([ # noqa: F821 tikz_tikzlibraries = "decorations.markings" -copyright = "2014-21, Meshmode contributors" - -ver_dic = {} -with open("../meshmode/version.py") as _inf: - exec(compile(_inf.read(), "../meshmode/version.py", "exec"), ver_dic) - -version = ".".join(str(x) for x in ver_dic["VERSION"]) -# The full version, including alpha/beta/rc tags. -release = ver_dic["VERSION_TEXT"] +copyright = "2014-2024, Meshmode contributors" +release = metadata.version("meshmode") +version = ".".join(release.split(".")[:2]) intersphinx_mapping = { "arraycontext": ("https://documen.tician.de/arraycontext", None), diff --git a/meshmode/version.py b/meshmode/version.py index e89038fa..6784d82a 100644 --- a/meshmode/version.py +++ b/meshmode/version.py @@ -1,2 +1,15 @@ -VERSION = (2021, 2) -VERSION_TEXT = ".".join(str(i) for i in VERSION) +from importlib import metadata +from typing import Tuple + + +def _parse_version(version: str) -> Tuple[Tuple[int, ...], str]: + import re + + m = re.match("^([0-9.]+)([a-z0-9]*?)$", VERSION_TEXT) + assert m is not None + + return tuple(int(nr) for nr in m.group(1).split(".")), m.group(2) + + +VERSION_TEXT = metadata.version("meshmode") +VERSION, VERSION_STATUS = _parse_version(VERSION_TEXT) -- GitLab