diff --git a/doc/conf.py b/doc/conf.py index 1f3db8759394ae2a19c34664b126c4b304b2132c..8750b71b98d1d2752978017743cacf896fad8c13 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 e89038fa4dcc438e3f53c79d29da077f0b857efa..6784d82a59da5a8a7f9b8d3d2684d727ad42357f 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)