mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
recipetool: add python_hatchling support
One of the newer PEP-517 backends to be added was python_hatchling.bbclass but it was not included in the recent improvements. Add selftest for 'jsonschema' pypi package. (From OE-Core rev: d99b4883b4fee82bc588fd235ba90fedf1550cb8) Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9b22a5aa8c
commit
9ffac3fc3d
@@ -576,6 +576,41 @@ class RecipetoolCreateTests(RecipetoolBase):
|
||||
|
||||
self._test_recipe_contents(recipefile, checkvars, inherits)
|
||||
|
||||
def test_recipetool_create_python3_pep517_hatchling(self):
|
||||
# This test require python 3.11 or above for the tomllib module
|
||||
# or tomli module to be installed
|
||||
try:
|
||||
import tomllib
|
||||
except ImportError:
|
||||
try:
|
||||
import tomli
|
||||
except ImportError:
|
||||
self.skipTest('Test requires python 3.11 or above for tomllib module or tomli module')
|
||||
|
||||
# Test creating python3 package from tarball (using hatchling class)
|
||||
temprecipe = os.path.join(self.tempdir, 'recipe')
|
||||
os.makedirs(temprecipe)
|
||||
pn = 'jsonschema'
|
||||
pv = '4.19.1'
|
||||
recipefile = os.path.join(temprecipe, 'python3-%s_%s.bb' % (pn, pv))
|
||||
srcuri = 'https://files.pythonhosted.org/packages/e4/43/087b24516db11722c8687e0caf0f66c7785c0b1c51b0ab951dfde924e3f5/jsonschema-%s.tar.gz' % pv
|
||||
result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
|
||||
self.assertTrue(os.path.isfile(recipefile))
|
||||
checkvars = {}
|
||||
checkvars['SUMMARY'] = 'An implementation of JSON Schema validation for Python'
|
||||
checkvars['HOMEPAGE'] = 'https://github.com/python-jsonschema/jsonschema'
|
||||
checkvars['LICENSE'] = set(['MIT'])
|
||||
checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af'
|
||||
checkvars['SRC_URI'] = 'https://files.pythonhosted.org/packages/e4/43/087b24516db11722c8687e0caf0f66c7785c0b1c51b0ab951dfde924e3f5/jsonschema-${PV}.tar.gz'
|
||||
checkvars['SRC_URI[md5sum]'] = '4d6667ce76f820c35082c2d60a4896ab'
|
||||
checkvars['SRC_URI[sha1sum]'] = '9173714cb88964d07f3a3f4fcaaef638b8ceac0c'
|
||||
checkvars['SRC_URI[sha256sum]'] = 'ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf'
|
||||
checkvars['SRC_URI[sha384sum]'] = '7a53181f0e679aa3dc3eb4d05a420877b7b9bff2d02e81f5c289a37ed1127d6c0cca1f5a5f9e4e166f089ab36bcc2be9'
|
||||
checkvars['SRC_URI[sha512sum]'] = '60fa769faf6e3fc2c14eb9acd189c86e9d366b157230a5681d36552af0c159cb1ad33fd920668a36afdab98bc97253f91501704c5c07b5009fdaf9d29b52060d'
|
||||
inherits = ['python_hatchling']
|
||||
|
||||
self._test_recipe_contents(recipefile, checkvars, inherits)
|
||||
|
||||
def test_recipetool_create_github_tarball(self):
|
||||
# Basic test to ensure github URL mangling doesn't apply to release tarballs
|
||||
temprecipe = os.path.join(self.tempdir, 'recipe')
|
||||
|
||||
@@ -662,11 +662,12 @@ class PythonPyprojectTomlRecipeHandler(PythonRecipeHandler):
|
||||
PEP517 https://peps.python.org/pep-0517/#source-trees
|
||||
PEP518 https://peps.python.org/pep-0518/#build-system-table
|
||||
"""
|
||||
# bitbake currently support the 3 following backends
|
||||
# bitbake currently supports the 4 following backends
|
||||
build_backend_map = {
|
||||
"setuptools.build_meta": "python_setuptools_build_meta",
|
||||
"poetry.core.masonry.api": "python_poetry_core",
|
||||
"flit_core.buildapi": "python_flit_core",
|
||||
"hatchling.build": "python_hatchling",
|
||||
}
|
||||
|
||||
# setuptools.build_meta and flit declare project metadata into the "project" section of pyproject.toml
|
||||
@@ -716,6 +717,8 @@ class PythonPyprojectTomlRecipeHandler(PythonRecipeHandler):
|
||||
"poetry-core": "python3-poetry-core",
|
||||
"flit_core": "python3-flit-core",
|
||||
"setuptools-scm": "python3-setuptools-scm",
|
||||
"hatchling": "python3-hatchling",
|
||||
"hatch-vcs": "python3-hatch-vcs",
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
@@ -776,6 +779,7 @@ class PythonPyprojectTomlRecipeHandler(PythonRecipeHandler):
|
||||
if field == "license":
|
||||
# For setuptools.build_meta and flit, licence is a table
|
||||
# but for poetry licence is a string
|
||||
# for hatchling, both table (jsonschema) and string (iniconfig) have been used
|
||||
if build_backend == "poetry.core.masonry.api":
|
||||
value = values
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user