From: Ross Burton Date: Fri, 15 Mar 2024 14:37:51 +0000 (+0000) Subject: classes/pypi: don't expose PYPI_ARCHIVE_NAME X-Git-Tag: uninative-4.5~229 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a67d05373ed92bf153bd17e5b32d77ca9f0c353;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git 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. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/pypi.bbclass b/meta/classes-recipe/pypi.bbclass index b8c18ccf395..c6bbe8119a6 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)