Files
meta-openembedded/meta-python/recipes-devtools/python/python3-orjson_3.11.9.bb
T
Khem Raj 970c6b66b9 python3-orjson: skip OOM-prone/unrelated tests on memory-constrained target
test_dict_empty round-trips a 4096x4096 nested structure through JSON,
materializing ~16.7M real dict objects on loads() (~900MB+ RSS), which
gets OOM-killed on the memory-constrained qemu ptest target.

test_fake.py instantiates Faker with 9 locales at once, pulling in a
similarly large amount of locale provider data, for what is a
Unicode-robustness smoke test rather than core JSON logic.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2026-08-29 21:43:04 -07:00

56 lines
1.8 KiB
BlitzBasic

SUMMARY = "orjson is a fast, correct JSON library for Python"
HOMEPAGE = "https://pypi.org/project/orjson/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d"
SRCREV = "705515d77b28429d0b7c30c3d781abe52e8a1e5a"
PYPI_SRC_URI = "git://github.com/ijl/orjson;protocol=https;branch=master;tag=${PV};destsuffix=orjson-${PV}"
CVE_PRODUCT = "orjson"
require ${BPN}-crates.inc
inherit pypi python_maturin cargo-update-recipe-crates ptest-python-pytest
SRC_URI += " \
file://0001-Guard-avx512-module-with-x86-target-cfg.patch \
file://0002-Guard-x86-feature-detection-macro-in-pystrref-object.patch \
"
DEPENDS = "python3-maturin-native"
RDEPENDS:${PN} += "python3-maturin python3-mypy"
do_compile:prepend() {
sed -i "/panic = \"abort\"/d" ${S}/Cargo.toml
}
do_install_ptest:append() {
install -d ${D}${PTEST_PATH}/data
cp -rf ${S}/data/* ${D}${PTEST_PATH}/data/
install -d ${D}${PTEST_PATH}/test
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
# test_dict_empty round-trips a 4096x4096 nested structure through JSON,
# materializing ~16.7M real dict objects on loads() (~900MB+ RSS) which
# gets OOM-killed on the memory-constrained qemu ptest target.
# test_fake.py instantiates Faker with 9 locales at once, pulling in a
# similarly large amount of locale provider data, for what is a
# Unicode-robustness smoke test rather than core JSON logic.
sed -i \
-e "/--automake/ s/$/ --ignore=test\/test_fake.py -k 'not test_dict_empty'/" \
${D}${PTEST_PATH}/run-ptest
}
RDEPENDS:${PN}-ptest += "\
python3-dateutil \
python3-dateutil-zoneinfo \
python3-faker \
python3-numpy \
python3-pandas \
python3-pendulum \
python3-psutil \
python3-pytz \
python3-tzdata \
"
BBCLASSEXTEND = "native nativesdk"