summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-09-07 08:35:55 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-09-07 08:35:55 +0000
commit54f79a2305b1e0fb2e2b798272701d8aa178067f (patch)
tree59362e8eb72da198c11f0f0f64356212d08e93b3 /dev-python
parent4109b7f60c0112104faa812117111779e7be9284 (diff)
downloadbaldeagleos-repo-54f79a2305b1e0fb2e2b798272701d8aa178067f.tar.gz
baldeagleos-repo-54f79a2305b1e0fb2e2b798272701d8aa178067f.tar.xz
baldeagleos-repo-54f79a2305b1e0fb2e2b798272701d8aa178067f.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.35.14.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.35.14.ebuild76
-rw-r--r--dev-python/build/Manifest1
-rw-r--r--dev-python/build/build-1.2.2.ebuild87
-rw-r--r--dev-python/django-otp/Manifest2
-rw-r--r--dev-python/django-otp/django-otp-1.5.4.ebuild (renamed from dev-python/django-otp/django-otp-1.5.2.ebuild)0
-rw-r--r--dev-python/gsd/Manifest2
-rw-r--r--dev-python/gsd/gsd-3.3.2.ebuild (renamed from dev-python/gsd/gsd-3.3.0.ebuild)0
-rw-r--r--dev-python/mkdocstrings/Manifest3
-rw-r--r--dev-python/mkdocstrings/mkdocstrings-0.25.1.ebuild61
-rw-r--r--dev-python/mkdocstrings/mkdocstrings-0.26.1.ebuild (renamed from dev-python/mkdocstrings/mkdocstrings-0.25.2.ebuild)6
-rw-r--r--dev-python/olefile/olefile-0.47.ebuild2
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.13.45.ebuild39
-rw-r--r--dev-python/pulsectl-asyncio/Manifest1
-rw-r--r--dev-python/pulsectl-asyncio/pulsectl-asyncio-1.2.1.ebuild41
-rw-r--r--dev-python/pycairo/Manifest1
-rw-r--r--dev-python/pycairo/pycairo-1.27.0.ebuild75
-rw-r--r--dev-python/pypy3_10/Manifest1
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.17_p1.ebuild221
-rw-r--r--dev-python/python-tests/Manifest12
-rw-r--r--dev-python/python-tests/python-tests-3.10.15.ebuild74
-rw-r--r--dev-python/python-tests/python-tests-3.11.10.ebuild74
-rw-r--r--dev-python/python-tests/python-tests-3.12.6.ebuild69
-rw-r--r--dev-python/python-tests/python-tests-3.13.0_rc2.ebuild69
-rw-r--r--dev-python/simsimd/Manifest2
-rw-r--r--dev-python/simsimd/simsimd-4.3.1.ebuild64
-rw-r--r--dev-python/simsimd/simsimd-5.0.0.ebuild64
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-25.20.1.ebuild129
-rw-r--r--dev-python/types-docutils/Manifest3
-rw-r--r--dev-python/types-docutils/types-docutils-0.21.0.20240711.ebuild17
-rw-r--r--dev-python/types-docutils/types-docutils-0.21.0.20240907.ebuild (renamed from dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild)0
-rw-r--r--dev-python/types-setuptools/Manifest1
-rw-r--r--dev-python/types-setuptools/types-setuptools-74.1.0.20240907.ebuild17
-rw-r--r--dev-python/uv/Manifest4
-rw-r--r--dev-python/uv/uv-0.4.3.ebuild113
-rw-r--r--dev-python/uv/uv-0.4.4.ebuild113
-rw-r--r--dev-python/uv/uv-0.4.7.ebuild (renamed from dev-python/uv/uv-0.4.5.ebuild)30
-rw-r--r--dev-python/watchdog/watchdog-5.0.2.ebuild2
-rw-r--r--dev-python/xlsxwriter/xlsxwriter-3.2.0.ebuild2
-rw-r--r--dev-python/yarl/Manifest1
-rw-r--r--dev-python/yarl/yarl-1.10.0.ebuild37
45 files changed, 1123 insertions, 450 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 3dc3df59024d..41e7f38070b6 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,4 +3,5 @@ DIST boto3-1.35.10.gh.tar.gz 856679 BLAKE2B 03e7be74455b487a79188405796fc08bd940
DIST boto3-1.35.11.gh.tar.gz 857616 BLAKE2B ffec2fc8c2a0c12d21ac84e6cbe0ea967e83aab3764720046dcbb16ad7af6bcb8fcefe1e5686be0b2442cb0ebe58c5b5e9b3c41c38292069b0115c7d6cd00616 SHA512 4b6a494737be338ef81581de6372605bb75c99dcd83bb905af460d50deb3c2cbb929f0f89cf46e53d92dd302eb387baf7c0d898e5aecf96bafc8b099c75a9e0b
DIST boto3-1.35.12.gh.tar.gz 858007 BLAKE2B bdf0110d9bf0f6a0c9804a6cc69d2d5d6f7593cfd6fd6a62cf3ab57ef9ba6715fe9e8a12cff8d9d750df78b22e0ab15a667b7f2189634e1a736b7017f5301a03 SHA512 6eb42fed0d33c51675888c0f0bf0b325a766433263fd700b68e75c0d3b1996b449de4f92052e581981629a073a571ab741cc337edab052600b29d4e20d9d6027
DIST boto3-1.35.13.gh.tar.gz 858752 BLAKE2B 9ca6c8a06bfe3d9db9f57a584e63f44253645fa76864b490ad05bafc2c93370fc8787e508525cd2db20a325912e73e99984cb6ccdc42759e81bffe6ecb0a39e6 SHA512 c30581554be7a5a770fee01ff3230c6546cbff167acf8795cfe81ffc6501b3e59df0162077c7b720cb41224ce412b06ed7b9a868a934dc780e87acf6bf5806e6
+DIST boto3-1.35.14.gh.tar.gz 859166 BLAKE2B eb201a319453097068b4711356ea930de739ff8874da7441fa3b931434c8a82a1692a5f67b10f06eaf7644335033e302f733fcc2267b782398e9edd28c32a613 SHA512 ade4b6bc0c816244d5335b1669090d8a5e3c8dcc8802b0aa10498ce8c5fe8e456958ff3bfd73a5c9376ce1658f9c2a90d5470c86c2b3399d7198bacd09764619
DIST boto3-1.35.5.gh.tar.gz 854016 BLAKE2B f94d738e310725cd5f9c7b405a094155f3ecf640f02045662ed94ab3689ea549fde7eee19ae2be450768560ad705b8740fda78b79ed42cf536231626d247e09a SHA512 fc1106abbb306bacb80dce825bf71303e71b0d0698d7e3bb4dcaca4ea6e4f7a97e70753367200294f334b351e764bca57f2316afec854d2e46db4644dfefc25b
diff --git a/dev-python/boto3/boto3-1.35.14.ebuild b/dev-python/boto3/boto3-1.35.14.ebuild
new file mode 100644
index 000000000000..509842b2699d
--- /dev/null
+++ b/dev-python/boto3/boto3-1.35.14.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index fe4fe4510a72..be807acdd2a9 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,4 +3,5 @@ DIST botocore-1.35.10.gh.tar.gz 13328544 BLAKE2B cecad54696210597a09f4316a88b833
DIST botocore-1.35.11.gh.tar.gz 13332112 BLAKE2B fe540370c3f0256788621c96778b8f6d905c6d4e5a435567e09a10af577669ba6196734d9e58c7e61d20d662bcb383d4028dee104a64746406be67526ede428d SHA512 0541ab8eef9793b5e35779f2f97b69d4f55140f4653bf7d07a2973e63fdd09f3ed377b97640e0d7d0c031276b21bc9586799453ef5f5bed8909456498d4c2f20
DIST botocore-1.35.12.gh.tar.gz 13335825 BLAKE2B 2b128dba80061708524eedf33ea636ade8420aaecb9935f697211c369bec710ca6cdcebab105d30c331a03ea360f3085f2377f57fdaeba7576f7bcd09d8b08a8 SHA512 59d9c3c9235ba6b0ebd9dd8d1c10262e07fe7dfd577970eb2621272f74633f0905325c888ec7e4d5f0e10748e6e081ba2b9ed1d12e47d7de90742413f4376784
DIST botocore-1.35.13.gh.tar.gz 13340405 BLAKE2B da1bca16706cbbe7e80771691c32c85cd6f8dbd22b1e9212cfcecd7673673b9b8c55f76ceb81d7254bafa74939f9629320ca3bf50700e5f1e5ec0dc903bf26c3 SHA512 8e5d9ad5215e8341c007a26288e3dd5fcf1463983ee6f071c597ca9a00887430e173376c8442ea1e7cb0758d3202d4d62464141883a9a692789906046b2209ea
+DIST botocore-1.35.14.gh.tar.gz 13340768 BLAKE2B 4ba023dbfc9e632d86028100910544e192a5b2d70ec76a21dfc5003c767a6043a144385561c35f4d7b4bfefbf4a1f3a38ef2845e323f93868e1f5ad86ae1f12b SHA512 c0dfdec80a45cf11796496bc2bef575a567368be3f29267b4d411d0615e6c8536036e47a5de11fb8f4626590dca051e891bb9430ed1ea80dfab2f43f070209d2
DIST botocore-1.35.5.gh.tar.gz 13303437 BLAKE2B 0a95351fbc93074bb0398871773120a194fe581a26f9a74c1101a5ea57bb3acb9a33937fc2d5a39a065988cdcc6dbe253bd2227cf93e670602ccc67ab82d8845 SHA512 5527420017a4a23d5593f5b3a0eb8caf15357642ed90cd73e0fe22774cc8f9f3637028286063e3e2810e5dafe52e882928269e5c82f6369be9af99bef18fb365
diff --git a/dev-python/botocore/botocore-1.35.14.ebuild b/dev-python/botocore/botocore-1.35.14.ebuild
new file mode 100644
index 000000000000..64a61a30c80b
--- /dev/null
+++ b/dev-python/botocore/botocore-1.35.14.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ case ${EPYTHON} in
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # memory use tests, probably fragile
+ tests/functional/leak/test_resource_leaks.py::TestDoesNotLeakMemory
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/build/Manifest b/dev-python/build/Manifest
index a04380e8892d..5d4f391d9d20 100644
--- a/dev-python/build/Manifest
+++ b/dev-python/build/Manifest
@@ -1 +1,2 @@
DIST build-1.2.1.gh.tar.gz 47394 BLAKE2B d38a138dee5065ff0faee453bdc608fc519bc4b4a3cec8b60cf4f745288f8238dd7e9334f75bdd67765037a62b220079ce924c6581f745eb3750e732b2184d48 SHA512 77003e16d3776c3a4be920251bf14650eea112b92d94116cb1893195b8e16aae57321206ae63267119247f2794f220c891b7d913e07a8258b313d34c07d54fe9
+DIST build-1.2.2.gh.tar.gz 48587 BLAKE2B 308faba9fca554fc2ea347d20ee2f2a460060922c028d7ae37648290f4caa374616105d740ed285729204028d40bfb838b4de59ae20eaa8db1c0924f0d1cd8a8 SHA512 91e14208680915414a87bd3ba31229510a78d82d5504efc40cf7f9c6a7a698cfa4ff523f85c2dd6a56b5e313fae57134f64f2c328c88cd40efe40236b0b661cc
diff --git a/dev-python/build/build-1.2.2.ebuild b/dev-python/build/build-1.2.2.ebuild
new file mode 100644
index 000000000000..0d64534ec932
--- /dev/null
+++ b/dev-python/build/build-1.2.2.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple, correct PEP517 package builder"
+HOMEPAGE="
+ https://pypi.org/project/build/
+ https://github.com/pypa/build/
+"
+SRC_URI="
+ https://github.com/pypa/build/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/packaging-19.1[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.1.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/filelock-3[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-1.34[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-56.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
+ test-rust? (
+ !s390? ( !sparc? ( dev-python/uv ) )
+ )
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # broken by the presence of flit_core
+ tests/test_util.py::test_wheel_metadata_isolation
+ # broken by the presence of virtualenv (it changes the error
+ # messages, sic!)
+ 'tests/test_main.py::test_output[via-sdist-isolation]'
+ 'tests/test_main.py::test_output[wheel-direct-isolation]'
+ # broken when built in not normal tty on coloring
+ tests/test_main.py::test_colors
+ 'tests/test_main.py::test_output_env_subprocess_error[color]'
+ # Internet
+ 'tests/test_main.py::test_verbose_output[False-0]'
+ 'tests/test_main.py::test_verbose_output[False-1]'
+ # broken by uv being installed outside venv
+ tests/test_env.py::test_external_uv_detection_success
+ # broken by unbundled pip (TODO: fix pip eventually)
+ 'tests/test_projectbuilder.py::test_build_with_dep_on_console_script[False]'
+ )
+
+ if ! has_version "dev-python/uv"; then
+ EPYTEST_DESELECT+=(
+ tests/test_env.py::test_uv_impl_install_cmd_well_formed
+ 'tests/test_env.py::test_venv_creation[uv-venv+uv-None]'
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local EPYTEST_XDIST=1
+ epytest -m "not network" -p pytest_mock -p rerunfailures
+}
diff --git a/dev-python/django-otp/Manifest b/dev-python/django-otp/Manifest
index 080874325222..467edec8855a 100644
--- a/dev-python/django-otp/Manifest
+++ b/dev-python/django-otp/Manifest
@@ -1,2 +1,2 @@
-DIST django_otp-1.5.2.tar.gz 73778 BLAKE2B 290afbb0a9f2f6ad41ecdb3d65003b0abf4838776241b00957bdbe7303335a33f99eb9e4c23454500fc92d03595a6fb393dd18ba6341e8dde789e21cfabda114 SHA512 5fa8ce6652b6849a7bc347e34addf2b4f694d0116d8c9574fa12d5f2e9313240b69fe4e9058317e202750e453af2882eb24d33d39a7104c458f2337c921901ee
DIST django_otp-1.5.3.tar.gz 73785 BLAKE2B 0f69539b271c7ed4cac55e6f52c4f8b67761731df14eef7594d3430b89e44c3b4314084a6ddeb02b85b4b576fffe2c20097e5bad291de2020f2314042d374348 SHA512 c101996982182736743cb14f44cc055722cc510e2082ee312f91b79cf9d87b50aaa1eeec489649723514e7150469be9c7f4f2d71758a7a72d0dffe04f4f875a9
+DIST django_otp-1.5.4.tar.gz 74334 BLAKE2B 1d93c329441fcd237411b625618a85a9b93383fb6f2137ebbec74fb6efa13bdae4777c5a2e12188c919400be08a5c9562c4d5c03eda2aee26668ae10791dfa11 SHA512 fb4d642009256f543e2ea8d2f78e144cbb8186f3a878bffbe1bbf5c7c9712effcb52dcaa9bb37474e769c6c83f2ad94f680a083857ce59b4d97824c57641e068
diff --git a/dev-python/django-otp/django-otp-1.5.2.ebuild b/dev-python/django-otp/django-otp-1.5.4.ebuild
index 10a9804b2740..10a9804b2740 100644
--- a/dev-python/django-otp/django-otp-1.5.2.ebuild
+++ b/dev-python/django-otp/django-otp-1.5.4.ebuild
diff --git a/dev-python/gsd/Manifest b/dev-python/gsd/Manifest
index 65f07eb5a849..491953d67415 100644
--- a/dev-python/gsd/Manifest
+++ b/dev-python/gsd/Manifest
@@ -1,2 +1,2 @@
-DIST gsd-3.3.0.tar.gz 108961 BLAKE2B 1f734534717af776ebb5a62ddf67eabcc5bc99a814e48ac8d962fc034f24e4eb87a3e45087f3e2f7db757bfd57e44668e41a3ca1fccf406d964024a3a2d399ae SHA512 f01017f46626d19ae5e5bf683c719d6f74b0f3a9d295cd2e54d736f8ca9c25740389b9701b636b2513039919d52e6a6193215cdf759c1f5d3e686071c3888c27
DIST gsd-3.3.1.tar.gz 108613 BLAKE2B fdfc1e0e70f9b3d804ec5b7a76263b077609af811c9bb1cddf304ff46701d710fead5f103b712cd408cf3c4aa19b91e5af208d586e8a9ca81b56452e2ba32587 SHA512 84a131e4ac6baa7258ed7be5886b99fb34421e919eeaddadf658c3d0a40e2c3667b7ecee8c10a4e3b264538ebfd34c5b97090b23c72c7f9ada5c6b76985b894d
+DIST gsd-3.3.2.tar.gz 108492 BLAKE2B cc585c4de8462891fbedd5a15bbfa5c531ee31cf2082b32600098d7ef8291a7067a195338384e4c42d0f64536d3feb5dc98b5099dc2bfe0ffd328447fc54389b SHA512 1ba704e5cbee3a1b9c2f8ac1b4f6d1afb9819d66b10b069965e25ad6b30f3143cdc721be204a4c34ecd0bf2ddc7eb65a1421f754cafdcc17fac2edad4fc58911
diff --git a/dev-python/gsd/gsd-3.3.0.ebuild b/dev-python/gsd/gsd-3.3.2.ebuild
index 6f85c8f56bba..6f85c8f56bba 100644
--- a/dev-python/gsd/gsd-3.3.0.ebuild
+++ b/dev-python/gsd/gsd-3.3.2.ebuild
diff --git a/dev-python/mkdocstrings/Manifest b/dev-python/mkdocstrings/Manifest
index 2944f125da85..2a87a85487d3 100644
--- a/dev-python/mkdocstrings/Manifest
+++ b/dev-python/mkdocstrings/Manifest
@@ -1,3 +1,2 @@
-DIST mkdocstrings-0.25.1.gh.tar.gz 89869 BLAKE2B 248436eeabafbb7cbee27362b43d2feadeadda7692b5843621bd97261e17a93783c38f37850700c6e79b7f23f15fdc8f21567329afba9b4fb0618f277acc1865 SHA512 155dc5d15fd71f9c5dbd5d5f70f380ad5197fc0c1dc0fe722205b30decbd19307daa631d3a4a40206cdf36981f414ea1a4c001d8cef517ffed569e96ea0e8302
-DIST mkdocstrings-0.25.2.tar.gz 91796 BLAKE2B d666d402fc94f00df107f54ae6057fbdaba2a2da20c283fe5f1bfb33cf4cca4dc882e9132156434439560848dfea224916c96450a759924175fe6244e75dac43 SHA512 ad1d771ffbbb04bfa9b8a4190c41303fe6d78f9bb07fe3236ccb284836886d759a9031c42192e2608fc3941a0a59c149c241d193cbc2fe96462605b4f37b2545
DIST mkdocstrings-0.26.0.tar.gz 92218 BLAKE2B 6eee2a080b568ccb90d8ac122da9bb9c1d35088e4f3d43f98da287e581f549f25b6da9dd7f0fbe9dffcaeea8acc1143cd77b4e2fb5d208d592242954724f98e3 SHA512 b1e63fae1e22f0fd1977e7274b94bf3f50ab673d6e3c77d291095bf3503fff8afde08d29917fdbddd00ac716ac048248362dbc526446924592b57f2ea339caf8
+DIST mkdocstrings-0.26.1.tar.gz 92677 BLAKE2B 010464f8af2b741fb74cae7140c8552ee05e84a275952701bc29f8f4d057fd4f82a6129da070cb1ae41f0a1e407b8cce6dda4a924650bb83f41c9bf5caf208e4 SHA512 75c1b794dc816523b1c0202304146a986e87403f65e1ed728ed585eb6d78f9ae5fe1ab97798fa8d9ad24f41ec590ad3bb31dec2d420f6312da126b55540301da
diff --git a/dev-python/mkdocstrings/mkdocstrings-0.25.1.ebuild b/dev-python/mkdocstrings/mkdocstrings-0.25.1.ebuild
deleted file mode 100644
index 412f286a0c81..000000000000
--- a/dev-python/mkdocstrings/mkdocstrings-0.25.1.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1
-
-DESCRIPTION="Automatic documentation from sources, for MkDocs"
-HOMEPAGE="
- https://mkdocstrings.github.io/
- https://github.com/mkdocstrings/mkdocstrings/
- https://pypi.org/project/mkdocstrings/
-"
-# Tests require files absent from PyPI tarballs
-SRC_URI="
- https://github.com/mkdocstrings/mkdocstrings/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="ISC"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
-
-RDEPEND="
- >=dev-python/click-7.0[${PYTHON_USEDEP}]
- >=dev-python/jinja-2.11.1[${PYTHON_USEDEP}]
- >=dev-python/markdown-3.3[${PYTHON_USEDEP}]
- >=dev-python/markupsafe-1.1[${PYTHON_USEDEP}]
- >=dev-python/mkdocs-1.5[${PYTHON_USEDEP}]
- >=dev-python/mkdocs-autorefs-0.3.1[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/pymdown-extensions-6.3[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/markdown-exec[${PYTHON_USEDEP}]
- dev-python/mkdocs-material[${PYTHON_USEDEP}]
- dev-python/mkdocstrings-python[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- )
-"
-
-# mkdocstrings documentation generation requires several currently
-# unpackaged mkdocs extensions and plug-ins, and this test
-# makes use of mkdocs configuration
-EPYTEST_DESELECT=(
- tests/test_plugin.py::test_disabling_plugin
- # WTF, it tries to unlink installed files from installed package?!
- tests/test_handlers.py::test_extended_templates
- # Needs unpackaged mkdocs-callouts, mkdocs-literate-nav, and possibly more
- tests/test_inventory.py::test_sphinx_load_mkdocstrings_inventory_file
- # Internet
- tests/test_inventory.py::test_load_inventory
-)
-
-distutils_enable_tests pytest
-
-export PDM_BUILD_SCM_VERSION=${PV}
diff --git a/dev-python/mkdocstrings/mkdocstrings-0.25.2.ebuild b/dev-python/mkdocstrings/mkdocstrings-0.26.1.ebuild
index a9aaf27d3d9a..4b59ff83e4d2 100644
--- a/dev-python/mkdocstrings/mkdocstrings-0.25.2.ebuild
+++ b/dev-python/mkdocstrings/mkdocstrings-0.26.1.ebuild
@@ -22,11 +22,11 @@ KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
>=dev-python/click-7.0[${PYTHON_USEDEP}]
>=dev-python/jinja-2.11.1[${PYTHON_USEDEP}]
- >=dev-python/markdown-3.3[${PYTHON_USEDEP}]
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
>=dev-python/markupsafe-1.1[${PYTHON_USEDEP}]
>=dev-python/mkdocs-1.5[${PYTHON_USEDEP}]
- >=dev-python/mkdocs-autorefs-0.3.1[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-autorefs-1.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
>=dev-python/pymdown-extensions-6.3[${PYTHON_USEDEP}]
"
BDEPEND="
diff --git a/dev-python/olefile/olefile-0.47.ebuild b/dev-python/olefile/olefile-0.47.ebuild
index 2903433d3ca2..d472dfb9a057 100644
--- a/dev-python/olefile/olefile-0.47.ebuild
+++ b/dev-python/olefile/olefile-0.47.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
distutils_enable_sphinx doc \
dev-python/sphinx-rtd-theme
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 2183075c2d3e..ba9fffe598f9 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,2 +1,3 @@
DIST python-phonenumbers-8.13.43.gh.tar.gz 4916529 BLAKE2B 78f904af583fe4390ddd0d8f0838634a1e898ee93187a676b9bf409301c03e392d6e7404f30ae5d3b36d36809db647f749d48ea5e0b48f2db904a47513952433 SHA512 80df3d5bdb4ad7a32d4e1c1b3f7a4db473e21b9ff7e260fba5bc814e96067e042c81e805c3eb8494b31d2ecf3a0a73689ba2fc9714a9e8e7fe8098a7d13beb5b
DIST python-phonenumbers-8.13.44.gh.tar.gz 4912993 BLAKE2B d579e9c17e8c78390ce93832d53a50e9aaed0c186a1430119c54a22ef6af65ad2bac42cd082278bdca0f0e32762c7d0b7e90d28f1998fdf8b5cc2544b241e7f0 SHA512 64eec22c997d1f0d775445a829d63c7568e943411522f4d55fdf4fd18b1c680c48396b056492f27f6275e83c7bcd53ecc5c6258beeb24d5a7e218011c50b5a35
+DIST python-phonenumbers-8.13.45.gh.tar.gz 4913395 BLAKE2B 78cf1a38dba34f4c989b39b676fcb0e78369a41cb7882fe59e48b9c36af9471082153a194ba75b72e7b25515eb0bcb7749eb0af78175f49c2933e17efc13c263 SHA512 28abdd0ae5f28b38c5279a850ee36812ddcd8eed6f57c9f1e816406c25896e6fdc547d7802ddd4b97a9253c3962946a8c17aa4c96e6a62823a9ae80c74a16024
diff --git a/dev-python/phonenumbers/phonenumbers-8.13.45.ebuild b/dev-python/phonenumbers/phonenumbers-8.13.45.ebuild
new file mode 100644
index 000000000000..062c56c77784
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.13.45.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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 ~arm64 ~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/pulsectl-asyncio/Manifest b/dev-python/pulsectl-asyncio/Manifest
index fb2b24db043b..bd9d822b3bb4 100644
--- a/dev-python/pulsectl-asyncio/Manifest
+++ b/dev-python/pulsectl-asyncio/Manifest
@@ -1 +1,2 @@
DIST pulsectl-asyncio-1.2.0.gh.tar.gz 19517 BLAKE2B 919909acfabfefa1dbea99cef6285483652649c111df6f3f6719d92e35ea548b54e6c0a60e4277b69610ee9a58c2c29c3355b7f2fe2780d773aa2c89513ce9a1 SHA512 b560c38b6d18a4c73551ae4ba34243f0043dc18426141c128c6ca3e8bd30f4d94d8718c3003ae506be038bc645ee569b77e6289b97ac913daa1e42e6b9aef03b
+DIST pulsectl-asyncio-1.2.1.gh.tar.gz 19531 BLAKE2B 4a3275d75602907f91b3a0979ff8908f4fa23bcf5d1d04068f878fc477011258180cec8ef16b6e6ebe6cc1713ff493841686cc67c4990222c061aa1b722199ff SHA512 b22d0a634433d558860ff1590020ba7272412be97da478a8b00ec457506cb58353b645537ae26591f1aed300cacc14fd0f50c8a3a0c7d650d610b24cc52248ee
diff --git a/dev-python/pulsectl-asyncio/pulsectl-asyncio-1.2.1.ebuild b/dev-python/pulsectl-asyncio/pulsectl-asyncio-1.2.1.ebuild
new file mode 100644
index 000000000000..32ad8b4aacb5
--- /dev/null
+++ b/dev-python/pulsectl-asyncio/pulsectl-asyncio-1.2.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Asyncio frontend for pulsectl, Python bindings of libpulse"
+HOMEPAGE="
+ https://github.com/mhthies/pulsectl-asyncio/
+ https://pypi.org/project/pulsectl-asyncio/
+"
+# sdist is missing examples that are used in tests
+SRC_URI="
+ https://github.com/mhthies/pulsectl-asyncio/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pulsectl-23.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ media-sound/pulseaudio-daemon
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e 's:,<=[0-9.]*::' setup.cfg || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pycairo/Manifest b/dev-python/pycairo/Manifest
index 3618823a63a2..c95b04ce7722 100644
--- a/dev-python/pycairo/Manifest
+++ b/dev-python/pycairo/Manifest
@@ -1,2 +1,3 @@
DIST pycairo-1.26.0.tar.gz 346850 BLAKE2B da6c35c929d372764280e8963a8b66ba533ccb99be9ee2bfa10859c635dd16cc087d542607be9ec6a9ffb942feb892100d4b9017d832d478b35c434aa05b9bb9 SHA512 5313f0d408a6e6ce6e70ac92291be5dd8651e01fbf9411d0467061afa21849cde27db273f2a13b4c3c931183f63f75f31fc0f0d3283b8f339ba88e71eab432f1
DIST pycairo-1.26.1.tar.gz 346882 BLAKE2B 52e92b3b7e6ffda89a01b293f0bc6c5da5018ba77dce92d30b221fbf1f8c1b253f5ae279d64a517810b6efe4d7d282c21dbc15e5ef8e372204095c773b12de52 SHA512 4f63fc4fb2b6bf65d8a1cbbeaf4d982c5eb2271309763522ee6f763f691428b3e420434382e8a3e1d6b841821940f44f4bc6f51724eb4474494d60b7ff1c9031
+DIST pycairo-1.27.0.tar.gz 661450 BLAKE2B cc1ef54057d02f3e25fed010c995e4fe400ccdf3a5d2f241c029ded167c5db2560a4d9c8cb09b2f0519e674b5962f2244f0570401f45743fe1ec61d5a8982227 SHA512 1b077917b1d99262da1c1d2ff85ae841dd0ff715925a5a20032162aa876576d966fc6b30c154343cc45f104cce243887de9b5f14af1e15775cb71b6c11e553a6
diff --git a/dev-python/pycairo/pycairo-1.27.0.ebuild b/dev-python/pycairo/pycairo-1.27.0.ebuild
new file mode 100644
index 000000000000..fe8c29ed74a8
--- /dev/null
+++ b/dev-python/pycairo/pycairo-1.27.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=no
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit meson distutils-r1
+
+DESCRIPTION="Python bindings for the cairo library"
+HOMEPAGE="
+ https://www.cairographics.org/pycairo/
+ https://github.com/pygobject/pycairo/
+ https://pypi.org/project/pycairo/
+"
+SRC_URI="
+ https://github.com/pygobject/${PN}/releases/download/v${PV}/${P}.tar.gz
+"
+
+LICENSE="|| ( LGPL-2.1 MPL-1.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=x11-libs/cairo-1.15.10[svg(+)]
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_compile() {
+ local emesonargs=(
+ # TODO: move that to the eclass?
+ -Dpython.bytecompile=2
+ -Dtests="$(usex test true false)"
+ )
+
+ meson_src_configure
+ meson_src_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}" || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+python_install() {
+ meson_src_install
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pypy3_10/Manifest b/dev-python/pypy3_10/Manifest
index 76070e5711a4..7d54999c4a36 100644
--- a/dev-python/pypy3_10/Manifest
+++ b/dev-python/pypy3_10/Manifest
@@ -2,5 +2,6 @@ DIST pypy3.10-gentoo-patches-7.3.16.tar.xz 4752 BLAKE2B a5cd87f30c0b20bf5d49c3b5
DIST pypy3.10-gentoo-patches-7.3.16_p1.tar.xz 7696 BLAKE2B d51dd45ec0fd2fd2d8e8f6afb6fdb227268d86ca03885991c085aa3b374bdbe01c909cd9c25981a89955c3fcfaf258f09470b5a5649b9235a74f37dadb9a891e SHA512 b71168518a103cccff4740efb51dfad4eaaf647d81aff727805f5ee9e2fdc6971749b69c17c72e7fd04c97bbf37777180870eb17077fb742f20130b4b00ed712
DIST pypy3.10-gentoo-patches-7.3.16_p2.tar.xz 10348 BLAKE2B 93b2672e935e4a23e9fff70848f377211b4a0aff55384ffac59ba3b376af9d1ab1d1b3529a5148490dd6e8da55cc038390efa7e4120c60c7ea77d158da88b5bf SHA512 0bff294d8a0ed576204c00ef7befec0c960cef50eaf1130056aaed2a5dac63a8045db977c5fb4ff9c5eb1863e8df2cb9f4d608ab88cd6ffcc8bd4ab13f5d6ab2
DIST pypy3.10-gentoo-patches-7.3.17.tar.xz 10340 BLAKE2B a9d7dc6a578dc50339574b2fcfff19e390293adfc8412592e4683fdd3ff415ed8da3ff809b00037659a6e218dc0b26efead7a2ae3c54b2c3487222144d5d9633 SHA512 b192685cc100cfb723492d29e89a522bb4ff041c78cbdfd170414e19713cf2a21c39ab8d4e1e9ca47da2559b2fed6df14f1122f96bc50dd117550c357046889a
+DIST pypy3.10-gentoo-patches-7.3.17_p1.tar.xz 18104 BLAKE2B 4b6c8c012d34b7ead8f7499edbe4292f21d2d7437694341de0bfb5f74d0717a11eb1c302a60baeb3ab123851a2436657458dad47c2b86a81218eea12d6aa9344 SHA512 73e0733f07be79f444b2fbf18ca7dcad6a76368cb8c185eb630d82e6886ed909548bc1779bf618588e34a572b5d48be0f9a86fc5758d302cf3ff0e94649b4815
DIST pypy3.10-v7.3.16-src.tar.bz2 23358556 BLAKE2B 4eddae47dea1005b9450b9d3d23bd90782dffecdc252eff4fd3195a61e0e7ebbdafaf4c4b5d318c88534f152c1110c3bc4f76f43a7e711a859dd4330841a0e0b SHA512 5b941e3b5c7b0c7a50413e16122bad3e167dcc4ee159ce53e9716e9d5af79d600823f3d7442b7562bb568ff027723e22904fc0840dc06bd26e3da38c93cc5b94
DIST pypy3.10-v7.3.17-src.tar.bz2 23350562 BLAKE2B 0a7a091976b352de61057f238fa386f767dd4d2fbcdcc0b4376066c20c2ad35d3818fa6e9e163ab5fd341856802e8ad1e2891decf5948c13cdb26726cd42019e SHA512 46e30845bbc73cf56f5033a24d3583253ce198522f3a28ae4e789884063ba167d401fc08ae7fc8c7769feed9cd942a8ab38961c8b8794d7fae8f9955479faa96
diff --git a/dev-python/pypy3_10/pypy3_10-7.3.17_p1.ebuild b/dev-python/pypy3_10/pypy3_10-7.3.17_p1.ebuild
new file mode 100644
index 000000000000..0771425196e7
--- /dev/null
+++ b/dev-python/pypy3_10/pypy3_10-7.3.17_p1.ebuild
@@ -0,0 +1,221 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multiprocessing pax-utils 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://pypy.org/
+ https://github.com/pypy/pypy/
+"
+SRC_URI="
+ https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
+ 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="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+ensurepip gdbm +jit ncurses sqlite +test-install 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=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+}
+
+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
+ ctypes_test testmultiphase
+ )
+ 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
+ # testcapi does not have a "build" script
+ ../pypy${PYVER}-c -c "import _testcapi" || die
+
+ # Verify that CFFI module list is up-to-date
+ local expected_cksum=a4138e48
+ 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.c" -o -name '*.o' \) -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 test-install; then
+ rm -r "${ED}${dest}"/{ctypes,sqlite3,tkinter,unittest}/test \
+ "${ED}${dest}"/{distutils,lib2to3}/tests \
+ "${ED}${dest}"/idlelib/idle_test || 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
+ # remove test last since we have some file removals above
+ if ! use test-install; then
+ rm -r "${ED}${dest}"/test || die
+ fi
+ dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED"
+
+ 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..."
+ # exclude list from CPython Makefile.pre.in
+ "${PYTHON}" -m compileall -j "$(makeopts_jobs)" -o 0 -o 1 -o 2 \
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+ --hardlink-dupes -q -f -d "${dest}" "${ED}${dest}" || die
+
+ # remove to avoid collisions
+ rm "${PYTHON}" || die
+}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 69c5bfcbd01a..f6af53db9fce 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -1,12 +1,24 @@
DIST Python-3.10.14.tar.xz 19600188 BLAKE2B a9e65fff590d56848f55f2d93d8a1c631bb8135617112997fbaea9fc45db1d5e2ce39f00cb29c9428542e523fdf48064bdb9aea144acb7aa7cfe71990b8e949e SHA512 adee638aeca898743da4b8245c0fa1e9b94b516f22e716e60c99038f0bb3dcbf726317aa86656404be1719b5a7c58eb09533720ebc0badbb04bd9a534dd48fef
DIST Python-3.10.14.tar.xz.asc 833 BLAKE2B 945ada655532d578beba9fdd882cc9cc247e24f7efd68ce172766a8adcb3c8d76bc1f229402405e607004ae0f9bb8e55e4b01867ca712700106d8ec42212cb2c SHA512 450f910a91dd0fb66f99245828983a9234c4a67ea7e653404efa06ce5da1c6667a46329a2d1e276c5a956d2c32d8ae6d8c497a1892102f4a360dae33b135c372
+DIST Python-3.10.15.tar.xz 19596540 BLAKE2B fe62f7c7377136576e73a59b5f0b3c9729f9c958da5c8dd1771e88121fdd1928686166066351fc8ae98c9f97295a85feb7ec44c39317f93ae414244aed8a8f66 SHA512 3c0396b2dae1521315a9b5ce9ad4ab6ede385447922fceb00ea3df75bfd79cb547b9380e936d83c9c1b964e38e16d70e34aec39f4c292853a032407bb6a58063
+DIST Python-3.10.15.tar.xz.asc 833 BLAKE2B 31858fe2d3c8d868417eea66de1cf0b2fc7880e73ea7770b50191b8088bbd1c78485c64d94f6f005d18cef559d7e8e0906cb2a30aa1472d90f5af4cca045970b SHA512 0cac9b78649330a2a35a835d45e4a8a111db45943cc0ae0d24f5d9e03a058b4b739fe43d6cd1aee481dcd415a57820bf875996fa60b81d4d5911588db5adad70
+DIST Python-3.11.10.tar.xz 20067656 BLAKE2B aba211a09e4c083d71574c7537ba98474476ebf7092ddda815f8d355d01605456868a89f0bcc6a9e747f71f914fa0129547de2ae70d8b579c6458fdeeafd23f0 SHA512 6ce77cced1ce90bb5eea38504dfc1bc19c872149a5a63fdd8353ac8c772c54ab7a42176e141c7f6f898d31761bf93e1739b238920fbeefbedd6016ad033c1de0
+DIST Python-3.11.10.tar.xz.asc 833 BLAKE2B a1cbe57e568367fbc5817c983696619f515263a9b37662ca536c4d1132ad336959285bbe3076a251778016966f030d1e259f48accdb0df67c116af0e335acb8f SHA512 3a9efe1dd39fd6883ae3fc8dd7f6e25af7e06c6e6049cf9a31a1a82e6d7c84f85ac838d2a71127977d93ce77233a8bbff86a10a80d24fcee85a4e70fcbd1db19
DIST Python-3.11.9.tar.xz 20175816 BLAKE2B 4e7cd2c42ee39b5ef9624ebd1798320957e948cb4f23f17fd1530814c60126dbf988846928d4d7d4b9d2174029ab8d4dbaf19e6203da237da4c3212ddebd5803 SHA512 2b0a1d936b4ef8376f9655797aece8ffdff75031ad7bfa840f330cac2aed189aecc80c163edc12ea772851d7a011f3fc1960470a73d9d4290cf3ab8ad6ed7e6a
DIST Python-3.11.9.tar.xz.asc 833 BLAKE2B fa29f632bae0bee7db946038ee3529bc3bfbe1b2e755b21394f67a3c80911ce8079aaab43a16d88e614a8bfc01fb5105ce3f61c59a5ca44470b0f59787c707b3 SHA512 b18b50e7168b2ca5376a1fa75e50e8baae2026d4f11d4cf613d758f3f17df4610fe4653fb2ac0c5c4ec0f6e630dc6490ad1ff32a2fd0ebd60f9f3bd136207ffc
DIST Python-3.12.5.tar.xz 20422396 BLAKE2B f127d1e12d12be84d5837282757787be8a0cf702adce29b93622f91f45ba2d8cc0f5db2e8277c86b098623951b302015febd28bdabaff66b30cb06a5ef2b4a24 SHA512 7a1c30d798434fe24697bc253f6010d75145e7650f66803328425c8525331b9fa6b63d12a652687582db205f8d4c8279c8f73c338168592481517b063351c921
DIST Python-3.12.5.tar.xz.asc 963 BLAKE2B 238167f6b4012136bc4274eee0dd4d958c4ee02d2505f9f64e5bcad15e84a9e9e12a9fc907651083543f1fce93579b752d4ccdf60c8cc421cb43e9034877bf1c SHA512 65ce92272a38cc6bf8bf56fa2a99a830cf5b33b811b1788508e7b6f8b5d3e93e0b143412f829271be40cbb4e7c154f84499239b3e8ab63b2ccf0a5a22d2f84ee
+DIST Python-3.12.6.tar.xz 20434028 BLAKE2B 527fafdbfd0c1784ff72a93cdeb3f49666bae7d9343b6d1e4ef773fc52bd397081b41bec3ee9ed5b7652f28f09f29a1b553424cef26aebfa6c2e13499870bf2b SHA512 e658b0d59b5cfdc591d626e8282b9945759f27ee6fbc8bcb8670737db32ffc11fb832dfed9b0e80188fb5f7f3f39fe6dd6191ab7736376453c9e248321e9b063
+DIST Python-3.12.6.tar.xz.asc 963 BLAKE2B d5f9e4c5053610a1a53769278e69d8a25e2fb047afb2a55dfee67917d8d200ebc159e614327ac87f34a4a9718cb3436b55190322ee231116b26074a78bb72642 SHA512 91a15bb7e8dd26616a2cdabe69c3ee81668cc67cb55a88b2be20433d24c9f8ae41c8f93f67aff2fa5858cd5b94600409cd472bd437a2fd33153483734ecd863f
DIST Python-3.13.0rc1.tar.xz 20881016 BLAKE2B 3971a233e9c3c782973e0276740f00f8f2072eeda914663cdf7fa6c5de2437c60c441184344a64e25cab5c71a02c47cf4602dd08f127f310c885386cd887fec4 SHA512 fce7664f3298cfd191a7dc20b7b47acafdc50d058a2814312c94c30b65291395957d701e4661b9bb760417942acb5d27e5b8bb479bcda9a82cf29f53772a2daf
DIST Python-3.13.0rc1.tar.xz.asc 963 BLAKE2B 1c292362cd133dbbb1df1e0cf440e8adde2bc8db9174e550d5b76a09e80d0dbc11a0250e6f041e54fe58f25dc05f071c7af1aa910ae56ece5eb430502a2ba67c SHA512 3613829d9631f46b1b1ce11bfe5bb7fbfa49d97b639bb883c86737ea6ae8d15c24c526083cafb916011bd6d0b3b5fab2b17afd367edbdce99b32e0b4b845fd22
+DIST Python-3.13.0rc2.tar.xz 21055084 BLAKE2B 017ac82c1938d1fea0a501efb9d1848115648f0472b7cbaa4eac65cf085c3c6410ea83aab2e935952ca1b415d603f4c5680fec7a15ce5b40794b2fdcef662666 SHA512 85e6e6e80970ca38119e4f95880fb12e2d1548e6d60235cfcd7f6aaf08588c483469e43dda0f004b95455c2fb88ca736c313b22ae37eb0d4e6460ef521855c8d
+DIST Python-3.13.0rc2.tar.xz.asc 963 BLAKE2B bb75db12c424b7a05c8c0082f79c1ab6e2ad04440a27d2c964edc073fbdc1c0ac442b0b2a0719a33f8058bc7bc9097eb22e031299f8de5b6d88b74e4e5ece8a8 SHA512 6d80d089b55910628744d21b0382b6441d0550c139dbee71d68a7cd9e494bff1c8235a2a894f3c7a52f9af312480a4001f333e04c9054f32db7eefd2a7d39263
DIST python-gentoo-patches-3.10.14_p3.tar.xz 22080 BLAKE2B f45ebe4df3dc39a842c93d741ef66fd0f9f7d1c6453d499d59b62eda41f01bc17e109205fedc506963d1f21eb3fbf9478564ff5e1a11c10336f855069a642ceb SHA512 db268f1482e5c46a71ce3aef2c2ab6d458cc5263aec360e61c6aff97f119f4f100becefbb575156b1b0239e591a496cb62a136597fadae8a5b630c7233c0040a
+DIST python-gentoo-patches-3.10.15.tar.xz 15896 BLAKE2B f908b409dbcedeb4e2fa7255d9dedfb8f86f39b9b12612d45662d2305012692753874befa5377e1bcb2e8fc04b54bf206948e12eb7bc357a764c1b1e496e5997 SHA512 a647882ede8d7b97e301e472e91f4573dce9f8bf4e408449444625fdf79859a54fd828daa60c7960721f34c3d6d82e2e45db2c55f2fc093097a0db42f7363b8c
+DIST python-gentoo-patches-3.11.10.tar.xz 8484 BLAKE2B 844aa7a855e3ab5a6307c6bfac9d58faad249ce550d21e8526125dc56b9665dc6fa00530a60efe8f851397d368057400851906e59fec10f6325bd83a51e39317 SHA512 bb602b80eed62ca8477b05665267ec3729fd9a85d9b709f844ad729f496d008a529d05d2ebfe8acb5db5ccb99005260bfe458f6ce0d9d358530670e0970e415e
DIST python-gentoo-patches-3.11.9_p2.tar.xz 14916 BLAKE2B a910eae412fc1ce3657272c3c2ea9ef95b8d5711ed4c85b93a35f4ab757b1134bff0f8c8a0071e8e06aac784d0b51e36cd9271f892098cba272da4a4e73317d1 SHA512 5c055186b3a8376f4f602ec5d1f8e7bf0f067bc67295c1cdaa68ce1fb6fb21cda75e22705b8a5a2a6525af67f3b36a82fde5ba6ae9b097a5914ab79a2f1a0fad
DIST python-gentoo-patches-3.12.5_p1.tar.xz 8632 BLAKE2B 13570bb465002cea3590b06d055b936ac0fcc68f6f258aca99a67f02f0b1cd28396424b686c5e080f593a74a744ff449e7220f51f167a858b2313be4c8b64b19 SHA512 eb9fb2d48236a9f7941fb8938310cc32d216eb01e19277175223b8b1fe1bfd606bde9a3c8bc66ad2e494fb87ce23b0d1acd359c375e4a11a5caae25450c11360
+DIST python-gentoo-patches-3.12.6.tar.xz 6048 BLAKE2B 577032d7aa4bab423781bffad8e64f56b492dc31fbd20acd91f3d28356bd697603dfd47a3a9051538dde2af942ae513727ecea415d82f5082a992bd22b8cb2dd SHA512 6f1037e97bb362a3d04c3ec080dc062c5de6e4b779cda0d88f684422d757acd6fc6f971c7004a3f50bbc0161dd28c3146672f74e0e598066f9a8ba4e0eb2627e
DIST python-gentoo-patches-3.13.0rc1_p3.tar.xz 15148 BLAKE2B 668060644372e8ddf2d9686796ec304ae7689f5c10ecbc6862f054f96504c418b0e4df28675e4fbb610889f9a665a7a54f23633036b0df35f19f40ef8e6bab32 SHA512 c0cbdf9e0fe2ad29175302e548ebfda1d2af42af0ffeb363eb8b0dc53e1059f5abd7dcd02fd8e9eb9ba7bef2b34b7693633f0a62dc1ab933f43077feacf00fbc
+DIST python-gentoo-patches-3.13.0rc2.tar.xz 5696 BLAKE2B 4e716d1d6225e811b598d029ef1dbdc413df614ef00ab8051ea697e633477a0114a3660cae037bdf4142f76c9f2efdefc25b604af11c31eb77d6d98d8f932cff SHA512 c20b53772bd7d305562657722aec70de78fffbf8ab7939f59d496e06c21b31fcd7b4a92573b1000d3bee4d90fd8b7422543f9cfdad15d60bc9a7ecf2a2259599
diff --git a/dev-python/python-tests/python-tests-3.10.15.ebuild b/dev-python/python-tests/python-tests-3.10.15.ebuild
new file mode 100644
index 000000000000..fc9ef2e5c12c
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.10.15.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.10.14_p3-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ local dirs=(
+ ctypes/test distutils/tests idlelib/idle_test lib2to3/tests
+ sqlite3/test ./test tkinter/test unittest/test
+ )
+ local dir
+ for dir in "${dirs[@]}"; do
+ python_moduleinto "/usr/lib/python${PYVER}/${dir%/*}"
+ python_domodule "${dir}"
+ done
+}
diff --git a/dev-python/python-tests/python-tests-3.11.10.ebuild b/dev-python/python-tests/python-tests-3.11.10.ebuild
new file mode 100644
index 000000000000..f3ef6c5f1575
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.11.10.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.11.9_p2-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ local dirs=(
+ ctypes/test distutils/tests idlelib/idle_test lib2to3/tests
+ ./test tkinter/test unittest/test
+ )
+ local dir
+ for dir in "${dirs[@]}"; do
+ python_moduleinto "/usr/lib/python${PYVER}/${dir%/*}"
+ python_domodule "${dir}"
+ done
+}
diff --git a/dev-python/python-tests/python-tests-3.12.6.ebuild b/dev-python/python-tests/python-tests-3.12.6.ebuild
new file mode 100644
index 000000000000..2fda9f00797d
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.12.6.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.12.5_p1-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.13.0_rc2.ebuild b/dev-python/python-tests/python-tests-3.13.0_rc2.ebuild
new file mode 100644
index 000000000000..90ba692cc94e
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.13.0_rc2.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.13.0_rc1_p3-r1:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/simsimd/Manifest b/dev-python/simsimd/Manifest
index 9027a8b8eec0..2507102801c4 100644
--- a/dev-python/simsimd/Manifest
+++ b/dev-python/simsimd/Manifest
@@ -1,3 +1 @@
-DIST SimSIMD-4.3.1.gh.tar.gz 105424 BLAKE2B b5886261ad8290662325321816cf9e7eeb7059b58e3e2352f341345667393d4ee009a840061768666234ae2619bbd4c7522726a2efc4f60935309a393649fd22 SHA512 722a8ae473d4526130a0d80bd6074ba6cee7a2566414505b7db8cd4d63efade2470153e4364a9cff140780fc839264c7ccb6580983170d25ff3bbb4a00d78155
-DIST SimSIMD-5.0.0.gh.tar.gz 120734 BLAKE2B 40a51018334e81ada820f394a2bc1f7560b00a339c4b43a23e071a492129375af2d7155205ad3b1b0f6915579a49f10ed839b132f9f2297991a776e3f7643932 SHA512 25125d213eb773e453aafb0e2332a9a2a0798c16c01c954a5f84354c5f20a9cd9b512fda37c4cceffdbae1c2cdb9571ffbdf32ea3f0cfa6f60192f0a3d3e5c7e
DIST SimSIMD-5.0.1.gh.tar.gz 120754 BLAKE2B 35094cf15aad8f2325706a604eb7036e3edc18828c2341d9921b76077d7d7de9028177277ea32a144fa7edd98ee2b83d83506e632f95889c2290102c9638df9e SHA512 0dde560764e4d267e7b3387e8c7e24a44da02362f651b9ea48d44f91908135d107080c8b7db2fb3578f5ebfa67082694eb2907d82ceef841271f0debf42f1a8a
diff --git a/dev-python/simsimd/simsimd-4.3.1.ebuild b/dev-python/simsimd/simsimd-4.3.1.ebuild
deleted file mode 100644
index f221ed18ca9a..000000000000
--- a/dev-python/simsimd/simsimd-4.3.1.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1 toolchain-funcs
-
-MY_P=SimSIMD-${PV}
-DESCRIPTION="Fastest SIMD-Accelerated Vector Similarity Functions for x86 and Arm"
-HOMEPAGE="
- https://github.com/ashvardanian/SimSIMD/
- https://pypi.org/project/simsimd/
-"
-# no sdist, as of 4.3.1
-# https://github.com/ashvardanian/SimSIMD/issues/113
-SRC_URI="
- https://github.com/ashvardanian/SimSIMD/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="openmp"
-
-BDEPEND="
- test? (
- dev-python/pytest-repeat[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-pkg_pretend() {
- if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
- tc-check-openmp
- fi
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
- tc-check-openmp
- fi
-}
-
-src_prepare() {
- # https://github.com/ashvardanian/SimSIMD/pull/115
- sed -i -e '/-O3/d' -e 's:-lgomp:-fopenmp:' setup.py || die
- if ! use openmp; then
- sed -i -e '/-fopenmp/d' setup.py || die
- fi
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p repeat python/test.py
-}
diff --git a/dev-python/simsimd/simsimd-5.0.0.ebuild b/dev-python/simsimd/simsimd-5.0.0.ebuild
deleted file mode 100644
index f221ed18ca9a..000000000000
--- a/dev-python/simsimd/simsimd-5.0.0.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1 toolchain-funcs
-
-MY_P=SimSIMD-${PV}
-DESCRIPTION="Fastest SIMD-Accelerated Vector Similarity Functions for x86 and Arm"
-HOMEPAGE="
- https://github.com/ashvardanian/SimSIMD/
- https://pypi.org/project/simsimd/
-"
-# no sdist, as of 4.3.1
-# https://github.com/ashvardanian/SimSIMD/issues/113
-SRC_URI="
- https://github.com/ashvardanian/SimSIMD/archive/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="openmp"
-
-BDEPEND="
- test? (
- dev-python/pytest-repeat[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-pkg_pretend() {
- if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
- tc-check-openmp
- fi
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
- tc-check-openmp
- fi
-}
-
-src_prepare() {
- # https://github.com/ashvardanian/SimSIMD/pull/115
- sed -i -e '/-O3/d' -e 's:-lgomp:-fopenmp:' setup.py || die
- if ! use openmp; then
- sed -i -e '/-fopenmp/d' setup.py || die
- fi
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p repeat python/test.py
-}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 931bf3bb6743..3aa61c0c06d6 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -21,6 +21,7 @@ DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb9
DIST smallvec-1.11.2.crate 34801 BLAKE2B 58645e99db8f02db64d02c75860c7ea41836c427c03ee3b0b23365e73a406e4fd6ac312bf13fc5faef8bb6111c10fcfd5f839d5b3686e9b34d1626f8469fc327 SHA512 5cfb427c3b99b0dbd71f6154ed899abcde9d7d2992977ac7b2ef3a4c3ff51e4efafd133071a69609b4ed6cb269bdc26b79eb72e1988f10dfcaef8185d950cd1d
DIST sqlglot-25.18.0.tar.gz 19311133 BLAKE2B 7dee7eab72ae3918fd7f72dfc6b7037b4883e0cb746b04009b3cfda115fc9af72acc1cabdafeb693a26c21831afbaaf8c4e303aa73953299e68c9f111724adff SHA512 5e56c79a63a429bcbfc11397d4ba629223bdf69ac9935da2c8ea68a1829ea73b521d97f87364860eb0638b1711305e42186955b763692d3e77749f2b10008a21
DIST sqlglot-25.19.0.tar.gz 19341617 BLAKE2B cd8d3a844dd15e573f4a918fbe6149f0a1b69ce24601b04e4c17afc60d6fd6d6ecdbfc799f0b4197d6d9b1d5e2ef1b15a567654a6eb666fd6b45f6138425affb SHA512 4b24a710d5c044f9f70440515dc6861363344009962463202141132740840e22ac872e239454e09ea90ed176bcaf4a192d4876c489f3457f67b1b00734f5365e
+DIST sqlglot-25.20.1.tar.gz 19429085 BLAKE2B 65162c038fc19fe28e6cbd278d963477f5726967290d832e4e3bfad3ed2e2a38fa99aa08a0d6da31e924aa194473e5528b9566f6a34ac680d2e4483d69004f3f SHA512 9be8eae145a62723e83b2d2143578589d97ead26ccfd2e339f1de18d44fb808e6a9dca86bca5804f2d721bec586c0a7a31c56342a35c28cfd679990afd1f4e54
DIST syn-2.0.41.crate 246016 BLAKE2B 9d389f2e2a0acb4c84c309456e8ffcc88c5d4d541535ed136832d7a6054dde45a598bb68e8a6f3062ca2a96e1ceae947d54b3aec9bad65b0c51d6733aa6c80db SHA512 6bbaf69ca783025dfb81ac3612ac60bfbed31b2d87792909b35c12892dadebdaff2ddf9463105e536b671dce5870610ab90fe29471284bbd3014dca8d6993f1a
DIST target-lexicon-0.12.12.crate 25156 BLAKE2B f3803596c75f6c89438592a1176c3748fc2c0524d7d50a20056de1cd26d40c572b05bafcdf6dd702752864bea37c8b4f28f96dadc12a5b3bb1d279b25e489f85 SHA512 6147295c43ba1b7b087a3c5ab51534b2985e4e77e5e15687978cfb9d07e21c4fd9bc7191576d6cabd268d08a44dc733c4a957e59dba8b948c2055d8bb433aeca
DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
diff --git a/dev-python/sqlglot/sqlglot-25.20.1.ebuild b/dev-python/sqlglot/sqlglot-25.20.1.ebuild
new file mode 100644
index 000000000000..2a3db897240e
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-25.20.1.ebuild
@@ -0,0 +1,129 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+CARGO_OPTIONAL=1
+CRATES="
+ autocfg@1.1.0
+ bitflags@1.3.2
+ cfg-if@1.0.0
+ heck@0.4.1
+ indoc@2.0.4
+ libc@0.2.150
+ lock_api@0.4.11
+ memoffset@0.9.0
+ once_cell@1.19.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ proc-macro2@1.0.70
+ pyo3-build-config@0.20.0
+ pyo3-ffi@0.20.0
+ pyo3-macros-backend@0.20.0
+ pyo3-macros@0.20.0
+ pyo3@0.20.0
+ quote@1.0.33
+ redox_syscall@0.4.1
+ scopeguard@1.2.0
+ smallvec@1.11.2
+ syn@2.0.41
+ target-lexicon@0.12.12
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+"
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ # remove fragile timing check
+ sed -i -e '/assertLessEqual(time\.time/d' tests/test_parser.py || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # timing, sigh
+ # https://github.com/tobymao/sqlglot/issues/3961
+ tests/test_generator.py::TestGenerator::test_generate_nested_binary
+ )
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/types-docutils/Manifest b/dev-python/types-docutils/Manifest
index bbadaf1d6bf0..cc20a7415130 100644
--- a/dev-python/types-docutils/Manifest
+++ b/dev-python/types-docutils/Manifest
@@ -1,3 +1,2 @@
-DIST types-docutils-0.21.0.20240710.tar.gz 19813 BLAKE2B ffe7a9605faf155ad968e6bf190fb2cfec4e09ce09c8b2c9346710c9065e18f169682122c9ba83acd331f166dc9ed925be55626be4320553de2f1f467d2a0e67 SHA512 f870c692666c9966cba11fec7c441cbdf0f5510d586ebea467880bdec859783aeb23a3621dc14fc65021ec3cd917c929116642901048249ea8549ede4ff1c02b
-DIST types-docutils-0.21.0.20240711.tar.gz 19857 BLAKE2B db38ce7230323b6710ca0f183eb77d700f6fc895af5956abde65f85e976dc15db920eab6b69483fa7ad3361fef0286069875ec02564d4a855244cdb255e039c0 SHA512 770aa29d2e0fb51c35924239e636ec5d31fe6a9986f3842afd6e7a6414e2ae281d1e88bbce1343d69f9d596381bee056f7471566e051025fb2dd9ad93b188786
DIST types-docutils-0.21.0.20240724.tar.gz 20175 BLAKE2B a21715a3f24c120e58b4d542e97de8f0a580ad40fe9f7d451b9e2b2072f4eb552d750662d198d8afcd8a6f7e0be3605b727ac014f229214849d9ba3757feb7d8 SHA512 5fc881f945a0755d38cc36ed2134303e421f4f19016517ffb88f39a7f29d2075eaf4d5691c1280a90597fa87478c9eed747ad7a40df210ce0ab3af7ed36e6281
+DIST types-docutils-0.21.0.20240907.tar.gz 20273 BLAKE2B 8f90b7362a0b7a5d6b7e8d83b24e7fc03254425bb49e8f9bebc376ea85baf826f9da1ef0f03dfce0b54ef5de3d939e9209f3cbd7f947e1b5de3aa0b72cd417b4 SHA512 fa668508108411b00d46a5c4f781c42b0e245fc375ff4090a1441afad972f6b57147f04eae5b1713d0f51b74c1d8939cd064fa3a956a956cff9c3b06bc09eb1e
diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20240711.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20240711.ebuild
deleted file mode 100644
index 0d86c4835acd..000000000000
--- a/dev-python/types-docutils/types-docutils-0.21.0.20240711.ebuild
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2022-2024 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_{8,9,10,11,12} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Typing stubs for docutils"
-HOMEPAGE="https://pypi.org/project/types-docutils/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20240907.ebuild
index 0d86c4835acd..0d86c4835acd 100644
--- a/dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild
+++ b/dev-python/types-docutils/types-docutils-0.21.0.20240907.ebuild
diff --git a/dev-python/types-setuptools/Manifest b/dev-python/types-setuptools/Manifest
index f0795cfaf181..36ea8e59ca36 100644
--- a/dev-python/types-setuptools/Manifest
+++ b/dev-python/types-setuptools/Manifest
@@ -3,3 +3,4 @@ DIST types-setuptools-71.1.0.20240818.tar.gz 42224 BLAKE2B f882b03087e5ba4894293
DIST types-setuptools-72.2.0.20240821.tar.gz 42123 BLAKE2B bfe59fdcd33878d368ab703b5e8eeccc5cc667c340e23cf89e251f6338403d3406783744e83d988ed4e33161f388bf4ec882cfbbf79b7415532438d39eaf3654 SHA512 66ab0e5c3c5b3523bfe3b668f42f242265e55008dc0f356d34591cd16bd9c56fe0e860f5645b984fb4b373123132726bc4f88acdb20c8cf8ed1d61ce04ce92f4
DIST types-setuptools-73.0.0.20240822.tar.gz 42177 BLAKE2B 71b6edc781ee90d02e0a14b47aaf130a1ef5d07a081047af130593569c60904a19d0979ccc46a1e0b0efa1b0892e653a9bd0232a8b90b0977500f16817b7f0de SHA512 57c0c807f0d10a92c8bf3a0f07cd506706e2c0924f16e12a77b9a8720f732861abdce03c17cdf3825e185fef120667e694cf651d074623f3a1dc364d94079e5a
DIST types-setuptools-74.0.0.20240831.tar.gz 41726 BLAKE2B 2f69d9d6fd82b5e514ef789028e45305068dce801082e9247d8761e68090c8e232ae377ebcfeb082b718f9ac882ec4aa0ae34ef53ed4dff240da859c28e9cfcf SHA512 35fe7e34cd65ae8dae67cd23668221ae0ac1e9c73f422ae6f03e5a101aa1c6af66d3b1f396b0c8fa88c69b07eab3ae5483964969e786d15f82983cedac7cf2fe
+DIST types-setuptools-74.1.0.20240907.tar.gz 42970 BLAKE2B 06ceaba13ee061d231a0c02196fc97b3e64a7a13d9a728ab0cb5cab728d8944b2ebbb73d77b6c5d805f7fe1cc5f2b34dcae2bf62a12e27d265cd03507092d31e SHA512 623e5904e3d102a603feaa88ac7a4558a06cfc8e25888c013352d3016efdc296fd7dd343466cd646ccc41d9d6c65e789467eb309a5946b282110550589d1126f
diff --git a/dev-python/types-setuptools/types-setuptools-74.1.0.20240907.ebuild b/dev-python/types-setuptools/types-setuptools-74.1.0.20240907.ebuild
new file mode 100644
index 000000000000..c755b6e96b17
--- /dev/null
+++ b/dev-python/types-setuptools/types-setuptools-74.1.0.20240907.ebuild
@@ -0,0 +1,17 @@
+# Copyright 2023-2024 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_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typing stubs for setuptools"
+HOMEPAGE="https://pypi.org/project/types-setuptools/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index edb4a4241bf1..4856b4371cf2 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -3,7 +3,5 @@ DIST reqwest-middleware-5e3eaf254b5bd481c75d2710eed055f95b756913.gh.tar.gz 40049
DIST rs-async-zip-011b24604fa7bc223daaad7712c0694bac8f0a87.gh.tar.gz 51706 BLAKE2B 354eb52c95ea355521e1e6a7c841102424c47c156fdb0efb62e3cac666ecf289806aeefab8a0273a7c3283429ac81502283bdb5424d5f925621e5c2b1430fd4d SHA512 6650eef354e84daf41a8572b98b29f2873b7f071dd1d6983292c70b2f580fdc50cd26762d2228a70c2b200eae2f40476e6604702aa62cc97558301195bf19eb8
DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68
DIST uv-0.4.2-crates.tar.xz 46277420 BLAKE2B 9f516f586a5e46bbd6c09e116f91e90b563b4de89b2d2dac50f208e4116583ba05418baa998a74f6d31503ec56cb5ff5966cdf579d026c53bcfc500b5e4fb15c SHA512 b30b70225eae9a5970dd18d383d9129b5161cb66942af8796220fe7a58cd3357308111374193d8fc4e1c7fde8a0b62f44e8efd76603411d882df016afecbc69f
-DIST uv-0.4.3.gh.tar.gz 2514550 BLAKE2B eae7a625869fe0821abb6c194cb72dc7a3ca2c11d40e731929b886e4b781ab0f7a1099986271c402d64f2eee4582ec57c9443eaecdf18f2d55b2640c8bd9bde9 SHA512 ccb8b125bd32c268cbbeb431fb538d63d700a910392afed8c38470175359dc4153367ba71a5326538e9c7188ddc8b649f23e67f1d2da59ddb17b61c71f33b40f
-DIST uv-0.4.4.gh.tar.gz 2529092 BLAKE2B 89c9aee07f55f2ac7366f66b9355ecbc20d76500b4a8e85a154c9613178bb000c513d3b310750f3d5aba835020797d93deade9e51eb5f742edd750836807a071 SHA512 2b8581b27377256f5ddf6681b7f66acf87454d476330627b76704d76860afbeffcf89e7bdb1a56f60789c0246fdb81d459991f52baa451bbadff5f79df3dad5a
-DIST uv-0.4.5.gh.tar.gz 2547342 BLAKE2B a87140ca17b9767b864a8ac2cca4e3dad1f1e0ed7ae93d49c650249a63b5e51f6f36c40f7aa75a710951d98f9e2ba9f7ebf7ae1cd3b7f2525a22e664ac75b613 SHA512 9db24ccde03a7ea665febbd2c707de4efaad560a1fdb3823aae5f4c212df37f3c1f646c7e7ae4cba0e5cc0104995b44f5a4cd130c5beaddd921e71abfc6cbd5c
DIST uv-0.4.6.gh.tar.gz 2553065 BLAKE2B f793c01042db0a45b53a57157852ed5035a96bfc58c2cf81eb3d6a59b9eb6315dbd675817e1bca0a34f9d348d10c0668f9213fd11f230f606386405ee4d51c31 SHA512 79b50783596c6307934c378f7f7b60628de3edd8fe75f6675efd406e7e4cb7cd049a3966eefcb2708f8ab925ee5b5e315f6540f2c25693ffe1ee29f2d501523c
+DIST uv-0.4.7.gh.tar.gz 2558161 BLAKE2B 5508af9b6e0d04d165aa3b120be138fb4ccfddd643395175e5d31618ec34a5139567c0162b0ce1c741fed551397d1ec9d9693ce0397d1f0346a5c1df13c20b8d SHA512 8395f96eb36c2131b203de9991b994532047b7928ac1765a426accdaae4ed3a242a8b9554808123f5359d41778d3e7783606265b60d372bed2a0a76fea027e3e
diff --git a/dev-python/uv/uv-0.4.3.ebuild b/dev-python/uv/uv-0.4.3.ebuild
deleted file mode 100644
index f5da7b7e4913..000000000000
--- a/dev-python/uv/uv-0.4.3.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [async_zip]='https://github.com/charliermarsh/rs-async-zip;011b24604fa7bc223daaad7712c0694bac8f0a87;rs-async-zip-%commit%'
- [pubgrub]='https://github.com/astral-sh/pubgrub;388685a8711092971930986644cfed152d1a1f6c;pubgrub-%commit%'
- [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-middleware'
- [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-retry'
- [tl]='https://github.com/charliermarsh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
-)
-
-inherit cargo check-reqs
-
-CRATE_PV=0.4.2
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- MPL-2.0 Unicode-DFS-2016
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-BDEPEND="
- >=virtual/rust-1.80
- test? (
- dev-lang/python:3.8
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
-}
-
-src_prepare() {
- default
-
- # remove patch.* that breaks GIT_CRATES
- local reqmw=${GIT_CRATES[reqwest-middleware]}
- reqmw=${reqmw#*;}
- reqmw=${reqmw%;*}
- sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-${reqmw}/reqwest-middleware\" }@" Cargo.toml || die
-
- # https://github.com/vorot93/tokio-tar/pull/23
- # (fortunately uv already depends on portable-atomic, so we don't
- # have to fight Cargo.lock)
- cd "${ECARGO_VENDOR}/tokio-tar-0.3.1" || die
- eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- # work around https://github.com/astral-sh/uv/issues/4376
- local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
- local -x COLUMNS=100
-
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- cd crates/uv || die
- cargo_src_install
-}
diff --git a/dev-python/uv/uv-0.4.4.ebuild b/dev-python/uv/uv-0.4.4.ebuild
deleted file mode 100644
index f5da7b7e4913..000000000000
--- a/dev-python/uv/uv-0.4.4.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [async_zip]='https://github.com/charliermarsh/rs-async-zip;011b24604fa7bc223daaad7712c0694bac8f0a87;rs-async-zip-%commit%'
- [pubgrub]='https://github.com/astral-sh/pubgrub;388685a8711092971930986644cfed152d1a1f6c;pubgrub-%commit%'
- [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-middleware'
- [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-retry'
- [tl]='https://github.com/charliermarsh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
-)
-
-inherit cargo check-reqs
-
-CRATE_PV=0.4.2
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- MPL-2.0 Unicode-DFS-2016
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-BDEPEND="
- >=virtual/rust-1.80
- test? (
- dev-lang/python:3.8
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
-}
-
-src_prepare() {
- default
-
- # remove patch.* that breaks GIT_CRATES
- local reqmw=${GIT_CRATES[reqwest-middleware]}
- reqmw=${reqmw#*;}
- reqmw=${reqmw%;*}
- sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-${reqmw}/reqwest-middleware\" }@" Cargo.toml || die
-
- # https://github.com/vorot93/tokio-tar/pull/23
- # (fortunately uv already depends on portable-atomic, so we don't
- # have to fight Cargo.lock)
- cd "${ECARGO_VENDOR}/tokio-tar-0.3.1" || die
- eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- # work around https://github.com/astral-sh/uv/issues/4376
- local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
- local -x COLUMNS=100
-
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- cd crates/uv || die
- cargo_src_install
-}
diff --git a/dev-python/uv/uv-0.4.5.ebuild b/dev-python/uv/uv-0.4.7.ebuild
index 3990f1fa30dc..0f6e94f4f948 100644
--- a/dev-python/uv/uv-0.4.5.ebuild
+++ b/dev-python/uv/uv-0.4.7.ebuild
@@ -50,6 +50,14 @@ IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
BDEPEND="
>=virtual/rust-1.80
test? (
@@ -89,8 +97,28 @@ src_prepare() {
# https://github.com/vorot93/tokio-tar/pull/23
# (fortunately uv already depends on portable-atomic, so we don't
# have to fight Cargo.lock)
- cd "${ECARGO_VENDOR}/tokio-tar-0.3.1" || die
+ pushd "${ECARGO_VENDOR}/tokio-tar-0.3.1" >/dev/null || die
eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
+ popd >/dev/null || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ sed -i -e 's:"static"::' crates/uv-extract/Cargo.toml || die
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
}
src_compile() {
diff --git a/dev-python/watchdog/watchdog-5.0.2.ebuild b/dev-python/watchdog/watchdog-5.0.2.ebuild
index 07fb5c940df6..3be1df10401e 100644
--- a/dev-python/watchdog/watchdog-5.0.2.ebuild
+++ b/dev-python/watchdog/watchdog-5.0.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
dev-python/pyyaml[${PYTHON_USEDEP}]
diff --git a/dev-python/xlsxwriter/xlsxwriter-3.2.0.ebuild b/dev-python/xlsxwriter/xlsxwriter-3.2.0.ebuild
index dde984c061a4..08c427386c20 100644
--- a/dev-python/xlsxwriter/xlsxwriter-3.2.0.ebuild
+++ b/dev-python/xlsxwriter/xlsxwriter-3.2.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_tests pytest
diff --git a/dev-python/yarl/Manifest b/dev-python/yarl/Manifest
index faed673d4332..f772356cf2f9 100644
--- a/dev-python/yarl/Manifest
+++ b/dev-python/yarl/Manifest
@@ -1,3 +1,4 @@
+DIST yarl-1.10.0.tar.gz 158919 BLAKE2B 07560c311c6388555fa10b94490576a0a5352be0ab511173624ca89322ad28281f7995593bc57c195a181dc4b80a5e3866b029294d9ce1d8ab0100036105636b SHA512 8854d04c5beb0cca37b32f0dec370ecf1309fc4f13f6c1c7da02bd9c49d9a8f95cb24218d3ba4e06bbf3d62226d69c87cf8ec8af71506a5680fb837dafba4d24
DIST yarl-1.9.10.tar.gz 155594 BLAKE2B b86fce589c0da63d94939a788fbc98f39efb233d4777c7753f23cf42c0c2df8a121a4171606a3b617e7e2539f7e151a1a717dae07d94c44d08b1fc466c0bfda1 SHA512 554fcbf6b39fefc2e2e5b309d989de071cebc285446df3cba3703100974d6832be894ff5ccce52e85a643b69282227d34787dbb21cee88039cf9f1021e967d12
DIST yarl-1.9.11.tar.gz 156445 BLAKE2B a5af473f7e66b1a4e9f97a4ff4e323764a05289e899926c803af16df985d47bdce7aa87d0099015c3a6033eb5cb942feab9879ea135076fdecdfc3d0afa98b94 SHA512 226a357f202693bece39136d595a444221fdde2727bc9d5fe392ccd80e86c6a35cee7d0882c66649b288efae5b3ae4ba1bcabb9844b8f47654c9ccbacc8337c0
DIST yarl-1.9.4.tar.gz 141869 BLAKE2B 367eac4674bf1190122f10bb1dc1c4f3d5e4263e1d95ff2b871067d55a894dc19a6bb5a6c673d1bed28b3c5f77c704799568edfe639d50f0ae10313eb847352d SHA512 e4f7917f1625b40125abae9a13d61795f97e8cf489735e15cf58476e97c3bcf840b1452482f1f7a737fbb2bdd1dc7bbcfa882d0a7f76a27dfb3aea72b7a66c82
diff --git a/dev-python/yarl/yarl-1.10.0.ebuild b/dev-python/yarl/yarl-1.10.0.ebuild
new file mode 100644
index 000000000000..3f3ab5f82dfe
--- /dev/null
+++ b/dev-python/yarl/yarl-1.10.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Yet another URL library"
+HOMEPAGE="
+ https://github.com/aio-libs/yarl/
+ https://pypi.org/project/yarl/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/multidict-4.0[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/expandvars[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ cd tests || die
+ epytest --override-ini=addopts=
+}