summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-09-05 17:43:33 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-09-05 17:43:33 +0000
commit605cc7d76ace1b662b30c35145da37735204cab2 (patch)
tree23e61bf34f846617ec0a6debf645794429b13407 /dev-python
parent6966f7b1bcecf708a417be9451ae0157568c4e96 (diff)
downloadbaldeagleos-repo-605cc7d76ace1b662b30c35145da37735204cab2.tar.gz
baldeagleos-repo-605cc7d76ace1b662b30c35145da37735204cab2.tar.xz
baldeagleos-repo-605cc7d76ace1b662b30c35145da37735204cab2.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/commentjson/commentjson-0.9.0-r2.ebuild1
-rw-r--r--dev-python/cramjam/cramjam-2.8.3.ebuild6
-rw-r--r--dev-python/jaraco-test/jaraco-test-5.4.0.ebuild1
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/pure-eval/Manifest1
-rw-r--r--dev-python/pure-eval/files/pure-eval-0.2.2-py313.patch63
-rw-r--r--dev-python/pure-eval/pure-eval-0.2.2-r1.ebuild43
-rw-r--r--dev-python/pure-eval/pure-eval-0.2.2.ebuild37
-rw-r--r--dev-python/pure-eval/pure-eval-0.2.3.ebuild2
-rw-r--r--dev-python/pyasynchat/pyasynchat-1.0.4.ebuild7
-rw-r--r--dev-python/pyasyncore/pyasyncore-1.0.4.ebuild8
-rw-r--r--dev-python/pypy3/metadata.xml6
-rw-r--r--dev-python/pypy3/pypy3-7.3.17-r1.ebuild26
-rw-r--r--dev-python/pypy3_10/metadata.xml4
-rw-r--r--dev-python/pypy3_10/pypy3_10-7.3.17-r1.ebuild221
-rw-r--r--dev-python/python-tests/Manifest12
-rw-r--r--dev-python/python-tests/metadata.xml10
-rw-r--r--dev-python/python-tests/python-tests-3.10.14_p3.ebuild65
-rw-r--r--dev-python/python-tests/python-tests-3.11.9_p2.ebuild65
-rw-r--r--dev-python/python-tests/python-tests-3.12.5_p1.ebuild60
-rw-r--r--dev-python/python-tests/python-tests-3.13.0_rc1_p3.ebuild60
-rw-r--r--dev-python/pytrie/pytrie-0.4.0-r1.ebuild7
-rw-r--r--dev-python/regex/Manifest1
-rw-r--r--dev-python/regex/regex-2024.5.15.ebuild32
-rw-r--r--dev-python/test/metadata.xml11
-rw-r--r--dev-python/test/test-0.ebuild45
-rw-r--r--dev-python/txaio/txaio-23.1.1.ebuild8
30 files changed, 638 insertions, 193 deletions
diff --git a/dev-python/commentjson/commentjson-0.9.0-r2.ebuild b/dev-python/commentjson/commentjson-0.9.0-r2.ebuild
index 5e81ed33ceba..c6b9844b2649 100644
--- a/dev-python/commentjson/commentjson-0.9.0-r2.ebuild
+++ b/dev-python/commentjson/commentjson-0.9.0-r2.ebuild
@@ -28,6 +28,7 @@ RDEPEND="
BDEPEND="
test? (
dev-python/six[${PYTHON_USEDEP}]
+ dev-python/test[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/cramjam/cramjam-2.8.3.ebuild b/dev-python/cramjam/cramjam-2.8.3.ebuild
index e58c2ebc48fe..0dcf5ecd2898 100644
--- a/dev-python/cramjam/cramjam-2.8.3.ebuild
+++ b/dev-python/cramjam/cramjam-2.8.3.ebuild
@@ -204,12 +204,6 @@ src_test() {
}
python_test() {
- local EPYTEST_DESELECT=(
- # random health check failures
- # https://github.com/milesgranger/cramjam/issues/141
- tests/test_variants.py::test_variants_different_dtypes
- )
-
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest tests
}
diff --git a/dev-python/jaraco-test/jaraco-test-5.4.0.ebuild b/dev-python/jaraco-test/jaraco-test-5.4.0.ebuild
index 1bb230ac8016..df6e1c3b7451 100644
--- a/dev-python/jaraco-test/jaraco-test-5.4.0.ebuild
+++ b/dev-python/jaraco-test/jaraco-test-5.4.0.ebuild
@@ -24,6 +24,7 @@ RDEPEND="
dev-python/jaraco-collections[${PYTHON_USEDEP}]
dev-python/jaraco-context[${PYTHON_USEDEP}]
dev-python/jaraco-functools[${PYTHON_USEDEP}]
+ dev-python/test[${PYTHON_USEDEP}]
"
distutils_enable_tests pytest
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index 37a64204a00a..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index c09b7356f549..630fe63c6f53 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pure-eval/Manifest b/dev-python/pure-eval/Manifest
index 429c6ba56260..f27351ab82b5 100644
--- a/dev-python/pure-eval/Manifest
+++ b/dev-python/pure-eval/Manifest
@@ -1,2 +1 @@
-DIST pure_eval-0.2.2.tar.gz 19395 BLAKE2B 19f86a1436e5f1a026a24f62c435e8970d84960f4cde1de80c58949b1aede6aa7562e8430e10e3f7171212c31d5699a3321fad5fb2ea1eed961a30d43a632a79 SHA512 35d20cbbfd513b7ac341759e619401a5f57b7b9df8abd09ce6414d4ee6bfa45dcadbad7529d067e81ad7ea2107c14fd03783a3a77f8074dad30d2e5161656804
DIST pure_eval-0.2.3.tar.gz 19752 BLAKE2B 18ed36bf045ddcd351a8dd82079df409e26ed745e3c326a7743536bc3e74a880830f55fa1252113aa03b9830b5cac63601335cb6b877994861efb0b9b54a07d9 SHA512 8575f54aa7e522a3db86b80fdbe1f8518ef4ef17a160b2541f74d0853e123cffcbc9f04df9faeddfc7ed92bb6b1d27fb7b3ce2de1c66b6b13e453b7b2bf72052
diff --git a/dev-python/pure-eval/files/pure-eval-0.2.2-py313.patch b/dev-python/pure-eval/files/pure-eval-0.2.2-py313.patch
deleted file mode 100644
index 9ec2d680b616..000000000000
--- a/dev-python/pure-eval/files/pure-eval-0.2.2-py313.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 42e8a1f4a41b60c51619868f543e7b3ee82ac42f Mon Sep 17 00:00:00 2001
-From: Lumir Balhar <lbalhar@redhat.com>
-Date: Wed, 15 May 2024 10:14:31 +0200
-Subject: [PATCH] Fix compatibility of check_copy_ast_without_context with Py
- 3.13b1
-
-Resolves: https://github.com/alexmojaki/pure_eval/issues/16
----
- tests/test_utils.py | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/tests/test_utils.py b/tests/test_utils.py
-index 172f50e..3a9cc9b 100644
---- a/tests/test_utils.py
-+++ b/tests/test_utils.py
-@@ -58,7 +58,16 @@ def check_copy_ast_without_context(tree):
- dump1 = ast.dump(tree)
- dump2 = ast.dump(tree2)
- normalised_dump1 = re.sub(
-- r", ctx=(Load|Store|Del)\(\)",
-+ # Two possible matches:
-+ # - first one like ", ctx=…" where ", " should be removed
-+ # - second one like "(ctx=…" where "(" should be kept
-+ (
-+ r"("
-+ r", ctx=(Load|Store|Del)\(\)"
-+ r"|"
-+ r"(?<=\()ctx=(Load|Store|Del)\(\)"
-+ r")"
-+ ),
- "",
- dump1
- )
-From 89645cfd19d1480d586af50842f0ac264a036fa8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
-Date: Sun, 9 Jun 2024 21:45:31 +0200
-Subject: [PATCH] Explicitly remove the ctx attribute in
- copy_ast_without_context
-
-Python 3.13.0b2+ defaults to Load when we don't pass ctx
-See https://github.com/python/cpython/pull/118871
----
- pure_eval/utils.py | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/pure_eval/utils.py b/pure_eval/utils.py
-index a8a3730..19ead65 100644
---- a/pure_eval/utils.py
-+++ b/pure_eval/utils.py
-@@ -184,7 +184,12 @@ def copy_ast_without_context(x):
- if field != 'ctx'
- if hasattr(x, field)
- }
-- return type(x)(**kwargs)
-+ a = type(x)(**kwargs)
-+ if hasattr(a, 'ctx'):
-+ # Python 3.13.0b2+ defaults to Load when we don't pass ctx
-+ # https://github.com/python/cpython/pull/118871
-+ del a.ctx
-+ return a
- elif isinstance(x, list):
- return list(map(copy_ast_without_context, x))
- else:
diff --git a/dev-python/pure-eval/pure-eval-0.2.2-r1.ebuild b/dev-python/pure-eval/pure-eval-0.2.2-r1.ebuild
deleted file mode 100644
index 787b0e0c3556..000000000000
--- a/dev-python/pure-eval/pure-eval-0.2.2-r1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Safely evaluate AST nodes without side effects"
-HOMEPAGE="
- https://github.com/alexmojaki/pure_eval/
- https://pypi.org/project/pure-eval/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- # https://github.com/alexmojaki/pure_eval/commit/42e8a1f4a41b60c51619868f543e7b3ee82ac42f
- # https://github.com/alexmojaki/pure_eval/pull/18
- "${FILESDIR}/${P}-py313.patch"
-)
-
-python_test() {
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # https://github.com/alexmojaki/pure_eval/issues/15
- tests/test_getattr_static.py::TestGetattrStatic::test_custom_object_dict
- tests/test_utils.py::test_safe_name_samples
- )
- ;;
- esac
-
- epytest
-}
diff --git a/dev-python/pure-eval/pure-eval-0.2.2.ebuild b/dev-python/pure-eval/pure-eval-0.2.2.ebuild
deleted file mode 100644
index f88343929b2f..000000000000
--- a/dev-python/pure-eval/pure-eval-0.2.2.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Safely evaluate AST nodes without side effects"
-HOMEPAGE="
- https://github.com/alexmojaki/pure_eval/
- https://pypi.org/project/pure-eval/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
-
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # https://github.com/alexmojaki/pure_eval/issues/15
- tests/test_getattr_static.py::TestGetattrStatic::test_custom_object_dict
- tests/test_utils.py::test_safe_name_samples
- )
- ;;
- esac
-
- epytest
-}
diff --git a/dev-python/pure-eval/pure-eval-0.2.3.ebuild b/dev-python/pure-eval/pure-eval-0.2.3.ebuild
index 1aa9405dce0b..87c073cbe507 100644
--- a/dev-python/pure-eval/pure-eval-0.2.3.ebuild
+++ b/dev-python/pure-eval/pure-eval-0.2.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
distutils_enable_tests pytest
diff --git a/dev-python/pyasynchat/pyasynchat-1.0.4.ebuild b/dev-python/pyasynchat/pyasynchat-1.0.4.ebuild
index 677cac08cbeb..e29a9d33794c 100644
--- a/dev-python/pyasynchat/pyasynchat-1.0.4.ebuild
+++ b/dev-python/pyasynchat/pyasynchat-1.0.4.ebuild
@@ -17,10 +17,17 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/pyasyncore-1.0.2[${PYTHON_USEDEP}]
"
+BDEPEND="
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
distutils_enable_tests unittest
diff --git a/dev-python/pyasyncore/pyasyncore-1.0.4.ebuild b/dev-python/pyasyncore/pyasyncore-1.0.4.ebuild
index 45814fcf6923..e27f831d7cee 100644
--- a/dev-python/pyasyncore/pyasyncore-1.0.4.ebuild
+++ b/dev-python/pyasyncore/pyasyncore-1.0.4.ebuild
@@ -17,6 +17,14 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
python_test() {
# Can't use d_e_t unittest (bug #926964)
diff --git a/dev-python/pypy3/metadata.xml b/dev-python/pypy3/metadata.xml
index 853174b8f2ab..877ce7be76dc 100644
--- a/dev-python/pypy3/metadata.xml
+++ b/dev-python/pypy3/metadata.xml
@@ -6,5 +6,11 @@
<name>Python</name>
</maintainer>
+ <use>
+ <flag name="test-install">
+ Install the test suite packages, that are required to run
+ tests in a few reverse dependencies.
+ </flag>
+ </use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3/pypy3-7.3.17-r1.ebuild b/dev-python/pypy3/pypy3-7.3.17-r1.ebuild
new file mode 100644
index 000000000000..1539b0b89ab8
--- /dev/null
+++ b/dev-python/pypy3/pypy3-7.3.17-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYVER=3.10
+DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
+HOMEPAGE="
+ https://pypy.org/
+ https://foss.heptapod.net/pypy/pypy/
+"
+S=${WORKDIR}
+
+LICENSE="MIT"
+SLOT="0/pypy310-pp73-384"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+gdbm ncurses sqlite +test-install tk"
+
+RDEPEND="
+ =dev-python/pypy3_10-${PV}*:${SLOT}[gdbm?,ncurses?,sqlite?,test-install(+)?,tk?]
+"
+
+src_install() {
+ dodir /usr/bin
+ dosym pypy${PYVER} /usr/bin/pypy3
+}
diff --git a/dev-python/pypy3_10/metadata.xml b/dev-python/pypy3_10/metadata.xml
index 6a14ca407288..605a68d82d4f 100644
--- a/dev-python/pypy3_10/metadata.xml
+++ b/dev-python/pypy3_10/metadata.xml
@@ -12,6 +12,10 @@
to bootstrap pip and setuptools (if disabled, it will
be only possible to use venv `--without-pip`)
</flag>
+ <flag name="test-install">
+ Install the test suite packages, that are required to run
+ tests in a few reverse dependencies.
+ </flag>
</use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pypy3_10/pypy3_10-7.3.17-r1.ebuild b/dev-python/pypy3_10/pypy3_10-7.3.17-r1.ebuild
new file mode 100644
index 000000000000..0771425196e7
--- /dev/null
+++ b/dev-python/pypy3_10/pypy3_10-7.3.17-r1.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
new file mode 100644
index 000000000000..69c5bfcbd01a
--- /dev/null
+++ b/dev-python/python-tests/Manifest
@@ -0,0 +1,12 @@
+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.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.13.0rc1.tar.xz 20881016 BLAKE2B 3971a233e9c3c782973e0276740f00f8f2072eeda914663cdf7fa6c5de2437c60c441184344a64e25cab5c71a02c47cf4602dd08f127f310c885386cd887fec4 SHA512 fce7664f3298cfd191a7dc20b7b47acafdc50d058a2814312c94c30b65291395957d701e4661b9bb760417942acb5d27e5b8bb479bcda9a82cf29f53772a2daf
+DIST Python-3.13.0rc1.tar.xz.asc 963 BLAKE2B 1c292362cd133dbbb1df1e0cf440e8adde2bc8db9174e550d5b76a09e80d0dbc11a0250e6f041e54fe58f25dc05f071c7af1aa910ae56ece5eb430502a2ba67c SHA512 3613829d9631f46b1b1ce11bfe5bb7fbfa49d97b639bb883c86737ea6ae8d15c24c526083cafb916011bd6d0b3b5fab2b17afd367edbdce99b32e0b4b845fd22
+DIST python-gentoo-patches-3.10.14_p3.tar.xz 22080 BLAKE2B f45ebe4df3dc39a842c93d741ef66fd0f9f7d1c6453d499d59b62eda41f01bc17e109205fedc506963d1f21eb3fbf9478564ff5e1a11c10336f855069a642ceb SHA512 db268f1482e5c46a71ce3aef2c2ab6d458cc5263aec360e61c6aff97f119f4f100becefbb575156b1b0239e591a496cb62a136597fadae8a5b630c7233c0040a
+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.13.0rc1_p3.tar.xz 15148 BLAKE2B 668060644372e8ddf2d9686796ec304ae7689f5c10ecbc6862f054f96504c418b0e4df28675e4fbb610889f9a665a7a54f23633036b0df35f19f40ef8e6bab32 SHA512 c0cbdf9e0fe2ad29175302e548ebfda1d2af42af0ffeb363eb8b0dc53e1059f5abd7dcd02fd8e9eb9ba7bef2b34b7693633f0a62dc1ab933f43077feacf00fbc
diff --git a/dev-python/python-tests/metadata.xml b/dev-python/python-tests/metadata.xml
new file mode 100644
index 000000000000..853174b8f2ab
--- /dev/null
+++ b/dev-python/python-tests/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/python-tests/python-tests-3.10.14_p3.ebuild b/dev-python/python-tests/python-tests-3.10.14_p3.ebuild
new file mode 100644
index 000000000000..f058f3476e49
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.10.14_p3.ebuild
@@ -0,0 +1,65 @@
+# 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_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.9_p2.ebuild b/dev-python/python-tests/python-tests-3.11.9_p2.ebuild
new file mode 100644
index 000000000000..8d46119853de
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.11.9_p2.ebuild
@@ -0,0 +1,65 @@
+# 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_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.5_p1.ebuild b/dev-python/python-tests/python-tests-3.12.5_p1.ebuild
new file mode 100644
index 000000000000..659c32b0f8f9
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.12.5_p1.ebuild
@@ -0,0 +1,60 @@
+# 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_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_rc1_p3.ebuild b/dev-python/python-tests/python-tests-3.13.0_rc1_p3.ebuild
new file mode 100644
index 000000000000..910de0a24960
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.13.0_rc1_p3.ebuild
@@ -0,0 +1,60 @@
+# 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_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/pytrie/pytrie-0.4.0-r1.ebuild b/dev-python/pytrie/pytrie-0.4.0-r1.ebuild
index 8a48088cd0f9..96fa67a12bb2 100644
--- a/dev-python/pytrie/pytrie-0.4.0-r1.ebuild
+++ b/dev-python/pytrie/pytrie-0.4.0-r1.ebuild
@@ -19,9 +19,16 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+RESTRICT="!test? ( test )"
RDEPEND="
dev-python/sortedcontainers[${PYTHON_USEDEP}]
"
+BDEPEND="
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
distutils_enable_tests unittest
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index 71e4affdaf42..b7c5ae6f2cc9 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,2 +1 @@
-DIST regex-2024.5.15.tar.gz 394856 BLAKE2B 8990bbc78f7f9c6a4dc07d913ec5557a4cd1bac022bc71093e3d8083b5d547182e08f2e8189c3808d8e368ed42530578df9951367b59dc3450bb09458b57f496 SHA512 7e465987bff529a6895cd6606b5a188c0fb2cdf333de108a4e3e37c7badeea146fd23d1d757f47b65d4facdc30cbdb0ca3c0df2395124c8e3e6946a98f52f413
DIST regex-2024.7.24.tar.gz 393485 BLAKE2B d2a46fe2039f78fc3f1e8cda1b7b1808b160018d8e0c1b880bb1a573b36a3e1e7c7ccfa238f99719b5a484fa3b7457109f9e8668fbf16cbaef52006e0e6f6f89 SHA512 7b9efc5bdefa6610862be06831404380939dfffad6e2a488d362f4a247356eb0739c2b9078f41e554eca21d64fd4b1b145291ca8140f18d1586328f7d19cefc9
diff --git a/dev-python/regex/regex-2024.5.15.ebuild b/dev-python/regex/regex-2024.5.15.ebuild
deleted file mode 100644
index abfda93950b1..000000000000
--- a/dev-python/regex/regex-2024.5.15.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-# pypy isn't supported upstream because of its UTF8 representation for strings
-# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Alternative regular expression module to replace re"
-HOMEPAGE="
- https://github.com/mrabarnett/mrab-regex/
- https://pypi.org/project/regex/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
-IUSE="doc"
-
-distutils_enable_tests unittest
-
-python_install_all() {
- use doc && local HTML_DOCS=( docs/Features.html )
- local DOCS=( README.rst docs/*.rst )
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/test/metadata.xml b/dev-python/test/metadata.xml
new file mode 100644
index 000000000000..ea8988e8af6a
--- /dev/null
+++ b/dev-python/test/metadata.xml
@@ -0,0 +1,11 @@
+<?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>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/test/test-0.ebuild b/dev-python/test/test-0.ebuild
new file mode 100644
index 000000000000..ca19d867475e
--- /dev/null
+++ b/dev-python/test/test-0.ebuild
@@ -0,0 +1,45 @@
+# 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} pypy3 )
+
+inherit python-r1
+
+DESCRIPTION="Virtual to install 'test' package from stdlib"
+HOMEPAGE="https://docs.python.org/3/library/test.html"
+
+LICENSE="metapackage"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_impl_dep 'test-install(+)' pypy3)
+ $(python_gen_cond_dep '
+ || (
+ dev-python/python-tests:3.10
+ <dev-lang/python-3.10.14_p3-r1:3.10
+ )
+ ' python3_10)
+ $(python_gen_cond_dep '
+ || (
+ dev-python/python-tests:3.11
+ <dev-lang/python-3.11.9_p2-r1:3.11
+ )
+ ' python3_11)
+ $(python_gen_cond_dep '
+ || (
+ dev-python/python-tests:3.12
+ <dev-lang/python-3.12.5_p1-r1:3.12
+ )
+ ' python3_12)
+ $(python_gen_cond_dep '
+ || (
+ dev-python/python-tests:3.13
+ <dev-lang/python-3.13.0_rc1_p3-r1:3.13
+ )
+ ' python3_13)
+"
diff --git a/dev-python/txaio/txaio-23.1.1.ebuild b/dev-python/txaio/txaio-23.1.1.ebuild
index 75bc27b06f8a..5d93cfdd2d3e 100644
--- a/dev-python/txaio/txaio-23.1.1.ebuild
+++ b/dev-python/txaio/txaio-23.1.1.ebuild
@@ -17,6 +17,14 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
distutils_enable_sphinx docs \
'>=dev-python/sphinxcontrib-spelling-2.1.2' \