Message ID | 20220224041200.2645054-2-tim.orling@konsulko.com |
---|---|
State | Accepted, archived |
Commit | 9fc8e55892374f1e63b4c995fe1a5539c42d24e0 |
Headers | show |
Series | [1/2] setuptools3.bbclass: add check for pyproject.toml | expand |
> -----Original Message----- > From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Tim Orling > Sent: den 24 februari 2022 05:12 > To: openembedded-core@lists.openembedded.org > Cc: Tim Orling <tim.orling@konsulko.com> > Subject: [OE-core] [PATCH 2/2] pip_install_wheel: improved wheel filename guess > > Rather than only use PYPI_PACKAGE as a guess, fall back on PN for cases > where a recipe does not inherit pypi. > > Wheels can only have alphanumeric characters in the 'distribution' > name [1]. Any other characters are replaced with an underscore. Provide a > function to replace dash with underscore. > > [1] https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode > > Signed-off-by: Tim Orling <tim.orling@konsulko.com> > --- > meta/classes/pip_install_wheel.bbclass | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/meta/classes/pip_install_wheel.bbclass b/meta/classes/pip_install_wheel.bbclass > index f0312e0b1eb..e0f0b97ad13 100644 > --- a/meta/classes/pip_install_wheel.bbclass > +++ b/meta/classes/pip_install_wheel.bbclass > @@ -1,6 +1,15 @@ > DEPENDS:append = " python3-pip-native" > > -PIP_INSTALL_PACKAGE ?= "${PYPI_PACKAGE}" > +def guess_pip_install_package_name(d): > + '''https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode''' > + package = "" > + if not d.getVar('PYPI_PACKAGE'): > + package = (d.getVar('PN').replace('-', '_')) > + else: > + package = (d.getVar('PYPI_PACKAGE').replace('-', '_')) > + return package You can simplify the above to: +def guess_pip_install_package_name(d): + '''https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode''' + return (d.getVar('PYPI_PACKAGE') or d.getVar('PN')).replace('-', '_') > + > +PIP_INSTALL_PACKAGE ?= "${@guess_pip_install_package_name(d)}" > PIP_INSTALL_DIST_PATH ?= "${B}/dist" > PYPA_WHEEL ??= "${PIP_INSTALL_DIST_PATH}/${PIP_INSTALL_PACKAGE}-${PV}-*.whl" > > -- > 2.30.2 //Peter
diff --git a/meta/classes/pip_install_wheel.bbclass b/meta/classes/pip_install_wheel.bbclass index f0312e0b1eb..e0f0b97ad13 100644 --- a/meta/classes/pip_install_wheel.bbclass +++ b/meta/classes/pip_install_wheel.bbclass @@ -1,6 +1,15 @@ DEPENDS:append = " python3-pip-native" -PIP_INSTALL_PACKAGE ?= "${PYPI_PACKAGE}" +def guess_pip_install_package_name(d): + '''https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode''' + package = "" + if not d.getVar('PYPI_PACKAGE'): + package = (d.getVar('PN').replace('-', '_')) + else: + package = (d.getVar('PYPI_PACKAGE').replace('-', '_')) + return package + +PIP_INSTALL_PACKAGE ?= "${@guess_pip_install_package_name(d)}" PIP_INSTALL_DIST_PATH ?= "${B}/dist" PYPA_WHEEL ??= "${PIP_INSTALL_DIST_PATH}/${PIP_INSTALL_PACKAGE}-${PV}-*.whl"
Rather than only use PYPI_PACKAGE as a guess, fall back on PN for cases where a recipe does not inherit pypi. Wheels can only have alphanumeric characters in the 'distribution' name [1]. Any other characters are replaced with an underscore. Provide a function to replace dash with underscore. [1] https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode Signed-off-by: Tim Orling <tim.orling@konsulko.com> --- meta/classes/pip_install_wheel.bbclass | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)