summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-10-02 21:32:50 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-10-02 21:32:50 +0000
commitd72ddd7182c5ead3b93ffafc768fbd120f05a332 (patch)
tree5b76f43623c25806dedfa87a53b978d4ef8b6dd7 /dev-python
parent083be24fc7b64ab9c4ddff1e970b6f394b6e613f (diff)
downloadbaldeagleos-repo-d72ddd7182c5ead3b93ffafc768fbd120f05a332.tar.gz
baldeagleos-repo-d72ddd7182c5ead3b93ffafc768fbd120f05a332.tar.xz
baldeagleos-repo-d72ddd7182c5ead3b93ffafc768fbd120f05a332.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.35.31.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.35.31.ebuild76
-rw-r--r--dev-python/clang-python/Manifest2
-rw-r--r--dev-python/clang-python/clang-python-19.1.1.ebuild54
-rw-r--r--dev-python/griffe/Manifest1
-rw-r--r--dev-python/griffe/griffe-1.3.2.ebuild49
-rw-r--r--dev-python/httpcore/Manifest1
-rw-r--r--dev-python/httpcore/httpcore-1.0.6.ebuild69
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/lit/Manifest2
-rw-r--r--dev-python/lit/lit-19.1.1.ebuild46
-rw-r--r--dev-python/pymdown-extensions/Manifest1
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-10.11.2.ebuild37
-rw-r--r--dev-python/pymongo/Manifest1
-rw-r--r--dev-python/pymongo/pymongo-4.10.1.ebuild228
-rw-r--r--dev-python/pyproj/Manifest1
-rw-r--r--dev-python/pyproj/pyproj-3.7.0.ebuild55
-rw-r--r--dev-python/python-tests/Manifest7
-rw-r--r--dev-python/python-tests/python-tests-3.12.7.ebuild69
-rw-r--r--dev-python/python-tests/python-tests-3.12.7_p1.ebuild69
-rw-r--r--dev-python/python-tests/python-tests-3.13.0_rc3.ebuild69
-rw-r--r--dev-python/qrcode/Manifest1
-rw-r--r--dev-python/qrcode/qrcode-8.0.ebuild34
-rw-r--r--dev-python/reportlab/Manifest1
-rw-r--r--dev-python/reportlab/reportlab-4.2.5.ebuild53
-rw-r--r--dev-python/rich/Manifest1
-rw-r--r--dev-python/rich/rich-13.9.1.ebuild77
-rw-r--r--dev-python/setuptools-rust/Manifest6
-rw-r--r--dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild176
-rw-r--r--dev-python/snakeoil/Manifest2
-rw-r--r--dev-python/snakeoil/snakeoil-0.10.9.ebuild (renamed from dev-python/snakeoil/snakeoil-0.10.8.ebuild)0
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-25.24.1.ebuild129
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-11.0.0.ebuild93
-rw-r--r--dev-python/tox/Manifest1
-rw-r--r--dev-python/tox/tox-4.21.0.ebuild98
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.4.18.ebuild144
-rw-r--r--dev-python/vobject/Manifest1
-rw-r--r--dev-python/vobject/vobject-0.9.8.ebuild29
-rw-r--r--dev-python/x-wr-timezone/x-wr-timezone-1.0.1.ebuild5
47 files changed, 1755 insertions, 21 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index fa808cd3b0fe..dea86e91e547 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.35.19.gh.tar.gz 861578 BLAKE2B 5011df66763e646768232a65022080ffbe3db08253f1bf3e192cf57be010ccdd08f8add78ec365e1c04d78ba1722cf6ef54fbc170f7f2419fcd370c08d48e3ce SHA512 faabd3ef8eb35a323ed64a711e0a026f8f77974516b05a93d389fb82b84932f69a2c784a1065811699dac4db016549f3756f24b879485b2dfb6ca380e6873670
DIST boto3-1.35.24.gh.tar.gz 864653 BLAKE2B e2327ae352d17f0cfabdcca6d7db07e0212ea740c66d8f36baf44d0617cdbfdcb018388fed1deeea37bef5e44edb360f2cb77b41085e7a3308f7d4045b0a4aa3 SHA512 e34b02cf141bd77d92a34dbef266e07f6d45d46aa924e3941dbe09a9562253f375b79a6a4f1e3df248d711341e00367a8519f816b2200353a6262de72a40fba0
DIST boto3-1.35.29.gh.tar.gz 867438 BLAKE2B 7a47e8156bd438e94fe2abf9fa978aa243bf131bf7c9afdafeca7f7ada9b014daea410da82417e95bdd57f14bf5a973429cc7b431ba72088f9f9619c59cf9b93 SHA512 7238f353520768576390651a4a90a389b24205b38ff9c58829ff53b6210fb3a4ad5c27301e5be27bb10ed2017ff29691780102af983e16d0b14a4f9add17ba12
+DIST boto3-1.35.31.gh.tar.gz 868424 BLAKE2B 28c352784c8af273f29318b788ed2c29b88e2e2deb248849937f7a33d0a0d11132a8ee571bce18486c60e63c5c2972fa041389f8ea41dda7d18fd7ee21a30fd2 SHA512 2f614c8f0fc9631a7c77889e392c789493e836d195d5210fa5a63d10bc67c8879f06251a006c6d398afd71fc646320e4571060174a277538fcba63930d6183a7
diff --git a/dev-python/boto3/boto3-1.35.31.ebuild b/dev-python/boto3/boto3-1.35.31.ebuild
new file mode 100644
index 000000000000..d91ce27598cf
--- /dev/null
+++ b/dev-python/boto3/boto3-1.35.31.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index d1c3c6f07766..08f8a0042a4c 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.35.19.gh.tar.gz 13376459 BLAKE2B ba64ff0dc221782ce23592a6d6a146a680e2b86aa734673d4b16d6fd83355958b32af0e86a6769d2237e6234d80fb7fb23d52e3bcd2187cfe7d3646307fdea38 SHA512 6988f442b573e951766f1978325937a29141436d976baedb9c29959d5ff64014520c1bee4a8ce9b0d4226f62a6efb081a0532b2a825811e8cb2de3217ed311ae
DIST botocore-1.35.24.gh.tar.gz 13406391 BLAKE2B ddc1c456e4358b3e28ca8f6a92230fb843309fd6059eaf909a9fb3de0bd580fb52389173187e0794054b9f1bc21a829f457b80067868c13fd7987fc682acd024 SHA512 7a1e8c1a85e8699a811a41b59cdefcee2457c5dfdf01d54f3048f894869c5c4033287909095bf15304e408c268cf772194655afffff280dbb6fd6c6daac1d8cb
DIST botocore-1.35.29.gh.tar.gz 13404400 BLAKE2B 41dab50dbed91c55df3c74cc3c57bd02a770b37445cf26690d199c62642b2d96d1c56d06cfea58ac23e6fa0826be99c684bd98d5e00e0e7aa8bcc0b599f70bce SHA512 c82c942942c5ad7c0b941bf1e89003730bda68fd9a2f623e8db85690f8157f73517b0ff6b7009cb15461bbff41b7ee713c5ab935cc0eb96ba3ef3e3100e363e5
+DIST botocore-1.35.31.gh.tar.gz 13414420 BLAKE2B 942455ccd037fb7cd9142a43cbc316ccc0ff8a7bc55f00096bea11527d2701cb6ac89984faca19793dcdbba5163bba330f1cddbbb9427a411d9db0cf50c9cfba SHA512 972a9f72e2d922f95e7df23ee087787962062dc97b1aa1c7732fac7a4de17d8728bad0f38dfa4dd6963c285acdd10a327044e6aba43b54953d8ab9531619b927
diff --git a/dev-python/botocore/botocore-1.35.31.ebuild b/dev-python/botocore/botocore-1.35.31.ebuild
new file mode 100644
index 000000000000..2fce84c7e05c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.35.31.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ case ${EPYTHON} in
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # memory use tests, probably fragile
+ tests/functional/leak/test_resource_leaks.py::TestDoesNotLeakMemory
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/clang-python/Manifest b/dev-python/clang-python/Manifest
index a94461d88b67..a3185550d2bd 100644
--- a/dev-python/clang-python/Manifest
+++ b/dev-python/clang-python/Manifest
@@ -8,5 +8,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
+DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
+DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f
diff --git a/dev-python/clang-python/clang-python-19.1.1.ebuild b/dev-python/clang-python/clang-python-19.1.1.ebuild
new file mode 100644
index 000000000000..3d1a9d2c1cec
--- /dev/null
+++ b/dev-python/clang-python/clang-python-19.1.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for sys-devel/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=sys-devel/clang-${PV}:*
+ !sys-devel/llvm:0[clang(-),python(-)]
+ !sys-devel/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/griffe/Manifest b/dev-python/griffe/Manifest
index b8973904a449..01ab11e14c0b 100644
--- a/dev-python/griffe/Manifest
+++ b/dev-python/griffe/Manifest
@@ -1,2 +1,3 @@
DIST griffe-1.3.0.gh.tar.gz 383337 BLAKE2B e1908e68f812b9227f4ba7249a8f20ae1d75cac3237ca90c5f47adb51a8d0efcd31b016f30f9f9e0af2a2292b86cf5fb08d9314e72ca4282bd36cafce19030ac SHA512 839d0bb8fc36f5552d50721f72905d533849d9b7258ba1ed1eabc783dddc4aee87ea612605bd23268f4282c06e71e010e76dfebce0951ef92917abc80211e7d1
DIST griffe-1.3.1.gh.tar.gz 383076 BLAKE2B e7bc85daa49531c17215ce64209db89c3e4c12fe7b20a7ba004ee696c1fa0307a1753c7663d455ac6562b226c6526725750c0b25c2e148af468431d1a38d8aad SHA512 45d44cc81ca3e108127470271f058dcfaa80702ed4e5d2610a9b4f6bb5e1e16052c9ae5c6a5b396b1cc8d6002b9cf3531cae611b15e7d54b1096d74b4bf04976
+DIST griffe-1.3.2.gh.tar.gz 383330 BLAKE2B ce96d0ce14dec7a48172758cb08331e07b36c436f953061aee375fbb7c4ad7fa01050b6a15335dae44d292c90ea5724c85abda9b4f8dd231e979ca1b8d2faa38 SHA512 098f78f95e89d22738ef5b8b6e91fffd7f0c48705492081aee0c072d2ac409f88bb7698ffbcbbfa9cd7627d081c441a8eafba3d261a81dba02a92e04ac80d7c0
diff --git a/dev-python/griffe/griffe-1.3.2.ebuild b/dev-python/griffe/griffe-1.3.2.ebuild
new file mode 100644
index 000000000000..06ef983f39dd
--- /dev/null
+++ b/dev-python/griffe/griffe-1.3.2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Signature generator for Python programs"
+HOMEPAGE="
+ https://mkdocstrings.github.io/griffe/
+ https://github.com/mkdocstrings/griffe/
+ https://pypi.org/project/griffe/
+"
+# Tests need files absent from the PyPI tarballs
+SRC_URI="
+ https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/colorama-0.4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/backports-strenum-1.3[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ >=dev-python/jsonschema-4.17[${PYTHON_USEDEP}]
+ dev-python/mkdocstrings[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-2.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+export PDM_BUILD_SCM_VERSION=${PV}
+
+EPYTEST_DESELECT=(
+ # fragile to installed packages
+ # (failed on PySide2 for me)
+ tests/test_stdlib.py::test_fuzzing_on_stdlib
+)
diff --git a/dev-python/httpcore/Manifest b/dev-python/httpcore/Manifest
index 7a7176fa1fda..03a7245cbd71 100644
--- a/dev-python/httpcore/Manifest
+++ b/dev-python/httpcore/Manifest
@@ -1 +1,2 @@
DIST httpcore-1.0.5.gh.tar.gz 97696 BLAKE2B 2e05f790e0e67c36f86ac1ee47eea716f820d68678eff63e73bce0f652448d782c66764e7f1ab3f8e891ebf2243b96ba79ca211ea769bbf5df117342e2942cbb SHA512 4b37f3874e65908598b906167d5b0840f66ffef95b65110d318d9e64df5fd23770a08ea44ea2f3cf6f9db50f20bb9fec99b40323b959675b37168414cf397bf8
+DIST httpcore-1.0.6.gh.tar.gz 99863 BLAKE2B 0da9b958674d92ed787c0310ad6819cd9359b6e608bfff1b366233ba10085905ec5aeb1b1f0b99ea3fef84aaed31f3aa832ced3fa22cb659e3016c0626dac997 SHA512 f83fb851267bb2007a1735d387acba4d99a957db7f85decd5dc6d7d7235a41fe50081b33267e61dc5c52627f07429ba99839868e95997cff1f6c8b2c046a0596
diff --git a/dev-python/httpcore/httpcore-1.0.6.ebuild b/dev-python/httpcore/httpcore-1.0.6.ebuild
new file mode 100644
index 000000000000..c407a9253870
--- /dev/null
+++ b/dev-python/httpcore/httpcore-1.0.6.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="A minimal low-level HTTP client"
+HOMEPAGE="
+ https://www.encode.io/httpcore/
+ https://github.com/encode/httpcore/
+ https://pypi.org/project/httpcore/
+"
+SRC_URI="
+ https://github.com/encode/httpcore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/anyio-5[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ <dev-python/h11-0.15[${PYTHON_USEDEP}]
+ <dev-python/h2-5[${PYTHON_USEDEP}]
+ =dev-python/sniffio-1*[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-httpbin[${PYTHON_USEDEP}]
+ dev-python/socksio[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/pytest-trio[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ ' 3.{10..13})
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local opts=()
+ local EPYTEST_IGNORE=()
+
+ if ! has_version "dev-python/trio[${PYTHON_USEDEP}]"; then
+ opts+=( -k "not trio" )
+ EPYTEST_IGNORE+=(
+ tests/_async/test_connection_pool.py
+ )
+ fi
+
+ if ! has_version "dev-python/pytest-trio[${PYTHON_USEDEP}]"; then
+ opts+=( -m "not trio" -o addopts= )
+ fi
+
+ epytest "${opts[@]}"
+}
+
+pkg_postinst() {
+ optfeature "SOCKS support" dev-python/socksio
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..37a64204a00a 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
deleted file mode 100644
index 637368d2f237..000000000000
--- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
-
---- a/setup.py
-+++ b/setup.py
-@@ -18,7 +18,7 @@ setup(
- author_email='michal.danilak@gmail.com',
- url='https://github.com/Mimino666/langdetect',
- keywords='language detection library',
-- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
-+ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
- include_package_data=True,
- install_requires=['six'],
- license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index eb2586280d80..56733bbffc48 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,6 +19,4 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
-PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
-
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index c0f74ac187e2..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,9 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>pastalian46@gmail.com</email>
- <name>Takuya Wakazono</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index a94461d88b67..a3185550d2bd 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -8,5 +8,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
+DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
+DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f
diff --git a/dev-python/lit/lit-19.1.1.ebuild b/dev-python/lit/lit-19.1.1.ebuild
new file mode 100644
index 000000000000..b61f6595b3a5
--- /dev/null
+++ b/dev-python/lit/lit-19.1.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ sys-devel/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from sys-devel/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest
index ec88a7428019..7e413f993f58 100644
--- a/dev-python/pymdown-extensions/Manifest
+++ b/dev-python/pymdown-extensions/Manifest
@@ -1,4 +1,5 @@
DIST pymdown_extensions-10.10.2.tar.gz 829801 BLAKE2B 8da4c0afba79a4736621ce8b644a42b4918c04685c1c0312f6a184007c456f92e106fdfd9ae9be64a32bba1d907b6a528fdc49267d1153c0393a8c20c4ded527 SHA512 5885a8f9ea774a5718647a9d546dc5285186d19761441cd1ef39d5f8be40ee13f8fb6cf8791f890001affa6fe051962a45f8cfe8c1d0c549eb4bfeab956494f9
DIST pymdown_extensions-10.11.1.tar.gz 830215 BLAKE2B b32f11d7c3ee3c680b6a225ec44e7eaab4bd23cc95dd96fff29a037938384ac348ef0405a3fabf9dfb2bccc705e2cc2293d04dec7e323a47612c9a1d2ca7188c SHA512 cb04fef9cf6e2c2371287f0cc914b892a519392bb573b04eb547f96c7167cbd93da5848324c5693fc3e9cbec61c9a6d45b22d12d5164db4a09621d8de1d44999
+DIST pymdown_extensions-10.11.2.tar.gz 830241 BLAKE2B c4048ae6931e7c540b8fd97080daa2290df74be76933874c91db09edac49a272c079d8767b15f28ecee0bf2efa3569179f236d6c4e703dd0d324feabab8da3db SHA512 9636552de1a9ae4519e1c6d7ca7b9c6cd0eb8b4be27a844ea926937cfa00add0b9ca8894f3b8f95e7c95ef0b6012e9a5d0c5b8d0f9aa20d7300fb4878c6f91da
DIST pymdown_extensions-10.11.tar.gz 829898 BLAKE2B ed0acbfa6ec4b8a61e1a05817aff8abc94545fe9c6da9c43000a696a25c7f3ec7a27b9398079c2cdecad397fff6ddd8716ea07d36c00272ae7ae144a513e39f3 SHA512 a06c00e64635fa6223a7e764e3f5f4604cc7d8ae4c2a8f6e47f6f799e877a213eab5398e67d7bb6586142ad03b2c155897b559bbb66d50e343405d15c53fe7c0
DIST pymdown_extensions-10.9.tar.gz 812128 BLAKE2B 2427c41b8587e8b0c4d9bedc4e7c413959545f6c1a12b2c9453861bdb349cbd5bb70327384821f6423718296f56efa17aae21db79bdd038f330246555bcd538b SHA512 3642ccf18a85ffe6ac03dcb132f4b64009490e2a6d0cc70c322ef7640de2a5895a321f755f2d6e16f9c9e84b112c12ded2db18ff73d3201f7b9e0a10c8cd78b5
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-10.11.2.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-10.11.2.ebuild
new file mode 100644
index 000000000000..23a947575357
--- /dev/null
+++ b/dev-python/pymdown-extensions/pymdown-extensions-10.11.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extensions for Python Markdown"
+HOMEPAGE="
+ https://github.com/facelessuser/pymdown-extensions/
+ https://pypi.org/project/pymdown-extensions/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/pygments-2.12.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index 91494dde6880..6339cc8b4fc9 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1,4 +1,5 @@
DIST mongo-python-driver-4.10.0.gh.tar.gz 1948389 BLAKE2B 19429aad69baa013226a4b36de5c654fe074bdb39a462d588a1a4298a35fd8bbf941d8189dbe632e25619fb691a960c98988e205e82796ec1572d2dc63379b2d SHA512 3153e97ad6e749a35d071ef91eb870be76d75f404526e5275cc5ab19470f09a8450debba519cb10bd79191d1b1dd8cfc04882b1d7ef4898471b14bf131fa8c83
+DIST mongo-python-driver-4.10.1.gh.tar.gz 1957402 BLAKE2B 66f7c166af7c7467ca7cb20266d313e453ab485516c17e8eda5a4771b4818778c00ad314e7bd5868a95f2045f879a73617f64549db634257f1abbc7a9a095181 SHA512 200bda479cd951beef6234a15120a043b4399cadd8ef2fda69bfcd6904e1e0e43d179626092dc81d89f48806768bf8147c55108c91620920f5544f712bf3be51
DIST mongo-python-driver-4.7.2.gh.tar.gz 1548375 BLAKE2B a40dbe153f36cdf2836583aa0116f447d08376ce7980a09d0f21cea37a34ab318e5ff0b34b7fe1721cf7fc5d5443a1dbe0982d59cb941b0da8a4a99abdc7b19d SHA512 1de8bd14301e365eb53252dedaaaf8c9056dd534662543e2a500511e5f5f67a69e1f11a8a8575efdbd8852bb47b632d59762f66024d32973d20dc17c4448b9be
DIST mongo-python-driver-4.8.0.gh.tar.gz 1550149 BLAKE2B 9462480b17f3da54918883fbcb28a4324e6a00a9c2c34b16267ebcd378170f7fd34ec7290f7a0e3c4c38a5f1f803428cb6a0c64a562d956b3a19c37130697012 SHA512 17513a278187424fea1876d288651e385be759f23eebceca8d04a15182b15ffd64956193bb53e4a90e8b2197c2ebbade274737091f5d2e5fb4398539674c41df
DIST mongo-python-driver-4.9.1.gh.tar.gz 1937311 BLAKE2B 9312c7df50f86dad7dd713b34aba0a87dd9f878b115b3c00ae9e0825c883c869f57e0d55d552b1b4bf9715930840a540572b451d296e185085c4c0c707855811 SHA512 e616418c90088bfc328505dea315a225bfcc942fa29dcc348d3b80d0fb329b7e8fe9d6164c0e13a0562e6126535cc7d04c2cf497a39a04071f6db8af3c8ed1f1
diff --git a/dev-python/pymongo/pymongo-4.10.1.ebuild b/dev-python/pymongo/pymongo-4.10.1.ebuild
new file mode 100644
index 000000000000..1ec18dcacb90
--- /dev/null
+++ b/dev-python/pymongo/pymongo-4.10.1.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit check-reqs distutils-r1
+
+MY_P=mongo-python-driver-${PV}
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="
+ https://github.com/mongodb/mongo-python-driver/
+ https://pypi.org/project/pymongo/
+"
+SRC_URI="
+ https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc kerberos +native-extensions +test-full"
+
+RDEPEND="
+ <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
+ kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ test-full? (
+ >=dev-db/mongodb-2.6.0
+ )
+ )
+"
+
+distutils_enable_sphinx doc
+distutils_enable_tests pytest
+
+reqcheck() {
+ if use test && use test-full; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # we do not want hatch-requirements-txt and its ton of NIH deps
+ sed -i -e '/requirements/d' pyproject.toml || die
+}
+
+python_compile() {
+ # causes build errors to be fatal
+ local -x TOX_ENV_NAME=whatever
+ local DISTUTILS_ARGS=()
+ # unconditionally implicitly disabled on pypy3
+ if ! use native-extensions; then
+ export NO_EXT=1
+ else
+ export PYMONGO_C_EXT_MUST_BUILD=1
+ unset NO_EXT
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ rm -rf bson pymongo || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local EPYTEST_DESELECT=(
+ # network-sandbox
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
+ test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
+ test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/test_client.py::ClientUnitTest::test_detected_environment_logging
+ test/test_client.py::ClientUnitTest::test_detected_environment_warning
+ test/test_client.py::TestClient::test_service_name_from_kwargs
+ test/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
+ test/test_srv_polling.py
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
+
+ # broken regularly by changes in mypy
+ test/test_typing.py::TestMypyFails::test_mypy_failures
+
+ # fragile to timing? fails because we're getting too many logs
+ test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
+
+ # hangs?
+ test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
+ )
+
+ local run_separately=(
+ # need to run some tests separately and then restart mongodb
+ # to prevent it from crashing
+ # https://bugs.gentoo.org/934389
+ # note that this list must not overlap with EPYTEST_DESELECT
+ test/test_bulk.py
+ test/test_change_stream.py
+ test/test_collection.py
+ test/test_crud_unified.py
+ test/test_gridfs.py
+ test/test_gridfs_bucket.py
+ )
+ local run_separately2=(
+ test/test_command_monitoring.py
+ test/test_connection_monitoring.py
+ test/test_cursor.py
+ test/test_database.py
+ test/test_grid_file.py
+ test/test_monitoring.py
+ )
+ local run_separately_async=(
+ test/asynchronous/test_database.py
+ test/asynchronous/test_grid_file.py
+ )
+
+ if ! use test-full; then
+ # .invalid is guaranteed to return NXDOMAIN per RFC 6761
+ local -x DB_IP=mongodb.invalid
+ epytest
+ return
+ fi
+
+ # Yes, we need TCP/IP for that...
+ local -x DB_IP=127.0.0.1
+ local -x DB_PORT=27000
+
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ local stage failed=
+ for stage in {1..5}; do
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local async=( -p asyncio -m default_async )
+ local def=( -p asyncio -m "default or encryption" )
+ case ${stage} in
+ 1)
+ nonfatal epytest "${def[@]}" "${run_separately[@]}" || failed=1
+ ;;
+ 2)
+ nonfatal epytest "${def[@]}" "${run_separately2[@]}" || failed=1
+ ;;
+ 3)
+ EPYTEST_DESELECT+=(
+ "${run_separately[@]}"
+ "${run_separately2[@]}"
+ )
+ nonfatal epytest "${def[@]}" || failed=1
+ ;;
+ 4)
+ nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1
+ ;;
+ 5)
+ EPYTEST_DESELECT+=(
+ "${run_separately_async[@]}"
+ )
+ nonfatal epytest "${async[@]}" || failed=1
+ ;;
+ esac
+
+ mongod --dbpath "${dbpath}" --shutdown || die
+ done
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}" || die
+}
diff --git a/dev-python/pyproj/Manifest b/dev-python/pyproj/Manifest
index 1cf1895e0746..ca7e1759ede7 100644
--- a/dev-python/pyproj/Manifest
+++ b/dev-python/pyproj/Manifest
@@ -1 +1,2 @@
DIST pyproj-3.6.1.gh.tar.gz 239568 BLAKE2B e396e7c13dfc90f8a8eaf93b7bc0e62921779930d9c42b21ce8afa95597b13e527c179096600f40140d6d00d0f425580fccc34ae55a4e8c985d1b618554c9db4 SHA512 19c55e7ab99aae70bc318246146dc98ba75cc4884de798392f590df48c6a83e1b80504fd9c555ffd9d19262eb93cdf2c46e4805a3ae6dc07b3eaa4669f025ff0
+DIST pyproj-3.7.0.gh.tar.gz 240143 BLAKE2B e5508adbfe8f30ce6808bfeacfa8de0cd70ac2f7578aaffb3a3962aacd4cde0b7100645d562fe8822ab1d962b19c7c1d02bc336bc830058dac8a1995044adc9c SHA512 6cc1df752a5ca58b3a90a725ca113f52648e2bf72b4ecdd516169571f71652cee5c6b34bd4932b9ddf0b94b084ea4a406d915aebfa9abf1d4065567f7b48d660
diff --git a/dev-python/pyproj/pyproj-3.7.0.ebuild b/dev-python/pyproj/pyproj-3.7.0.ebuild
new file mode 100644
index 000000000000..056c6c21b584
--- /dev/null
+++ b/dev-python/pyproj/pyproj-3.7.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python interface to the PROJ library"
+HOMEPAGE="
+ https://github.com/pyproj4/pyproj/
+ https://pypi.org/project/pyproj/
+"
+SRC_URI="
+ https://github.com/pyproj4/pyproj/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux"
+
+DEPEND="
+ >=sci-libs/proj-9.0.0:=
+"
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-python/cython-3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/shapely[${PYTHON_USEDEP}]
+ dev-python/xarray[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ # Avoid greedily trying -L/usr/lib, etc
+ # https://github.com/pyproj4/pyproj/blob/main/setup.py#L76
+ export PROJ_LIBDIR="${ESYSROOT}/usr/$(get_libdir)"
+ export PROJ_INCDIR="${ESYSROOT}/usr/include"
+}
+
+python_test() {
+ rm -rf pyproj || die
+ epytest -m "not network" test
+}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 8dceccee40b9..45dfa211f4d7 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -10,10 +10,14 @@ DIST Python-3.12.5.tar.xz 20422396 BLAKE2B f127d1e12d12be84d5837282757787be8a0cf
DIST Python-3.12.5.tar.xz.asc 963 BLAKE2B 238167f6b4012136bc4274eee0dd4d958c4ee02d2505f9f64e5bcad15e84a9e9e12a9fc907651083543f1fce93579b752d4ccdf60c8cc421cb43e9034877bf1c SHA512 65ce92272a38cc6bf8bf56fa2a99a830cf5b33b811b1788508e7b6f8b5d3e93e0b143412f829271be40cbb4e7c154f84499239b3e8ab63b2ccf0a5a22d2f84ee
DIST Python-3.12.6.tar.xz 20434028 BLAKE2B 527fafdbfd0c1784ff72a93cdeb3f49666bae7d9343b6d1e4ef773fc52bd397081b41bec3ee9ed5b7652f28f09f29a1b553424cef26aebfa6c2e13499870bf2b SHA512 e658b0d59b5cfdc591d626e8282b9945759f27ee6fbc8bcb8670737db32ffc11fb832dfed9b0e80188fb5f7f3f39fe6dd6191ab7736376453c9e248321e9b063
DIST Python-3.12.6.tar.xz.asc 963 BLAKE2B d5f9e4c5053610a1a53769278e69d8a25e2fb047afb2a55dfee67917d8d200ebc159e614327ac87f34a4a9718cb3436b55190322ee231116b26074a78bb72642 SHA512 91a15bb7e8dd26616a2cdabe69c3ee81668cc67cb55a88b2be20433d24c9f8ae41c8f93f67aff2fa5858cd5b94600409cd472bd437a2fd33153483734ecd863f
+DIST Python-3.12.7.tar.xz 20444032 BLAKE2B eed8744261cab3b401963ec5187a8b814adb9a18f8d0a6a3d59c027a83cf8408524af9b20204b0a0861d173cc33c45ae37bb1542a1ace3344dc59c649087ff1f SHA512 4a363d3f852ad8f4fd1484aa4cec35494a3811be48ef67fadb2bdf2e2489ed07dc78fad6ab475257db503ddd64d39f9800f23a1c94b6bbd15b7f632cff0c90ae
+DIST Python-3.12.7.tar.xz.asc 963 BLAKE2B 8c7db3d1971d93a10c611a2e6dd3679d0b331b48df87b5fe410b089061e48753d98af67084d4f051a31ae803fce3aa3c7af7cba9c692640f50068bd1e46f40e6 SHA512 4d0a7a0da2c81888e93d8ff89ca2ed4bb85a7b0bd00f0d54a14e2c201affac2677ef3984d2b5aea253e624f6465548d9032eefdd9033c1eb3864d82cfd8d3df0
DIST Python-3.13.0rc1.tar.xz 20881016 BLAKE2B 3971a233e9c3c782973e0276740f00f8f2072eeda914663cdf7fa6c5de2437c60c441184344a64e25cab5c71a02c47cf4602dd08f127f310c885386cd887fec4 SHA512 fce7664f3298cfd191a7dc20b7b47acafdc50d058a2814312c94c30b65291395957d701e4661b9bb760417942acb5d27e5b8bb479bcda9a82cf29f53772a2daf
DIST Python-3.13.0rc1.tar.xz.asc 963 BLAKE2B 1c292362cd133dbbb1df1e0cf440e8adde2bc8db9174e550d5b76a09e80d0dbc11a0250e6f041e54fe58f25dc05f071c7af1aa910ae56ece5eb430502a2ba67c SHA512 3613829d9631f46b1b1ce11bfe5bb7fbfa49d97b639bb883c86737ea6ae8d15c24c526083cafb916011bd6d0b3b5fab2b17afd367edbdce99b32e0b4b845fd22
DIST Python-3.13.0rc2.tar.xz 21055084 BLAKE2B 017ac82c1938d1fea0a501efb9d1848115648f0472b7cbaa4eac65cf085c3c6410ea83aab2e935952ca1b415d603f4c5680fec7a15ce5b40794b2fdcef662666 SHA512 85e6e6e80970ca38119e4f95880fb12e2d1548e6d60235cfcd7f6aaf08588c483469e43dda0f004b95455c2fb88ca736c313b22ae37eb0d4e6460ef521855c8d
DIST Python-3.13.0rc2.tar.xz.asc 963 BLAKE2B bb75db12c424b7a05c8c0082f79c1ab6e2ad04440a27d2c964edc073fbdc1c0ac442b0b2a0719a33f8058bc7bc9097eb22e031299f8de5b6d88b74e4e5ece8a8 SHA512 6d80d089b55910628744d21b0382b6441d0550c139dbee71d68a7cd9e494bff1c8235a2a894f3c7a52f9af312480a4001f333e04c9054f32db7eefd2a7d39263
+DIST Python-3.13.0rc3.tar.xz 22527884 BLAKE2B 9c6423e9871b30af70ece10598e798da443b40b3e40cae86ec59d396184df005627a5edeedf34d31c7953f972850e41d1cc708edd8e39c1327d319b0f6973049 SHA512 152e5b6d64048c1779612e66d5999c424ca7c61c8a0f4973f7b3019629d6a7923b422aec0bee30e7bc2d589a807d87e15a19b8fb4446bcf082eb663885a49b36
+DIST Python-3.13.0rc3.tar.xz.asc 963 BLAKE2B e03d902eee320939cb77094e1b64e0101d0172ebdcc502255da1c0fc84476f43fafe900321c78cd78248a751b3a3921572ba4f305ed77ed78f175184b21f667f SHA512 c8f80b12f5e3021a11fc3ef5ce84572db9de7165ce89a03206cb0727b54f90ca2e444a16df064e6423e15b7bf2364db088b0c9315967dd340e735eabf7b892ce
DIST python-gentoo-patches-3.10.14_p3.tar.xz 22080 BLAKE2B f45ebe4df3dc39a842c93d741ef66fd0f9f7d1c6453d499d59b62eda41f01bc17e109205fedc506963d1f21eb3fbf9478564ff5e1a11c10336f855069a642ceb SHA512 db268f1482e5c46a71ce3aef2c2ab6d458cc5263aec360e61c6aff97f119f4f100becefbb575156b1b0239e591a496cb62a136597fadae8a5b630c7233c0040a
DIST python-gentoo-patches-3.10.15.tar.xz 15896 BLAKE2B f908b409dbcedeb4e2fa7255d9dedfb8f86f39b9b12612d45662d2305012692753874befa5377e1bcb2e8fc04b54bf206948e12eb7bc357a764c1b1e496e5997 SHA512 a647882ede8d7b97e301e472e91f4573dce9f8bf4e408449444625fdf79859a54fd828daa60c7960721f34c3d6d82e2e45db2c55f2fc093097a0db42f7363b8c
DIST python-gentoo-patches-3.10.15_p1.tar.xz 24048 BLAKE2B 191c28ad9bc781d6f3077870e8d40ff98a47a64009ecfbbd10fe2b3c5330692181837fd3e9b336fd01f936a39160fc12761b2ef9bc00843248ab978cda2e2767 SHA512 4461e351c991694415e2812e558d6c3d3f79295358623dc955bc0839691a170d95a3efd31c0bf9f0d6191e4184d7b55fdb485b948d591782fef5b060d7660cce
@@ -24,7 +28,10 @@ DIST python-gentoo-patches-3.12.5_p1.tar.xz 8632 BLAKE2B 13570bb465002cea3590b06
DIST python-gentoo-patches-3.12.6.tar.xz 6048 BLAKE2B 577032d7aa4bab423781bffad8e64f56b492dc31fbd20acd91f3d28356bd697603dfd47a3a9051538dde2af942ae513727ecea415d82f5082a992bd22b8cb2dd SHA512 6f1037e97bb362a3d04c3ec080dc062c5de6e4b779cda0d88f684422d757acd6fc6f971c7004a3f50bbc0161dd28c3146672f74e0e598066f9a8ba4e0eb2627e
DIST python-gentoo-patches-3.12.6_p2.tar.xz 8144 BLAKE2B 2f36ce972e0b3e2884c9df629e3aeb1af05e4c77dffb866ff28e08a0a7df3c7cf36a9de250d148d909c07fd5bad483c95b3267818657c04e7d0d6fe512e21f9a SHA512 caa86c6cf693f9293b3aa8944452d117b78c1c3f8d6a6aa658cb5c2d2ffb0cecc6cf14b293872bd2101766ee7167ba88183904b2814090f8cbc64c1fa3b771be
DIST python-gentoo-patches-3.12.6_p4.tar.xz 8764 BLAKE2B a75b9bc3768f1e07272f43d1a8f0fb6858eee7c786bc3141cd152382c287ee984b92ff1301e5894db7c24af994ee52ac7374a3edf692aa4255c1413b73209020 SHA512 237c9e8b50173a757204621d7019f68f230ea3e520ea1f078528acfb509fe7f44c0919a8ac0245e79b1a51c3e3545dd9ded51047451048ca782e35b1c4365363
+DIST python-gentoo-patches-3.12.7.tar.xz 8752 BLAKE2B 79fd69eba63bb6aafe05aaf95a3733a3b66d0e2b86eae8498a4f4b98bd492029f1c197a9f70738d4d17283653921b13fc7aba854223e498cb0093a93228f7f0b SHA512 513deafc50f2af13c88b01f2651899ce1bb5bd52a8035ca3edb469095c910e473b66d9dc120a61b78310a406147436feee1f77dcba32ce85db00979a01431e61
+DIST python-gentoo-patches-3.12.7_p1.tar.xz 10228 BLAKE2B 71cc6034201198d9483414fa362d68b550bfcbf75ca6f44dd8ab9d90b201098a05cbf4799b1db9359f4dc464acfcee9b0ce59045db27e8e9ce916b5aab010448 SHA512 22f9256c28b96723ad86878cbe44da155e280a8df08c6bcc568dc5296aca1a6fcc41ab823ee9e6d34ce5954bbedb76aea7dba2d9189e0558c536e8b2b9a3c8ce
DIST python-gentoo-patches-3.13.0rc1_p3.tar.xz 15148 BLAKE2B 668060644372e8ddf2d9686796ec304ae7689f5c10ecbc6862f054f96504c418b0e4df28675e4fbb610889f9a665a7a54f23633036b0df35f19f40ef8e6bab32 SHA512 c0cbdf9e0fe2ad29175302e548ebfda1d2af42af0ffeb363eb8b0dc53e1059f5abd7dcd02fd8e9eb9ba7bef2b34b7693633f0a62dc1ab933f43077feacf00fbc
DIST python-gentoo-patches-3.13.0rc2.tar.xz 5696 BLAKE2B 4e716d1d6225e811b598d029ef1dbdc413df614ef00ab8051ea697e633477a0114a3660cae037bdf4142f76c9f2efdefc25b604af11c31eb77d6d98d8f932cff SHA512 c20b53772bd7d305562657722aec70de78fffbf8ab7939f59d496e06c21b31fcd7b4a92573b1000d3bee4d90fd8b7422543f9cfdad15d60bc9a7ecf2a2259599
DIST python-gentoo-patches-3.13.0rc2_p1.tar.xz 7360 BLAKE2B be41dfc96c333ca19a4a21f0931287503094676d1eba1e9e5ae86bf07be571fb7ddaf75eab87dc2ce9364ea1861ca5307ae1b8cdbe2c6f9a1a0e351f42f0fb97 SHA512 38b8b5f5ec21d3cf02a4db43929f4dd870200bde655b9b3acd0f398ed0468f9e43996821510cebb5e01b5633afc7e6fc254b0c80062bb577a044d85e25d28ff2
DIST python-gentoo-patches-3.13.0rc2_p2.tar.xz 8004 BLAKE2B a6d13ad3e306dbe67d21e5242610b824f714ac76e347d5537e891fe9b07016261ec82cfdd849409e5ff0b16dbd52b52c6a586a506b22baddc94621bc7a2b30ac SHA512 78fc8ba72b6b4260f73df02130222d9369feff99846ed94f091ee34418bfd168870089f2b8c58e526a58acf0e59080e7a3c45a7fe5121eab09ca350cb5aa5761
+DIST python-gentoo-patches-3.13.0rc3.tar.xz 8004 BLAKE2B e1ec0d1b0d84fd5875111ed9916879bb78fcf764f6d6c12f570083df9215e0585ff4137636756bf3674f991f3bccdd859ec21d37c4b6a8dd738da03ecdedaa75 SHA512 1495f5f68d6ae10ad676b075cf4540dcdc38b254a9f4309d76097bdda427e06b65df173c99cd9c4f74646a4a29f10faa38a5a0342b1a40c1ebb6f92cf5a6f3b4
diff --git a/dev-python/python-tests/python-tests-3.12.7.ebuild b/dev-python/python-tests/python-tests-3.12.7.ebuild
new file mode 100644
index 000000000000..1d5ca0c330a0
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.12.7.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.12.5_p1-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.12.7_p1.ebuild b/dev-python/python-tests/python-tests-3.12.7_p1.ebuild
new file mode 100644
index 000000000000..1d5ca0c330a0
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.12.7_p1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.12.5_p1-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.13.0_rc3.ebuild b/dev-python/python-tests/python-tests-3.13.0_rc3.ebuild
new file mode 100644
index 000000000000..cfe398eecb56
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.13.0_rc3.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.13.0_rc1_p3-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/qrcode/Manifest b/dev-python/qrcode/Manifest
index 012928d2ee48..837bbaed5b42 100644
--- a/dev-python/qrcode/Manifest
+++ b/dev-python/qrcode/Manifest
@@ -1 +1,2 @@
DIST qrcode-7.4.2.tar.gz 535974 BLAKE2B 250290bfd31079d91133f669138d7172529e99c381836a74c853061c01666df09fb99c445d705d5f0c02a975810bfc4853c2ec616974849b1834b0ade3917c48 SHA512 a8642845990341034e39c43ef674f5b4ce8d3175a44d6062f711af2c24ffd45bda5f3ecf8a7825b7ebafe734b6396d52a37bb59177c544f921e43eaa9f1f5405
+DIST qrcode-8.0.tar.gz 42743 BLAKE2B 16cea7b8030eeebd6d165a60193c2d682edc066d8f857d5e4ae19b1dbe653fce2dc4562822def07e3c7fd0721ae57208c2993165865918af67f8bdf357dfb556 SHA512 14d37ef4fe0fca3253c92f39db7948f9d804f600ee3bf9ba053baf4e01488f340cb4977b94a338f448dd4f9007f9f0cb7c5cf1db5405d98a9b38a809c8ed8650
diff --git a/dev-python/qrcode/qrcode-8.0.ebuild b/dev-python/qrcode/qrcode-8.0.ebuild
new file mode 100644
index 000000000000..d41574e97c29
--- /dev/null
+++ b/dev-python/qrcode/qrcode-8.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="QR Code generator on top of PIL"
+HOMEPAGE="
+ https://github.com/lincolnloop/python-qrcode/
+ https://pypi.org/project/qrcode/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+
+# optional deps:
+# - pillow and lxml for svg backend, set as hard deps
+RDEPEND="
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pillow-9.1.0[${PYTHON_USEDEP}]
+ dev-python/pypng[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # release process-specific tests, broken on py3.12
+ qrcode/tests/test_release.py
+)
diff --git a/dev-python/reportlab/Manifest b/dev-python/reportlab/Manifest
index 2685ee1f7e52..cbce4a8bdcc6 100644
--- a/dev-python/reportlab/Manifest
+++ b/dev-python/reportlab/Manifest
@@ -1,3 +1,4 @@
DIST pfbfer-20070710.zip 677333 BLAKE2B 100214476a361a5e5d1f3da0999591345f6e3a3f8c6bc3f6a3e9eca734190c6259758a43302c6e41254d33491fe535eb7d5dd07aa9727c912424bebc31fc18df SHA512 6fd4a5d955464b10d13a7b748703450c1fe120d5ed09e8cfa1b4dfa9c183c59fe001df29433af551796b0df62544b7ddc364f9bb1bdcc2cd300434340ffcc4f2
DIST reportlab-4.2.2.tar.gz 3690306 BLAKE2B 1f778d25cb02f918758db13f27e380db4d0082c79c534699840e760a54ccb40c1d8bffc51b66de1f79030458ab9d48df7464a40a0a154382f1d02534696f7701 SHA512 4dc7a414ea32a741f660f523d14605fb46410d844d3be60b9f6d39642c0a7ad6162fa4b7448eba650b087a31e40e0ff7fc0bb5eb416dbbaeb104c416285a438d
DIST reportlab-4.2.4.tar.gz 3581357 BLAKE2B 3a06bde9bba5f057dd895929186d70ea1eb66c458aec380c10fff6ada557c2037664085881fffd7781c5148ea526c9e77a5dbf6b42fae5dfda2583063ff23d52 SHA512 ad6754d6142ea43b4f160d6eecbede83d8bc4f3dfc7822fc0de9e39d357370c43c8fe43ae6603a117c9b8b5cf354e925673567cf01883a0401b881b354352a3c
+DIST reportlab-4.2.5.tar.gz 3581379 BLAKE2B 560175a5180f3e991a3bed26f40b1c73b80a0f7dde9a30be2693ca0008d5272a3c1903fa930112e5f023e433a45c6ce384f9f239335c12400434a390a25ca501 SHA512 1daf01a03dd12770d40dbc1be66f0128a63953eebc97175d5cdf9a30cc6f827bc7a50e4f12cf0def8edecd3798fdc1fe009b3b92b0a252ca8a1395f83d6e970f
diff --git a/dev-python/reportlab/reportlab-4.2.5.ebuild b/dev-python/reportlab/reportlab-4.2.5.ebuild
new file mode 100644
index 000000000000..7ca5ac54b230
--- /dev/null
+++ b/dev-python/reportlab/reportlab-4.2.5.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Tools for generating printable PDF documents from any data source"
+HOMEPAGE="
+ https://www.reportlab.com/
+ https://pypi.org/project/reportlab/
+"
+SRC_URI+="
+ https://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/pillow[tiff,truetype,jpeg(+),${PYTHON_USEDEP}]
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+distutils_enable_sphinx docs/source
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cd ${P}/src/reportlab/fonts || die
+ unpack pfbfer-20070710.zip
+}
+
+src_configure() {
+ cat > local-setup.cfg <<-EOF || die
+ [OPTIONS]
+ no-download-t1-files = 1
+ EOF
+}
+
+python_test() {
+ pushd tests >/dev/null || die
+ "${EPYTHON}" runAll.py --post-install --verbosity=2 ||
+ die "Testing failed with ${EPYTHON}"
+ popd >/dev/null || die
+}
diff --git a/dev-python/rich/Manifest b/dev-python/rich/Manifest
index 08f01b748312..416635408985 100644
--- a/dev-python/rich/Manifest
+++ b/dev-python/rich/Manifest
@@ -1 +1,2 @@
DIST rich-13.8.1.gh.tar.gz 15062921 BLAKE2B 6df186dee1eccabbb28ef4bcd3bbceac335fbe39cf1ff6318726146f3eead9033fe362ca3c363c057c9b898ebb824d55f13454d68cb917dfc82e07e1e0038fa4 SHA512 d84d05fcc657fbcbcca09c22856c36fb945fde481111565292b13a9c5472cc1cf7e6266069f80b48821f7307a1479edc65a48d3b8a96334922b151d93b402daa
+DIST rich-13.9.1.gh.tar.gz 15063679 BLAKE2B ce08c00e9d1754c75485ebc025a2479bd2dd851f38d87a40c38ef17118c626a9f1ca17219578b7a0e7ad758d626465f467850ccf2d37d8d29501951eca516eec SHA512 c45406ad33f86d0f310a6ae229b0e9eea39313bf21fb7d44bc2e40993c4928814db26f6b9740477dc6418c4eb1974fe2bf782b98288dac12b109673ee783a62c
diff --git a/dev-python/rich/rich-13.9.1.ebuild b/dev-python/rich/rich-13.9.1.ebuild
new file mode 100644
index 000000000000..394f7a04fbcf
--- /dev/null
+++ b/dev-python/rich/rich-13.9.1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for rendering rich text, tables, etc. to the terminal"
+HOMEPAGE="
+ https://github.com/Textualize/rich/
+ https://pypi.org/project/rich/
+"
+SRC_URI="
+ https://github.com/Textualize/rich/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/colorama[${PYTHON_USEDEP}]
+ >=dev-python/markdown-it-py-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.13.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-21.4.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_console.py::test_size_can_fall_back_to_std_descriptors
+ # TODO: segfault in recursion (PyQt6 interfering?)
+ tests/test_traceback.py::test_recursive
+ )
+ # version-specific output -- the usual deal
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # pypy3.10, to be more precise
+ tests/test_inspect.py::test_inspect_integer_with_methods_python310only
+ )
+ ;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ tests/test_inspect.py::test_inspect_builtin_function_except_python311
+ tests/test_inspect.py::test_inspect_integer_with_methods_python38_and_python39
+ tests/test_inspect.py::test_inspect_integer_with_methods_python310only
+ tests/test_inspect.py::test_inspect_integer_with_methods_python311
+ tests/test_pretty.py::test_pretty_dataclass
+ tests/test_pretty.py::test_reference_cycle_dataclass
+ tests/test_pretty.py::test_max_depth_dataclass
+ tests/test_pretty.py::test_attrs_broken
+ )
+ ;;
+ esac
+
+ local -x COLUMNS=80
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "integration with HTML widgets for Jupyter" dev-python/ipywidgets
+}
diff --git a/dev-python/setuptools-rust/Manifest b/dev-python/setuptools-rust/Manifest
index 1ac3615ee82a..ac9927b6bf79 100644
--- a/dev-python/setuptools-rust/Manifest
+++ b/dev-python/setuptools-rust/Manifest
@@ -43,10 +43,15 @@ DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19b
DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
DIST proc-macro2-1.0.82.crate 48452 BLAKE2B c01f60b788c1395d1041d7eb55fe9519ae4e78f86e3dfa732458747767ff801fcdd5a19a81ee9a8d8cd2457eb0a2bb7cec118299a5a9a64d65b5cf06b9d81165 SHA512 3726463868483243adce01c319c1deb1ab153188f1adcb083b53bff838fa80371091bb8e20ce88709ea850ab3ef74dcd99ca5aa95fa375b330841fd4230c842d
DIST pyo3-0.22.2.crate 538342 BLAKE2B faf347695117f9fe0ebe5cd7f6aa1b0dcfe718343875d6c06438046deccc1075f104d2a2413dcda41ae9827bc363aa147057b45968f6634f577a6a4510a4bb8e SHA512 e8bae09059f50ffe477dad44499cedeaf3a734665f0fd8e8bd4b44f48578d21e4bdb8d55ceea00c5a27da750761842ddf89cfcecdecb2e7a4a17ab192259be9c
+DIST pyo3-0.22.3.crate 542516 BLAKE2B 26607f4455a58ea704cc2d01dfe3857147e03ff891ab0aadab73c7eef2ecb4445097b369d8986c18bdd5efa3ba767b9f41411d5a8f10d6d06851634d07d42642 SHA512 17940627701b0d3c401ccb4221241e7bc727d2b89cc26bbb231aec597cda1c04f07d4315b617d4e9f85623a6fff0031f83c6b7afcaf442c50e694785b07022ad
DIST pyo3-build-config-0.22.2.crate 31225 BLAKE2B c2e6a3d3d23b7f2f51bcbf1214ab20a298a1e62f85c9af3dab1e77b09f20b657b576feefffb18eb49d438f0ffab525b6bcd1086d500601c327ffd4fd24a719ee SHA512 644c82d30bb27051557efcc9789a81380a64e29bc62abf97de88f42c3791dac74228c7a7d09e0d46d14f07c0475f0bc03fac6ed1367b9a616153e8820b94cbc8
+DIST pyo3-build-config-0.22.3.crate 31297 BLAKE2B dbac8f03e96ba1bfef9b31b3e28e7f81a79f24a9596ae786f602633dc18dbccb583380d324e3e2ccdc2909c57a23d1e488f300ac123c7f8309e052fc97c9fe28 SHA512 42265d570b07b23603783903181c49c4a8bfef1a67055510d9c8c9a504c8e0435b8bae9a352740be791c5562e0abdc48f97ea1d7c03cfc270e821e643dbadea2
DIST pyo3-ffi-0.22.2.crate 67749 BLAKE2B 0a4357d5f4fbcab9717d58b7a80b63a63bc329267d4725136c4eac7c0101095a50e5f840638dde79034e5df99c4f46664cfdc2ad437837643db5d475c5705cb3 SHA512 bf8b83b4790832d99de8c6a61a15a43fc189505dd843011933305f7f93c4f5f4849fb00cc2a6fa410b788645f8ed8c0df61799cf801966a925abb9756b1ab579
+DIST pyo3-ffi-0.22.3.crate 69099 BLAKE2B c085c9485f585ab8c2a636385dcf90dc70fe854285b223a298283803c98ff21d3c3623a2cc8a00b61950ac07c123efa7c244d4c924eb0945b4a6c6023cd7e4d5 SHA512 f964b6b0ed17f968a06106f5396a23c5162f66bcf36e897ecf7b37cbd059f28093400c602b51d9a28dfdcfc8af6ff21c4fd68c6627b049a319c85096bf6024cd
DIST pyo3-macros-0.22.2.crate 8136 BLAKE2B 9dc97d2f60581db1b8ddb562dac917069525f297fe2cbb9aff3ed34d5a08ea43c112c9c7a450539da3536d753778b5ca506dd1b18e1d6b8a3649fc098e7af439 SHA512 f4f4f6af8dc3aa4bcc1698661990ab2112391ef9502e9f71d86e35bd10dc4e1be309102ebb1b7b32751817a6033168dc0486fdb16b35c626101e69f0de807a4a
+DIST pyo3-macros-0.22.3.crate 8183 BLAKE2B 5ef8297c67f2910580caa349951580b4d962329f1324eb3a53ef946cc5f41ffe10f4af1d7184904621cd0f318a94618af43cf785f3a3ef57fc4747c47db02820 SHA512 c0ad8480ef7f7ac5287a3bbd363136c63668b2cb77f475d5a6cd5921aa9dcf0336baf6a464b4d2a0068fb21724184785faa79d75b588f90359e8aa250a17e85f
DIST pyo3-macros-backend-0.22.2.crate 65620 BLAKE2B 37fba9ff384373418d3a7341acafb8e33308a64e30026f828693a37c32ab4a74d058f2db84d00467a20f9f267c96fe54c0f154d1ebbae92490e8dfc0d29c042f SHA512 0517080c0d5d4ed8136521fd37aa3a192c2eb8cab58545d8543ee4df9cd0dcea19fe0678d5ab90f05fe3eb0f4a86fc2f07b76f2e12ac1fcf7e7c195c2ffa4fd8
+DIST pyo3-macros-backend-0.22.3.crate 66032 BLAKE2B 33c2e8cae9b44e4a4806833f780e03f553ef0e6dbac733e9232e406fb64757691fbdfb65fd864280e14e8af8a4bb9c485a3c02227e8d1286ce11f1d4dbd61c28 SHA512 7b52977e02aca9bf4754d60957e69d47f9f447fe8bda40f146bbbd31eb7ebf2fc01c600c9b279f97cdf203e2cc66d96c1617c08041bc1215a02a80a90244417c
DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
DIST rand-0.7.3.crate 112246 BLAKE2B ecc7c1bd70ac874c03bd8b7faa3016bb2d5ee5c19603280a12a45a81598f706e445971ee081e6ca410ab6f0f5f7a06d9315848cd556a2d8522a82024f6ff91e4 SHA512 f9b68ef9446f1ca2c8092c50990f15c1b4cb5529eeeac4df8d69755e0b7253c663c587775e7cb0a7298c31edb444975dda34926759306541f6d43d0d3cf57b7e
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
@@ -65,6 +70,7 @@ DIST serde-1.0.200.crate 77611 BLAKE2B 57f4a76cf534ffda009a5441e694b0ac87b30e470
DIST serde_derive-1.0.200.crate 55785 BLAKE2B 45eca5504aff6bd099a42dfc794cf732c7e76e5ed362d16082ac069d29e1e6c22bb3e13dede4bc498df8f008bdba15479de618380f37c9742a34d97c9ca12efe SHA512 e70f0e092d81542a96b33610da8ddbf04023d8ecc1fa4a4f31978699c118f096e8534f9e3e4e479ee74280efb86d752dd1fce038ef2def329fdcc10c1aa50942
DIST servo_arc-0.1.1.crate 9817 BLAKE2B 88586ca0c969df8bfb3a04ba4a689606995876434877a2cd48a72b26451deb6fdcf65273aa9b03948adcbc66b2450301840910e5c4162b993535d69585c62128 SHA512 59d531dcf7a9191b8462ce395e713194994714b65275c0af412186f862be169d0c6fc5d86603332a1aacd8af9ace934dc78531b9cb576cf8179ec35709225447
DIST setuptools-rust-1.10.1.gh.tar.gz 303851 BLAKE2B 09ede3e017fb3c7202a6e4426f3ac401234ae306e93b88dc6c7364e0718ccb0ce2f1b863c3a41f1158b85cb24e3a4c3ea4ba8ef5e6fa16e4768f9ac42c89aa71 SHA512 9fff3f5a8f1808da4a588ab2e3684b0d279c7813fbcb994a98996a5f20bbe9f5e26e2ad3235f35baac727106ea5023e744015f238b22436bbf3a3f6e0e8b9c2f
+DIST setuptools-rust-1.10.2.gh.tar.gz 303901 BLAKE2B 163513eac052461f387cf27645e43f7c57ea3a850e8871e1e9d1485cd514ad45fdd4bca99917f72b5907069d81f00be8285a6f46c7f6a812f1989901cc865a49 SHA512 0e085ffed62085fc342bf3c5250ac3d4c5c1a7e84cf57694745b7f6361fef469e2c4e8b6226924b55201adca79c6279f20e9cf4283e0f9595aad9ac6dfe602f7
DIST siphasher-0.3.11.crate 10442 BLAKE2B 771221614bbd56f609b9743da4352dc7a2cbd0f6257952fab0cd052e5e5b258a4c95a0461d6d1b579dec90b72d66a0e58e036899b3db8341ae753a421a4cd4d5 SHA512 601121bd41da896142dc6ccc74a6eec3ebee3e976857ab8b5d21e915fdc8bc6e979af66a489c406371fbbbfc7a13338cc4b3744aa981206e43c53998f3e1699b
DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
diff --git a/dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild b/dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild
new file mode 100644
index 000000000000..21dfb38b6cb6
--- /dev/null
+++ b/dev-python/setuptools-rust/setuptools-rust-1.10.2.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=yes
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+CRATES="
+ autocfg@1.3.0
+ bitflags@1.3.2
+ bitflags@2.5.0
+ byteorder@1.5.0
+ cfg-if@1.0.0
+ convert_case@0.4.0
+ cssparser-macros@0.6.1
+ cssparser@0.27.2
+ derive_more@0.99.17
+ dtoa-short@0.3.4
+ dtoa@1.0.9
+ futf@0.1.5
+ fxhash@0.2.1
+ getrandom@0.1.16
+ getrandom@0.2.15
+ heck@0.5.0
+ html5ever@0.25.2
+ indoc@2.0.5
+ itoa@0.4.8
+ kuchiki@0.8.1
+ libc@0.2.154
+ lock_api@0.4.12
+ log@0.4.21
+ mac@0.1.1
+ markup5ever@0.10.1
+ matches@0.1.10
+ memoffset@0.9.1
+ new_debug_unreachable@1.0.6
+ nodrop@0.1.14
+ once_cell@1.19.0
+ parking_lot@0.12.2
+ parking_lot_core@0.9.10
+ phf@0.8.0
+ phf_codegen@0.8.0
+ phf_generator@0.10.0
+ phf_generator@0.8.0
+ phf_macros@0.8.0
+ phf_shared@0.10.0
+ phf_shared@0.8.0
+ portable-atomic@1.6.0
+ ppv-lite86@0.2.17
+ precomputed-hash@0.1.1
+ proc-macro-hack@0.5.20+deprecated
+ proc-macro2@1.0.82
+ pyo3-build-config@0.22.3
+ pyo3-ffi@0.22.3
+ pyo3-macros-backend@0.22.3
+ pyo3-macros@0.22.3
+ pyo3@0.22.3
+ quote@1.0.36
+ rand@0.7.3
+ rand@0.8.5
+ rand_chacha@0.2.2
+ rand_chacha@0.3.1
+ rand_core@0.5.1
+ rand_core@0.6.4
+ rand_hc@0.2.0
+ rand_pcg@0.2.1
+ redox_syscall@0.5.1
+ rustc_version@0.4.0
+ scopeguard@1.2.0
+ selectors@0.22.0
+ semver@1.0.23
+ serde@1.0.200
+ serde_derive@1.0.200
+ servo_arc@0.1.1
+ siphasher@0.3.11
+ smallvec@1.13.2
+ stable_deref_trait@1.2.0
+ string_cache@0.8.7
+ string_cache_codegen@0.5.2
+ syn@1.0.109
+ syn@2.0.61
+ target-lexicon@0.12.14
+ tendril@0.4.3
+ thin-slice@0.1.1
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ utf-8@0.7.6
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasi@0.9.0+wasi-snapshot-preview1
+ windows-targets@0.52.5
+ windows_aarch64_gnullvm@0.52.5
+ windows_aarch64_msvc@0.52.5
+ windows_i686_gnu@0.52.5
+ windows_i686_gnullvm@0.52.5
+ windows_i686_msvc@0.52.5
+ windows_x86_64_gnu@0.52.5
+ windows_x86_64_gnullvm@0.52.5
+ windows_x86_64_msvc@0.52.5
+"
+
+inherit distutils-r1 cargo
+
+DESCRIPTION="A plugin for setuptools to build Rust Python extensions"
+HOMEPAGE="
+ https://github.com/PyO3/setuptools-rust/
+ https://pypi.org/project/setuptools-rust/
+"
+SRC_URI="
+ https://github.com/PyO3/setuptools-rust/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? ( ${CARGO_CRATE_URIS} )
+"
+
+# crates are used at test time only, update via pycargoebuild -L -i ...
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ virtual/rust
+ <dev-python/semantic-version-3[${PYTHON_USEDEP}]
+ >=dev-python/semantic-version-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-62.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-62.4[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/cffi[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_test() {
+ local -x UNSAFE_PYO3_SKIP_VERSION_CHECK=1
+
+ local examples=(
+ html-py-ever
+ namespace_package
+ rust_with_cffi
+ )
+ for example_dir in ${examples[@]}; do
+ pushd examples/${example_dir} >/dev/null || die
+ einfo "Running ${example_dir} test"
+ esetup.py build --build-lib=build/lib
+
+ case ${example_dir} in
+ html-py-ever)
+ pushd tests >/dev/null || die
+ local -x PYTHONPATH=../build/lib
+ ${EPYTHON} run_all.py || die "Tests failed with ${EPYTHON}"
+ popd >/dev/null || die
+ ;;
+ *)
+ pushd build/lib >/dev/null || die
+ epytest ../../tests
+ popd >/dev/null || die
+ ;;
+ esac
+
+ rm -rf build || die
+ popd >/dev/null || die
+ done
+}
diff --git a/dev-python/snakeoil/Manifest b/dev-python/snakeoil/Manifest
index bfd8a713f81f..275148e81f6a 100644
--- a/dev-python/snakeoil/Manifest
+++ b/dev-python/snakeoil/Manifest
@@ -1 +1 @@
-DIST snakeoil-0.10.8.tar.gz 174380 BLAKE2B 96c5f4e106513ee8061c6278345ac132510202faa0e915b362170ee7de5f23f0b7bfdc671c0c07721f57eeeb90df5f6851be70d4541295029d93126ea680e50b SHA512 7088cd3fb34bc666a51ddd59b0bf6c9d9da2f04727057ffa5b74ffb188efd63153afcf45442e99b8e1611642b71cf92518dafcacb85717dfa82370df18458497
+DIST snakeoil-0.10.9.tar.gz 174546 BLAKE2B c42771bff9b068aa4c31f76e0d8efc44121d2946b24ff8b8ce6e11028503d7272087ae62c1b6c9963c9b3eb89202ffbad917c63984d478d062c4ba2272811ba2 SHA512 0cedfeca3c8a30cfa53a2135b9dc8f83b003dd07fd0a1767fc1e2fe3d1ee67022033c20c4f990dede7e6a0ad0e8dc94eeebce7529b230ce83c84d6161c1b656d
diff --git a/dev-python/snakeoil/snakeoil-0.10.8.ebuild b/dev-python/snakeoil/snakeoil-0.10.9.ebuild
index 968263ddbfa8..968263ddbfa8 100644
--- a/dev-python/snakeoil/snakeoil-0.10.8.ebuild
+++ b/dev-python/snakeoil/snakeoil-0.10.9.ebuild
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 4eeaa5ca962d..694d51ed95be 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -21,6 +21,7 @@ DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb9
DIST smallvec-1.11.2.crate 34801 BLAKE2B 58645e99db8f02db64d02c75860c7ea41836c427c03ee3b0b23365e73a406e4fd6ac312bf13fc5faef8bb6111c10fcfd5f839d5b3686e9b34d1626f8469fc327 SHA512 5cfb427c3b99b0dbd71f6154ed899abcde9d7d2992977ac7b2ef3a4c3ff51e4efafd133071a69609b4ed6cb269bdc26b79eb72e1988f10dfcaef8185d950cd1d
DIST sqlglot-25.23.2.tar.gz 19470352 BLAKE2B 6dd198a1de9d5c240cb6040a55f7afa08abd12021c6768242d955ef959db7a04f5de180b675b4f719a00488784e43a49834f9031a7adbfbed1f58cf607e1051a SHA512 b15e08a894458bb8e423f1d6c4c994eda548f8d2248ea4a46873e709bf0ec7830a5bb8fea9d2a7952c6f4522ef1ddff223b8592ee24e00653e52a121bd821d77
DIST sqlglot-25.24.0.tar.gz 19471462 BLAKE2B 3a173667d307830c79a87723697081bf108285ae7c724f8103f373e95efd9c2c68c98603fc8cc92b4a6ef337d741d88ce94daa9ec749cfb820acf0639c932b02 SHA512 dff3253479665a2b887ff5f7514536f8be0f490142c610821145cc5dc80bddcffa3a9daac0e33802b4057d7f1d624bbfb105645f5006458d7e90bc7b72511ec7
+DIST sqlglot-25.24.1.tar.gz 19476850 BLAKE2B 69b7f960a06202f4e926eab3bb088fff949a761389d1c43365c3347763bf657ad9f81e6a4767266bc1cb6523dbc9c9acc4395b6e4af60d924dec14534bff7894 SHA512 f5422cd3f01ea77d2c65115a91a2c2e179253cc054a539443122357347d6ecb445f8300bfa8210cea030c9aa6934057966efed9b84499bff1aaef94ee04d40ef
DIST syn-2.0.41.crate 246016 BLAKE2B 9d389f2e2a0acb4c84c309456e8ffcc88c5d4d541535ed136832d7a6054dde45a598bb68e8a6f3062ca2a96e1ceae947d54b3aec9bad65b0c51d6733aa6c80db SHA512 6bbaf69ca783025dfb81ac3612ac60bfbed31b2d87792909b35c12892dadebdaff2ddf9463105e536b671dce5870610ab90fe29471284bbd3014dca8d6993f1a
DIST target-lexicon-0.12.12.crate 25156 BLAKE2B f3803596c75f6c89438592a1176c3748fc2c0524d7d50a20056de1cd26d40c572b05bafcdf6dd702752864bea37c8b4f28f96dadc12a5b3bb1d279b25e489f85 SHA512 6147295c43ba1b7b087a3c5ab51534b2985e4e77e5e15687978cfb9d07e21c4fd9bc7191576d6cabd268d08a44dc733c4a957e59dba8b948c2055d8bb433aeca
DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
diff --git a/dev-python/sqlglot/sqlglot-25.24.1.ebuild b/dev-python/sqlglot/sqlglot-25.24.1.ebuild
new file mode 100644
index 000000000000..3bab78f5b721
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-25.24.1.ebuild
@@ -0,0 +1,129 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+CARGO_OPTIONAL=1
+CRATES="
+ autocfg@1.1.0
+ bitflags@1.3.2
+ cfg-if@1.0.0
+ heck@0.4.1
+ indoc@2.0.4
+ libc@0.2.150
+ lock_api@0.4.11
+ memoffset@0.9.0
+ once_cell@1.19.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ proc-macro2@1.0.70
+ pyo3-build-config@0.20.0
+ pyo3-ffi@0.20.0
+ pyo3-macros-backend@0.20.0
+ pyo3-macros@0.20.0
+ pyo3@0.20.0
+ quote@1.0.33
+ redox_syscall@0.4.1
+ scopeguard@1.2.0
+ smallvec@1.11.2
+ syn@2.0.41
+ target-lexicon@0.12.12
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+"
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ # remove fragile timing check
+ sed -i -e '/assertLessEqual(time\.time/d' tests/test_parser.py || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # timing, sigh
+ # https://github.com/tobymao/sqlglot/issues/3961
+ tests/test_generator.py::TestGenerator::test_generate_nested_binary
+ )
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index bd7b39f3c040..417e532835fd 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,2 +1,3 @@
DIST stripe-10.11.0.tar.gz 1317883 BLAKE2B fa533f6a3ab66a844ff16513ad8cb8b6a8d87677fa01ea93c406cb229577456ccc567b63196c3616878a1cb78c5b91e56ac9fff8d53e0b961702cbd65ab9024f SHA512 64b6adaf3eabe77ab863fe3ef2e0d20d6cfa0e266bb58cde0b0d2edd87dd240a0a8fedf11c35252f3cc6cd517cc767b2c4714facc29475597270e7a143e091dc
DIST stripe-10.12.0.tar.gz 1318680 BLAKE2B 0de2d108c6813d4ed0493b0e2b906a5d41f6b39b0f60fb2730fc3737b9f641d732e22c5ddf5e4e856b6bc5a1b312c10c9304467f29b5474bf8d6a9ca219f876d SHA512 0843cae0e1dd9a54604938a3ae5a28bb681e5166c2e800478c543b22b103626ac138ee999e468e909e3b5865754ed131af5a01287044603082f1f05329da45d3
+DIST stripe-11.0.0.tar.gz 1339985 BLAKE2B f41c8f574c598a5d35b9563a21b4bab7cc7164abd27aecd633bab0842b92cb66c7b07879300f36d9470a563ff0d5d9df840a9f740852719337b128af3553dda8 SHA512 3f7493f6aac38b328cbf06f7497f56385ac852dcc8aea9a1f4b7fc7365b296a4d9c92d096689444d3a372c42d0c5c192729a924bd781a66ff81ac9bb1f20aab4
diff --git a/dev-python/stripe/stripe-11.0.0.ebuild b/dev-python/stripe/stripe-11.0.0.ebuild
new file mode 100644
index 000000000000..9faa5fe8dfa2
--- /dev/null
+++ b/dev-python/stripe/stripe-11.0.0.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Stripe Python bindings"
+HOMEPAGE="
+ https://github.com/stripe/stripe-python/
+ https://pypi.org/project/stripe/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="telemetry"
+
+RDEPEND="
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+# please bump dev-util/stripe-mock dep to the latest version on every bump
+BDEPEND="
+ test? (
+ >=dev-util/stripe-mock-0.188.0
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ net-misc/curl
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+DOCS=( LONG_DESCRIPTION.rst CHANGELOG.md README.md )
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ if ! use telemetry; then
+ sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # exception message mismatch with aiohttp-3.10.0
+ "tests/test_integration.py::TestIntegration::test_async_timeout[asyncio-aiohttp]"
+ "tests/test_integration.py::TestIntegration::test_async_raw_request_timeout[asyncio-aiohttp]"
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests -p anyio -p pytest_mock
+}
+
+src_test() {
+ local stripe_mock_port=12111
+ local stripe_mock_max_port=12121
+ local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log"
+ # Try to start stripe-mock until we find a free port
+ while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do
+ ebegin "Trying to start stripe-mock on port ${stripe_mock_port}"
+ stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" &
+ local stripe_mock_pid=${!}
+ sleep 2
+ # Did stripe-mock start?
+ curl --fail -u "sk_test_123:" \
+ "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null
+ eend ${?} "Port ${stripe_mock_port} unavailable"
+ if [[ ${?} -eq 0 ]]; then
+ einfo "stripe-mock running on port ${stripe_mock_port}"
+ break
+ fi
+ (( stripe_mock_port++ ))
+ done
+ if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then
+ eerror "Unable to start stripe-mock for tests"
+ die "Please see the logfile located at: ${stripe_mock_logfile}"
+ fi
+
+ local -x STRIPE_MOCK_PORT=${stripe_mock_port}
+ distutils-r1_src_test
+
+ # Tear down stripe-mock
+ kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock"
+}
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 4c04d9422e6d..793f0822baa3 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -1,3 +1,4 @@
DIST tox-4.18.1.tar.gz 181159 BLAKE2B db9b2233363b6214b1c0bae2c0319b72a7ef4a7f833628833fecb7a8d04eef0594f1a93e17f8273d45873c2130e96b7adad8afe69662cb8fe37251028ba1581f SHA512 289ee3e8b7c941dbeb94adea24442169b33cfe3ae2c4d6eadd12974ee01488325d05beb92cc3b3d5aa1f795f9d3ffe65ed3da81bc62b0527edf56f5ddb9ceb32
DIST tox-4.19.0.tar.gz 181219 BLAKE2B fd20fcce2b0cf59b572feb1c206b1d8188dcd8eafcb2c31b6c48d982badddb20bd4afa7eb0647e2dc4f2fec47da95e27b1cd870ec14e12e513da0202755ae722 SHA512 46b34524c48ac4e1d906633c8f1fb6da81d26a110638b24e95b97973ef7a17a0412dad584f4e8e9dbd01c5fde3ebd48053caad9bdbc07c1a5a4d17a0c16a34be
DIST tox-4.20.0.tar.gz 181364 BLAKE2B 2651bb2a7eff09764b7288c0640d44031f2074f8c1c41aaf18989cdc3b8828d6b91f90b131a11b31ed01c4819524aedd4acedb56da2716eb5e3e607a8d5f1bf2 SHA512 c4b9a03a62c7d1993a8b027cd2f8f22fc033fa802176f20b0daeda84d528c5e8618ae9781f04c3d8820d9f49c5786d56b96dd596e95e489ac372631d61425616
+DIST tox-4.21.0.tar.gz 187638 BLAKE2B 0c8667cb2456f11e19fb975a6801f4002e0116bb5fbe2670a056a34e0b602da65a50c1fbd9f27ebb7d17e91c03e53e3a591da717fa584e1058792e0d385a5d08 SHA512 e4a5d56ea2b2865a5a114cb77bf0e25d0504f9b652cf086d803170ba3ef46731a55ec0a4c591e562cd31b13d408d97618dcf21f60da28faf1d7ce6a955e1fc71
diff --git a/dev-python/tox/tox-4.21.0.ebuild b/dev-python/tox/tox-4.21.0.ebuild
new file mode 100644
index 000000000000..199330ea36bf
--- /dev/null
+++ b/dev-python/tox/tox-4.21.0.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.10)
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+ ;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # https://github.com/tox-dev/tox/issues/3290
+ 'tests/config/loader/test_str_convert.py::test_str_convert_ok_py39[1,2-value1-Optional]'
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index 6a3d5763ed2d..f8721bc6e8d6 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -5,3 +5,5 @@ DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c3
DIST uv-0.4.16-crates.tar.xz 46123176 BLAKE2B eeaa189f91742296e48f123f7695b5836e538681b99da1c7e9f7acd9b2cf6b29e570b41fc7436a664ae180e0aff51be03300e03a184a72d986b2a7840f99c3ab SHA512 41eaa866818fa3b58a7451f748f60da6f940865c377405fd999db9eab4bea696aab053be99faf8f8bad2d3a15b84d137607f87cd97c5d7a1884dcbee461f562b
DIST uv-0.4.16.gh.tar.gz 2685666 BLAKE2B 34159ce43382bcd5b10191b6b9ed763ca831c755dbe5312f8c10493a2c224882b5014c583851f6c0a7ebcdb70591cacd755e1a9b3305a1533986b06706cb6d08 SHA512 e0c25a56b67ac73156f97a0e9d1637ad395a05a6d87dffd7f39ee5c78028a555ce6d5cf97c6a0a11a709fd7f25d179e48a57eea4dbcc7f34b307b02f751a62d8
DIST uv-0.4.17.gh.tar.gz 2698002 BLAKE2B aa208d30d3378e6ea21d1cb9f9c3c7d55169485964a3a7e8b97119e25624cdbb84776e5695ed0d265df3d12254acbe03b68739be1468fb07ac0a94ce9a408105 SHA512 0681f50b8edb52479d1cc08f44a7b37f176cf439bae440259e42339138d9b036ce9b025e9a517e090c7ef5674828275a99b0735ab7174aaf334f0bb95b8ed71c
+DIST uv-0.4.18-crates.tar.xz 45322392 BLAKE2B 3486f46b76a6a9420b52043a227ebb4dbdd185bbc5848a9606c1eb2e6575b12d060f084243fbb55fbfc1bb936f0bb051fae4a9628639778a33b2ff1eac50c58e SHA512 121c6241422668662233de6a2f084a323be4df4dfcfa9ae168f5f6aa41fc77cfc09b56dfa95eaf7ca95769a9d4ed334bed439d3bbd18c682e377c610162821e4
+DIST uv-0.4.18.gh.tar.gz 2692682 BLAKE2B 8239bcd761ee771c0bfeba3d3d6dd1438e8f86ffe2f211893a8457160440d0ba8a8ca11b6e4c7a9a93d3f3749ceae3ac2ea1c7ed1397a5ae41e130f6eb17025d SHA512 694793867a016f7c5fd6520b0d91f1ee1e0bff25efe86628c365837849b74b5a6c8527d977ddf4eed52619291b7ae6df751c77f368e184882938711be5ac9ed7
diff --git a/dev-python/uv/uv-0.4.18.ebuild b/dev-python/uv/uv-0.4.18.ebuild
new file mode 100644
index 000000000000..300228c69c2b
--- /dev/null
+++ b/dev-python/uv/uv-0.4.18.ebuild
@@ -0,0 +1,144 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;011b24604fa7bc223daaad7712c0694bac8f0a87;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;388685a8711092971930986644cfed152d1a1f6c;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-retry'
+ [tl]='https://github.com/charliermarsh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+)
+
+inherit cargo check-reqs
+
+CRATE_PV=0.4.18
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=virtual/rust-1.80
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+}
+
+src_prepare() {
+ default
+
+ # remove patch.* that breaks GIT_CRATES
+ local reqmw=${GIT_CRATES[reqwest-middleware]}
+ reqmw=${reqmw#*;}
+ reqmw=${reqmw%;*}
+ sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-${reqmw}/reqwest-middleware\" }@" Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}
diff --git a/dev-python/vobject/Manifest b/dev-python/vobject/Manifest
index fa1fe96839b3..a22a68e0e06b 100644
--- a/dev-python/vobject/Manifest
+++ b/dev-python/vobject/Manifest
@@ -1 +1,2 @@
DIST vobject-0.9.7.tar.gz 58657 BLAKE2B 56c55631b88ff5e999ec6822c401cf03bfa4bd66cf3d9092420934f07cd14580752de080e57c674adb1fedf7252eb84df1e490613bf8314dba5421c73c039cbd SHA512 7e3704b5c0ccafbb7171a98b45b7448419776b7f4a568ab4fffad905bd9303af55d89ddd6f91c0095083c3d9d53633fcdd3d0bc89aa2b4297d316e4123f56590
+DIST vobject-0.9.8.tar.gz 61760 BLAKE2B 5bdf6be0ff52f11d10c99eb34a233f3926e14e706c5d4777a4a9c17bdf2c5f9ceb4be4216313ecc1489c06d821fc261e3e9bb97acda11f8ab7442e98abd4975c SHA512 8ba48fdd242c60b256d3a40d0aa1a6af9493a03fbff97870245102e676603d7eecad055db20a5eaa941eadc071fe41b522fc8226d0316c430d87e9331464a823
diff --git a/dev-python/vobject/vobject-0.9.8.ebuild b/dev-python/vobject/vobject-0.9.8.ebuild
new file mode 100644
index 000000000000..abf56a2b2c63
--- /dev/null
+++ b/dev-python/vobject/vobject-0.9.8.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python package for parsing and generating vCard and vCalendar files"
+HOMEPAGE="
+ https://github.com/skarim/vobject/
+ https://pypi.org/project/vobject/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/python-dateutil-2.7.0[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+DOCS=( ACKNOWLEDGEMENTS.txt README.md )
+
+distutils_enable_tests unittest
diff --git a/dev-python/x-wr-timezone/x-wr-timezone-1.0.1.ebuild b/dev-python/x-wr-timezone/x-wr-timezone-1.0.1.ebuild
index 4d93871d4b41..429950ce9f6d 100644
--- a/dev-python/x-wr-timezone/x-wr-timezone-1.0.1.ebuild
+++ b/dev-python/x-wr-timezone/x-wr-timezone-1.0.1.ebuild
@@ -26,6 +26,11 @@ RDEPEND="
>=dev-python/icalendar-5.0.11[${PYTHON_USEDEP}]
dev-python/tzdata[${PYTHON_USEDEP}]
"
+BDEPEND="
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
distutils_enable_tests pytest