Files
Leon Anavi ff28575a46 python3-pydantic: Enable test_docs.py
We now have Rust 1.71+ version in oe-core so we can build ruff,
add it to the ptest runtime dependencies, install docs and fix
paths in test_docs.py.

There is a known jemallocator issue on aarch64 that affects ruff
and some of the pydantic tests from test_docs.py:

E           <jemalloc>: Unsupported system page size                                                                                                       E           memory allocation of 4 bytes failed

More details about JEMALLOC_SYS_WITH_LG_PAGE:
https://github.com/gnzlbg/jemallocator/issues/170#issuecomment-1503228963

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-07-28 22:48:22 -07:00

89 lines
2.9 KiB
BlitzBasic

SUMMARY = "Data validation using Python type hinting"
DESCRIPTION = "Data validation and settings management using Python \
type hints.\
\
Fast and extensible, Pydantic plays nicely with your linters/IDE/brain. \
Define how data should be in pure, canonical Python 3.7+; validate it with \
Pydantic."
HOMEPAGE = "https://github.com/samuelcolvin/pydantic"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=09280955509d1c4ca14bae02f21d49a6"
inherit python_hatchling ptest-python-pytest
SRCREV = "cf67d4b3193c3fe43ede18612ed62785eee11382"
PV .= "+git"
SRC_URI = "git://github.com/pydantic/pydantic;protocol=https;branch=v2.13-fixes"
DEPENDS += "python3-hatch-fancy-pypi-readme-native"
CVE_PRODUCT = "pydantic:pydantic"
RECIPE_NO_UPDATE_REASON = "Must be updated in sync with python3-pydantic-core."
RDEPENDS:${PN} += "\
python3-annotated-types \
python3-core \
python3-datetime \
python3-image \
python3-io \
python3-json \
python3-jsonschema \
python3-logging \
python3-netclient \
python3-numbers \
python3-profile \
python3-pydantic-core \
python3-typing-extensions \
python3-typing-inspection \
python3-tzdata \
python3-zoneinfo \
"
RDEPENDS:${PN}-ptest += "\
python3-ansi2html \
python3-coverage \
python3-cloudpickle \
python3-dirty-equals \
python3-email-validator \
python3-fastjsonschema \
python3-greenlet \
python3-html \
python3-hypothesis \
python3-mypy \
python3-packaging \
python3-pydoc \
python3-pytest-codspeed \
python3-pytest-mock \
python3-pytz \
python3-rich \
python3-sqlalchemy \
python3-unixadmin \
python3-ruff \
python3-pytest-examples \
python3-devtools \
${PN}-doc \
"
do_install:append() {
install -d ${D}${docdir}/${PN}/
cp -rf ${S}/docs/* ${D}${docdir}/${PN}/
}
do_install_ptest:append() {
cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
# Fix paths in test_docs.py
sed -i \
-e "s|^DOCS_ROOT = Path(__file__).parent.parent / 'docs'|DOCS_ROOT = Path('${docdir}/${PN}')|" \
-e "s|^SOURCES_ROOT = Path(__file__).parent.parent / 'pydantic'|SOURCES_ROOT = Path('${PYTHON_SITEPACKAGES_DIR}/pydantic')|" \
${D}${PTEST_PATH}/tests/test_docs.py
# We are not trying to support mypy
rm -f ${D}${PTEST_PATH}/tests/test_mypy.py
# We are not trying to run benchmarks
rm -rf ${D}${PTEST_PATH}/tests/benchmarks
sed -i -e "/--automake/ s/$/ -k 'not test_config_validation_error_cause and not test_dataclass_config_validate_default and not test_annotated_validator_nested and not test_use_bare and not test_use_no_fields and not test_validator_bad_fields_throws_configerror and not test_assert_raises_validation_error and not test_model_config_validate_default and not test_readonly_qualifier_warning'/" ${D}${PTEST_PATH}/run-ptest
}
FILES:${PN}-doc += "${docdir}/${PN}"
BBCLASSEXTEND = "native nativesdk"