meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.18.4.bb
Frank de Brabander bee8b9bbc4
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 <debrabander@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-07-26 09:51:39 -07:00

46 lines
1.4 KiB
BlitzBasic

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
}