From bee8b9bbc48e5ee9a4b67aed09027e62143eb34c Mon Sep 17 00:00:00 2001 From: Frank de Brabander Date: Fri, 26 Jul 2024 15:01:35 +0200 Subject: python3-pydantic-core: fix incompatible version The recipe for pydantic currently is at version 2.7.2. This project specifies in its pyproject.toml that it depends on pydantic-core version 2.18.4. Because an older 2.16.3 version of pydantic-core was used now, a simple bit of code will break. from enum import Enum from pydantic import BaseModel class Color(str, Enum): RED = "RED" BLUE = "BLUE" class Car(BaseModel): color: Color print(Car(color=Color.RED)) This will upgrade the python3-pydantic-core recipe to make it compatible with python3-pydantic, so that the above snippet of code will no longer fail. Two patches are removed, these backports are now included in the upstream code. A new patch is added to set the required rust compiler from 1.76 to 1.75. Version 1.76 is not actually needed. File python3-pydantic-core-crates.inc is regenerated by running 'bitbake -c update_crates python3-pydantic-core'. The recipes RDEPENDS now includes python3-compression. The pydantic schema validator imports 'importlib.metadata' which wants to import 'zipfile'. The buildpaths QA check is skipped. This should be fixed at some point, but it was already failing before this change. Signed-off-by: Frank de Brabander Signed-off-by: Khem Raj --- .../python/python3-pydantic-core_2.18.4.bb | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pydantic-core_2.18.4.bb (limited to 'meta-python/recipes-devtools/python/python3-pydantic-core_2.18.4.bb') diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core_2.18.4.bb b/meta-python/recipes-devtools/python/python3-pydantic-core_2.18.4.bb new file mode 100644 index 0000000000..eb55991995 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pydantic-core_2.18.4.bb @@ -0,0 +1,45 @@ +SUMMARY = "Provides the core functionality for pydantic validation and serialization." +DESCRIPTION = "This package provides the core functionality for \ +pydantic validation and serialization.\ +\ +Pydantic-core is currently around 17x faster than pydantic V1." +HOMEPAGE = "https://github.com/pydantic/pydantic-core" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c" + +SRC_URI += "file://0001-Set-rust-version-from-1.76-to-1.75-in-Cargo.toml.patch" +SRC_URI[sha256sum] = "ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864" + +DEPENDS = "python3-maturin-native python3-typing-extensions" + +require ${BPN}-crates.inc + +inherit pypi cargo-update-recipe-crates python_maturin + +PYPI_PACKAGE = "pydantic_core" + +RDEPENDS:${PN} += " \ + python3-compression \ + python3-typing-extensions \ +" + +INSANE_SKIP:${PN} = "already-stripped" +INSANE_SKIP:${PN} += "buildpaths" + +inherit ptest +SRC_URI += "file://run-ptest" +RDEPENDS:${PN}-ptest += "\ + python3-dirty-equals \ + python3-hypothesis \ + python3-pytest \ + python3-pytest-mock \ + python3-pytest-timeout \ + python3-pytest-benchmark \ + python3-unittest-automake-output \ +" + +do_install_ptest() { + cp -rf ${S}/tests/ ${D}${PTEST_PATH}/ + sed -i -e "/--automake/ s/$/ -k 'not test_model_class_root_validator_wrap and not test_model_class_root_validator_before and not test_model_class_root_validator_after'/" ${D}${PTEST_PATH}/run-ptest +} -- cgit v1.2.3-54-g00ecf