summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-05-31 13:25:11 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-05-31 13:25:11 +0000
commit77e0dfe446787ff4c8a851b4540c83fb9d505930 (patch)
tree15fec630b6594762a5e6a1fabcd534334083bd64 /dev-python
parent6135c784e419ee6c8d4056bc8158bf8347d19c2e (diff)
downloadbaldeagleos-repo-77e0dfe446787ff4c8a851b4540c83fb9d505930.tar.gz
baldeagleos-repo-77e0dfe446787ff4c8a851b4540c83fb9d505930.tar.xz
baldeagleos-repo-77e0dfe446787ff4c8a851b4540c83fb9d505930.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Nuitka/Manifest1
-rw-r--r--dev-python/Nuitka/Nuitka-1.6.ebuild54
-rw-r--r--dev-python/aiohttp/aiohttp-3.8.4.ebuild5
-rw-r--r--dev-python/ansible-compat/Manifest1
-rw-r--r--dev-python/ansible-compat/ansible-compat-4.1.1.ebuild52
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.26.143.ebuild66
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.29.143.ebuild79
-rw-r--r--dev-python/cattrs/Manifest1
-rw-r--r--dev-python/cattrs/cattrs-23.1.1.ebuild56
-rw-r--r--dev-python/google-api-python-client/Manifest1
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.88.0.ebuild49
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.75.6.ebuild2
-rw-r--r--dev-python/hypothesis/hypothesis-6.75.7.ebuild95
-rw-r--r--dev-python/jwcrypto/Manifest1
-rw-r--r--dev-python/jwcrypto/jwcrypto-1.5.0.ebuild37
-rw-r--r--dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch41
-rw-r--r--dev-python/pbr/pbr-5.11.1.ebuild17
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.13.13.ebuild39
-rw-r--r--dev-python/plumbum/Manifest1
-rw-r--r--dev-python/plumbum/plumbum-1.8.2.ebuild57
-rw-r--r--dev-python/priority/priority-2.0.0-r1.ebuild1
-rw-r--r--dev-python/pypy-exe-bin/Manifest8
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc2.ebuild79
-rw-r--r--dev-python/pypy-exe/Manifest2
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.12_rc2.ebuild177
-rw-r--r--dev-python/pypy3_10-exe-bin/Manifest8
-rw-r--r--dev-python/pypy3_10-exe-bin/metadata.xml10
-rw-r--r--dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12_rc2.ebuild82
-rw-r--r--dev-python/pypy3_10-exe/Manifest2
-rw-r--r--dev-python/pypy3_10-exe/metadata.xml15
-rw-r--r--dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12_rc2.ebuild127
-rw-r--r--dev-python/pypy3_10/Manifest2
-rw-r--r--dev-python/pypy3_10/metadata.xml17
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.12_rc2.ebuild208
-rw-r--r--dev-python/pypy3_9-exe-bin/Manifest8
-rw-r--r--dev-python/pypy3_9-exe-bin/metadata.xml10
-rw-r--r--dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12_rc2.ebuild82
-rw-r--r--dev-python/pypy3_9-exe/Manifest2
-rw-r--r--dev-python/pypy3_9-exe/metadata.xml15
-rw-r--r--dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12_rc2.ebuild127
-rw-r--r--dev-python/pypy3_9/Manifest2
-rw-r--r--dev-python/pypy3_9/metadata.xml17
-rw-r--r--dev-python/pypy3_9/pypy3_9-7.3.12_rc2.ebuild208
-rw-r--r--dev-python/ruamel-yaml/Manifest1
-rw-r--r--dev-python/ruamel-yaml/ruamel-yaml-0.17.30.ebuild58
-rw-r--r--dev-python/sphinx/sphinx-6.2.1.ebuild2
-rw-r--r--dev-python/stdio-mgr/Manifest1
-rw-r--r--dev-python/stdio-mgr/stdio-mgr-1.0.1-r1.ebuild38
-rw-r--r--dev-python/testresources/files/testresources-2.0.1-py312-tests.patch35
-rw-r--r--dev-python/testresources/testresources-2.0.1-r3.ebuild37
-rw-r--r--dev-python/testtools/testtools-2.6.0-r1.ebuild52
-rw-r--r--dev-python/three-merge/Manifest1
-rw-r--r--dev-python/three-merge/three-merge-0.1.1-r1.ebuild25
-rw-r--r--dev-python/tiny-proxy/Manifest1
-rw-r--r--dev-python/tiny-proxy/tiny-proxy-0.2.0.ebuild39
-rw-r--r--dev-python/tinycss/metadata.xml1
-rw-r--r--dev-python/tinycss/tinycss-0.4-r1.ebuild4
-rw-r--r--dev-python/txrequests/txrequests-0.9.6-r1.ebuild11
-rw-r--r--dev-python/url-normalize/url-normalize-1.4.3-r1.ebuild7
-rw-r--r--dev-python/uvicorn/uvicorn-0.22.0.ebuild1
-rw-r--r--dev-python/validators/validators-0.20.0.ebuild2
-rw-r--r--dev-python/wurlitzer/wurlitzer-3.0.3.ebuild1
66 files changed, 2162 insertions, 23 deletions
diff --git a/dev-python/Nuitka/Manifest b/dev-python/Nuitka/Manifest
index a45a61e3e4c6..1627093f0b16 100644
--- a/dev-python/Nuitka/Manifest
+++ b/dev-python/Nuitka/Manifest
@@ -2,3 +2,4 @@ DIST Nuitka-1.5.5.tar.gz 4172962 BLAKE2B 403ea94d2e2311c036359e80a9923f80bdaec91
DIST Nuitka-1.5.6.tar.gz 4172386 BLAKE2B 62909f36529ecb487c0f5010e19c1dd7b2033b6b7a00bed5ad5efe26b500eccf27f76f526caefdfd59bf2a796c82770310b0b5cc90a7d2d7b2aff24b285f2885 SHA512 dccf931acbdf18d905d3e9299dcbf47f50f8780e9beabc9d6266bc0b8ed174c8e5cb762257477742f3745284b84495ec6ea77f3e9f4e280113dade4ec8e11c6e
DIST Nuitka-1.5.7.tar.gz 4179130 BLAKE2B 1918f0263edf89884658f49d0241f9993c6da8e0965f1a599ffed66cb635cea2729329183b1227a0b0e81f6d4e78c5ef1c1ca92c5148b635864e4caa536d0ab6 SHA512 aee0ec2d0a80b78262f3e4c972d1b156d41bea5323d3a12ed5afa47b41d6e372eb773968135217588a70f6b9ead2d215651999eb0e2f02d82e5996f89a9ea5e6
DIST Nuitka-1.5.8.tar.gz 4172897 BLAKE2B 1b4a50c6aacb6c41b4e068bc369a1c43839c8bca15c2786f3a37e8a3c6f2250e31c66192fd8ec79eb154e18e2f574819d27bc8ff3d80a97a248401966084d827 SHA512 963daea25553dc945e3f15020c7fcdabe6847ffd45167c84d68905dfe00630c132994587d1c9fc2076f19f29a46feab6b35ff15b9734d717ce50646192fa3039
+DIST Nuitka-1.6.tar.gz 4222249 BLAKE2B c4451092bfeee7b632e5ebb7162ba46f9fad29d9837f4913948aafb84b4fc6e69845fe52886962c053b419ad3307e5929fa201a4aad5c7e80dd388e41f1504d6 SHA512 3951e354acc76b63c9d61267d4f14ee75d97bc3ec838326b33d59d2ad1809a7a33605e1a6544f6c5d23a57b97fe067b9ca154744ee90d5bc77c53b90b128ecbc
diff --git a/dev-python/Nuitka/Nuitka-1.6.ebuild b/dev-python/Nuitka/Nuitka-1.6.ebuild
new file mode 100644
index 000000000000..1158b562d51b
--- /dev/null
+++ b/dev-python/Nuitka/Nuitka-1.6.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 flag-o-matic optfeature pypi
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="
+ https://www.nuitka.net/
+ https://github.com/Nuitka/Nuitka/
+ https://pypi.org/project/Nuitka/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-util/scons[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+DOCS=( Changelog.pdf Developer_Manual.pdf README.pdf )
+
+distutils-r1_src_prepare() {
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka3.1 doc/nuitka3-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" app-admin/chrpath
+}
diff --git a/dev-python/aiohttp/aiohttp-3.8.4.ebuild b/dev-python/aiohttp/aiohttp-3.8.4.ebuild
index 01ba46fb7ce4..a9fb860bc7b1 100644
--- a/dev-python/aiohttp/aiohttp-3.8.4.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.8.4.ebuild
@@ -35,7 +35,6 @@ BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
test? (
app-arch/brotli[python,${PYTHON_USEDEP}]
- dev-python/async_generator[${PYTHON_USEDEP}]
dev-python/freezegun[${PYTHON_USEDEP}]
www-servers/gunicorn[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
@@ -87,6 +86,10 @@ python_test() {
local EPYTEST_DESELECT=(
# Internet
tests/test_client_session.py::test_client_session_timeout_zero
+ # broken by irrelevant deprecation warnings
+ tests/test_circular_imports.py::test_no_warnings
+ # TODO
+ tests/test_client_session.py::test_request_tracing_url_params
)
case ${EPYTHON} in
diff --git a/dev-python/ansible-compat/Manifest b/dev-python/ansible-compat/Manifest
index 8a6411da33d4..a976a42bdaf9 100644
--- a/dev-python/ansible-compat/Manifest
+++ b/dev-python/ansible-compat/Manifest
@@ -6,3 +6,4 @@ DIST ansible-compat-4.0.2.tar.gz 63771 BLAKE2B bcf66825c52de63172f7d36b696e136cc
DIST ansible-compat-4.0.4.tar.gz 65116 BLAKE2B 3f96e052cb9ba0352884fe1cfeacf9a1e5a7bbee715d08c054df49112966751067eb08f32b0598a8559e200fa9c3a619b58b854699342b6185bd9579bc75cbf2 SHA512 b13bc3d7a29b2caebfddb7a2311bfb8ad94062019238ed5a8a22fe9de1c00d25426694755cdbf289094db7fdfd88248fcf3e17e9aef9601046ef33c25d6894e6
DIST ansible-compat-4.0.5.tar.gz 65711 BLAKE2B f40e87012dba936ba8b6f204559484ff089034123da4c355f997d7cec857efc64adcd0a4ec9abe021a428f61c692b13a3e3146f78a1896689c61764286e03719 SHA512 c08bbbcbef7e49001009cbd691dc226626f1392dfc5a5be89166da0be91c8d5794a2e6a158b11787320a1dcbe24c85eedee28596b0fc27d0a3c2a499286f5efc
DIST ansible-compat-4.1.0.tar.gz 66781 BLAKE2B ce0da545e4a81798ee9376129b9f9e8c0cfd7ca641086ae55516406b73f89472a1fc44384e3728207be76cb2b8d1b724c55ff5dcf72e88a0f971ccd59aea8a8d SHA512 15b40622a00bb3b4ac3c8ed5ef05e0a65b867fbe9579352fbcbff8113d46e8da5fb5c36e0092387da4509b33244c8d27c0c08de76ff8dd78fd19e465824078c5
+DIST ansible-compat-4.1.1.tar.gz 66834 BLAKE2B 9558bd83e4662ffb9a9f45b2e5b24e36d4d1066b8fb082513ce92057a2c106b255d107a1d51a75bad3fb87e750d195e74be2918cefb599195b120ad6cd4a5ec4 SHA512 c97599b218eb32ef0c9761202cf2b616586876466626c7d249be71e4d519b417f5e85342e0cf682e2e6bc1f7b8af73863eb0afad5dfaecfce744eeed830f6956
diff --git a/dev-python/ansible-compat/ansible-compat-4.1.1.ebuild b/dev-python/ansible-compat/ansible-compat-4.1.1.ebuild
new file mode 100644
index 000000000000..76d0733e4c31
--- /dev/null
+++ b/dev-python/ansible-compat/ansible-compat-4.1.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Contains functions that facilitate working with various versions of Ansible"
+HOMEPAGE="
+ https://pypi.org/project/ansible-compat/
+ https://github.com/ansible/ansible-compat/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+
+RDEPEND="
+ >=app-admin/ansible-core-2.12[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4.6.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/subprocess-tee-0.4.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-7.0.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-plus[${PYTHON_USEDEP}]
+ )
+"
+
+# All these tests attempt to connect to galaxy.ansible.com
+EPYTEST_DESELECT=(
+ test/test_runtime.py::test_install_collection
+ test/test_runtime.py::test_install_collection_dest
+ test/test_runtime.py::test_prepare_environment_with_collections
+ test/test_runtime.py::test_prerun_reqs_v1
+ test/test_runtime.py::test_prerun_reqs_v2
+ test/test_runtime.py::test_require_collection_no_cache_dir
+ test/test_runtime.py::test_require_collection_wrong_version
+ test/test_runtime.py::test_require_collection
+ test/test_runtime.py::test_upgrade_collection
+ test/test_runtime_example.py::test_runtime
+)
+
+distutils_enable_tests pytest
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index e4df2a3fc045..75cdd315c014 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.26.133.gh.tar.gz 648114 BLAKE2B 97c71216d92baffb9e07f9c112590a1fc7828dc90b66364c9f344cb5f95aa927c80c56426c679e9bff8b3fa82d203d527d529cb337e786b471c1df120a9fb186 SHA512 66270dc31b85860320e5dbffc77d2f51e1d4e6d413624269171e3824020ead0cee842cea0e292748127c0584ced74f835cd46554240bd522787e77ad939dc69e
DIST boto3-1.26.137.gh.tar.gz 650777 BLAKE2B e4a7d02ccefbda53b33558dc107457eaa1df0871bb2fc548b348246192cfdd6760bc43a6e6861622de6376244b80a94a387bbb827be2f5b749bccf6b8ff5af58 SHA512 de5d29a4139650f0527e93a9e223b7d41b285b6c263a5bc7ec9ebad1eee19373b1f2093c03414f7b575f8a7402734b4076cfaf0fa5be34ff54b55d8960e9c836
DIST boto3-1.26.142.gh.tar.gz 655602 BLAKE2B e9d5671308e71bb43a97953407f4aba5b78594ed39b26c3c992af9db8864e3c363ab874a66b5b015083c4a18fe7415bb1761137367783a70ff22564ada8a8842 SHA512 c2eabdb47898aa26fc8ba8a8ebfa43a86153188af1f1600bfa741bd3af1ce68a8692e461aecb5a29df94885e1c977b06c3cd009f1cec52a2e7a9dc853a2c3942
+DIST boto3-1.26.143.gh.tar.gz 656551 BLAKE2B 67ed6469df9ac6f8911d0d59d1f256db424e1302315163fac71b1da94be4b9bd25dfb99c97009523cba56af48eaf32276fba3088b703daf38a40724d8e715183 SHA512 ea982542cf7138368a9223049418859a176065b03ee3919895245c35667773206ce7587b101f7af72d30893c38d05afec28ca72a7d0968bcc209d24c118709d2
diff --git a/dev-python/boto3/boto3-1.26.143.ebuild b/dev-python/boto3/boto3-1.26.143.ebuild
new file mode 100644
index 000000000000..03c610b184f7
--- /dev/null
+++ b/dev-python/boto3/boto3-1.26.143.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/boto3"
+ inherit git-r3
+ BOTOCORE_PV=${PV}
+else
+ SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+ # botocore is x.(y+3).z
+ BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+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() {
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 35b8c735f973..5766c5121b1a 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.29.133.gh.tar.gz 11484789 BLAKE2B ce1acc51ffada796e594090e7b4d73029df362459a562116ad9dabc56b926f7beec5644e5ce7d175e8901eac28420b57b758be266aa61582cac7e4b91b794e05 SHA512 62631be4f9bf07803e193a8a7ff3b04a806d6dc7668317765b853bba1f1c66cf49c8345f7640f829622c3c8ce96c775bf00bbfa943ff175a6c9a479a888e85db
DIST botocore-1.29.137.gh.tar.gz 11508178 BLAKE2B 2f74fd2f3923672a4fcd501f1c5ba48cd09965ea0f70689bd6559a4c4a6fe8921f783ef86f28ac57893c8b1366d8fca2fc79f0216747e04142ed33880f07fe39 SHA512 b800a1b73170b5fcbbf1b17477bb8f04b19f5f250a68bbb3b993b0e058d8df870eddf932f79d94eaa3255b976ce136adbdd5b359757cd79f2cfe2a16b3cfa2f4
DIST botocore-1.29.142.gh.tar.gz 11528069 BLAKE2B 860a5ab68d26424702006b221e62e29cfe21ba93593be61e4ef7e89ab50c6afb4b305f2ef3b2d80fd428cf7791933e43b20e1d4934d330653290a7b2aa16f6c4 SHA512 f408175054095bdd3094dd789de333e4e669cee72fdbc5b03551fc006cbcda5cf69eaa6daa2eb3bf09b30524f50d4b7b334d7b18051e55eca12caa16529b41bf
+DIST botocore-1.29.143.gh.tar.gz 11539133 BLAKE2B f1845154fe406cbc06fdbaa1bf8f48a98b40f267a59b86b9574955da9ad9d01c8eb573327ff1f1e68c06682ab2068328dc3bf8cf3cfe0df277a13afe51c70a50 SHA512 647301c2570f214493a934e0deb516a3b08b1bca34b71dff1a068c67427eaaeb371894f651cfb7152e23a31f91a63af3f25f47c198b5c6b65113eb648ee0b3d6
diff --git a/dev-python/botocore/botocore-1.29.143.ebuild b/dev-python/botocore/botocore-1.29.143.ebuild
new file mode 100644
index 000000000000..509d06dedf97
--- /dev/null
+++ b/dev-python/botocore/botocore-1.29.143.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/botocore"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+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
+ # fails on unrelated warnings
+ tests/unit/test_client.py::TestAutoGeneratedClient::test_BOTO_DISABLE_COMMONNAME
+ tests/unit/test_client.py::TestClientErrors::test_BOTO_DISABLE_COMMONNAME
+ # TODO
+ tests/functional/test_credentials.py::SSOSessionTest::test_token_chosen_from_provider
+ # urllib3-2 compatibility, mock relies on implementation details
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_continue_no_response_from_server
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_continue_returned
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_continue_sends_307
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_sends_connection_header
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_handles_expect_100_with_different_reason_phrase
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_state_reset_on_connection_close
+ )
+
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/cattrs/Manifest b/dev-python/cattrs/Manifest
index c7462bd373d9..09f886ebb590 100644
--- a/dev-python/cattrs/Manifest
+++ b/dev-python/cattrs/Manifest
@@ -1 +1,2 @@
DIST cattrs-22.2.0.gh.tar.gz 117001 BLAKE2B 34601cf48c582da2d9aa8d741a08919b5f06043bc6ba6b072d8b0934e90e781349b1325ced478ca0b42b50db1f7fe2a6d3cd16ac29609efd72c9aa894debfe9e SHA512 d198864402f56d4e9403c61ee3d9d109c5eac3350908afa1e244dbe31e4bc986271fcb4c72bde9cdaa9ee865c6a8b81de68ec0d51490ed658b410714e1fc550c
+DIST cattrs-23.1.1.gh.tar.gz 602294 BLAKE2B c0be7dc8979919c4d29f9bd51203d219b9d65bbaa271a38f4d1d6c705121a5c9747c3b8a29431de8ea6769baeae67323b8bd6f133f9fd6c80aa1f3bbf969b4d2 SHA512 8a048ce214ed1aa4b138164e3cd7e39fec84ee3d46f167dda402e3de0041fb0548b2e75051c63694a5baf59c78705823247e4204408f5d0b410a9aabdc68c7e3
diff --git a/dev-python/cattrs/cattrs-23.1.1.ebuild b/dev-python/cattrs/cattrs-23.1.1.ebuild
new file mode 100644
index 000000000000..9b1d598a0a96
--- /dev/null
+++ b/dev-python/cattrs/cattrs-23.1.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+DESCRIPTION="Composable complex class support for attrs and dataclasses"
+HOMEPAGE="
+ https://pypi.org/project/cattrs/
+ https://github.com/python-attrs/cattrs/
+"
+SRC_URI="
+ https://github.com/python-attrs/cattrs/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/attrs-20.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.{9..10})
+"
+BDEPEND="
+ test? (
+ >=dev-python/cbor2-5.4.6[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.54.5[${PYTHON_USEDEP}]
+ >=dev-python/immutables-0.18[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3.5.2[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.4[${PYTHON_USEDEP}]
+ >=dev-python/ujson-5.4.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -e 's:--benchmark.*::' \
+ -e '/addopts/d' \
+ -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ epytest tests
+}
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index dd999eb66dfb..b82e219a0df9 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,2 +1,3 @@
DIST google-api-python-client-2.86.0.tar.gz 10767816 BLAKE2B 532b86d49dfec724237a07c6d6c4dccbdf7a4f9d8c6a1c7f96548708c55e5851bca3e1f0f28da65edbde68a6d760498af8936be177ce5c0dda3e6809db218188 SHA512 2d1aea4a6735aeffbc4aba05affaa3c4389e2f9f121185d5a5d47e818e33ae3506bebf2748d7a14b374310531c7c3a34325524c5c48df3c882c6b2a4ce579e8d
DIST google-api-python-client-2.87.0.tar.gz 10933794 BLAKE2B 702eef338d1b976219587a24b70adc513edd47bc03e7e17dd865424542d8ca61979073ea9d474c60e765f0cd4cfdd67ae2aac7f915b2be46a8c4cfc1bd4bd975 SHA512 55c8f90e4dbd74de6570f078341cb26b90d1a0ff7f20fb5ac2b94f8100ffdc12e49a9beeea5432d0c5f5cf0d0cb7834f8c2cb398be83b1c98305e5a07e2c81f6
+DIST google-api-python-client-2.88.0.tar.gz 10943608 BLAKE2B c82dd6af36d93d6fa4c0da31ec5a2d2371a9d960efb4f5a31dc63c268578234d12553f8604478e4bde5d43dcf51a738cd622f05aae0af9a405c9fc9bcde4b156 SHA512 059f49d16a6b55ca6106f779ac08aeb47a11af73022ecdac25817922207333540ea5cea4fe61dbbaea38ae0f07317144fbc0c9a5f05ba4eb8c03bbc661b94803
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.88.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.88.0.ebuild
new file mode 100644
index 000000000000..0c85e8ca1676
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.88.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="
+ https://github.com/googleapis/google-api-python-client/
+ https://pypi.org/project/google-api-python-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
+ <dev-python/httplib2-1[${PYTHON_USEDEP}]
+ >=dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/uritemplate-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # require Internet access (and credentials)
+ tests/test_discovery.py::DiscoveryErrors::test_credentials_and_credentials_file_mutually_exclusive
+ tests/test_discovery.py::DiscoveryFromDocument::test_api_endpoint_override_from_client_options_mapping_object
+ )
+
+ epytest tests
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 14f60faf974f..1c19eef6a23f 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,3 +1,4 @@
DIST hypothesis-6.75.3.gh.tar.gz 9369491 BLAKE2B bae51e4f280a0773d4101b5b136ad994cb7eaca64a0a030bf3a9346d15a3caf7864bfc2f92bdff9eaabe83abc492b7e6cf31b19771470f6d680dbea9c83b31a4 SHA512 2e31f2f5483abf4c749dc3ef2758e51b62072e36f257777cecd71ea8f67a08987f5547bc9476dd2dbf8e9a6488fbe76d3d8ae83666bc2e80a2f26ea807cb15aa
DIST hypothesis-6.75.5.gh.tar.gz 9370565 BLAKE2B e9ef05cfc24a0e5ada5ba863b4ce4c2d4884020cc8f3692c35f3f3d25b0a416e4a2c1b2061ea9bbd105a0f30264ca5d91264e99d6e65e79c909e577756803d78 SHA512 c94b5d40fda5e66a216aee5d8b40ca4df2ebf1549674ee81ad84f2456eb6f67348f468293b693708bb61b2999bc2c31d81b0fec277d39dfe256230320a4de0cb
DIST hypothesis-6.75.6.gh.tar.gz 9370713 BLAKE2B 93996d6ff0c109c11123ad9b653502c44d51277760338c2575840d6257081bb19b0eedbf2d0feb15e9ebc9e6feacdbe79e070bfd31d35bb9c825bb4a2d44b7f5 SHA512 12396799a7f3fe661f5cb72ccf1a7299919d9f4b05a4075810803350380d217e30312d853ba72e49c28c4f1a08143cb76adc87465ba9cef7400e2dad9cc52001
+DIST hypothesis-6.75.7.gh.tar.gz 9371718 BLAKE2B 9b0c9f4589be2c81fdb79a1157fcf3815dd7f9c11e3c68e14319c10fdb7a534e90e3c1ae042889057bfdb97ae3ffcf9f0360d7fb1b17419309f31b190aa03d9e SHA512 ac4da9e837606f0d98361386e51496f21d9f53ceb0fdd9b3d14eb85456eaa3b4f7cbc7b29754b6b400093fd38b3d3c89ef74be6662f113e0eed87afbf0382ce1
diff --git a/dev-python/hypothesis/hypothesis-6.75.6.ebuild b/dev-python/hypothesis/hypothesis-6.75.6.ebuild
index 14a4b222bd61..de3a26c2ee23 100644
--- a/dev-python/hypothesis/hypothesis-6.75.6.ebuild
+++ b/dev-python/hypothesis/hypothesis-6.75.6.ebuild
@@ -67,12 +67,10 @@ python_test() {
)
fi
if [[ ${EPYTHON} == python3.12 ]]; then
- # cpython bug: https://github.com/python/cpython/issues/105042
EPYTEST_DESELECT+=(
hypothesis-python/tests/cover/test_lookup.py
hypothesis-python/tests/cover/test_type_lookup.py
hypothesis-python/tests/cover/test_type_lookup_forward_ref.py
- hypothesis-python/tests/quality/test_discovery_ability.py::test_one_of_flattens_filter_branches_{1..3}
)
fi
diff --git a/dev-python/hypothesis/hypothesis-6.75.7.ebuild b/dev-python/hypothesis/hypothesis-6.75.7.ebuild
new file mode 100644
index 000000000000..de3a26c2ee23
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.75.7.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 multiprocessing optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ !!<dev-python/requests-toolbelt-0.10.1
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,pytest_forked,_hypothesis_pytestplugin
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=() EPYTEST_IGNORE=()
+ if [[ ${EPYTHON} == pypy3 ]]; then
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ fi
+ if [[ ${EPYTHON} == python3.12 ]]; then
+ EPYTEST_DESELECT+=(
+ hypothesis-python/tests/cover/test_lookup.py
+ hypothesis-python/tests/cover/test_type_lookup.py
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py
+ )
+ fi
+
+ epytest -o filterwarnings= -n "$(makeopts_jobs)" \
+ tests/cover tests/pytest tests/quality
+}
+
+python_install() {
+ distutils-r1_python_install
+ if ! use cli || ! has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ rm -r "${ED}/usr/bin" "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/jwcrypto/Manifest b/dev-python/jwcrypto/Manifest
index 83f1b925eaf8..012e71e37413 100644
--- a/dev-python/jwcrypto/Manifest
+++ b/dev-python/jwcrypto/Manifest
@@ -1 +1,2 @@
DIST jwcrypto-1.4.2.gh.tar.gz 94465 BLAKE2B 23b3a18694793cdbdd1875bd9b107ecab8248ac2c6cbf1bf142144633f7dc6efea91b693b808a4a6153b78c1117dbb2fe1f831f7f2558d2476e146961a501c17 SHA512 9967e626bc4a13a12ef09bbf3dada589c2c5374f4addff743c3ca9762c66659f59ca2e0f495cda6bc5821b6ed62aae95d478bf14de0acd6b2696bf0e1a9e7a49
+DIST jwcrypto-1.5.0.gh.tar.gz 95669 BLAKE2B c8a408e3bdd929a939562eeebe59b33eb422fdf3251b8572b362a08286975220810bf7b2d0d937ef4f20c76ff133b5246f810a3cb7fa7caf685ecd03729ba5e0 SHA512 92c8c735dffe3664e93ead9a5764139f188d349b78c45d09ea9ede68b271f19f4cd16418f9184df49f2f9def16864624edc3d08bda30fd73fbf3daa2b12157a4
diff --git a/dev-python/jwcrypto/jwcrypto-1.5.0.ebuild b/dev-python/jwcrypto/jwcrypto-1.5.0.ebuild
new file mode 100644
index 000000000000..243f7d0e0ee8
--- /dev/null
+++ b/dev-python/jwcrypto/jwcrypto-1.5.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Implements JWK,JWS,JWE specifications using python-cryptography"
+HOMEPAGE="
+ https://github.com/latchset/jwcrypto/
+ https://pypi.org/project/jwcrypto/
+"
+SRC_URI="
+ https://github.com/latchset/jwcrypto/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-3.4[${PYTHON_USEDEP}]
+ dev-python/deprecated[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs/source
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # Do not install doc in non-standard paths
+ sed -e "/data_files/d" -i setup.py || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch b/dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch
new file mode 100644
index 000000000000..27609131fc59
--- /dev/null
+++ b/dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch
@@ -0,0 +1,41 @@
+Subject: [PATCH] Replace imp with importlib.machinery
+
+The imp was removed in Python 3.12 [1]. This commit replaces
+get_suffixes() method call with _SUFFIXES array from imprtlib.machinery.
+
+[1] https://github.com/python/cpython/issues/98040
+
+---
+
+This is original patch submitted to Github mirror, it was later resubmitted to
+upstream Gerrit, where they are taking care of Python2.7. We can stick with
+this version of patch for now because we don't care about py2.7 anymore.
+
+Original-PR: https://github.com/openstack/pbr/pull/22
+Upstream-PR: https://review.opendev.org/c/openstack/pbr/+/884789
+
+diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py
+index c719d1e..068bab7 100644
+--- a/pbr/tests/test_packaging.py
++++ b/pbr/tests/test_packaging.py
+@@ -40,7 +40,7 @@
+
+ import email
+ import email.errors
+-import imp
++import importlib
+ import os
+ import re
+ import sysconfig
+@@ -1217,7 +1217,7 @@ def get_soabi():
+ # NOTE(sigmavirus24): PyPy only added support for the SOABI config var
+ # to sysconfig in 2015. That was well after 2.2.1 was published in the
+ # Ubuntu 14.04 archive.
+- for suffix, _, _ in imp.get_suffixes():
++ for suffix, _, _ in importlib.machinery._SUFFIXES:
+ if suffix.startswith('.pypy') and suffix.endswith('.so'):
+ soabi = suffix.split('.')[1]
+ break
+--
+2.39.2
+
diff --git a/dev-python/pbr/pbr-5.11.1.ebuild b/dev-python/pbr/pbr-5.11.1.ebuild
index 13c68595745a..907180a62aa6 100644
--- a/dev-python/pbr/pbr-5.11.1.ebuild
+++ b/dev-python/pbr/pbr-5.11.1.ebuild
@@ -24,9 +24,14 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv
RDEPEND="
>=dev-python/setuptools-60.5.0[${PYTHON_USEDEP}]
"
-# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and https://bugs.gentoo.org/show_bug.cgi?id=561038
-# docutils is needed for sphinx exceptions... https://bugs.gentoo.org/show_bug.cgi?id=603848
-# stestr is run as external tool
+
+# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and
+# https://bugs.gentoo.org/show_bug.cgi?id=561038 docutils is needed for sphinx
+# exceptions... https://bugs.gentoo.org/show_bug.cgi?id=603848 stestr is run as
+# external tool.
+#
+# <dev-python/sphinx-7 is required because of removed build_sphinx hook in
+# setup.py, see https://bugs.launchpad.net/pbr/+bug/2018453
BDEPEND="
test? (
$(python_gen_cond_dep '
@@ -34,7 +39,7 @@ BDEPEND="
>=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
>=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
>=dev-python/six-1.12.0[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
+ <dev-python/sphinx-7[${PYTHON_USEDEP}]
>=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
>=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
>=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
@@ -44,6 +49,10 @@ BDEPEND="
)
"
+PATCHES=(
+ "${FILESDIR}/${P}-importlib-suffixes.patch"
+)
+
distutils_enable_tests unittest
python_prepare_all() {
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 12f5f7343ccd..f96324e015f4 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1 +1,2 @@
DIST python-phonenumbers-8.13.11.gh.tar.gz 4910723 BLAKE2B 270ded8f0c009feb0ffe70bdcec089f400d1ea18ae24e3837b8f3a659657b82fb5912577eba22cb7c28a297dcbb55d402213c576857c514eb08c241af8bc1e4e SHA512 688b5440538cd6d636b645474dff51e4ba9a080708e4d3a9bdd5560701a9effbb26b9a669c632917101ea2e27a6f2ebe1f468fc0a881625ef33a4e30885ae30b
+DIST python-phonenumbers-8.13.13.gh.tar.gz 4912623 BLAKE2B 7b030b15861150564dbc640d3ee40f8db360b79427d5ca6ebd33ff350cde2505c592455722463e94a609b4487a6908b9a5359059b83a3a4fe4212483bbf9f2fe SHA512 fe2e2aae730b5df6f1b150d45b6e3cb5225327b653243fece186d22b1f4685d796f91c3dc462d3c2239d976b249d4756590f72c8ff4d007826e46b86f0acc36e
diff --git a/dev-python/phonenumbers/phonenumbers-8.13.13.ebuild b/dev-python/phonenumbers/phonenumbers-8.13.13.ebuild
new file mode 100644
index 000000000000..4ef52501be16
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.13.13.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+MY_P=python-${P}
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+SRC_URI="
+ https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/python
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf-python[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( ../README.md )
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/plumbum/Manifest b/dev-python/plumbum/Manifest
index 3c8591585662..5ddef9407894 100644
--- a/dev-python/plumbum/Manifest
+++ b/dev-python/plumbum/Manifest
@@ -1 +1,2 @@
DIST plumbum-1.8.1.tar.gz 316432 BLAKE2B 91288c5f793b9e3e7d1e1d3724f5cc16989d604b1236438fc71283fab5aa59bb34f1742fe2d79b7a9220e09a3622f5145769497765f3f9213dc70960af478fa0 SHA512 80031c07be3b68767556bba8246e964c51b16336d6105ad3d51d62f7c39287af6f928be713171c8c22cdd37145a0e7c3bd65d44f14bf8b1bc62483b648f3acff
+DIST plumbum-1.8.2.tar.gz 317675 BLAKE2B d21a105d9919f70ad480d5de7ce157f2ae6c56cd248a2b70ad037c83a5e4b56bd8bdb3d9587860db383b04dd6528828426b47895c345f8bf7dc4931310be343d SHA512 636d10ea1c727cb24d4692537f3c0005077f86c3d9d2ae244f86ef5dd9621f8b51e0b5efffaa7acf66d6ba5552fddd641d4a1796c7fd760ac0a27d029f685c20
diff --git a/dev-python/plumbum/plumbum-1.8.2.ebuild b/dev-python/plumbum/plumbum-1.8.2.ebuild
new file mode 100644
index 000000000000..07f1cdd249cc
--- /dev/null
+++ b/dev-python/plumbum/plumbum-1.8.2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="A library for shell script-like programs in python"
+HOMEPAGE="
+ https://plumbum.readthedocs.io/en/latest/
+ https://github.com/tomerfiliba/plumbum/
+ https://pypi.org/project/plumbum/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Need sshd running
+ tests/test_remote.py
+ tests/test_utils.py
+ # Windows specific
+ tests/test_putty.py
+ # Needs sudo without password
+ tests/test_sudo.py
+ # Wrong assumptions about env handling
+ tests/test_env.py::TestEnv::test_change_env
+ tests/test_env.py::TestEnv::test_dictlike
+ tests/test_local.py::TestLocalPath::test_iterdir
+)
+
+src_prepare() {
+ sed -e '/addopts/d' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+pkg_postinst() {
+ optfeature "remote commands via ssh" dev-python/paramiko
+ optfeature "progress bars in jupyter" dev-python/ipywidgets
+ optfeature "colored output in jupyter" dev-python/ipython
+ optfeature "images on the command line" dev-python/pillow
+}
diff --git a/dev-python/priority/priority-2.0.0-r1.ebuild b/dev-python/priority/priority-2.0.0-r1.ebuild
index ae42b9c61c28..6ff60234c68f 100644
--- a/dev-python/priority/priority-2.0.0-r1.ebuild
+++ b/dev-python/priority/priority-2.0.0-r1.ebuild
@@ -31,7 +31,6 @@ BDEPEND="
distutils_enable_tests pytest
python_test() {
- # https://github.com/python/cpython/issues/105042
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Skipping tests on ${EPYTHON} (xfail)"
return
diff --git a/dev-python/pypy-exe-bin/Manifest b/dev-python/pypy-exe-bin/Manifest
index 36452ff1da37..e7f6ce1cc8bf 100644
--- a/dev-python/pypy-exe-bin/Manifest
+++ b/dev-python/pypy-exe-bin/Manifest
@@ -14,3 +14,11 @@ DIST pypy-exe-7.3.12_rc1-1.ppc64le-musl.gpkg.tar 6604800 BLAKE2B 91ca6e456c6788d
DIST pypy-exe-7.3.12_rc1-1.ppc64le.gpkg.tar 11038720 BLAKE2B cfea3f2abf4aee74df082e61d0cb235fde08900806d1dd730671a1364aff25e326ce675a483b3ddb05e3305ce74b8031fbdafcb4c5418da1d6ac236b17b98614 SHA512 a6194c321afffe5788e17b876d4f14de5d0686b61fad740ec2bae9b47d27052861742559d7bb8b530cfdc3a880f7291fc5af5768d49ce2c4a40b486585d0dca6
DIST pypy-exe-7.3.12_rc1-1.x86-musl.gpkg.tar 9748480 BLAKE2B c68992a784786ad6ee0a81891b209507c67ddb084716ba75f8aa55aee01243f144f252726643aa5f641e49fff93eb31ddb9cbab8e767df50ab05ecf0aa4e7e23 SHA512 7f56e4e199fa6893868af8f1c6616c2ab938c143df2b8647995c593532ab13e96d27bfa9bfa344d3967a70e849ca4e1ff5dfb2d8c447edd5c42b036d4afb2119
DIST pypy-exe-7.3.12_rc1-1.x86.gpkg.tar 9615360 BLAKE2B 466d9bb61c73c583ffccb79596db273fb3450f95fedc6b2b16309a1ca2a13b5ec4916a8015a74ca9fe9a6c98db14b06f125eb861cbdbc32531aaaaea925ba5fa SHA512 dbaddc9a52a4da886913993eade553bea94eae9ab818ecfd6cb12759edd24397d8fbe1b3d5d60dd6285d9b5a4b46444ab67ef85df6610f5061530f0771d8c88b
+DIST pypy-exe-7.3.12_rc2-1.amd64-musl.gpkg.tar 12984320 BLAKE2B ea73f2b2f632b5df4f7eacc96ab6c438850b55466981ca2f3d4a39c7fcca784eec17c936d821fee2f83d7fc2962bb8cde4bd863dad37b293d9da20f24af0d6f6 SHA512 9b9ecca8e1de94977380ec6cdba42fa4839e61ec7818b3b2c27687534d15110c41c41e448a85d5e29c19277b9ffbee3c5dbf43d68447a78bb2d042fe8148618b
+DIST pypy-exe-7.3.12_rc2-1.amd64.gpkg.tar 12963840 BLAKE2B b63d8788acd20c2b31f353bca4a3cc2b70bbdb6c72b580ef3a726cd42a47cec9884e46a23d4cc35332886745f3232908a88fa0114248ab0c564be1227098b342 SHA512 7cb65f2459e4b245f8d5c34fe5e74d66a8dcaba4e8b24984b4224d246912667516b994196114e5dc4289331d148f36acd298ac0aa6e347177f68f88a9882d8cb
+DIST pypy-exe-7.3.12_rc2-1.arm64-musl.gpkg.tar 10885120 BLAKE2B 189566e720774ad9acd6e7c83a1e7e0188f2d17d615fd1370dc127aae9afa79a3e2ff554a1f07fff58c2e9c96aa49618f2e489883c99e16cf26971ba674ea7a1 SHA512 479558250c7bb34b0a0bfecca871b11fc4d0d79031acda5ac82d48258b117566e389b55da7fb14b9986ba41ca880543177b25690686cd24e61b5f8156f95564b
+DIST pypy-exe-7.3.12_rc2-1.arm64.gpkg.tar 10895360 BLAKE2B b25f97f04abe581c10aa663ac7cd3e15369aab7f6e6a4cbc76a52c9f156cb8034b42795092420ca9de79bc4bd71aaa55ee9c9b72780e3e55e7ea8af797cc79dd SHA512 2b1908291d01addcec5efac9e98c322fef98733fb32d01c2255bf1192925da306ff8ba357bab27c8f68ca8440dae2ada1045cc545313d935500852cca25d62cc
+DIST pypy-exe-7.3.12_rc2-1.ppc64le-musl.gpkg.tar 6594560 BLAKE2B 70571266b9da645ba948a66685686899442d0fd75ecb66295220b65afabef807a878df33090ce41f5e64340c11e72e8561b9f21f862a0ec48309dc14f18488b7 SHA512 b213eacc05bf2e113adc770b5f7d47f5aa3f646de1ef40742338f66192c7fde001b0e4b16e0fbb634bc74c550472ebbdd5aa0ebad2c8e48cc65cc78883d6d2fe
+DIST pypy-exe-7.3.12_rc2-1.ppc64le.gpkg.tar 11069440 BLAKE2B 3e6dc47b3c07b2d66a19c34d255a8f716797ac2b66fb73875fd5bf8335b19baae43a1600f65cb263665b9498d34e53acfeb276344e505bf97122dd87f3c82c5c SHA512 eb668b12be1ab866919661f0126b0f76022f74bdc5f75d2762f0aca92487fd6669d78760c4bf243f1d1b4c4616f66f51d1139dad7efc27cfbdd8044ea87a226d
+DIST pypy-exe-7.3.12_rc2-1.x86-musl.gpkg.tar 9758720 BLAKE2B 530be9dce21558783e933a5dafd70d928b19df6178c2dcf297e022183a2f2dc5e6eb13577974bffd41ea87b21a703776307d2f2970718740b74700ba9672c9c6 SHA512 c2737e1344d3360e940d4f253b7601ae71b06c27928ee359b9e65484a16be4a8d9770446480608237c42874cb87fc22d888eb4f43cdebc899f2f5aba56b2f872
+DIST pypy-exe-7.3.12_rc2-1.x86.gpkg.tar 9594880 BLAKE2B 8ad400c475f977e7f6655c99a8ff3160ce46475cfe27eb0354139a7b4ac5f01464a453fa47372b25d5249dd43336ead6b5688338f8c96015087543f7a0a285a9 SHA512 99d83ff66083ed6cc31a9587f37b3a6e8e25e8e40591875eb9ff4b5cbf1c4c4417bf6e8ffb7984a51665eed2a6a01171f7d4d93d911a1c0c352c5392872a7b57
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc2.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..7e8642a993b5
--- /dev/null
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.12_rc2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+MY_P=pypy-exe-${PV}-1
+DESCRIPTION="PyPy executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S="${WORKDIR}"
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS=""
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy-exe:${SLOT}
+"
+
+QA_PREBUILT="
+ usr/lib/pypy2.7/pypy-c-${SLOT}
+"
+
+src_install() {
+ insinto /
+ doins -r */image/usr
+ fperms +x "/usr/lib/pypy2.7/pypy-c-${SLOT}"
+ pax-mark m "${ED}/usr/lib/pypy2.7/pypy-c-${SLOT}"
+}
diff --git a/dev-python/pypy-exe/Manifest b/dev-python/pypy-exe/Manifest
index d9b36d5418b0..e2cd0b09858f 100644
--- a/dev-python/pypy-exe/Manifest
+++ b/dev-python/pypy-exe/Manifest
@@ -1,4 +1,6 @@
DIST pypy2.7-gentoo-patches-7.3.11.tar.xz 5312 BLAKE2B 3692453a184a88d61fe1dd7aa815aa02a4bdf4b29defd2e98a354261784643f78799b979bb356c19311b40932cc7f8b8e050e10553755a846938951a87021bc9 SHA512 24308317d92b278f9f7d74327303ebba34628a2d8dd5798ae3d472d14fd0519a470b6f9c420da88e07251215342a1e4f5cf8d4230f9663119274d3194d3811a5
DIST pypy2.7-gentoo-patches-7.3.12rc1.tar.xz 5340 BLAKE2B 4631f3daa7002033af7b9a7026777053454bcb20ed03ad551a1df7efc32adef478e78d449d81dfad903c887cca53b9742edcc97e6cd1e368c3803f779fa6ee4d SHA512 b99723360d15e4411f7cf8ea75b6fd8de92acb3c123d2f3893bd3f2b820099a3ddb625e275e95fb858cb3fd5e4fe18dc653faf90509e7593b5088bcdf7c2092d
+DIST pypy2.7-gentoo-patches-7.3.12rc2.tar.xz 5340 BLAKE2B 7b0028aa61cc9d0800f23cc9dc3f5e4dccc75cb56e55abc382f322d0eddac9ceeb6419f4aee201a12de006ab30585d5920705f96b5d09519e1c8982253e3472d SHA512 dd9ccbd66874d57e3111923b2171f134ae18ffc73d0b5ce3168cb0bea47048be6840c747f5f0da75d29b298935c873aa345b244b57e265ceafc2ac769f2f2e5c
DIST pypy2.7-v7.3.11-src.tar.bz2 19850421 BLAKE2B ed8bd61e3857c37689f24a23d38d5043bd190ee0e6de5d7906284ea2eab5e7aeff5c994c22f97195f5a1ded2867725f74dc562b375c0165b6231eae69213c06e SHA512 31fd93fe3e761fd096ff52c2a0afa40f78e4df700deb911e221d1682b35e8374c9deac7ba19b474f7ca7a366d3ae9b36ebaf78e81c4ec8306431fd0873daea55
DIST pypy2.7-v7.3.12rc1-src.tar.bz2 19898483 BLAKE2B a0f618f69fc938ce59148cd98f03bcca09b89fd4f500132d5212212c391c703d64ea04681d5105b252e1efe41f001a8aa9692cfd3c37dfab4ff5af29b276dbfb SHA512 9faa36f27339a14dc5e7b326a0732ab8dc9c4401eabfe5787c14054a0d0961cc07c0d8e49dbaaaeb78a62ccf73e325b1d31731a138e3b24a6032f44550f6b346
+DIST pypy2.7-v7.3.12rc2-src.tar.bz2 19903233 BLAKE2B 3621951e3ec5d65318f31efedfc7f1ea8b1532594a311a832e1e6f9a27be2946e967c63a61cbb18808f7baa7235c757b58153352551d88ca09f69017fd0cb2b0 SHA512 e8845dcd98294a9d715cf962e1b600beb81a18b388617bac7cf8675d99364156ec278166b39d8bc0928f65df63336c8d6571387d95921f613660ec30849e69ce
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.12_rc2.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..37c1d0145b66
--- /dev/null
+++ b/dev-python/pypy-exe/pypy-exe-7.3.12_rc2.ebuild
@@ -0,0 +1,177 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+MY_P=pypy2.7-v${PYPY_PV/_}
+PATCHSET="pypy2.7-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy executable (build from source)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+SLOT="${PYPY_PV}"
+KEYWORDS=""
+IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
+
+DEPEND="
+ >=sys-libs/zlib-1.1.3:0=
+ dev-libs/libffi:0=
+ virtual/libintl:0=
+ dev-libs/expat:0=
+ bzip2? ( app-arch/bzip2:0= )
+ ncurses? ( sys-libs/ncurses:0= )
+"
+RDEPEND="
+ ${DEPEND}
+ !dev-python/pypy-exe-bin:${PYPY_PV}
+"
+# don't enforce the dep on dev-python/pypy with USE=low-memory
+# since it's going to cause circular dep with unhelpful error message
+BDEPEND="
+ !low-memory? (
+ || (
+ dev-python/pypy
+ dev-lang/python:2.7
+ )
+ )
+"
+
+check_env() {
+ if ! has_version -b dev-python/pypy; then
+ if use low-memory; then
+ eerror "USE=low-memory requires (a prior version of) dev-python/pypy"
+ eerror "installed."
+ else
+ ewarn "CPython 2.7 will be used to perform the translation. Upstream"
+ ewarn "recommends using (a prior version of) dev-python/pypy instead."
+ fi
+ elog "You can install a prebuilt version of PyPy first using e.g.:"
+ elog " $ emerge -1v dev-python/pypy dev-python/pypy-exe-bin"
+
+ if use low-memory; then
+ die "dev-python/pypy needs to be installed for USE=low-memory"
+ fi
+ fi
+
+ if use low-memory; then
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+src_configure() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --no-shared
+ $(usex jit -Ojit -O2)
+
+ ${jit_backend}
+
+ pypy/goal/targetpypystandalone
+ )
+
+ # Avoid linking against libraries disabled by use flags
+ local opts=(
+ bzip2:bz2
+ ncurses:_minimal_curses
+ )
+
+ local opt
+ for opt in "${opts[@]}"; do
+ local flag=${opt%:*}
+ local mod=${opt#*:}
+
+ args+=(
+ $(usex ${flag} --withmod --withoutmod)-${mod}
+ )
+ done
+
+ local interp
+ if use low-memory || has_version -b dev-python/pypy; then
+ einfo "Using already-installed PyPy to perform the translation."
+ interp=( pypy )
+ if use low-memory; then
+ local -x PYPY_GC_MAX_DELTA=200MB
+ interp+=( --jit loop_longevity=300 )
+ fi
+ else
+ einfo "Using CPython 2.7 to perform the translation."
+ interp=( python2.7 )
+
+ # reuse bundled pycparser to avoid external dep
+ mkdir -p "${T}"/pymod/cffi || die
+ : > "${T}"/pymod/cffi/__init__.py || die
+ cp -r lib_pypy/cffi/_pycparser "${T}"/pymod/cffi/ || die
+ local -x PYTHONPATH=${T}/pymod:${PYTHONPATH}
+ fi
+
+ # translate into the C sources
+ # we're going to build them ourselves since otherwise pypy does not
+ # free up the unneeded memory before spawning the compiler
+ set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "translation failed"
+}
+
+src_compile() {
+ emake -C "${T}"/usession*-0/testing_1
+}
+
+src_install() {
+ local dest=/usr/lib/pypy2.7
+ exeinto "${dest}"
+ newexe "${T}"/usession*-0/testing_1/pypy-c pypy-c-${PYPY_PV}
+ insinto "${dest}"/include/${PYPY_PV}
+ doins include/pypy_*
+ pax-mark m "${ED}${dest}/pypy-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_10-exe-bin/Manifest b/dev-python/pypy3_10-exe-bin/Manifest
new file mode 100644
index 000000000000..6671d9cacf77
--- /dev/null
+++ b/dev-python/pypy3_10-exe-bin/Manifest
@@ -0,0 +1,8 @@
+DIST pypy3_10-exe-7.3.12_rc2-1.amd64-musl.gpkg.tar 11919360 BLAKE2B b2218bde7a9b7d1eb72730ccd09ebd16b740fdea688b5faf43eead699bb9361892ad1c9d3ea619120bdce7a6cdf01ec23163bd59cf87fc9189fe845dd9a3fd3b SHA512 0003b1b5366a92ba16e55c78da52b0765f40133be51b9d1302b667da22ffcae7698ce23a59133ffbe43595cf6705549203ad1da6264a90b38ce5e3bdf88533a2
+DIST pypy3_10-exe-7.3.12_rc2-1.amd64.gpkg.tar 11919360 BLAKE2B 8d31c4ccc737e1c5f9e3317e3aa05a963d442c4927262c6ac5f0927ce589df73af54bbc1e7d256b6ca07247e541578fce252dc49e0bc5fdb0715412df90f84d0 SHA512 9d91e226122aa08e9a336ea699c6f793a964b1e0810e196958f17f04ccd30184649f0211afe846d3ad2649d867b82ee6ff9fda7ca4c7e243d1282582b267a870
+DIST pypy3_10-exe-7.3.12_rc2-1.arm64-musl.gpkg.tar 9932800 BLAKE2B 04b9eb19baa4c1754c7af8ebea2419ab98773b4aef71aaff458aef6d31c5d30f3c311cd485bb85bc2a1d08674f96086ff7cacdda1ccadc5bafd85e8a2e9309a3 SHA512 0e077cf79f7a6b411f4f571e47e70412dae54c6c4c0190ac176a19192dbb984b8a829718be64fb5ac86cb15aaf89d12f51f67abfbe8a14a399264483cab59fa4
+DIST pypy3_10-exe-7.3.12_rc2-1.arm64.gpkg.tar 9953280 BLAKE2B 5b0af71d66af6fd8f0f55cd885280fdd776398821726c5db58380a0dfc214fb711a631cab2d55c28eac4dfcaa5a0002b76b2e0ae2953affa33ebd459d2a24388 SHA512 5ad4ec2206ddb35a1c657533a4fcb7bd9e514e35a9d39d09828d854dc63588e752d7b40039462d662e6df8a945273408c9af895636301fd69131478c12a9e315
+DIST pypy3_10-exe-7.3.12_rc2-1.ppc64le-musl.gpkg.tar 6553600 BLAKE2B 22384bcf8a137bcbeaf7598acee7b837f0b44b2c975dd2d38dd2f307a9d8473e3b05921e810283264ef9fc582938ddfd40f580d571611ce4cc85ecdbb60c5dbe SHA512 43096af5b510c0468242b8596372ccd0baaf3d3cf41a2c68f829b281f7a0e8d7868dd1a8276f377879f8d688a8f0944e8d9f8146a16770671f8c19b0f5bd08b1
+DIST pypy3_10-exe-7.3.12_rc2-1.ppc64le.gpkg.tar 10240000 BLAKE2B 27f22ea3d1e635ee0ecc5b7a1fa17d9c6e52b8d49feaf18c2eac25998006f70d99d1831c8c253a4c6777e0683360fc5f95edbe67ae21f2cf000327398c8b4675 SHA512 c3895902458aeefb655a3feb02ea092027c09a97660f97d454626ddb79e0a4093e6e36b87c6ab57cff3eb24eb4fba26ee141ce9c0e34f1e0ce82e07c9ab84093
+DIST pypy3_10-exe-7.3.12_rc2-1.x86-musl.gpkg.tar 8898560 BLAKE2B b1388567bf84bf3c6be20568c89a4706c8d9a58b74fa8c67e557eaefc79ebf280cfaf9d488ca46f3eddb1249c4c6de33c7d5daadb7037407a804e69775241983 SHA512 6ff9f94202ab4be7a50f0c63fbd01c5062fa337ad5c39c723d88a24a87dc8bd54229e1a125b9026ecfd4ca0a13251127d8cf70c914f034b2f5480edb882b5de8
+DIST pypy3_10-exe-7.3.12_rc2-1.x86.gpkg.tar 8826880 BLAKE2B af377e52221fbf34fe175a3d76bb29b3bbb7d7de1c4747442ad16f0c7c92796321b2e0a1cda71902de406b72d3db27547baaffb0c0813b1f6a99abb22a76c37f SHA512 d7d0301f2a78af6d17238af1b3dffc3bfd3d2443698d45884a3b65be36cdd48836b8db58eda5996f36d2d58ad1dae4c0ccddf77f04c64d84eece5da6206de6a7
diff --git a/dev-python/pypy3_10-exe-bin/metadata.xml b/dev-python/pypy3_10-exe-bin/metadata.xml
new file mode 100644
index 000000000000..853174b8f2ab
--- /dev/null
+++ b/dev-python/pypy3_10-exe-bin/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12_rc2.ebuild b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..c20487422bbf
--- /dev/null
+++ b/dev-python/pypy3_10-exe-bin/pypy3_10-exe-bin-7.3.12_rc2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+PYVER=3.10
+MY_P=pypy3_10-exe-${PV}-1
+
+DESCRIPTION="PyPy3 executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3_10-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS=""
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy3_10-exe:${SLOT}
+"
+
+PYPY_PV=${PV%_p*}
+QA_PREBUILT="
+ usr/bin/pypy${PYVER}-c-${PYPY_PV}
+"
+
+src_install() {
+ insinto /
+ doins -r image/usr
+ fperms +x "/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_10-exe/Manifest b/dev-python/pypy3_10-exe/Manifest
new file mode 100644
index 000000000000..a5f10a112902
--- /dev/null
+++ b/dev-python/pypy3_10-exe/Manifest
@@ -0,0 +1,2 @@
+DIST pypy3.10-gentoo-patches-7.3.12rc2.tar.xz 3416 BLAKE2B 5aac048a8758aff3ea43de12da8b5bcffb5ca1a97d58b307d9badb9583376f0c2513d034ec394216b5d20ab5985a7f1142bd20f9affd5c48b8b86a5286194bad SHA512 3980fef808ac4d9530f9cc4f17ff70eff2612c31f7470c62a4ad83d727216c19cac62d6874d7187004ba83e1fbd349efebc303e0f74c3491baebaf8a630f6a89
+DIST pypy3.10-v7.3.12rc2-src.tar.bz2 23030434 BLAKE2B a94e427450350c239bd514a9747813337b1208edafeb6a05c18c0b7cd2075edd480d2081d605e62ec9b1ed227154396ed30bba05294db722a43de33c46e34893 SHA512 9e850d3ba16db7dc36069e50c3026d812f08763c5a92fc5e43fff0fcf54fad202c2a13b7101c49d52ee2fb89062fab335473334ccdd067d69ace6d9ecf7f92d2
diff --git a/dev-python/pypy3_10-exe/metadata.xml b/dev-python/pypy3_10-exe/metadata.xml
new file mode 100644
index 000000000000..aa8b98fa69c4
--- /dev/null
+++ b/dev-python/pypy3_10-exe/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+
+ <use>
+ <flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint.
+ This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
+ at the cost of lengthened build time.</flag>
+ </use>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12_rc2.ebuild b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..8311381bd4ac
--- /dev/null
+++ b/dev-python/pypy3_10-exe/pypy3_10-exe-7.3.12_rc2.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.10
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy3 executable (build from source)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+SLOT="${PYPY_PV}"
+KEYWORDS=""
+IUSE="+jit low-memory ncurses cpu_flags_x86_sse2"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/expat:0=
+ dev-libs/libffi:0=
+ >=sys-libs/zlib-1.1.3:0=
+ virtual/libintl:0=
+ ncurses? ( sys-libs/ncurses:0= )
+ !dev-python/pypy3-exe-bin:${SLOT}
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-python/pypy
+"
+
+check_env() {
+ if use low-memory; then
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+src_configure() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --no-shared
+ $(usex jit -Ojit -O2)
+
+ ${jit_backend}
+
+ pypy/goal/targetpypystandalone
+ --withmod-bz2
+ $(usex ncurses --with{,out}mod-_minimal_curses)
+ )
+
+ local interp=( pypy )
+ if use low-memory; then
+ local -x PYPY_GC_MAX_DELTA=200MB
+ interp+=( --jit loop_longevity=300 )
+ fi
+
+ # translate into the C sources
+ # we're going to build them ourselves since otherwise pypy does not
+ # free up the unneeded memory before spawning the compiler
+ set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "translation failed"
+}
+
+src_compile() {
+ emake -C "${T}"/usession*-0/testing_1
+}
+
+src_install() {
+ cd "${T}"/usession*-0 || die
+ newbin "testing_1/pypy${PYVER}-c" "pypy${PYVER}-c-${PYPY_PV}"
+ insinto "/usr/include/pypy${PYVER}/${PYPY_PV}"
+ doins *.h
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_10/Manifest b/dev-python/pypy3_10/Manifest
new file mode 100644
index 000000000000..a5f10a112902
--- /dev/null
+++ b/dev-python/pypy3_10/Manifest
@@ -0,0 +1,2 @@
+DIST pypy3.10-gentoo-patches-7.3.12rc2.tar.xz 3416 BLAKE2B 5aac048a8758aff3ea43de12da8b5bcffb5ca1a97d58b307d9badb9583376f0c2513d034ec394216b5d20ab5985a7f1142bd20f9affd5c48b8b86a5286194bad SHA512 3980fef808ac4d9530f9cc4f17ff70eff2612c31f7470c62a4ad83d727216c19cac62d6874d7187004ba83e1fbd349efebc303e0f74c3491baebaf8a630f6a89
+DIST pypy3.10-v7.3.12rc2-src.tar.bz2 23030434 BLAKE2B a94e427450350c239bd514a9747813337b1208edafeb6a05c18c0b7cd2075edd480d2081d605e62ec9b1ed227154396ed30bba05294db722a43de33c46e34893 SHA512 9e850d3ba16db7dc36069e50c3026d812f08763c5a92fc5e43fff0fcf54fad202c2a13b7101c49d52ee2fb89062fab335473334ccdd067d69ace6d9ecf7f92d2
diff --git a/dev-python/pypy3_10/metadata.xml b/dev-python/pypy3_10/metadata.xml
new file mode 100644
index 000000000000..6a14ca407288
--- /dev/null
+++ b/dev-python/pypy3_10/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+
+ <use>
+ <flag name="ensurepip">
+ Install the ensurepip module that uses bundled wheels
+ to bootstrap pip and setuptools (if disabled, it will
+ be only possible to use venv `--without-pip`)
+ </flag>
+ </use>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_10/pypy3_10-7.3.12_rc2.ebuild b/dev-python/pypy3_10/pypy3_10-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..9442e56d476d
--- /dev/null
+++ b/dev-python/pypy3_10/pypy3_10-7.3.12_rc2.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils python-utils-r1 toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.10
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_rc/rc}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://foss.heptapod.net/pypy/pypy/
+"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
+# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
+SLOT="0/pypy310-pp73-384"
+KEYWORDS=""
+IUSE="+ensurepip gdbm +jit ncurses sqlite tk"
+# many tests are failing upstream
+# see https://buildbot.pypy.org/summary?branch=py${PYVER}
+RESTRICT="test"
+
+RDEPEND="
+ || (
+ >=dev-python/${PN}-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/${PN}-exe-bin-${PYPY_PV}:${PYPY_PV}
+ )
+ dev-lang/python-exec[python_targets_pypy3(-)]
+ dev-libs/openssl:0=
+ dev-python/gentoo-common
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !~dev-python/pypy3-7.3.12_rc1
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+
+ eapply_user
+}
+
+src_configure() {
+ tc-export CC
+}
+
+src_compile() {
+ mkdir bin || die
+ # switch to the layout expected for cffi module builds
+ mkdir include/pypy${PYVER} || die
+ # copy over to make sys.prefix happy
+ cp -p "${BROOT}"/usr/bin/pypy${PYVER}-c-${PYPY_PV} pypy${PYVER}-c || die
+ cp -p "${BROOT}"/usr/include/pypy${PYVER}/${PYPY_PV}/* include/pypy${PYVER}/ || die
+ # (not installed by pypy-exe)
+ rm pypy/module/cpyext/include/_numpypy/numpy/README || die
+ mv pypy/module/cpyext/include/* include/pypy${PYVER}/ || die
+ mv pypy/module/cpyext/parse/*.h include/pypy${PYVER}/ || die
+ pax-mark m pypy${PYVER}-c
+
+ # verify the subslot
+ local soabi=$(
+ ./pypy${PYVER}-c - <<-EOF
+ import importlib.util
+ import sysconfig
+ soabi = sysconfig.get_config_var("SOABI")
+ magic = importlib.util._RAW_MAGIC_NUMBER & 0xffff
+ print(f"{soabi}-{magic}")
+ EOF
+ )
+ [[ ${soabi} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
+ # Add epython.py to the distribution
+ echo 'EPYTHON="pypy3"' > lib-python/3/epython.py || die
+
+ einfo "Generating caches and CFFI modules ..."
+
+ # Generate sysconfig data
+ local host_gnu_type=$(sh pypy/tool/release/config.guess)
+ local overrides=(
+ HOST_GNU_TYPE "${host_gnu_type:-unknown}"
+ INCLUDEPY "${EPREFIX}/usr/include/pypy${PYVER}"
+ LIBDIR "${EPREFIX}/usr/$(get_libdir)"
+ TZPATH "${EPREFIX}/usr/share/zoneinfo"
+ WHEEL_PKG_DIR "${EPREFIX}/usr/lib/python/ensurepip"
+ )
+ ./pypy${PYVER}-c -m sysconfig --generate-posix-vars "${overrides[@]}" || die
+ local outdir
+ outdir=$(<pybuilddir.txt) || die
+ cp "${outdir}"/_sysconfigdata__*.py lib-python/3/ || die
+
+ # Generate Grammar and PatternGrammar pickles.
+ ./pypy${PYVER}-c - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed"
+ import lib2to3.pygram
+ import lib2to3.patcomp
+ lib2to3.patcomp.PatternCompiler()
+ EOF
+
+ # Generate cffi modules
+ # Please keep in sync with lib_pypy/pypy_tools/build_cffi_imports.py!
+ # (NB: we build CFFI modules first to avoid error log when importing
+ # build_cffi_imports).
+ cffi_targets=(
+ pypy_util blake2/_blake2 sha3/_sha3 ssl
+ audioop syslog pwdgrp resource lzma posixshmem
+ )
+ use gdbm && cffi_targets+=( gdbm )
+ use ncurses && cffi_targets+=( curses )
+ use sqlite && cffi_targets+=( sqlite3 )
+ use tk && cffi_targets+=( tkinter/tklib )
+
+ local t
+ # all modules except tkinter output to .
+ # tkinter outputs to the correct dir ...
+ cd lib_pypy || die
+ for t in "${cffi_targets[@]}"; do
+ # tkinter doesn't work via -m
+ ../pypy${PYVER}-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+ done
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=63d4659f
+ local local_cksum=$(
+ ../pypy${PYVER}-c - <<-EOF
+ import binascii
+ import json
+ from pypy_tools.build_cffi_imports import cffi_build_scripts as x
+ print("%08x" % (binascii.crc32(json.dumps(x).encode()),))
+ EOF
+ )
+ if [[ ${local_cksum} != ${expected_cksum} ]]; then
+ die "Please verify cffi_targets and update checksum to ${local_cksum}"
+ fi
+
+ # Cleanup temporary objects
+ find -name "*_cffi.[co]" -delete || die
+ find -type d -empty -delete || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ dodir /usr/bin
+ dosym pypy${PYVER}-c-${PYPY_PV} /usr/bin/pypy${PYVER}
+ insinto /usr/lib/pypy${PYVER}
+ # preserve mtimes to avoid obsoleting caches
+ insopts -p
+ doins -r lib-python/3/. lib_pypy/.
+ insinto /usr/include
+ doins -r include/pypy${PYVER}
+
+ # replace copied headers with symlinks
+ for x in "${BROOT}"/usr/include/pypy${PYVER}/${PYPY_PV}/*; do
+ dosym "${PYPY_PV}/${x##*/}" "/usr/include/pypy${PYVER}/${x##*/}"
+ done
+
+ dodoc README.rst
+
+ local dest=/usr/lib/pypy${PYVER}
+ rm -r "${ED}${dest}"/ensurepip/_bundled || die
+ if ! use ensurepip; then
+ rm -r "${ED}${dest}"/ensurepip || die
+ fi
+ if ! use gdbm; then
+ rm -r "${ED}${dest}"/_gdbm* || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED}${dest}"/sqlite3 \
+ "${ED}${dest}"/_sqlite3* \
+ "${ED}${dest}"/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}${dest}"/{idlelib,tkinter} \
+ "${ED}${dest}"/_tkinter \
+ "${ED}${dest}"/test/test_{tcl,tk,ttk*}.py || die
+ fi
+ dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED"
+
+ local -x EPYTHON=pypy3
+ local -x PYTHON=${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}
+ # temporarily copy to build tree to facilitate module builds
+ cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" "${PYTHON}" || die
+
+ einfo "Byte-compiling Python standard library..."
+ python_optimize "${ED}${dest}"
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}
diff --git a/dev-python/pypy3_9-exe-bin/Manifest b/dev-python/pypy3_9-exe-bin/Manifest
new file mode 100644
index 000000000000..1e877888f58b
--- /dev/null
+++ b/dev-python/pypy3_9-exe-bin/Manifest
@@ -0,0 +1,8 @@
+DIST pypy3_9-exe-7.3.12_rc2-1.amd64-musl.gpkg.tar 11765760 BLAKE2B 4fbae8b10e2460f3909bb4736046a120139800a70cb432de04f8b4d4bcfe5e6db0c747ad302d97918454f95675313d2c5754e85c9c1ebbb2413cd4b9e025ddf5 SHA512 82299f068a8e1a0d7772843d1269872e40db9939ccfab94c86f0a62dff203eaa9a281e1b0cfee1a8c030a7ee792bb917a3cabb23e9303e92d3fe43c0f924fb45
+DIST pypy3_9-exe-7.3.12_rc2-1.amd64.gpkg.tar 11765760 BLAKE2B f0ed332de083849ad8c58904f8cf49619a0deb93d8fb7988a7257160e0b1af03cc31e27fe40bd61ab36a67844488d4877a6831f8740a3a7047b845d1e90b6fe8 SHA512 fc2856979a7d00c274c24ca48bf91c3447aab36c8075b4ec40dfc1dc4e070188a7e66aefaa25875c97d2736a3b59591a2a8c7d28c309fcfb17ffad010469287b
+DIST pypy3_9-exe-7.3.12_rc2-1.arm64-musl.gpkg.tar 9850880 BLAKE2B a69cbdb4a814e9bc6a1197ffcacd95d701314975ca7b12c6ed1767e741a65d623b937e958d3b05f95a5dd05ddf6fba43e32e99ac9cc1cf6f1656bd2c8217d677 SHA512 164a5094d02237a09f378afaa78ddce33056327819367c9200a6cf792788e6f4606aed07e0b65145e3dceb63597de83b8441e461f8a93595822de2d32a04cc00
+DIST pypy3_9-exe-7.3.12_rc2-1.arm64.gpkg.tar 9809920 BLAKE2B 336fc70fb07bb01e5f874cafa3167f81071a6dfe2c06ff3f17e32a07d8658342f4a7949567e50b7bfad3d6a145b356ea9c2a60fda838ba89613d3d57ff31f729 SHA512 81b8adcd567a4e9e9d217203c5699cc1e6ea3ffbb514163e54c72238d4e6f83becdf5a1bcd09b0b18f5bee34c7208d3afc4901d29eda63433c5e890f235bc6c3
+DIST pypy3_9-exe-7.3.12_rc2-1.ppc64le-musl.gpkg.tar 6440960 BLAKE2B 3746b592aa0d3ba85c87f78933c11338c829853c9392f48f5c203d04e56bb30adf9a06a1e2ad808d9c7d5c2c65c2f68c4526604aad42b8785449d737d3cb8dc0 SHA512 2c3871c562f4b2d7f77442272c920edb880fa94d77920de808e88addcf1a69b92897666ee1ed0eab009bc365953d31252e87dbc1180c9096267fab591335c062
+DIST pypy3_9-exe-7.3.12_rc2-1.ppc64le.gpkg.tar 10168320 BLAKE2B 412dac367dc4514da400ab31c4aaf3e308be3596dc227f5f53b85b9e5591c2075db038532773e20d2b403b9dd527c10dc5340d81a86060ccd32e01f0bfb3852d SHA512 f66a82860186972a156044a18f175d1da654b075cf7982463ff65c824ec97df26b3b226635d1d2052c2bfbeedba86b2028c3145fdeb7d4f37aa4a4eb3c90bf58
+DIST pypy3_9-exe-7.3.12_rc2-1.x86-musl.gpkg.tar 8796160 BLAKE2B e55bbe14558aa00349768077f79c7a53c881ce13a93497677786f681551686d1407688d83d6abaaf59bfd8c2a941c6fb20c540e77a50b4b728e59a6c27c11254 SHA512 88b959f303400b4a0a70db433a0d2b7e5fc7c67548ab6cc26272012aab3845707c1fd6aa84a1f942647f6cc4eb88dfd845d8b7761eb0792d914fbe031f81d1d1
+DIST pypy3_9-exe-7.3.12_rc2-1.x86.gpkg.tar 8704000 BLAKE2B 6ce103402b29c66fc5e033711538b9fe97d92b1ea68b7d668d7d7354435936fa7cb0254587f9b5cc2d10fe369a672f5c800efde2114f9e62a79727056f4ac713 SHA512 26d1444d548a2708eb7d9090d6759bfac1e51f456d5c09eaea38547169f51f74113c01bdce9032f0887c5e349079228e7c348c8e4be06aa2fa5a2f4af1b419db
diff --git a/dev-python/pypy3_9-exe-bin/metadata.xml b/dev-python/pypy3_9-exe-bin/metadata.xml
new file mode 100644
index 000000000000..853174b8f2ab
--- /dev/null
+++ b/dev-python/pypy3_9-exe-bin/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12_rc2.ebuild b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..c448acdc63d8
--- /dev/null
+++ b/dev-python/pypy3_9-exe-bin/pypy3_9-exe-bin-7.3.12_rc2.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils unpacker
+
+PYVER=3.9
+MY_P=pypy3_9-exe-${PV}-1
+
+DESCRIPTION="PyPy3 executable (pre-built version)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ elibc_glibc? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86.gpkg.tar
+ )
+ )
+ elibc_musl? (
+ amd64? (
+ https://dev.gentoo.org/~mgorny/binpkg/amd64-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.amd64-musl.gpkg.tar
+ )
+ arm64? (
+ https://dev.gentoo.org/~mgorny/binpkg/arm64-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.arm64-musl.gpkg.tar
+ )
+ ppc64? (
+ https://dev.gentoo.org/~mgorny/binpkg/ppc64le-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.ppc64le-musl.gpkg.tar
+ )
+ x86? (
+ https://dev.gentoo.org/~mgorny/binpkg/x86-musl/pypy/dev-python/pypy3_9-exe/${MY_P}.gpkg.tar
+ -> ${MY_P}.x86-musl.gpkg.tar
+ )
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="${PV%_p*}"
+KEYWORDS=""
+
+# sys-devel/gcc for libgcc_s.so
+RDEPEND="
+ app-arch/bzip2:0/1
+ dev-libs/expat:0/0
+ dev-libs/libffi:0/8
+ sys-libs/ncurses:0/6
+ >=sys-libs/zlib-1.1.3:0/1
+ virtual/libintl:0/0
+ elibc_glibc? (
+ sys-devel/gcc
+ >=sys-libs/glibc-2.35
+ )
+ !dev-python/pypy3_9-exe:${SLOT}
+"
+
+PYPY_PV=${PV%_p*}
+QA_PREBUILT="
+ usr/bin/pypy${PYVER}-c-${PYPY_PV}
+"
+
+src_install() {
+ insinto /
+ doins -r image/usr
+ fperms +x "/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_9-exe/Manifest b/dev-python/pypy3_9-exe/Manifest
new file mode 100644
index 000000000000..7982662b600c
--- /dev/null
+++ b/dev-python/pypy3_9-exe/Manifest
@@ -0,0 +1,2 @@
+DIST pypy3.9-gentoo-patches-7.3.12rc2.tar.xz 7476 BLAKE2B d425ac68f555aeee07ca2b993341f5c7662d27f599200b1dbb3ad489a925b6934b6e95c39505c1dc899bde4b1e903822988ea98e6af883418d7b2b11ca8f42fb SHA512 c3fee32098544a13b7a14809357e7a8f060f0223eb50dd246981a304d1f273c8633b4dbca64ef2bb1a1f79fd1e7a48482d729f933c676768d11b7955f9f6c2d7
+DIST pypy3.9-v7.3.12rc2-src.tar.bz2 23585984 BLAKE2B 52fbdc403c7af9b2b96f50efe2256ad0f2b2fcf4622649f42606349994ac9bc4a9475b52dce58ee4cc36be06a845c009ac2097887e6d784f1712ed9ab0a0cf63 SHA512 5795081557e192b9b007eb0e324f2df5e520204d0c4fe9bb1118c99203584629b4c4da241d8b172e04654bc61c07d43d0b968232265f927bb425d76e7e9bc442
diff --git a/dev-python/pypy3_9-exe/metadata.xml b/dev-python/pypy3_9-exe/metadata.xml
new file mode 100644
index 000000000000..aa8b98fa69c4
--- /dev/null
+++ b/dev-python/pypy3_9-exe/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+
+ <use>
+ <flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint.
+ This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
+ at the cost of lengthened build time.</flag>
+ </use>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12_rc2.ebuild b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..d5f0b7b0c1d5
--- /dev/null
+++ b/dev-python/pypy3_9-exe/pypy3_9-exe-7.3.12_rc2.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs pax-utils toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.9
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_}"
+
+DESCRIPTION="PyPy3 executable (build from source)"
+HOMEPAGE="https://www.pypy.org/"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+SLOT="${PYPY_PV}"
+KEYWORDS=""
+IUSE="+jit low-memory ncurses cpu_flags_x86_sse2"
+
+RDEPEND="
+ app-arch/bzip2:0=
+ dev-libs/expat:0=
+ dev-libs/libffi:0=
+ >=sys-libs/zlib-1.1.3:0=
+ virtual/libintl:0=
+ ncurses? ( sys-libs/ncurses:0= )
+ !dev-python/pypy3-exe-bin:${SLOT}
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-python/pypy
+"
+
+check_env() {
+ if use low-memory; then
+ CHECKREQS_MEMORY="1750M"
+ use amd64 && CHECKREQS_MEMORY="3500M"
+ else
+ CHECKREQS_MEMORY="3G"
+ use amd64 && CHECKREQS_MEMORY="6G"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && check_env
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+}
+
+src_configure() {
+ tc-export CC
+
+ local jit_backend
+ if use jit; then
+ jit_backend='--jit-backend='
+
+ # We only need the explicit sse2 switch for x86.
+ # On other arches we can rely on autodetection which uses
+ # compiler macros. Plus, --jit-backend= doesn't accept all
+ # the modern values...
+
+ if use x86; then
+ if use cpu_flags_x86_sse2; then
+ jit_backend+=x86
+ else
+ jit_backend+=x86-without-sse2
+ fi
+ else
+ jit_backend+=auto
+ fi
+ fi
+
+ local args=(
+ --no-shared
+ $(usex jit -Ojit -O2)
+
+ ${jit_backend}
+
+ pypy/goal/targetpypystandalone
+ --withmod-bz2
+ $(usex ncurses --with{,out}mod-_minimal_curses)
+ )
+
+ local interp=( pypy )
+ if use low-memory; then
+ local -x PYPY_GC_MAX_DELTA=200MB
+ interp+=( --jit loop_longevity=300 )
+ fi
+
+ # translate into the C sources
+ # we're going to build them ourselves since otherwise pypy does not
+ # free up the unneeded memory before spawning the compiler
+ set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
+ echo -e "\033[1m${@}\033[0m"
+ "${@}" || die "translation failed"
+}
+
+src_compile() {
+ emake -C "${T}"/usession*-0/testing_1
+}
+
+src_install() {
+ cd "${T}"/usession*-0 || die
+ newbin "testing_1/pypy${PYVER}-c" "pypy${PYVER}-c-${PYPY_PV}"
+ insinto "/usr/include/pypy${PYVER}/${PYPY_PV}"
+ doins *.h
+ pax-mark m "${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
+}
diff --git a/dev-python/pypy3_9/Manifest b/dev-python/pypy3_9/Manifest
new file mode 100644
index 000000000000..7982662b600c
--- /dev/null
+++ b/dev-python/pypy3_9/Manifest
@@ -0,0 +1,2 @@
+DIST pypy3.9-gentoo-patches-7.3.12rc2.tar.xz 7476 BLAKE2B d425ac68f555aeee07ca2b993341f5c7662d27f599200b1dbb3ad489a925b6934b6e95c39505c1dc899bde4b1e903822988ea98e6af883418d7b2b11ca8f42fb SHA512 c3fee32098544a13b7a14809357e7a8f060f0223eb50dd246981a304d1f273c8633b4dbca64ef2bb1a1f79fd1e7a48482d729f933c676768d11b7955f9f6c2d7
+DIST pypy3.9-v7.3.12rc2-src.tar.bz2 23585984 BLAKE2B 52fbdc403c7af9b2b96f50efe2256ad0f2b2fcf4622649f42606349994ac9bc4a9475b52dce58ee4cc36be06a845c009ac2097887e6d784f1712ed9ab0a0cf63 SHA512 5795081557e192b9b007eb0e324f2df5e520204d0c4fe9bb1118c99203584629b4c4da241d8b172e04654bc61c07d43d0b968232265f927bb425d76e7e9bc442
diff --git a/dev-python/pypy3_9/metadata.xml b/dev-python/pypy3_9/metadata.xml
new file mode 100644
index 000000000000..6a14ca407288
--- /dev/null
+++ b/dev-python/pypy3_9/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+
+ <use>
+ <flag name="ensurepip">
+ Install the ensurepip module that uses bundled wheels
+ to bootstrap pip and setuptools (if disabled, it will
+ be only possible to use venv `--without-pip`)
+ </flag>
+ </use>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_9/pypy3_9-7.3.12_rc2.ebuild b/dev-python/pypy3_9/pypy3_9-7.3.12_rc2.ebuild
new file mode 100644
index 000000000000..90d3f4dc9027
--- /dev/null
+++ b/dev-python/pypy3_9/pypy3_9-7.3.12_rc2.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils python-utils-r1 toolchain-funcs
+
+PYPY_PV=${PV%_p*}
+PYVER=3.9
+MY_P="pypy${PYVER}-v${PYPY_PV/_}"
+PATCHSET="pypy${PYVER}-gentoo-patches-${PV/_rc/rc}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
+HOMEPAGE="
+ https://www.pypy.org/
+ https://foss.heptapod.net/pypy/pypy/
+"
+SRC_URI="
+ https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+"
+S="${WORKDIR}/${MY_P}-src"
+
+LICENSE="MIT"
+# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
+# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
+SLOT="0/pypy39-pp73-336"
+KEYWORDS=""
+IUSE="+ensurepip gdbm +jit ncurses sqlite tk"
+# many tests are failing upstream
+# see https://buildbot.pypy.org/summary?branch=py${PYVER}
+RESTRICT="test"
+
+RDEPEND="
+ || (
+ >=dev-python/${PN}-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
+ >=dev-python/${PN}-exe-bin-${PYPY_PV}:${PYPY_PV}
+ )
+ dev-lang/python-exec[python_targets_pypy3(-)]
+ dev-libs/openssl:0=
+ dev-python/gentoo-common
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !<dev-python/pypy3-7.3.12_rc
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+ default
+
+ eapply_user
+}
+
+src_configure() {
+ tc-export CC
+}
+
+src_compile() {
+ mkdir bin || die
+ # switch to the layout expected for cffi module builds
+ mkdir include/pypy${PYVER} || die
+ # copy over to make sys.prefix happy
+ cp -p "${BROOT}"/usr/bin/pypy${PYVER}-c-${PYPY_PV} pypy${PYVER}-c || die
+ cp -p "${BROOT}"/usr/include/pypy${PYVER}/${PYPY_PV}/* include/pypy${PYVER}/ || die
+ # (not installed by pypy-exe)
+ rm pypy/module/cpyext/include/_numpypy/numpy/README || die
+ mv pypy/module/cpyext/include/* include/pypy${PYVER}/ || die
+ mv pypy/module/cpyext/parse/*.h include/pypy${PYVER}/ || die
+ pax-mark m pypy${PYVER}-c
+
+ # verify the subslot
+ local soabi=$(
+ ./pypy${PYVER}-c - <<-EOF
+ import importlib.util
+ import sysconfig
+ soabi = sysconfig.get_config_var("SOABI")
+ magic = importlib.util._RAW_MAGIC_NUMBER & 0xffff
+ print(f"{soabi}-{magic}")
+ EOF
+ )
+ [[ ${soabi} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
+
+ # Add epython.py to the distribution
+ echo 'EPYTHON="pypy3"' > lib-python/3/epython.py || die
+
+ einfo "Generating caches and CFFI modules ..."
+
+ # Generate sysconfig data
+ local host_gnu_type=$(sh pypy/tool/release/config.guess)
+ local overrides=(
+ HOST_GNU_TYPE "${host_gnu_type:-unknown}"
+ INCLUDEPY "${EPREFIX}/usr/include/pypy${PYVER}"
+ LIBDIR "${EPREFIX}/usr/$(get_libdir)"
+ TZPATH "${EPREFIX}/usr/share/zoneinfo"
+ WHEEL_PKG_DIR "${EPREFIX}/usr/lib/python/ensurepip"
+ )
+ ./pypy${PYVER}-c -m sysconfig --generate-posix-vars "${overrides[@]}" || die
+ local outdir
+ outdir=$(<pybuilddir.txt) || die
+ cp "${outdir}"/_sysconfigdata__*.py lib-python/3/ || die
+
+ # Generate Grammar and PatternGrammar pickles.
+ ./pypy${PYVER}-c - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed"
+ import lib2to3.pygram
+ import lib2to3.patcomp
+ lib2to3.patcomp.PatternCompiler()
+ EOF
+
+ # Generate cffi modules
+ # Please keep in sync with lib_pypy/pypy_tools/build_cffi_imports.py!
+ # (NB: we build CFFI modules first to avoid error log when importing
+ # build_cffi_imports).
+ cffi_targets=(
+ pypy_util blake2/_blake2 sha3/_sha3 ssl
+ audioop syslog pwdgrp resource lzma posixshmem
+ )
+ use gdbm && cffi_targets+=( gdbm )
+ use ncurses && cffi_targets+=( curses )
+ use sqlite && cffi_targets+=( sqlite3 )
+ use tk && cffi_targets+=( tkinter/tklib )
+
+ local t
+ # all modules except tkinter output to .
+ # tkinter outputs to the correct dir ...
+ cd lib_pypy || die
+ for t in "${cffi_targets[@]}"; do
+ # tkinter doesn't work via -m
+ ../pypy${PYVER}-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+ done
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=63d4659f
+ local local_cksum=$(
+ ../pypy${PYVER}-c - <<-EOF
+ import binascii
+ import json
+ from pypy_tools.build_cffi_imports import cffi_build_scripts as x
+ print("%08x" % (binascii.crc32(json.dumps(x).encode()),))
+ EOF
+ )
+ if [[ ${local_cksum} != ${expected_cksum} ]]; then
+ die "Please verify cffi_targets and update checksum to ${local_cksum}"
+ fi
+
+ # Cleanup temporary objects
+ find -name "*_cffi.[co]" -delete || die
+ find -type d -empty -delete || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ dodir /usr/bin
+ dosym pypy${PYVER}-c-${PYPY_PV} /usr/bin/pypy${PYVER}
+ insinto /usr/lib/pypy${PYVER}
+ # preserve mtimes to avoid obsoleting caches
+ insopts -p
+ doins -r lib-python/3/. lib_pypy/.
+ insinto /usr/include
+ doins -r include/pypy${PYVER}
+
+ # replace copied headers with symlinks
+ for x in "${BROOT}"/usr/include/pypy${PYVER}/${PYPY_PV}/*; do
+ dosym "${PYPY_PV}/${x##*/}" "/usr/include/pypy${PYVER}/${x##*/}"
+ done
+
+ dodoc README.rst
+
+ local dest=/usr/lib/pypy${PYVER}
+ rm -r "${ED}${dest}"/ensurepip/_bundled || die
+ if ! use ensurepip; then
+ rm -r "${ED}${dest}"/ensurepip || die
+ fi
+ if ! use gdbm; then
+ rm -r "${ED}${dest}"/_gdbm* || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED}${dest}"/sqlite3 \
+ "${ED}${dest}"/_sqlite3* \
+ "${ED}${dest}"/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}${dest}"/{idlelib,tkinter} \
+ "${ED}${dest}"/_tkinter \
+ "${ED}${dest}"/test/test_{tcl,tk,ttk*}.py || die
+ fi
+ dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED"
+
+ local -x EPYTHON=pypy3
+ local -x PYTHON=${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}
+ # temporarily copy to build tree to facilitate module builds
+ cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" "${PYTHON}" || die
+
+ einfo "Byte-compiling Python standard library..."
+ python_optimize "${ED}${dest}"
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}
diff --git a/dev-python/ruamel-yaml/Manifest b/dev-python/ruamel-yaml/Manifest
index 61de375986a4..5998a842e753 100644
--- a/dev-python/ruamel-yaml/Manifest
+++ b/dev-python/ruamel-yaml/Manifest
@@ -4,3 +4,4 @@ DIST ruamel.yaml-0.17.23.tar.xz 185900 BLAKE2B ff283c979474f14e2f0231d64d0a609f2
DIST ruamel.yaml-0.17.24.tar.xz 186504 BLAKE2B d5bd5240c3ad68309ad9382dd076111f554848a71697ac98015e34449a98c101f37cef0fdead279501976cceb235c8b055675eb63aab4c8121dd30ae5740dd90 SHA512 32fe95c4927197af4f30bc68d26bff956520d69471f802b58be6a07a0c4b2ed45673cd7890a2f49dc2a13791a2dac2fa66a7e6137f5afe813b6d8d56704d0c16
DIST ruamel.yaml-0.17.26.tar.xz 186752 BLAKE2B ce3d914ac27df2d038a882535f3559b47051a1fb1206a3ab6cab7c2ee0ee9fcfb5fc0babfb3a3488e7d074798bcbdb24d67d2a37a00c9d9210e96f13bb5bcdbb SHA512 40a91002f904621632acaa73b5bd3095f933369d354a8e7579a5afe4c171ceefadb76d5ecbdd3ef6202833874ba19ed518ce5ac5c7dbf15b698dd07b95260d33
DIST ruamel.yaml-0.17.28.tar.xz 187800 BLAKE2B 24dbf1c3fc76ec2f6255a7771dfa3bae24bf97c7014bd3205dd4968d73bdd9c4fc9e3adf721dba89c50554d13dbdd528f5f67c99692ef15b361119330b35005e SHA512 313bd7e4cfa559f90e150cf5a522b5c690b680b38df24ea3b4320484012b6e4c841f94fd21ca33283dfc0a1d04c465d38d4b5d48f95d2f1f9b876dc371a74f35
+DIST ruamel.yaml-0.17.30.tar.xz 189936 BLAKE2B 9e662551527372b3a1654d8e5da8c1e0a22f432d6564a807fe89bee7f93e2878d47e6a97f50475643575e89eb03564beb86daa7295d14513ff09615d38441f3b SHA512 0e460fa05e69d99591ff4dd1b35ae3be4ba40f21bcf514f16256a56a346b570c7c41a56e1ccf7c1d3ff14beb53800a4f0752243aa20fc37df345509c293d351a
diff --git a/dev-python/ruamel-yaml/ruamel-yaml-0.17.30.ebuild b/dev-python/ruamel-yaml/ruamel-yaml-0.17.30.ebuild
new file mode 100644
index 000000000000..68ab1d975c37
--- /dev/null
+++ b/dev-python/ruamel-yaml/ruamel-yaml-0.17.30.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1
+
+MY_P="${P/-/.}"
+DESCRIPTION="YAML parser/emitter that supports roundtrip comment preservation"
+HOMEPAGE="
+ https://pypi.org/project/ruamel.yaml/
+ https://sourceforge.net/projects/ruamel-yaml/
+"
+# PyPI tarballs do not include tests
+SRC_URI="mirror://sourceforge/ruamel-dl-tagged-releases/${MY_P}.tar.xz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/ruamel-yaml-clib[${PYTHON_USEDEP}]
+ !dev-python/namespace-ruamel
+"
+BDEPEND="
+ test? (
+ dev-python/ruamel-std-pathlib[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_compile() {
+ distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=(
+ _test/test_deprecation.py::test_collections_deprecation
+ )
+ local EPYTEST_IGNORE=(
+ # Old PyYAML tests from lib/ require special set-up and are
+ # invoked indirectly via test_z_olddata, tell pytest itself
+ # to leave the subdir alone.
+ _test/lib/
+ )
+
+ # this is needed to keep the tests working while
+ # dev-python/namespace-ruamel is still installed
+ distutils_write_namespace ruamel
+ epytest
+}
diff --git a/dev-python/sphinx/sphinx-6.2.1.ebuild b/dev-python/sphinx/sphinx-6.2.1.ebuild
index d824bf1f9a9d..d120054ec910 100644
--- a/dev-python/sphinx/sphinx-6.2.1.ebuild
+++ b/dev-python/sphinx/sphinx-6.2.1.ebuild
@@ -103,6 +103,8 @@ python_test() {
# TODO
tests/test_ext_autodoc_autoclass.py::test_classes
tests/test_ext_autodoc_autofunction.py::test_classes
+ tests/test_ext_math.py::test_imgmath_numfig_html
+ tests/test_ext_math.py::test_imgmath_png
tests/test_ext_inheritance_diagram.py::test_import_classes
# looks like a bug in lualatex
"tests/test_build_latex.py::test_build_latex_doc[lualatex-howto]"
diff --git a/dev-python/stdio-mgr/Manifest b/dev-python/stdio-mgr/Manifest
index 59da72d82f9b..938131f9cd59 100644
--- a/dev-python/stdio-mgr/Manifest
+++ b/dev-python/stdio-mgr/Manifest
@@ -1 +1,2 @@
+DIST stdio-mgr-1.0.1.gh.tar.gz 8447 BLAKE2B 72038ea34177829d77ac239585775557b5a0a253879c027b2aad64045ec8bafbfdc250d94fe61cde96f06616f774edf42b384bfef7fbf69af442b0a9b703cf9a SHA512 2d18e5d65faa7a73373b56fdac3893768a65a36bed17f017b647e71431a6bff44ce1d39022f1dbbd31ddc9c0e704743a164f4b7610fb62d75aa34ecb53331366
DIST stdio-mgr-1.0.1.tar.gz 8447 BLAKE2B 72038ea34177829d77ac239585775557b5a0a253879c027b2aad64045ec8bafbfdc250d94fe61cde96f06616f774edf42b384bfef7fbf69af442b0a9b703cf9a SHA512 2d18e5d65faa7a73373b56fdac3893768a65a36bed17f017b647e71431a6bff44ce1d39022f1dbbd31ddc9c0e704743a164f4b7610fb62d75aa34ecb53331366
diff --git a/dev-python/stdio-mgr/stdio-mgr-1.0.1-r1.ebuild b/dev-python/stdio-mgr/stdio-mgr-1.0.1-r1.ebuild
new file mode 100644
index 000000000000..fc3550548188
--- /dev/null
+++ b/dev-python/stdio-mgr/stdio-mgr-1.0.1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+DESCRIPTION="Context manager for mocking/wrapping stdin/stdout/stderr"
+HOMEPAGE="
+ https://github.com/bskinn/stdio-mgr/
+ https://pypi.org/project/stdio-mgr/
+"
+SRC_URI="
+ https://github.com/bskinn/stdio-mgr/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/attrs-17.1[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+# doc directory is not included in the release tarball for some reason
+#distutils_enable_sphinx doc \
+# dev-python/sphinxcontrib-programoutput \
+# dev-python/sphinx-rtd-theme
+
+python_test() {
+ # skip the doctests
+ epytest tests
+}
diff --git a/dev-python/testresources/files/testresources-2.0.1-py312-tests.patch b/dev-python/testresources/files/testresources-2.0.1-py312-tests.patch
new file mode 100644
index 000000000000..7d4451ca43b9
--- /dev/null
+++ b/dev-python/testresources/files/testresources-2.0.1-py312-tests.patch
@@ -0,0 +1,35 @@
+Subject: [PATCH] Refactor failIf to assertFalse for Python 3.12 Compatibility
+
+This commit replaces deprecated failIf calls with assertFalse in the
+test_resourced_test_case.py file. The failIf method was removed in
+Python 3.12 [1-3].
+
+[1] https://docs.python.org/3.12/whatsnew/3.12.html#removed
+[2] https://github.com/python/cpython/issues/89325
+[3] https://github.com/python/cpython/pull/28268
+
+Upstream-PR: https://github.com/testing-cabal/testresources/pull/15
+
+diff --git a/testresources/tests/test_resourced_test_case.py b/testresources/tests/test_resourced_test_case.py
+index 7d2cfba..3c8a1b3 100644
+--- a/testresources/tests/test_resourced_test_case.py
++++ b/testresources/tests/test_resourced_test_case.py
+@@ -129,7 +129,7 @@ class TestResourcedTestCase(testtools.TestCase):
+ self.resourced_case.resources = [("foo", self.resource_manager)]
+ self.resourced_case.setUpResources()
+ self.resourced_case.tearDownResources()
+- self.failIf(hasattr(self.resourced_case, "foo"))
++ self.assertFalse(hasattr(self.resourced_case, "foo"))
+
+ def testTearDownResourcesStopsUsingResource(self):
+ # tearDownResources records that there is one less use of each
+@@ -158,5 +158,5 @@ class TestResourcedTestCase(testtools.TestCase):
+ self.assertEqual(self.resourced_case.foo, self.resource)
+ self.assertEqual(self.resource_manager._uses, 1)
+ self.resourced_case.tearDown()
+- self.failIf(hasattr(self.resourced_case, "foo"))
++ self.assertFalse(hasattr(self.resourced_case, "foo"))
+ self.assertEqual(self.resource_manager._uses, 0)
+--
+2.39.2
+
diff --git a/dev-python/testresources/testresources-2.0.1-r3.ebuild b/dev-python/testresources/testresources-2.0.1-r3.ebuild
new file mode 100644
index 000000000000..b2651161275c
--- /dev/null
+++ b/dev-python/testresources/testresources-2.0.1-r3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A pyunit extension for managing expensive test resources"
+HOMEPAGE="
+ https://launchpad.net/testresources/
+ https://github.com/testing-cabal/testresources/
+ https://pypi.org/project/testresources/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-py312-tests.patch"
+)
+
+distutils_enable_tests unittest
diff --git a/dev-python/testtools/testtools-2.6.0-r1.ebuild b/dev-python/testtools/testtools-2.6.0-r1.ebuild
new file mode 100644
index 000000000000..82fdeb5da783
--- /dev/null
+++ b/dev-python/testtools/testtools-2.6.0-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extensions to the Python standard library unit testing framework"
+HOMEPAGE="
+ https://github.com/testing-cabal/testtools/
+ https://pypi.org/project/testtools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/pbr-0.11[${PYTHON_USEDEP}]
+ >=dev-python/six-1.4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/fixtures-2.0.0[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/testresources[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ >=dev-python/fixtures-2.0.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx doc
+
+src_prepare() {
+ # very fragile to formatting changes (broken on py3.10 & pypy3)
+ sed -i -e 's:test_syntax_error(:_&:' \
+ testtools/tests/test_testresult.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ "${PYTHON}" -m testtools.run testtools.tests.test_suite ||
+ die "tests failed under ${EPYTHON}"
+}
diff --git a/dev-python/three-merge/Manifest b/dev-python/three-merge/Manifest
index 6555f1532621..8e6d20b4332f 100644
--- a/dev-python/three-merge/Manifest
+++ b/dev-python/three-merge/Manifest
@@ -1 +1,2 @@
DIST three-merge-0.1.1-gh.tar.gz 7312 BLAKE2B 06aa9e88b258bdd418276b418da338625e60cc95872db0147fc4a1ede7d7b9c1a716d3c0662236d289a0bd583d405c33259ba6e26af0033be499f68e1298a38b SHA512 3219e7b5813942fac5317673fcb6b051cdf0efbbe6cb2ee7d0ce6eabeeddb9a2dc7c88677f732833192c6a864d2191bd21afb06b3e110ded8712a03bf6bfcdcc
+DIST three-merge-0.1.1.gh.tar.gz 7312 BLAKE2B 06aa9e88b258bdd418276b418da338625e60cc95872db0147fc4a1ede7d7b9c1a716d3c0662236d289a0bd583d405c33259ba6e26af0033be499f68e1298a38b SHA512 3219e7b5813942fac5317673fcb6b051cdf0efbbe6cb2ee7d0ce6eabeeddb9a2dc7c88677f732833192c6a864d2191bd21afb06b3e110ded8712a03bf6bfcdcc
diff --git a/dev-python/three-merge/three-merge-0.1.1-r1.ebuild b/dev-python/three-merge/three-merge-0.1.1-r1.ebuild
index b7056e3733f8..6fae6610a289 100644
--- a/dev-python/three-merge/three-merge-0.1.1-r1.ebuild
+++ b/dev-python/three-merge/three-merge-0.1.1-r1.ebuild
@@ -9,19 +9,28 @@ PYTHON_COMPAT=( python3_{7,8,9,10,11} )
inherit distutils-r1
DESCRIPTION="Simple Python library to perform a 3-way merge between strings"
-HOMEPAGE="https://github.com/spyder-ide/three-merge
- https://pypi.org/project/three-merge/"
-SRC_URI="https://github.com/spyder-ide/${PN}/archive/v${PV}.tar.gz -> ${P}-gh.tar.gz"
+HOMEPAGE="
+ https://github.com/spyder-ide/three-merge/
+ https://pypi.org/project/three-merge/
+"
+SRC_URI="
+ https://github.com/spyder-ide/three-merge/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-RDEPEND="dev-python/diff-match-patch[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/diff-match-patch[${PYTHON_USEDEP}]
+"
-BDEPEND="test? (
- dev-python/flaky[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
-)"
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
distutils_enable_tests pytest
diff --git a/dev-python/tiny-proxy/Manifest b/dev-python/tiny-proxy/Manifest
index 4d9159acc16f..3d5ac361927d 100644
--- a/dev-python/tiny-proxy/Manifest
+++ b/dev-python/tiny-proxy/Manifest
@@ -1 +1,2 @@
DIST tiny-proxy-0.1.1.gh.tar.gz 14940 BLAKE2B eba17082bf832127c36468db37d9214e45d236c9c1fa7e357e05269df8671f4a06992e03224147642221220aeb89d91479332038e09bf1aa22ce1f0c0316ff20 SHA512 aaf677d18058e6c7c1133398e03d7b0d8b9b4e500fc89174bb3dda1145eb0382492b227f892f672d7a558a30f1d4b92b20eef62922e0e6983f93fcd17850d825
+DIST tiny-proxy-0.2.0.gh.tar.gz 15017 BLAKE2B 46c98d7d4fff2af85464a7c280d212b9be4eb263b8ca643013166b6a81d8783b3078d1551fba0d40417a0cbab795564dbd457bfc037e6c2d40612eabb45fef01 SHA512 748de443ab337f159b1bce852de7f3f10ca32a5580f99bf1e3448c86f49cba26a6ed2855d06b91da7457b3185f99755efd65714a4db3804309cc931e16bdd8b5
diff --git a/dev-python/tiny-proxy/tiny-proxy-0.2.0.ebuild b/dev-python/tiny-proxy/tiny-proxy-0.2.0.ebuild
new file mode 100644
index 000000000000..a89b51cef692
--- /dev/null
+++ b/dev-python/tiny-proxy/tiny-proxy-0.2.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Simple proxy server (SOCKS4(a), SOCKS5(h), HTTP tunnel)"
+HOMEPAGE="
+ https://github.com/romis2012/tiny-proxy/
+ https://pypi.org/project/tiny-proxy/
+"
+SRC_URI="
+ https://github.com/romis2012/tiny-proxy/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/anyio-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/anyio-3.6.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/aiohttp-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.23.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-socks-0.7.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-asyncio-0.18.3[${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.9.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/tinycss/metadata.xml b/dev-python/tinycss/metadata.xml
index ea8988e8af6a..853174b8f2ab 100644
--- a/dev-python/tinycss/metadata.xml
+++ b/dev-python/tinycss/metadata.xml
@@ -7,5 +7,4 @@
</maintainer>
<origin>gentoo-staging</origin>
- <stabilize-allarches/>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/tinycss/tinycss-0.4-r1.ebuild b/dev-python/tinycss/tinycss-0.4-r1.ebuild
index 6141c9b91443..1adbb6197cc2 100644
--- a/dev-python/tinycss/tinycss-0.4-r1.ebuild
+++ b/dev-python/tinycss/tinycss-0.4-r1.ebuild
@@ -3,6 +3,7 @@
EAPI=8
+DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{7,8,9,10,11} )
@@ -22,6 +23,9 @@ KEYWORDS="amd64 x86"
RDEPEND="
dev-python/lxml[${PYTHON_USEDEP}]
"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+"
DOCS=( CHANGES README.rst )
diff --git a/dev-python/txrequests/txrequests-0.9.6-r1.ebuild b/dev-python/txrequests/txrequests-0.9.6-r1.ebuild
index c974058dc5e5..7dfe77f9e87b 100644
--- a/dev-python/txrequests/txrequests-0.9.6-r1.ebuild
+++ b/dev-python/txrequests/txrequests-0.9.6-r1.ebuild
@@ -9,7 +9,10 @@ PYTHON_COMPAT=( python3_{7,8,9,10,11} )
inherit distutils-r1 pypi
DESCRIPTION="Asynchronous Python HTTP for Humans"
-HOMEPAGE="https://github.com/tardyp/txrequests"
+HOMEPAGE="
+ https://github.com/tardyp/txrequests/
+ https://pypi.org/project/txrequests/
+"
LICENSE="Apache-2.0"
SLOT="0"
@@ -21,7 +24,11 @@ RDEPEND="
>=dev-python/requests-1.2.0[${PYTHON_USEDEP}]
dev-python/twisted[${PYTHON_USEDEP}]
"
-BDEPEND="test? ( ${RDEPEND} )"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ )
+"
python_test() {
"${EPYTHON}" -m twisted.trial txrequests || die "Tests failed with ${EPYTHON}"
diff --git a/dev-python/url-normalize/url-normalize-1.4.3-r1.ebuild b/dev-python/url-normalize/url-normalize-1.4.3-r1.ebuild
index edca9963398b..a4c1864f1ddd 100644
--- a/dev-python/url-normalize/url-normalize-1.4.3-r1.ebuild
+++ b/dev-python/url-normalize/url-normalize-1.4.3-r1.ebuild
@@ -5,15 +5,18 @@ EAPI=8
DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
inherit distutils-r1
DESCRIPTION="URL normalization for Python"
HOMEPAGE="
https://github.com/niksite/url-normalize/
- https://pypi.org/project/url-normalize/"
+ https://pypi.org/project/url-normalize/
+"
SRC_URI="
https://github.com/niksite/url-normalize/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz"
+ -> ${P}.gh.tar.gz
+"
LICENSE="MIT"
SLOT="0"
diff --git a/dev-python/uvicorn/uvicorn-0.22.0.ebuild b/dev-python/uvicorn/uvicorn-0.22.0.ebuild
index 48a19a7a28c2..00ae6c087d3f 100644
--- a/dev-python/uvicorn/uvicorn-0.22.0.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.22.0.ebuild
@@ -75,7 +75,6 @@ python_test() {
)
fi
-
epytest
}
diff --git a/dev-python/validators/validators-0.20.0.ebuild b/dev-python/validators/validators-0.20.0.ebuild
index 71214543c30e..d03a24debd3c 100644
--- a/dev-python/validators/validators-0.20.0.ebuild
+++ b/dev-python/validators/validators-0.20.0.ebuild
@@ -10,7 +10,7 @@ inherit distutils-r1 pypi
DESCRIPTION="Python Data Validation for Humans"
HOMEPAGE="
- https://github.com/kvesteri/validators/
+ https://github.com/python-validators/validators/
https://pypi.org/project/validators/
"
diff --git a/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild b/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
index 9adfd38ae556..79cb6ed24044 100644
--- a/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
+++ b/dev-python/wurlitzer/wurlitzer-3.0.3.ebuild
@@ -5,6 +5,7 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
inherit distutils-r1 pypi
DESCRIPTION="Capture C-level stdout/stderr in Python"