From 4e1c90d41efd2303e05217489d510ec0766b95aa Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 15 Mar 2024 14:37:51 +0000 Subject: classes/pypi: don't expose PYPI_ARCHIVE_NAME This variable is only used when constructing a SRC_URI and some recipes think that it's the correct value to assign if the PyPi package name isn't the same as the recipe name, when PYPI_PACKAGE is actually all that needs to be set. Also document the variables we expect the recipe to assign if needed, and where the PyPi URL structure is documented. (From OE-Core rev: bb21b96a7edfe5f8ae43cf843f80bb0c0a025f0d) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes-recipe/pypi.bbclass | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/pypi.bbclass b/meta/classes-recipe/pypi.bbclass index b8c18ccf39..c6bbe8119a 100644 --- a/meta/classes-recipe/pypi.bbclass +++ b/meta/classes-recipe/pypi.bbclass @@ -12,14 +12,19 @@ def pypi_package(d): return bpn[8:] return bpn +# The PyPi package name (defaults to PN without the python3- prefix) PYPI_PACKAGE ?= "${@pypi_package(d)}" +# The file extension of the source archive PYPI_PACKAGE_EXT ?= "tar.gz" -PYPI_ARCHIVE_NAME ?= "${PYPI_PACKAGE}-${PV}.${PYPI_PACKAGE_EXT}" +# An optional prefix for the download file in the case of name collisions PYPI_ARCHIVE_NAME_PREFIX ?= "" def pypi_src_uri(d): + """ + Construct a source URL as per https://warehouse.pypa.io/api-reference/integration-guide.html#predictable-urls. + """ package = d.getVar('PYPI_PACKAGE') - archive_name = d.getVar('PYPI_ARCHIVE_NAME') + archive_name = d.expand('${PYPI_PACKAGE}-${PV}.${PYPI_PACKAGE_EXT}') archive_downloadname = d.getVar('PYPI_ARCHIVE_NAME_PREFIX') + archive_name return 'https://files.pythonhosted.org/packages/source/%s/%s/%s;downloadfilename=%s' % (package[0], package, archive_name, archive_downloadname) -- cgit v1.2.3-54-g00ecf