commit:     bd6e7324973776a5cce261d709ed266f183b1d0b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 16 16:09:34 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 19 16:09:13 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd6e7324

dev-python/pydantic-core: Enable pypy3.11

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/pydantic-core/Manifest                  |  1 +
 .../pydantic-core/pydantic-core-2.29.0.ebuild      | 26 +++++++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/dev-python/pydantic-core/Manifest 
b/dev-python/pydantic-core/Manifest
index 94a7c719881e..08abc0080d37 100644
--- a/dev-python/pydantic-core/Manifest
+++ b/dev-python/pydantic-core/Manifest
@@ -59,6 +59,7 @@ DIST pyo3-build-config-0.22.6.crate 31369 BLAKE2B 
a1a72de120c4ac4f23a3faaf9b2e34
 DIST pyo3-build-config-0.23.4.crate 33885 BLAKE2B 
7f95a8a9e08d413899ff1fa64af5a52783bad4a7b4db92835464f12bd8565f152497aaeb45d25cc91eed73950abeea30ca4c7495e3b15423ae588b97038beb18
 SHA512 
b11442609f43d9baab79daf083caf0366987f6ae182239814ad6df6fe4ad31b95132d74f1162fa9428d229bd8c18ef9b696a4c3329b3960fd705d1705fc5e973
 DIST pyo3-ffi-0.22.2.crate 67749 BLAKE2B 
0a4357d5f4fbcab9717d58b7a80b63a63bc329267d4725136c4eac7c0101095a50e5f840638dde79034e5df99c4f46664cfdc2ad437837643db5d475c5705cb3
 SHA512 
bf8b83b4790832d99de8c6a61a15a43fc189505dd843011933305f7f93c4f5f4849fb00cc2a6fa410b788645f8ed8c0df61799cf801966a925abb9756b1ab579
 DIST pyo3-ffi-0.22.6.crate 69352 BLAKE2B 
99eea6ed87001b23fdeb263937bc14be0fadadc1ad77d4fa8834045ba2fc6ba5c0b89f4051916a058b7640be655afe22785b1da42aac8a32d10209b7b37bf810
 SHA512 
616e51a0eae1207830fe95251d5b62f126daf446bec68ac98cb1b8538aaa59761dbde62d446a9ee205c23453dbd32bd8ecb15e26265ed1fa1e5e2056efd96369
+DIST pyo3-ffi-0.23.4-pypy3_11.patch.xz 2140 BLAKE2B 
29cf1a3b340241bb323192261b11a431a0b78748819dfe05683ce51c18fb53b5e9394fd4269197475d467f6be82df1fdc92e45450a1e2416ddd459bc00174b6e
 SHA512 
43da84518b24022b82314fc509e8125ad6a9e5c47f8e2eb20da2fa38631719759ce821253a62bdd9fc3fdbedf798e9a37168c39d913570a6cfc53aca3ec0eedb
 DIST pyo3-ffi-0.23.4.crate 74806 BLAKE2B 
650784d46347c00f09c010c39e9762f778efc510ad0b99b5ddf30cab18edaba552207339ad44ed4ae6d87ddfcc56fa540a17e3a4cb331905a0988d5ba2dc682a
 SHA512 
c12097292b4620f4fd98d61fde4a0f0c7d423a94d518fa5b1cf759089b066fede6d83e20171acc2aa7bf268de5700c9b59da32131216734626b0fa5cd5651801
 DIST pyo3-macros-0.22.2.crate 8136 BLAKE2B 
9dc97d2f60581db1b8ddb562dac917069525f297fe2cbb9aff3ed34d5a08ea43c112c9c7a450539da3536d753778b5ca506dd1b18e1d6b8a3649fc098e7af439
 SHA512 
f4f4f6af8dc3aa4bcc1698661990ab2112391ef9502e9f71d86e35bd10dc4e1be309102ebb1b7b32751817a6033168dc0486fdb16b35c626101e69f0de807a4a
 DIST pyo3-macros-0.22.6.crate 8182 BLAKE2B 
81998e4f4cb325763e4d3477af05b332e184cabf6391761f850d23508cebcf8d496ce12f747ea241523bb3899886eb20494b076a0651151744bb81d52901a1b4
 SHA512 
63f7a7b42e099742518c8a3bbc7647e98debb5500d08c39e11e8140fc146e790ab06e005d8d14c89aba79ebc5bf04fe1c92c0e9c5b13421307d3a4682d044179

diff --git a/dev-python/pydantic-core/pydantic-core-2.29.0.ebuild 
b/dev-python/pydantic-core/pydantic-core-2.29.0.ebuild
index 824a07507c07..2e6d190636e0 100644
--- a/dev-python/pydantic-core/pydantic-core-2.29.0.ebuild
+++ b/dev-python/pydantic-core/pydantic-core-2.29.0.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 DISTUTILS_EXT=1
 DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( pypy3 python3_{10..13} )
+PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} )
 
 CRATES="
        [email protected]
@@ -116,6 +116,7 @@ HOMEPAGE="
 "
 SRC_URI+="
        ${CARGO_CRATE_URIS}
+       https://dev.gentoo.org/~mgorny/dist/pyo3-ffi-0.23.4-pypy3_11.patch.xz
 "
 
 LICENSE="MIT"
@@ -146,9 +147,14 @@ distutils_enable_tests pytest
 
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/pydantic_core/_pydantic_core.*.so"
 
 src_prepare() {
+       distutils-r1_src_prepare
+
        sed -i -e '/--benchmark/d' pyproject.toml || die
        sed -i -e '/^strip/d' Cargo.toml || die
-       distutils-r1_src_prepare
+
+       pushd "${ECARGO_VENDOR}"/pyo3-ffi* >/dev/null || die
+       eapply -p2 "${WORKDIR}/pyo3-ffi-0.23.4-pypy3_11.patch"
+       popd >/dev/null || die
 }
 
 python_test() {
@@ -160,9 +166,23 @@ python_test() {
                tests/serializers/test_functions.py::test_recursive_call
        )
 
+       case ${EPYTHON} in
+               pypy3.11)
+                       EPYTEST_DESELECT+=(
+                               # different repr() in exception
+                               # https://github.com/pypy/pypy/issues/5220
+                               
tests/validators/test_arguments.py::test_error_display
+                               
tests/validators/test_definitions_recursive.py::test_error_inside_definition_wrapper
+                               
tests/validators/test_string.py::test_invalid_regex
+                               
tests/validators/test_string.py::test_backtracking_regex_rust_unsupported
+                               
tests/validators/test_union.py::test_empty_choices
+                       )
+                       ;;
+       esac
+
        local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
        rm -rf pydantic_core || die
        # tests link to libpython, so they fail to link on pypy3
-       [[ ${EPYTHON} != pypy3 ]] && cargo_src_test
+       [[ ${EPYTHON} != pypy3* ]] && cargo_src_test
        epytest -p pytest_mock -p timeout -o xfail_strict=False -o addopts=
 }

Reply via email to