From 94292ad5459bb3267bbf1bf5390b45c8388e571b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl-Ulrich=20Kr=C3=A4gelin?= Date: Thu, 27 Mar 2025 13:31:07 +0100 Subject: [PATCH 1/2] rdm: enable pyproject.toml anlongside Pipfile.lock for rdm version check --- invenio_cli/__init__.py | 2 +- invenio_cli/helpers/rdm.py | 28 +++++++++++++++++++++------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/invenio_cli/__init__.py b/invenio_cli/__init__.py index 9ff67488..688a18df 100644 --- a/invenio_cli/__init__.py +++ b/invenio_cli/__init__.py @@ -9,6 +9,6 @@ """Invenio module to ease the creation and management of applications.""" -__version__ = "1.6.0" +__version__ = "1.6.1" __all__ = ("__version__",) diff --git a/invenio_cli/helpers/rdm.py b/invenio_cli/helpers/rdm.py index 9f788de8..63cae53b 100644 --- a/invenio_cli/helpers/rdm.py +++ b/invenio_cli/helpers/rdm.py @@ -10,19 +10,33 @@ import re -from pipfile import Pipfile +from ..helpers.cli_config import CLIConfig def rdm_version(): """Return the latest RDM version.""" - parsed = Pipfile.load(filename="./Pipfile") + cliConfig = CLIConfig() + if (cliConfig.project_path / "Pipfile").is_file(): + depfile = cliConfig.project_path / "Pipfile" + elif (cliConfig.project_path / "pyproject.toml").is_file(): + depfile = cliConfig.project_path / "pyproject.toml" - groups = re.search( - r"[0-9]*\.[0-9]*\.[0-9]*", - parsed.data["default"].get("invenio-app-rdm", {}).get("version", ""), + match = re.search( + r"invenio-app-rdm.*?==([\d.]+(?:b\d+)?(?:\.dev\d+)?)", + depfile.read_text(), ) - if groups: - return [int(v) for v in groups.group(0).split(".")] + if match: + print(match.group(1)) + apprdmversion = [] + for v in match.group(1).split("."): + + try: + vs = int(v) + apprdmversion.append(vs) + except ValueError: + apprdmversion.append(v) + print("Invenio RDM version: ", apprdmversion) + return apprdmversion else: return None From 8f58d02a0c86bd11a02a1a404d9471cf435e464b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl-Ulrich=20Kr=C3=A4gelin?= Date: Thu, 27 Mar 2025 13:40:21 +0100 Subject: [PATCH 2/2] rdm.py: Improve version matching --- invenio_cli/helpers/rdm.py | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/invenio_cli/helpers/rdm.py b/invenio_cli/helpers/rdm.py index 63cae53b..cb6a1b2e 100644 --- a/invenio_cli/helpers/rdm.py +++ b/invenio_cli/helpers/rdm.py @@ -21,22 +21,17 @@ def rdm_version(): elif (cliConfig.project_path / "pyproject.toml").is_file(): depfile = cliConfig.project_path / "pyproject.toml" - match = re.search( - r"invenio-app-rdm.*?==([\d.]+(?:b\d+)?(?:\.dev\d+)?)", - depfile.read_text(), - ) + # find invenio-app-rdm line in either file + matchline = re.search(r"^.?invenio-app-rdm.*$", depfile.read_text(), re.MULTILINE) + + # extract the version number of invenio-app-rdm + if matchline: + match = re.search( + r"[0-9]*\.[0-9]*\.[0-9]*", + matchline.group(0), + ) if match: - print(match.group(1)) - apprdmversion = [] - for v in match.group(1).split("."): - - try: - vs = int(v) - apprdmversion.append(vs) - except ValueError: - apprdmversion.append(v) - print("Invenio RDM version: ", apprdmversion) - return apprdmversion + return [int(v) for v in match.group(0).split(".")] else: return None