summaryrefslogtreecommitdiff
path: root/upstream-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-orjson_3.12.0.bb
blob: 0be63c6c8a8f8b237512090e383a2b7d2249b4d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 = "6737895a1a4e3e26df0569a40147893a786f9a58"
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"