From 7fb289a81abbcf03ad4acf18e76971415e22046d Mon Sep 17 00:00:00 2001 From: Maximilian Linhoff Date: Wed, 15 Jan 2025 19:09:36 +0100 Subject: [PATCH] Allow pre-releases and fix error message in DIRAC version check --- src/WebAppDIRAC/scripts/dirac_webapp_run.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/WebAppDIRAC/scripts/dirac_webapp_run.py b/src/WebAppDIRAC/scripts/dirac_webapp_run.py index 1a811c09..a165b483 100755 --- a/src/WebAppDIRAC/scripts/dirac_webapp_run.py +++ b/src/WebAppDIRAC/scripts/dirac_webapp_run.py @@ -65,17 +65,20 @@ def _checkDIRACVersion(): """ from importlib.metadata import requires, version # pylint: disable=import-error,no-name-in-module from packaging.requirements import Requirement # pylint: disable=no-name-in-module + from packaging.specifiers import SpecifierSet deps = [Requirement(x) for x in requires("WebAppDIRAC")] deps = [x for x in deps if x.name.lower() == "dirac"] if len(deps) != 1: raise NotImplementedError(f"This shouldn't be possible: {deps!r}") + dirac_version = version("DIRAC") - dirac_spec = deps[0].specifier + dirac_spec = SpecifierSet(deps[0].specifier, prereleases=True) + if dirac_version not in dirac_spec: raise RuntimeError( "WebAppDIRAC {} requires {} but {} is incompatible".format( - version("WebAppDIRAC"), dirac_version, dirac_spec + version("WebAppDIRAC"), dirac_spec, dirac_version ) )