diff mbox series

[3/3] classes/pypi: don't expose PYPI_ARCHIVE_NAME

Message ID 20240315143751.1235135-3-ross.burton@arm.com
State New
Headers show
Series [1/3] python3_pip517: just count wheels in the directory, not subdirectories | expand

Commit Message

Ross Burton March 15, 2024, 2:37 p.m. UTC
From: Ross Burton <ross.burton@arm.com>

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 <ross.burton@arm.com>
---
 meta/classes-recipe/pypi.bbclass | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
diff mbox series

Patch

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)