From 8b2749f95c3b29e1055f83a792c3e7cf1b75dc3d Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sat, 10 Aug 2024 14:16:32 -0700 Subject: [PATCH] python: return urls with also dash -> underscore --- lib/spack/spack/build_systems/python.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py index 0f99fe536aa..586d00702fb 100644 --- a/lib/spack/spack/build_systems/python.py +++ b/lib/spack/spack/build_systems/python.py @@ -354,9 +354,21 @@ def homepage(cls) -> Optional[str]: # type: ignore[override] return None @lang.classproperty - def url(cls) -> Optional[str]: + def urls(cls) -> Optional[List[str]]: if cls.pypi: - return f"https://files.pythonhosted.org/packages/source/{cls.pypi[0]}/{cls.pypi}" + urls = [ + f"https://files.pythonhosted.org/packages/source/{cls.pypi[0]}/{cls.pypi}" + ] + assert cls.pypi.count("/") == 1, "PyPI class attribute must include a single slash" + name, file = cls.pypi.split("/") + name_dash_count = name.count("-") + if name_dash_count > 0: + # replace all but last dash with underscores for pypi.org listing changes + pypi = "/".join([name, file.replace("-", "_", name_dash_count)]) + urls.append( + f"https://files.pythonhosted.org/packages/source/{pypi[0]}/{pypi}" + ) + return urls return None @lang.classproperty