summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-22 18:58:00 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-22 18:58:00 +0000
commit0de35feac9a2319015ad913e05a104ec4bc12ac2 (patch)
tree532c711a381390c3f60d18637577a7bd7316d461 /dev-python
parentaa60ccb7c9d247fc8f12cfb61f2e2a4a18da8e40 (diff)
downloadbaldeagleos-repo-0de35feac9a2319015ad913e05a104ec4bc12ac2.tar.gz
baldeagleos-repo-0de35feac9a2319015ad913e05a104ec4bc12ac2.tar.xz
baldeagleos-repo-0de35feac9a2319015ad913e05a104ec4bc12ac2.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/Manifest1
-rw-r--r--dev-python/aiohttp/aiohttp-3.12.0_beta0.ebuild155
-rw-r--r--dev-python/alembic/Manifest1
-rw-r--r--dev-python/alembic/alembic-1.16.1.ebuild46
-rw-r--r--dev-python/beartype/Manifest1
-rw-r--r--dev-python/beartype/beartype-0.21.0.ebuild43
-rw-r--r--dev-python/bitarray/Manifest1
-rw-r--r--dev-python/bitarray/bitarray-3.4.2.ebuild24
-rw-r--r--dev-python/blockbuster/Manifest1
-rw-r--r--dev-python/blockbuster/blockbuster-1.5.24.ebuild61
-rw-r--r--dev-python/blockbuster/metadata.xml10
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.38.21.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.38.21.ebuild75
-rw-r--r--dev-python/build/build-1.2.2_p1-r2.ebuild (renamed from dev-python/build/build-1.2.2_p1-r1.ebuild)1
-rw-r--r--dev-python/build/files/build-1.2.2_p1-gentoo-pip.patch17
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.35.3.ebuild61
-rw-r--r--dev-python/coverage/Manifest1
-rw-r--r--dev-python/coverage/coverage-7.8.1.ebuild109
-rw-r--r--dev-python/desktop-notifier/Manifest1
-rw-r--r--dev-python/desktop-notifier/desktop-notifier-6.1.0.ebuild44
-rw-r--r--dev-python/dropbox/Manifest1
-rw-r--r--dev-python/dropbox/dropbox-11.36.2.ebuild43
-rw-r--r--dev-python/dropbox/dropbox-12.0.2.ebuild2
-rw-r--r--dev-python/fake-py/Manifest1
-rw-r--r--dev-python/fake-py/fake-py-0.11.6.ebuild57
-rw-r--r--dev-python/fake-py/metadata.xml10
-rw-r--r--dev-python/forbiddenfruit/Manifest1
-rw-r--r--dev-python/forbiddenfruit/files/forbiddenfruit-0.1.4-pytest.patch59
-rw-r--r--dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild52
-rw-r--r--dev-python/forbiddenfruit/metadata.xml10
-rw-r--r--dev-python/google-auth/Manifest1
-rw-r--r--dev-python/google-auth/google-auth-2.40.2.ebuild73
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.131.21.ebuild126
-rw-r--r--dev-python/isal/Manifest1
-rw-r--r--dev-python/isal/isal-1.7.2.ebuild54
-rw-r--r--dev-python/isal/metadata.xml9
-rw-r--r--dev-python/jsonpickle/Manifest1
-rw-r--r--dev-python/jsonpickle/jsonpickle-4.1.0.ebuild67
-rw-r--r--dev-python/osc-lib/Manifest1
-rw-r--r--dev-python/osc-lib/osc-lib-4.0.2.ebuild50
-rw-r--r--dev-python/pybind11/Manifest1
-rw-r--r--dev-python/pybind11/pybind11-3.0.0_rc1.ebuild85
-rw-r--r--dev-python/pygobject/pygobject-3.46.0-r1.ebuild4
-rw-r--r--dev-python/pygobject/pygobject-3.48.2-r1.ebuild4
-rw-r--r--dev-python/pygobject/pygobject-3.50.0.ebuild1
-rw-r--r--dev-python/pytest-codeblocks/pytest-codeblocks-0.17.0.ebuild2
-rw-r--r--dev-python/python-swiftclient/Manifest1
-rw-r--r--dev-python/python-swiftclient/python-swiftclient-4.8.0.ebuild39
-rw-r--r--dev-python/rpds-py/Manifest1
-rw-r--r--dev-python/rpds-py/rpds-py-0.25.1.ebuild60
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-26.19.0.ebuild96
-rw-r--r--dev-python/stone/Manifest1
-rw-r--r--dev-python/stone/stone-3.3.8.ebuild29
-rw-r--r--dev-python/stone/stone-3.3.9.ebuild2
-rw-r--r--dev-python/survey/Manifest1
-rw-r--r--dev-python/survey/survey-5.3.1.ebuild35
-rw-r--r--dev-python/survey/survey-5.4.2.ebuild2
-rw-r--r--dev-python/tifffile/Manifest1
-rw-r--r--dev-python/tifffile/tifffile-2025.3.30.ebuild47
-rw-r--r--dev-python/tld/Manifest1
-rw-r--r--dev-python/tld/tld-0.13.1.ebuild42
-rw-r--r--dev-python/typing-inspection/Manifest1
-rw-r--r--dev-python/typing-inspection/typing-inspection-0.4.1.ebuild25
-rw-r--r--dev-python/versioningit/versioningit-3.1.3.ebuild2
-rw-r--r--dev-python/zlib-ng/Manifest1
-rw-r--r--dev-python/zlib-ng/metadata.xml9
-rw-r--r--dev-python/zlib-ng/zlib-ng-0.5.1.ebuild60
72 files changed, 1667 insertions, 217 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 51c5ada61144..242725d7abf1 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,2 +1,3 @@
DIST aiohttp-3.11.14.tar.gz 7676994 BLAKE2B e8e048c01db9600df3bdc7bdc6e5066094b4575d08fef3ec7d0a78763a701cd3501dce435b80d3fbea28d2e7bf4110a5cc9e0ccec2bc3745835cadcb27528404 SHA512 38e51d3640b533d9bd639a59657bf7affbfc0b1a9dc40d77175d6528044e23b1e524589b9a10e0159eb8f9ba29e96b3e67529a9d11f1c53760a70800d813d13f
DIST aiohttp-3.11.18.tar.gz 7678653 BLAKE2B 5886778fd0456ef40f1da5abd3d6a3864db03fad01d53755bb34afd77152da338480ba534c5dc1574bd5aa178943ec52814f1ceff736d668868803b19f6c102f SHA512 9b25ad5f9800cd84014c55f6a4f7ac217a788a43e301a83c18667b6f294388adf53c81360fd3219007b10b42ce165331dad1907582dc9d3081fd8585b5bcd042
+DIST aiohttp-3.12.0b0.tar.gz 7742303 BLAKE2B 46d2eb965f37470a7a0178d7433a89abe3b7aff7818ee25b0800de721e5e6d201a11b1baa6262c89cff087ff867051478d6e992cb0a84378f33f393c7036af07 SHA512 44e2f7fb81a8ec9c7683846a07da9cea6da4364bf67164b4ce12b55d59f20d62810fd5561f44c7d88d1e280035fb7218d1fc13787c62f1af4e4c3f021dd1fa8b
diff --git a/dev-python/aiohttp/aiohttp-3.12.0_beta0.ebuild b/dev-python/aiohttp/aiohttp-3.12.0_beta0.ebuild
new file mode 100644
index 000000000000..6ddf58bbee57
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.12.0_beta0.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="HTTP client/server for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/aiohttp/
+ https://pypi.org/project/aiohttp/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="+native-extensions test-rust"
+
+DEPEND="
+ native-extensions? (
+ $(python_gen_cond_dep '
+ net-libs/llhttp:=
+ ' 'python3*')
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ >=dev-python/cython-3.1.1[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/blockbuster[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/isal[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ dev-python/zlib-ng[${PYTHON_USEDEP}]
+ www-servers/gunicorn[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-3.11.17-unbundle-llhttp.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # increase the timeout a little
+ sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
+ # xfail_strict fails on py3.10
+ sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die
+ sed -i -e 's:-Werror::' Makefile || die
+ # remove vendored llhttp
+ rm -r vendor || die
+}
+
+python_configure() {
+ # check for .install-cython, so that we do this only once
+ if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] &&
+ use native-extensions
+ then
+ # force rehashing first
+ emake requirements/.hash/cython.txt.hash
+ > .update-pip || die
+ > .install-cython || die
+ emake cythonize
+ fi
+}
+
+python_compile() {
+ # implicitly disabled for pypy3
+ if ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # proxy is not packaged
+ tests/test_proxy_functional.py
+ # python_on_whales is not packaged
+ tests/autobahn/test_autobahn.py
+ # benchmarks
+ tests/test_benchmarks_client.py
+ tests/test_benchmarks_client_request.py
+ tests/test_benchmarks_client_ws.py
+ tests/test_benchmarks_cookiejar.py
+ tests/test_benchmarks_http_websocket.py
+ tests/test_benchmarks_http_writer.py
+ tests/test_benchmarks_web_fileresponse.py
+ tests/test_benchmarks_web_middleware.py
+ tests/test_benchmarks_web_response.py
+ tests/test_benchmarks_web_urldispatcher.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_client_session.py::test_client_session_timeout_zero
+ # broken by irrelevant deprecation warnings
+ tests/test_circular_imports.py::test_no_warnings
+ )
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_cookiejar.py::test_pickle_format
+ # different exception message
+ tests/test_client_functional.py::test_aiohttp_request_coroutine
+ )
+ ;;
+ esac
+
+ # upstream unconditionally blocks building C extensions
+ # on PyPy3 but the test suite needs an explicit switch
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
+ rm -rf aiohttp || die
+ epytest -m "not internal and not dev_mode" \
+ -p rerunfailures --reruns=5
+}
diff --git a/dev-python/alembic/Manifest b/dev-python/alembic/Manifest
index 32607d4a2855..f591dce93954 100644
--- a/dev-python/alembic/Manifest
+++ b/dev-python/alembic/Manifest
@@ -1 +1,2 @@
DIST alembic-1.15.2.tar.gz 1925573 BLAKE2B 0711f6132ff3209828896c7efc78e0f4f2d7fd304a3e497b115f4f91521c5c57f852b2a515565e0e18d6695ec05d524b49500e73bf4247d7500f9a74380e0a5a SHA512 2d749123181c58985794f1c51d6f67d5fb11dbd0dd38d696a2b9e28a59560bf8f8d93473b0bce1e95426bbe65c0b24f9b3287a5819e6606dd982d7ecdedbcdab
+DIST alembic-1.16.1.tar.gz 1955006 BLAKE2B 69c29af02825c691511075c6cda81a98bb065a35ae07d7b0fc0817148d6c6caeb8c8a126474469991a2b0042cfce95e7b5c863468db95c6bd998f5c0dc850dc2 SHA512 e821ec547686f93cad49468559d68399f4abd8288170491f626b93b160d01370867b7b14a6bf28983189757edfdaae396118f7ab11f7d4e24ff61aee305fab67
diff --git a/dev-python/alembic/alembic-1.16.1.ebuild b/dev-python/alembic/alembic-1.16.1.ebuild
new file mode 100644
index 000000000000..70ebc9722605
--- /dev/null
+++ b/dev-python/alembic/alembic-1.16.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Database migrations tool, written by the author of SQLAlchemy"
+HOMEPAGE="
+ https://github.com/sqlalchemy/alembic/
+ https://pypi.org/project/alembic/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-python/sqlalchemy-1.4.0[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ sys-libs/timezone-data
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # setup.cfg contains -p no:warnings in addopts which triggers
+ # datetime.utcfromtimestamp() deprecation warning as an error in py3.12
+ epytest -o addopts=
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/beartype/Manifest b/dev-python/beartype/Manifest
index bd3548b9db1f..5686f89f47bf 100644
--- a/dev-python/beartype/Manifest
+++ b/dev-python/beartype/Manifest
@@ -1,2 +1,3 @@
DIST beartype-0.20.2.tar.gz 1410390 BLAKE2B fa1ca4000b7a32fe7fae4d3712060ba29f1bb690fe9c4c28dda91962f1a76aacdc906305de104e77c7bd34c9063e927c190c9f38c6f6aa8a4d790dd39401392c SHA512 72bb5f1a71e59f7f9debe6d10cb96de01c2f5a9f10f59d2d7002ef01320e17a9bf47d070c8e17d9cf82140b3917082f08a5eb442b825fd43b2cacf9c0fc65455
+DIST beartype-0.21.0.tar.gz 1437066 BLAKE2B 10c08fc07a87257fc21a85c2ab8c1402044b383051e5ecc919812710f74d277cbe70653a02aeeafc1007da5716bcb78c2024b5debb66b84ab5cdf4c3901fabb4 SHA512 fd3026c15bc1e9fc3985f7c691ad9c4c55532e5148bd3f554f40b7b6a33189af07ce9174c197907b4cd57f41778a436644e6ad610eec942d94c01cabb295c19b
DIST beartype-0.21.0rc0.tar.gz 1437966 BLAKE2B 569eac36552c82e24218385478a48a471757e38f157be926b0a524d2c4366a84d1fd615d41b1d29b8b2dcff534e1a5a48a7b20ed894eecc62b2e31413aae9692 SHA512 e3a3ec779eee910741c2e1ac7514d516a05bf800255141a0cbac70c81a87b0bc25028f41e9b0a65396717631e6707164e0ab1cb39cb7d997f1faa3e85743bc73
diff --git a/dev-python/beartype/beartype-0.21.0.ebuild b/dev-python/beartype/beartype-0.21.0.ebuild
new file mode 100644
index 000000000000..713b3c05d31f
--- /dev/null
+++ b/dev-python/beartype/beartype-0.21.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Unbearably fast runtime type checking in pure Python"
+HOMEPAGE="
+ https://pypi.org/project/beartype/
+ https://github.com/beartype/beartype/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+BDEPEND="
+ test? (
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/mypy[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/xarray[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # fragile performance test
+ beartype_test/a00_unit/a70_decor/test_decorwrapper.py::test_wrapper_fail_obj_large
+ # test for building docs, apparently broken too
+ beartype_test/a90_func/z90_lib/a00_sphinx
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
index bb14362ec529..33e4b9d318f1 100644
--- a/dev-python/bitarray/Manifest
+++ b/dev-python/bitarray/Manifest
@@ -1,2 +1,3 @@
DIST bitarray-3.3.2.tar.gz 138926 BLAKE2B 35f068220f661bdb0fe2405d770e65bd39d78ae8ca0081aa5ccf58fb3666dec01e39c044901fdd5b3b65aab987768bd683033cd8aaf9d2f7728a8c43493e2101 SHA512 876c16e0a13db40e46ea643bfe82d85bcf33ad7154fb2d0d3c0065507758bdaa556b078e666fb7565402dbd168d591edef3577fa142bca1e53cc60d2aefc5ca0
DIST bitarray-3.4.1.tar.gz 142769 BLAKE2B 6ca3c770cd672f6003f84e5e66a1fb1891ba1d67ee9411bf284efaf5c9e8983be52054c2b6ef82fcfc25c3930ee549f176c152b2fbd6f906b53d90595b4aa11d SHA512 0dff0142feda9d8203cd40b599d74e35d0dee50a07bcf5e7b6bc3bc7c85d0f16b84f8e6f784c4e909fb702d835d859be3aa28d6fdc90833afea506c9a86b916b
+DIST bitarray-3.4.2.tar.gz 143756 BLAKE2B a3b6f54d05b5bb9e77d1384202c6ecc869553064bdcbe18d8c135dfc2d5e7ba55abb2f075238ef85a3a2a11da6308eea2bce5d519a94a9de517bd809d4a8facc SHA512 28dc796f1a25833bfc54035bb9e33d923f8e6ea85b5977cbdf0febd5a189cbd561e3295e6dd06a3f2f5df7b55c5bc3a5b8197d8c47af27e6478cbe2f0d8bc876
diff --git a/dev-python/bitarray/bitarray-3.4.2.ebuild b/dev-python/bitarray/bitarray-3.4.2.ebuild
new file mode 100644
index 000000000000..a510687dc8fd
--- /dev/null
+++ b/dev-python/bitarray/bitarray-3.4.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2025 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_{11..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Efficient arrays of booleans -- C extension"
+HOMEPAGE="
+ https://github.com/ilanschnell/bitarray/
+ https://pypi.org/project/bitarray/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+python_test() {
+ "${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/blockbuster/Manifest b/dev-python/blockbuster/Manifest
new file mode 100644
index 000000000000..a26c71f56aa6
--- /dev/null
+++ b/dev-python/blockbuster/Manifest
@@ -0,0 +1 @@
+DIST blockbuster-1.5.24.tar.gz 51245 BLAKE2B 6d1e6a66154603d0a485dd77041b24488a35f9b07ec7b833b3ef2893edaada798e1feca158ceed7ba347cfcc738adc52d846991ec90808aa6a523a03403988cd SHA512 f286c1fad7236783aae81111480a43c946819264c7584fe9cdc466cdfff0c63c5076a9c74397e5f37782f5957c68834a1db7640a5aeae2bc0a2961fc472e7824
diff --git a/dev-python/blockbuster/blockbuster-1.5.24.ebuild b/dev-python/blockbuster/blockbuster-1.5.24.ebuild
new file mode 100644
index 000000000000..d62cdf19be75
--- /dev/null
+++ b/dev-python/blockbuster/blockbuster-1.5.24.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Utility to detect blocking calls in the async event loop"
+HOMEPAGE="
+ https://github.com/cbornet/blockbuster/
+ https://pypi.org/project/blockbuster/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/forbiddenfruit-0.1.4[${PYTHON_USEDEP}]
+ ' 'python*')
+"
+BDEPEND="
+ test? (
+ dev-python/aiofiles[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_blockbuster.py::test_ssl_socket
+ )
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # upstream doesn't care, however that doesn't stop
+ # people from depending on it...
+ # https://github.com/cbornet/blockbuster/issues/47
+ tests/test_blockbuster.py::test_file_random
+ tests/test_blockbuster.py::test_file_read_bytes
+ tests/test_blockbuster.py::test_file_text
+ tests/test_blockbuster.py::test_file_write_bytes
+ tests/test_blockbuster.py::test_lock
+ tests/test_blockbuster.py::test_os_scandir
+ tests/test_blockbuster.py::test_scanned_modules
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio
+}
diff --git a/dev-python/blockbuster/metadata.xml b/dev-python/blockbuster/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/blockbuster/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>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index ca26b202cf40..1c0efda90abf 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,4 +2,5 @@ DIST boto3-1.38.13.gh.tar.gz 939786 BLAKE2B 5c65c92b79ce28f398170950ed0fbce84a00
DIST boto3-1.38.18.gh.tar.gz 943830 BLAKE2B 2605415f7c48efd5322f6a514fb2cf7ede8724b71e8c2f0758c50bf3137a03557c17e12702f628de155e2289e42b912f645a75845921b7674140c8cb49a92d7d SHA512 af9dbf07a2a2dd378fbf5d346b9a4b43d74ccaaf2bc713f738e122ba402529aec6361ca7971101e88a1ed7e39623a69a4d84272505e39fedc5d7a89985cdaf98
DIST boto3-1.38.19.gh.tar.gz 944143 BLAKE2B c9b38196a9207d3fc09c7239490665d422507ab407f62ba0de5dfb570f1543ab5963a6bf60b3342c923969bb3519c29cc33d718bbb9bb3f216ea8a2b6625f60e SHA512 57beda6650f6cac1a3067edf750257f12d729c0232e2af7bee0221f944c66cbdf993670da0fa23de789265361a2aadb198c670c52b72c789ff222418b8ea6309
DIST boto3-1.38.20.gh.tar.gz 944770 BLAKE2B 778e408520e141c2ef2d24ebaaa5b953a2ad699fdceeb72d026db30222a912f53c6a2d16ea088f3e3e598a38dbd8cf37330de2ba5c722e61b963a8a69137eb1e SHA512 3265784e043c85ab7cf7e99796c7540ce8306f6d021a929298b1bcd7fd8075589511ddb797204ffda049e0f40a4d78aa3664866b4e1aca5619c950b45feb1165
+DIST boto3-1.38.21.gh.tar.gz 945368 BLAKE2B 6315c80867363cd55427e6b0a70c87a59ddb492de0c5f1033d31f143738c76f24b55308fb559017a42e38d5c6e3110ad2a3928c8d5a5eeb410cb1dc79a94716e SHA512 060fce9ece5c25411e2b5c299ed5d0139db0c7896299a49a5a787d424843a35fdf8135a2ae08b2e9a156c0d6eb8ece4fe364dac4c80cb4484359ef96b6d00c37
DIST boto3-1.38.8.gh.tar.gz 937130 BLAKE2B 4158573a032957c33f62c6406937a45956f4ccf972be4a223e16a327b0b476402a1e7bf7d9b6a5b83005fc324f6c0062ed73008972cabed9247790225c4d4e5a SHA512 3c3854ed132ad4c81cd868848a370cdc73101ac3c578f8ae70bc53c9a98b1d85dcd364258027adef976b3c6d220aa45f865928c055c9320d3a268e0e29d5af63
diff --git a/dev-python/boto3/boto3-1.38.21.ebuild b/dev-python/boto3/boto3-1.38.21.ebuild
new file mode 100644
index 000000000000..b862f479d876
--- /dev/null
+++ b/dev-python/boto3/boto3-1.38.21.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~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.12.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 b576e65d6a53..ab7ad409c949 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,4 +2,5 @@ DIST botocore-1.38.13.gh.tar.gz 14619576 BLAKE2B 088dfd540934b2c1f20e5a63ffd3aa2
DIST botocore-1.38.18.gh.tar.gz 14648125 BLAKE2B b77da532e815f8cc270b78c5bfab8a9e9532e0909bab901eee68dca266b457e63fb5b5a844ee9c0ffd6cdeae7df570da7dc59ca50f47c19516d4d2578f07cb1d SHA512 59a1235400068b9246273340af5b198c77cffe5d1da1d2856a3bebc0bb5799329a1986a19dad50e2e85f1063cab920039aa00062a2d2250db9dc7ecc6fa63241
DIST botocore-1.38.19.gh.tar.gz 14653643 BLAKE2B 0c570186f0afa3a7b8443d2ce348d1e5cba934ac1a23bfd29c96ccffd8a6fa4fb070b6cbb699114de03d1e08dd74640fb33157b990beb52f53f9ced2ff753065 SHA512 e2fbce315af559eed3280d850e63c7dc5027be24a0f240a6404285e06fd8db043f965e64204a9fadb9e697e3b5480e839396a644dd54b4bc8579594d9e594976
DIST botocore-1.38.20.gh.tar.gz 14638642 BLAKE2B f4dbe0f25d184a633a5c42c20d090e356353086731017eb5d41a5a23f8e0cd8c3aca6f2167f6f5691e19f21216cf0b8e6d6f0683461f3cf37ecd9dfb3e6f280f SHA512 7e5484a76f4c8955227a6e5c4270f97c328f80b40da60611d0ad48dc7120dfc43e415b2dbe2d1880bd070c477ac74c366bdfac586308922f93427baadde2ddc5
+DIST botocore-1.38.21.gh.tar.gz 14647008 BLAKE2B c8e7b78c2091b7bc277c5e1d4d6c8b6ba3943813e92c11ec9c41bb04e8c1faf19e5d8f28dfe37cc92eaafbefe682e5939ec37b518ca0cadfaf9cfbf257c55762 SHA512 965bc9fcfe1763f652a662b8cd72736c066822485312a6552c197abccfcfc9dcf0dabae8cd4d5a463e312ef0f1d616d96c79fd737446ebcf7f33a01248dc3e6f
DIST botocore-1.38.8.gh.tar.gz 14606167 BLAKE2B cb92f6014349f5188d62ddeb043e7532c50c7edc984cabae918825cdace981694c37ba656afcbbb64e65e275da4980d5f256a945bbcc63f9609272b08690c3d5 SHA512 bc9096051fde740a908ef0912a0c205595e7df653a349c167f616a788423578ba6b3aed6fe6213f528faa32b1c946abf0ac66dd81afdc05d41d12a4af4f7e818
diff --git a/dev-python/botocore/botocore-1.38.21.ebuild b/dev-python/botocore/botocore-1.38.21.ebuild
new file mode 100644
index 000000000000..535354aa3035
--- /dev/null
+++ b/dev-python/botocore/botocore-1.38.21.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+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 ~loong ~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.14)
+ EPYTEST_DESELECT+=(
+ tests/unit/test_utils.py::test_lru_cache_weakref
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/build/build-1.2.2_p1-r1.ebuild b/dev-python/build/build-1.2.2_p1-r2.ebuild
index f6442c827224..64204410295c 100644
--- a/dev-python/build/build-1.2.2_p1-r1.ebuild
+++ b/dev-python/build/build-1.2.2_p1-r2.ebuild
@@ -54,6 +54,7 @@ distutils_enable_tests pytest
PATCHES=(
# https://github.com/pypa/build/pull/861
+ # https://github.com/pypa/build/pull/898
"${FILESDIR}/${P}-gentoo-pip.patch"
)
diff --git a/dev-python/build/files/build-1.2.2_p1-gentoo-pip.patch b/dev-python/build/files/build-1.2.2_p1-gentoo-pip.patch
index 4335500e73a8..262131705776 100644
--- a/dev-python/build/files/build-1.2.2_p1-gentoo-pip.patch
+++ b/dev-python/build/files/build-1.2.2_p1-gentoo-pip.patch
@@ -1,8 +1,8 @@
diff --git a/src/build/env.py b/src/build/env.py
-index b8c7b5f6..f10cf4bf 100644
+index e583e68..ae5177b 100644
--- a/src/build/env.py
+++ b/src/build/env.py
-@@ -11,6 +11,7 @@
+@@ -11,6 +11,7 @@ import sys
import sysconfig
import tempfile
import typing
@@ -10,10 +10,16 @@ index b8c7b5f6..f10cf4bf 100644
from collections.abc import Collection, Mapping
-@@ -158,6 +159,15 @@ def _has_valid_outer_pip(self) -> bool | None:
+@@ -158,8 +159,21 @@ class _PipBackend(_EnvBackend):
This checks for a valid global pip. Returns None if pip is missing, False
if pip is too old, and True if it can be used.
"""
++
+ # Version to have added the `--python` option.
+- return _has_dependency('pip', '22.3')
++ if not _has_dependency('pip', '22.3'): # pragma: no cover
++ return False
++
+ # `pip install --python` is nonfunctional on Gentoo debundled pip.
+ # Detect that by checking if pip._vendor` module exists. However,
+ # searching for pip could yield warnings from _distutils_hack,
@@ -23,6 +29,7 @@ index b8c7b5f6..f10cf4bf 100644
+ if importlib.util.find_spec('pip._vendor') is None:
+ return False # pragma: no cover
+
- # Version to have added the `--python` option.
- return _has_dependency('pip', '22.3')
++ return True
+ @functools.cached_property
+ def _has_virtualenv(self) -> bool:
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 38c18761186b..4bf97d8de05f 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,2 +1,3 @@
DIST cfn_lint-1.34.2.tar.gz 3180262 BLAKE2B 0e92964da1d661e5a37f9f4c65c46b7eabdf9a23df1cbeeba96e072347b9be32b8067e72179e51ff83fbf8fa5cf810a409fe1819f3c124189a83e0bd9d147e0a SHA512 46d738319c3e0227fa0996e102e753929bf2bd6916136fe1879d757e64cc83554eca9fd1934dba89602301e42854af9f229bf4d41a118e2dea895553cf556b6e
DIST cfn_lint-1.35.1.tar.gz 3077415 BLAKE2B 8ef32c6a1b7e6d4db976e8b59b1933814647207a0d690ecadb82ac1dd660bc5ed55e66de2ef21e9936d0c97abcdaa1bdaf8e65a996622e949ddf07afa8588240 SHA512 90c6acec47e9d4fb7344dab7c3ce8170a0ee09875806fe1ea71da91a9ef9e852044a351227b279e9ae0ba42d8f2f1104c6f1460b0aba00aac63ce41d4e147b36
+DIST cfn_lint-1.35.3.tar.gz 3105179 BLAKE2B a1bd9ea3dee0f4ee6ddf88a4572e0900ac099274bf75f37e54a56a6c5d102e9f1d91a14518be38b03a37257999ff3c9539c4a8f08a5042a1689e862259266d50 SHA512 bdd0188bcd7dd327e6a72c60dcc8535643750c3762632e09bb851c62f520b38518d76e0566686f8fe5766beff147abd5eccd94db34701bef5d149e84954a3a48
diff --git a/dev-python/cfn-lint/cfn-lint-1.35.3.ebuild b/dev-python/cfn-lint/cfn-lint-1.35.3.ebuild
new file mode 100644
index 000000000000..669286dc533a
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.35.3.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.97.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # different line wrapping somehow
+ test/unit/module/template/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 5f6569c318b3..b595cd493292 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1 +1,2 @@
DIST coverage-7.8.0.tar.gz 811872 BLAKE2B e2054d58c31fb772b907220d2d8a768242208eb8ab829b579d3a1b081ae9169d8231bf79488e581ef95f53aa22682807fb74200859d8f49a739a3d9ac9859546 SHA512 ccc502d28a2a14ed9fa0b18a87b73ae0a3bd806948ca0887285c388399fa21aa8433d6fa2734ef6c42c92537edb7221406a91aab52b3cfb78bd8b77e6bea394c
+DIST coverage-7.8.1.tar.gz 812193 BLAKE2B 09a3cfb3844395e732985b32a36c11d8aac22b994d77097e3fe37690079ca909e2ae8b0f72ac6f179eb4cbd74aeacb44ddb488ca5186c472ae2280abb7ccf4bc SHA512 208585f522a4c720e31b45b5975ea2e91c30a19d91fa0df88e9f36cc16e173bdcb19b5bc7e15da31769a0b3dd693ca951e45faccc7782fa17e8fb27133bcba7d
diff --git a/dev-python/coverage/coverage-7.8.1.ebuild b/dev-python/coverage/coverage-7.8.1.ebuild
new file mode 100644
index 000000000000..34b649a6eb90
--- /dev/null
+++ b/dev-python/coverage/coverage-7.8.1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+ https://coverage.readthedocs.io/en/latest/
+ https://github.com/nedbat/coveragepy/
+ https://pypi.org/project/coverage/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e '/addopts/s:-q -n auto::' pyproject.toml || die
+}
+
+python_compile() {
+ if ! use native-extensions; then
+ local -x COVERAGE_DISABLE_EXTENSION=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+test_tracer() {
+ local -x COVERAGE_CORE=${1}
+ einfo " Testing with the ${COVERAGE_CORE} core ..."
+ epytest -p flaky -p hypothesis -p xdist tests
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: fails because of additional "Terminated" print on SIGTERM
+ tests/test_concurrency.py::SigtermTest::test_sigterm_threading_saves_data
+ # broken because of pytest plugins explicity loaded
+ tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
+ # these expect specific availability of C extension matching
+ # COVERAGE_CORE (which breaks testing pytracer on CPython)
+ tests/test_cmdline.py::CmdLineStdoutTest::test_version
+ tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
+ # mismatch of expected concurrency in error message
+ # TODO: report upstream?
+ tests/test_concurrency.py::ConcurrencyTest::test_greenlet
+ tests/test_concurrency.py::ConcurrencyTest::test_greenlet_simple_code
+ # packaging tests, fragile to setuptools version
+ tests/test_setup.py
+ )
+ local EPYTEST_IGNORE=(
+ # pip these days insists on fetching build deps from Internet
+ tests/test_venv.py
+ )
+
+ "${EPYTHON}" igor.py zip_mods || die
+
+ local -x COVERAGE_TESTING=True
+ # TODO: figure out why they can't be imported inside test env
+ local -x COVERAGE_NO_CONTRACTS=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+
+ local prev_opt=$(shopt -p nullglob)
+ shopt -s nullglob
+ local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+ ${prev_opt}
+
+ if [[ -n ${c_ext} ]]; then
+ cp "${c_ext}" coverage/ || die
+ test_tracer ctrace
+ fi
+
+ test_tracer pytrace
+
+ case ${EPYTHON} in
+ python3.1[01]|pypy3|pypy3.11)
+ ;;
+ *)
+ # available since Python 3.12
+ test_tracer sysmon
+ ;;
+ esac
+
+ if [[ -n ${c_ext} ]]; then
+ rm coverage/*.so || die
+ fi
+}
diff --git a/dev-python/desktop-notifier/Manifest b/dev-python/desktop-notifier/Manifest
index 8c4ab269ca71..3a5318455e3d 100644
--- a/dev-python/desktop-notifier/Manifest
+++ b/dev-python/desktop-notifier/Manifest
@@ -1,2 +1 @@
-DIST desktop-notifier-6.1.0.gh.tar.gz 3876246 BLAKE2B c44833e65f9a7fc1f5965545cad6f7bf68068c41bf1eb6e820f0e2b9403645003eb88745eb344c5b7c70c3335559e125a330ae0bc96f7dcb759a0f8d8b59b89f SHA512 9e7bc21e2814e087e5cd483811272cf573f9a0020dc95cbcb19dc05b53f846526b59ff15025983ffabfdb2e2348312b507e25bf386b04d9c217662712e309cd4
DIST desktop-notifier-6.1.1.gh.tar.gz 3876119 BLAKE2B 04837aa94c32b7cb869272791ae14790c92f7b3f83f9442be793e05e7dcc7dba627e1ec36442488080c2d8c8987b3acf1a4b7f3e10453756157f832daf46ebae SHA512 dc96fee153d3a36238794f8ecd65b5e2fb0b20dfbc3c8a5a6530870f24e172b689c8c67229706b3bf58dbe3053f91f89b9f16979496bd60fc68536907d7cac68
diff --git a/dev-python/desktop-notifier/desktop-notifier-6.1.0.ebuild b/dev-python/desktop-notifier/desktop-notifier-6.1.0.ebuild
deleted file mode 100644
index e5afa21c02c4..000000000000
--- a/dev-python/desktop-notifier/desktop-notifier-6.1.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 2021-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-DISTUTILS_USE_PEP517=setuptools
-
-inherit distutils-r1
-
-DESCRIPTION="desktop-notifier is a Python library for cross-platform desktop notifications"
-HOMEPAGE="
- https://desktop-notifier.readthedocs.io
- https://pypi.org/project/desktop-notifier/
- https://github.com/samschott/desktop-notifier
-"
-SRC_URI="https://github.com/samschott/desktop-notifier/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- dev-python/dbus-fast[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/build[${PYTHON_USEDEP}]
- test? (
- dev-python/bidict
- dev-python/pytest-asyncio
- )
-"
-
-# Most tests fail, they need some prior setup
-EPYTEST_DESELECT=(
- tests/test_api.py::test_send
- tests/test_api.py::test_clear
- tests/test_api.py::test_clear_all
- tests/test_callbacks
- tests/test_sync_api
-)
-distutils_enable_tests pytest
diff --git a/dev-python/dropbox/Manifest b/dev-python/dropbox/Manifest
index bae8fd436ae3..cf1942f72469 100644
--- a/dev-python/dropbox/Manifest
+++ b/dev-python/dropbox/Manifest
@@ -1,2 +1 @@
-DIST dropbox-sdk-python-11.36.2.gh.tar.gz 1166700 BLAKE2B afd0592bd1e18416f91d1fd673f2b7b7f605eaab80c02a9d8535fefa7fb23c8bc6a08c191492e1ced5d4b2d17fa72e8e5b6a58ba797f170c0efb75e755a451c9 SHA512 ec27685b4e5344e706bffb68b110ef2d7b307a5865bed3e042d6835f3666d2eefca646627a07bae1a3142e5f0346865fe285b037b00f3da081eb5797f9a768f5
DIST dropbox-sdk-python-12.0.2.gh.tar.gz 1155008 BLAKE2B cc0006909a204f0b9efab7605680027b144dfff5c91ddf31460884ada4948b285ff0777f19f9395a1fc447a906018c3a43b40bc7651bdbb715c597849e7ecba9 SHA512 73834c89e2dc8b129a549d082a7862ec81f731c4977c6650cc421c08b62903b78c9fa1e191a330022591e2cb0e29b825e89e2d04056e2f4e6362a168b57fec39
diff --git a/dev-python/dropbox/dropbox-11.36.2.ebuild b/dev-python/dropbox/dropbox-11.36.2.ebuild
deleted file mode 100644
index 02a72877ba08..000000000000
--- a/dev-python/dropbox/dropbox-11.36.2.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-inherit distutils-r1
-
-GH_PN=dropbox-sdk-python
-
-DESCRIPTION="The offical Dropbox SDK for Python"
-HOMEPAGE="https://www.dropbox.com/developers"
-# pypi does not have tests, stick with gh
-SRC_URI="https://github.com/dropbox/${GH_PN}/archive/refs/tags/v${PV}.tar.gz -> ${GH_PN}-${PV}.gh.tar.gz"
-S="${WORKDIR}"/${GH_PN}-${PV}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- >=dev-python/requests-2.16.2[${PYTHON_USEDEP}]
- >=dev-python/six-1.12.0[${PYTHON_USEDEP}]
- >=dev-python/stone-2.0.0[${PYTHON_USEDEP}]
-"
-
-# disable tests that need SCOPED_USER_DROPBOX_TOKEN
-# and tests that fail
-EPYTEST_DESELECT=(
- test/integration/test_dropbox.py
- test/unit/test_dropbox_unit.py::TestClient
- test/unit/test_dropbox_unit.py::TestOAuth::test_NoRedirect_whole_flow
-)
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # this is wrong
- sed -i -e "s/^import mock$/from unittest import mock/" test/unit/test_dropbox_unit.py || die
-
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/dropbox/dropbox-12.0.2.ebuild b/dev-python/dropbox/dropbox-12.0.2.ebuild
index 750c828b2603..cf9d12a323b9 100644
--- a/dev-python/dropbox/dropbox-12.0.2.ebuild
+++ b/dev-python/dropbox/dropbox-12.0.2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
GH_PN=dropbox-sdk-python
diff --git a/dev-python/fake-py/Manifest b/dev-python/fake-py/Manifest
new file mode 100644
index 000000000000..0f83c51f7374
--- /dev/null
+++ b/dev-python/fake-py/Manifest
@@ -0,0 +1 @@
+DIST fake_py-0.11.6.tar.gz 183570 BLAKE2B ebcc04cb4ea17d52c085e5d0989e88f74f78ee7a6967ccf1c000325d659150f783d2e0fd72e9919b2f3f0d2023328a0278e8e724ad960fcd22dcd1f302f0f0c0 SHA512 1ca476adc9b8bff0a4c2b666b91770b9126d093dc02dcab017db2a8099b20e5ed5416950127892f724460a8030a7f5ab51a9f91f4fed4ce6773ee31dbf827d3c
diff --git a/dev-python/fake-py/fake-py-0.11.6.ebuild b/dev-python/fake-py/fake-py-0.11.6.ebuild
new file mode 100644
index 000000000000..e4d56cdcea82
--- /dev/null
+++ b/dev-python/fake-py/fake-py-0.11.6.ebuild
@@ -0,0 +1,57 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=fake.py
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Minimalistic, standalone alternative fake data generator with no dependencies"
+HOMEPAGE="
+ https://github.com/barseghyanartur/fake.py/
+ https://pypi.org/project/fake-py/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # avoid pytest-codeblock which is another nightmare NIH package
+ rm conftest.py || die
+}
+
+python_test() {
+ # This package is a mess with tests thrown all over the place,
+ # and they need to be run separately because of how messy this is.
+
+ local EPYTEST_DESELECT=(
+ # fails when started via 'python -m pytest' because of different
+ # argparse output
+ fake.py::TestCLI::test_no_command
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= fake.py
+
+ local suite
+ for suite in customisation dataclasses hypothesis lazyfuzzy; do
+ pushd "examples/${suite}" >/dev/null || die
+ epytest -o addopts=
+ popd >/dev/null || die
+ done
+}
diff --git a/dev-python/fake-py/metadata.xml b/dev-python/fake-py/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/fake-py/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>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/forbiddenfruit/Manifest b/dev-python/forbiddenfruit/Manifest
new file mode 100644
index 000000000000..352aada6fd32
--- /dev/null
+++ b/dev-python/forbiddenfruit/Manifest
@@ -0,0 +1 @@
+DIST forbiddenfruit-0.1.4.tar.gz 43756 BLAKE2B 0fc5d2b313807ae6645f086844162408901e890bfb689f3f585ba452e5a788767c34da2574059a73a8d5d9c2e46c9811d4bc7f00eaf74bc60607229be7735d16 SHA512 88f8751a9ca1d475eb74114787a7aeda02973e9bc2c4bbb08de8a4d6fe05c6fb82db093aace8f718caaaeb8b06c89112e5f418b8ee4d903cc6183ddfa2cdb087
diff --git a/dev-python/forbiddenfruit/files/forbiddenfruit-0.1.4-pytest.patch b/dev-python/forbiddenfruit/files/forbiddenfruit-0.1.4-pytest.patch
new file mode 100644
index 000000000000..9d899da70491
--- /dev/null
+++ b/dev-python/forbiddenfruit/files/forbiddenfruit-0.1.4-pytest.patch
@@ -0,0 +1,59 @@
+From 2022b268f2a537eca27bac10ba74fef35e482d1d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 21 May 2025 18:50:41 +0200
+Subject: [PATCH] Port to pytest
+
+Port the test suite to pytest, given that nose is unmaintained
+and does not work with modern Python versions. This is roughly based
+on #47, except that I've modified the `skip_legacy` decorator-variable
+in place to make the changes smaller.
+---
+ Makefile | 3 +--
+ development.txt | 3 ++-
+ tests/unit/test_forbidden_fruit.py | 7 ++++---
+ 3 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/tests/unit/test_forbidden_fruit.py b/tests/unit/test_forbidden_fruit.py
+index f8a1b62..7315d1b 100644
+--- a/tests/unit/test_forbidden_fruit.py
++++ b/tests/unit/test_forbidden_fruit.py
+@@ -2,7 +2,7 @@ import sys
+ from datetime import datetime
+ from forbiddenfruit import cursed, curses, curse, reverse
+ from types import FunctionType
+-from nose.tools import nottest, istest
++import pytest
+
+ # Our stub! :)
+ from . import ffruit
+@@ -14,7 +14,8 @@ def almost_equal(a, b, e=0.001):
+ return abs(a - b) < e
+
+
+-skip_legacy = nottest if sys.version_info < (3, 3) else istest
++skip_legacy = pytest.mark.skipif(sys.version_info < (3, 3),
++ reason="requires Python < 3.3")
+
+ def test_cursing_a_builtin_class():
+
+@@ -186,7 +187,7 @@ def test_dir_without_args_returns_names_in_local_scope():
+
+ # Then I see that `dir()` correctly returns a sorted list of those names
+ assert 'some_name' in dir()
+- assert dir() == sorted(locals().keys())
++ assert 'z' in dir()
+
+
+ @skip_legacy
+diff --git a/tests/unit/test_forbidden_fruit.py b/tests/unit/test_forbidden_fruit.py
+index 56b09ce..dd182c6 100644
+--- a/tests/unit/test_forbidden_fruit.py
++++ b/tests/unit/test_forbidden_fruit.py
+@@ -319,6 +319,7 @@ def test_dunder_str():
+ return 'one'
+ curse(int, '__str__', always_one)
+ assert str(1) == "one"
++ reverse(int, '__str__')
+
+ @skip_legacy
+ def test_dunder_reverse():
diff --git a/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild b/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
new file mode 100644
index 000000000000..ace19882db32
--- /dev/null
+++ b/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{9,10,11,12,13} )
+# tests crash on 3.13+
+# https://github.com/clarete/forbiddenfruit/issues/78
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Patch built-in Python objects"
+HOMEPAGE="
+ https://github.com/clarete/forbiddenfruit/
+ https://pypi.org/project/forbiddenfruit/
+"
+
+LICENSE="|| ( GPL-3 MIT )"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+PATCHES=(
+ # https://github.com/clarete/forbiddenfruit/pull/79
+ # + test case fix from
+ # https://github.com/clarete/forbiddenfruit/commit/6eb07cb77bcd3d54c7f09f23f176706d7dfccdef
+ "${FILESDIR}/${P}-pytest.patch"
+)
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}, as they are broken"
+ return
+ fi
+
+ local -x FFRUIT_EXTENSION=true
+ esetup.py build_ext -b tests/unit
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/forbiddenfruit/metadata.xml b/dev-python/forbiddenfruit/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/forbiddenfruit/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>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index 9a4f92eeb0be..0390aa32b97b 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -1,3 +1,4 @@
DIST google_auth-2.39.0.tar.gz 274834 BLAKE2B f924291ba51799c4560849f61c30419110c786bfe12bade26ecd6940c952ad91a515770997008a2dd0b82f42771695500b951e036b2387b43e57c76ca2e6e04e SHA512 3bee0b649fdec2e9972afc47cd863f58c2b5e451a3970d85674d3d0572b1cbfd39d355af8c7648bb79aea2b41bd177da03dd01cb146681ed651de2d06bf355c0
DIST google_auth-2.40.0.tar.gz 280934 BLAKE2B a70b27a417e08e7d0edbc0ec09049aca6035582c9dc0bcc9b0d29acbc17f137beb2a9c145e783b356720b3327fd426025bef236a63dab83e98399a9bfd0dda36 SHA512 0e4587bde4076fcf8f905f1f8de6aa3b145424be2b8a36108f4f1fad12f024ea47e1b0bc5c877fa119b6a0dd7fa7fcb6a48e6cfbe4dacf72d04c23938cd66dbb
DIST google_auth-2.40.1.tar.gz 280975 BLAKE2B 755d05067caeb3317489d040bc17cb92a6a96f9f2433d43eb02dedd7dc3caadf9012ed497a5956ec82174ccec8b704d123275c22211906d7edbb915442313874 SHA512 3a3a5b970d020ba8e220794ef276ef55249026161f18dce513eaaa2e63f2a0d628a477c11ea2b35e7686b924ccc12eb5ff6c97a6e8df5279f8d3a195f85d4181
+DIST google_auth-2.40.2.tar.gz 280990 BLAKE2B 969cadb07091f221d1e9e82e783068913f7d6cbc7a4087b29e368bf0f6c89da45d880fc0aa9aa62f3efd467a70c17bd7c864d2dc7a9de64938f4086dd1a0ad00 SHA512 d79213f2c8fc3603437be5d40a1b887d85c13aa401dd918581cf17d5ac8a8211cf08633ec3a4fead705ad38d72a4a1eb919f073b10983be4a652a0db2bc14b43
diff --git a/dev-python/google-auth/google-auth-2.40.2.ebuild b/dev-python/google-auth/google-auth-2.40.2.ebuild
new file mode 100644
index 000000000000..380871c78686
--- /dev/null
+++ b/dev-python/google-auth/google-auth-2.40.2.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google Authentication Library"
+HOMEPAGE="
+ https://github.com/googleapis/google-auth-library-python/
+ https://pypi.org/project/google-auth/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/cachetools-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aioresponses[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-38.0.3[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.0[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ dev-python/pyu2f[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' setup.py || die
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests are broken with up-to-date pyopenssl
+ tests/transport/test__mtls_helper.py::TestDecryptPrivateKey::test_success
+ )
+ local EPYTEST_IGNORE=(
+ # these are compatibility tests with oauth2client
+ # disable them to unblock removal of that package
+ tests/test__oauth2client.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ distutils_write_namespace google
+ epytest -p asyncio
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index f9be490b7186..8118b9a49d76 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -3,4 +3,5 @@ DIST hypothesis-6.131.15.gh.tar.gz 9553236 BLAKE2B 29473ae79fce7183cbaec2f936824
DIST hypothesis-6.131.18.gh.tar.gz 9553394 BLAKE2B f4a880dd4681ca59b39614e70c70ae7b5e02599c84f5eb26638f9e62b176f0ff75bec0489b7ed36e1e07b97703cf1b29d956f2debc32158d803bf442c57ac377 SHA512 ca3185e82c4b4853473d0d87c3723381a49be8dc488d0ac5af223f394af77ed46368b272cb8d991b95cf4f61dc1713109b93cc193fdebf96353e0c0099b15ad3
DIST hypothesis-6.131.19.gh.tar.gz 9553439 BLAKE2B fae594e0e8be85868f67727a7bbf79900748f682a9a7a5d38272160428d1083cda69686b35569914087965746d9e78459c73c392eafa8ccfa84f3a5362e5bdc6 SHA512 7c8d345990f13112d49870145c9abc32aef004fbbb13f64b8aa6e955406322c869e18a7bf9e19fb6aeb24266736f3ced4731fe87edc6334e9d095ed2d9dd4f57
DIST hypothesis-6.131.20.gh.tar.gz 9553957 BLAKE2B 0ffd3e0efc555ad951676ce176fd3df9fcd2fe478e0b8d3ecbacfbe2d6de5316fac2014d8ef2aee09b554bf8f8fccb488f5b8c9d0f7b89ba522c2c26cf41db6c SHA512 98722dea44641cb3969ab14521a6d4b47f8dee18a4e173172587e5ef61518c6ab2cda215a20d2a8cd28bfa835731bbec056fade62d385d02096e1a72377f97ff
+DIST hypothesis-6.131.21.gh.tar.gz 9554122 BLAKE2B 9ff54791680b31d0c035d4351a3264702e9398d52cb4469d33cb5c025badac35f950f067b300482a30ef12ba43b528654ec17592eeb4d20721d3789b32fe0438 SHA512 c3179a5bba8b698d4b4e7fe45a285b69d18f5fb2365b49cd8afdc31f2a9c0c7d906b0975bb154b233c23518a163e8a18dd6f73f88a323a5c1291e14fa9498a1d
DIST hypothesis-6.131.9.gh.tar.gz 9549949 BLAKE2B 8fb5c9b9ad2c3940671d1128980b431fd43e63e35561c53f4cb172e12313019349a9ec3f3d7ecc5c8701e1aef471a1242861a94a37767e61629a42a5bf525ed0 SHA512 345baa03d68ef615fc926d93344e4f5e6f7899f104d489ebcf127426a7b2bdf6b6ac1b19ae153b297102c3a2980fa1627ce8a900a851965b213f0bd30ff4e54c
diff --git a/dev-python/hypothesis/hypothesis-6.131.21.ebuild b/dev-python/hypothesis/hypothesis-6.131.21.ebuild
new file mode 100644
index 000000000000..5fc2ebd650ed
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.131.21.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.13t)
+ EPYTEST_DESELECT+=(
+ # TODO: missing warning
+ 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns'
+ )
+ ;&
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]'
+ hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds
+ hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence
+ hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression
+ hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types
+ hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic
+ hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense
+ hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns
+ hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope
+ hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -p rerunfailures --reruns=5 \
+ tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/isal/Manifest b/dev-python/isal/Manifest
new file mode 100644
index 000000000000..b8491670e1fa
--- /dev/null
+++ b/dev-python/isal/Manifest
@@ -0,0 +1 @@
+DIST python-isal-1.7.2.gh.tar.gz 3396847 BLAKE2B a92f2fb3bbf3786d0fdb15cf838d71dc9ae3f4870a50a6280ee31cd9f8277d603e144dd9af18d24eb98070f8368897ab2d3b7853b9a48dafbb5733c8851652be SHA512 0c97a2ec72428d522d3afd3fc109183600c33f42328c71cc78c7c4e376d4c9a8fef5287830653b280712f8a5d67f46f4088f8deb1edfb57b6f4385dcc8744d52
diff --git a/dev-python/isal/isal-1.7.2.ebuild b/dev-python/isal/isal-1.7.2.ebuild
new file mode 100644
index 000000000000..d2603da150d6
--- /dev/null
+++ b/dev-python/isal/isal-1.7.2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=python-isal-${PV}
+DESCRIPTION="Faster zlib and gzip via the ISA-L library"
+HOMEPAGE="
+ https://github.com/pycompression/python-isal/
+ https://pypi.org/project/isal/
+"
+# no tests in sdist, as of 1.7.2
+# https://github.com/pycompression/python-isal/issues/231
+SRC_URI="
+ https://github.com/pycompression/python-isal/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-libs/isa-l:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ export PYTHON_ISAL_LINK_DYNAMIC=1
+
+ # why people can't use setuptools-scm...
+ sed -i -e '/versioningit/d' setup.py || die
+ sed -i -e 's/versioningit/ignoreme/' pyproject.toml || die
+ # it is an noeol file...
+ echo >> setup.cfg || die
+ echo "version = ${PV}" >> setup.cfg || die
+ echo "__version__ = '${PV}'" > src/isal/_version.py || die
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests
+}
diff --git a/dev-python/isal/metadata.xml b/dev-python/isal/metadata.xml
new file mode 100644
index 000000000000..7ad11570cc7d
--- /dev/null
+++ b/dev-python/isal/metadata.xml
@@ -0,0 +1,9 @@
+<?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>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/jsonpickle/Manifest b/dev-python/jsonpickle/Manifest
index 230fbd4a7e39..a6fa0ca867ce 100644
--- a/dev-python/jsonpickle/Manifest
+++ b/dev-python/jsonpickle/Manifest
@@ -1 +1,2 @@
DIST jsonpickle-4.0.5.gh.tar.gz 308783 BLAKE2B 5f8a299afe9bc745882d46b36444f6f96bbef097fd78b79de1f9ecaf4cdc64811ddbf948f273eb456ed669f694204c7521140547be14f527dbcff038f4c4ad64 SHA512 ff4d252991cddb58e5c23b18ca23a24d77ea98af436eac5780df7c8c32d3083ef8291ce3688145b4aa2adcd0d19df869492761147cf32a9ff8fffd31ed5c98a8
+DIST jsonpickle-4.1.0.gh.tar.gz 309052 BLAKE2B c491c70cb77fc2871f1b07060e1a96f49612135c9f0a0f0a44793e44f3ac883223e946cf5857075d057c4095b8463f087f8c260bce3b6cf0423f8139e89dc023 SHA512 124565db38aba3d6c8869a0bdddd86725053d75fb8b143ad61a4ec36276ae7fbf8bc0369f17e2453db7dd609e69a8f746a1b34e395d369daa362bb45f80dd839
diff --git a/dev-python/jsonpickle/jsonpickle-4.1.0.ebuild b/dev-python/jsonpickle/jsonpickle-4.1.0.ebuild
new file mode 100644
index 000000000000..802a9f09cf35
--- /dev/null
+++ b/dev-python/jsonpickle/jsonpickle-4.1.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for serializing any arbitrary object graph into JSON"
+HOMEPAGE="
+ https://github.com/jsonpickle/jsonpickle/
+ https://pypi.org/project/jsonpickle/
+"
+SRC_URI="
+ https://github.com/jsonpickle/jsonpickle/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/feedparser[${PYTHON_USEDEP}]
+ dev-python/gmpy2[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/ujson[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # unpackaged bson dependency
+ tests/bson_test.py
+ )
+
+ if ! has_version "dev-python/gmpy2[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=( jsonpickle/ext/gmpy.py )
+ fi
+ if ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=( jsonpickle/ext/pandas.py )
+ fi
+
+ epytest tests
+}
+
+pkg_postinst() {
+ # Unpackaged optional backends: yajl, demjson
+ optfeature "encoding numpy-based data" dev-python/numpy
+ optfeature "encoding pandas objects" dev-python/pandas
+ optfeature "fast JSON backend" dev-python/simplejson
+}
diff --git a/dev-python/osc-lib/Manifest b/dev-python/osc-lib/Manifest
index 83434a7b2e5d..8f1458f4ea21 100644
--- a/dev-python/osc-lib/Manifest
+++ b/dev-python/osc-lib/Manifest
@@ -1 +1,2 @@
DIST osc_lib-4.0.0.tar.gz 101874 BLAKE2B a2ab33ca2b3cfe297664be940dff6a158c62de0d1c45203a1fd418fbf119d44bd52063c6d49e21cbd1afc43163d7d9bfa8d77e41b559b6e87cc0933d8da3c7b9 SHA512 bd6ccfcecb4d4a026a2900e9f472da89b3c3cbc9e0396f1f9403a8aeb4ff6756c80ba655fa7c6b0d88321ab31f05fb0db506916ab0edcc979370df76862b7c52
+DIST osc_lib-4.0.2.tar.gz 101879 BLAKE2B e89d781089f1172e04739c5412baee727f5f680414cd2546aa37899b94f07eff338e9efc0872fee9dbcd773329ebfd8f0b5a780b2de1b4b65c77cb7efd85cd17 SHA512 a27c6553c51f28839147eee5f3e475cef726c529fc180f4e9055b48212a12b264dbe153d37fd2509dbdf60be697f9b47b2376dd88825d201ed15125160ad1f11
diff --git a/dev-python/osc-lib/osc-lib-4.0.2.ebuild b/dev-python/osc-lib/osc-lib-4.0.2.ebuild
new file mode 100644
index 000000000000..a1e4da06173f
--- /dev/null
+++ b/dev-python/osc-lib/osc-lib-4.0.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A package of common support modules for writing OSC plugins"
+HOMEPAGE="
+ https://opendev.org/openstack/osc-lib/
+ https://github.com/openstack/osc-lib/
+ https://pypi.org/project/osc-lib/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/cliff-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-5.10.0[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # need to skip all tests under TestTagHelps class
+ # checks exact help message, based on another unittest runner
+ sed -e '179,$s/test_add_tag_/_&/' -i osc_lib/tests/utils/test_tags.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pybind11/Manifest b/dev-python/pybind11/Manifest
index 2364e72b8fcb..8b3281109753 100644
--- a/dev-python/pybind11/Manifest
+++ b/dev-python/pybind11/Manifest
@@ -1 +1,2 @@
DIST pybind11-2.13.6.gh.tar.gz 800804 BLAKE2B 1f2efa05727ebbcd8e439b83bacfebb21d26a6f8f719e0a627633abdcae59837936e37e6441196e097e0075c9f922048d4e88146bb627d97ada28c48165bddb7 SHA512 497c25b33b09a9c42f67131ab82e35d689e8ce089dd7639be997305ff9a6d502447b79c824508c455d559e61f0186335b54dd2771d903a7c1621833930622d1a
+DIST pybind11-3.0.0rc1.gh.tar.gz 902027 BLAKE2B 9ddc7a5307b8e2fd53d99b8f93afd960ba73c9a04dd1b89f4b53b4e80f4bede74a823643c6e40d43741321b5b73752738782c1f601158cb77a4d6f58485cb002 SHA512 e05369a1082e3980055970d8fa9dddb54f2d1d75ef1e9968f62a02d9d00b9d22109359f97fd8cc0a2a8881c8126f5820c08cd41dd29c998a1c60c6a69c9a3983
diff --git a/dev-python/pybind11/pybind11-3.0.0_rc1.ebuild b/dev-python/pybind11/pybind11-3.0.0_rc1.ebuild
new file mode 100644
index 000000000000..6ab744eced63
--- /dev/null
+++ b/dev-python/pybind11/pybind11-3.0.0_rc1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=scikit-build-core
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit cmake distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="AST-based Python refactoring library"
+HOMEPAGE="
+ https://pybind11.readthedocs.io/en/stable/
+ https://github.com/pybind/pybind11/
+ https://pypi.org/project/pybind11/
+"
+SRC_URI="
+ https://github.com/pybind/pybind11/archive/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+
+RDEPEND="
+ dev-cpp/eigen:3
+"
+BDEPEND="
+ test? (
+ <dev-cpp/catch-3:0
+ >=dev-cpp/catch-2.13.9:0
+ dev-libs/boost
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/tomlkit[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ cmake_src_prepare
+ distutils-r1_src_prepare
+
+ # https://github.com/scikit-build/scikit-build-core/issues/912
+ sed -i -e '/scikit-build-core/s:0\.11\.2:0.8:' pyproject.toml || die
+}
+
+python_configure() {
+ DISTUTILS_ARGS=(
+ # disable forced lto
+ -DHAS_FLTO=OFF
+ # https://github.com/pybind/pybind11/issues/5087
+ -DPYBIND11_FINDPYTHON=OFF
+ -DPYBIND11_INSTALL=ON
+ -DPYBIND11_TEST=OFF
+ )
+
+ local mycmakeargs=(
+ "${DISTUTILS_ARGS[@]}"
+ -DPYBIND11_TEST=$(usex test)
+ )
+ cmake_src_configure
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ # Compilation only does anything for tests
+ use test && cmake_src_compile
+}
+
+python_test() {
+ cmake_build cpptest test_cmake_build
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ cd "${BUILD_DIR}/tests" || die
+ epytest -p rerunfailures --reruns=5 "${S}/tests"
+}
+
+python_install() {
+ distutils-r1_python_install
+ cmake_src_install
+}
diff --git a/dev-python/pygobject/pygobject-3.46.0-r1.ebuild b/dev-python/pygobject/pygobject-3.46.0-r1.ebuild
index 36e62dfd6a5c..d66c8d445256 100644
--- a/dev-python/pygobject/pygobject-3.46.0-r1.ebuild
+++ b/dev-python/pygobject/pygobject-3.46.0-r1.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 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_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
inherit gnome.org meson virtualx xdg distutils-r1
diff --git a/dev-python/pygobject/pygobject-3.48.2-r1.ebuild b/dev-python/pygobject/pygobject-3.48.2-r1.ebuild
index 4d6cd11e0ef6..a193649614df 100644
--- a/dev-python/pygobject/pygobject-3.48.2-r1.ebuild
+++ b/dev-python/pygobject/pygobject-3.48.2-r1.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 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_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
inherit gnome.org meson virtualx xdg distutils-r1
diff --git a/dev-python/pygobject/pygobject-3.50.0.ebuild b/dev-python/pygobject/pygobject-3.50.0.ebuild
index ef185e534fa2..f98d734d6016 100644
--- a/dev-python/pygobject/pygobject-3.50.0.ebuild
+++ b/dev-python/pygobject/pygobject-3.50.0.ebuild
@@ -5,6 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=no
+# py3.14: https://gitlab.gnome.org/GNOME/pygobject/-/issues/694
PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
inherit gnome.org meson virtualx xdg distutils-r1
diff --git a/dev-python/pytest-codeblocks/pytest-codeblocks-0.17.0.ebuild b/dev-python/pytest-codeblocks/pytest-codeblocks-0.17.0.ebuild
index 781fbc8a5387..499e32571777 100644
--- a/dev-python/pytest-codeblocks/pytest-codeblocks-0.17.0.ebuild
+++ b/dev-python/pytest-codeblocks/pytest-codeblocks-0.17.0.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
inherit distutils-r1
diff --git a/dev-python/python-swiftclient/Manifest b/dev-python/python-swiftclient/Manifest
index 6f6177f306b3..4266b37cf2cd 100644
--- a/dev-python/python-swiftclient/Manifest
+++ b/dev-python/python-swiftclient/Manifest
@@ -1 +1,2 @@
DIST python_swiftclient-4.7.0.tar.gz 209719 BLAKE2B aa4155b1299fbd740e94509b13ba4c295375dbe45bf50c727ddc31e464fb1d25925fc6aa6c2aea8dffc97ecd435dfcf24ef36cfaecaa661555c34088c353626d SHA512 07ab49421260f4537d5a3093557e76cce05db1f4caa99cb54fd5f7fdd8129b73473566005d9f28e7b4fc86348f642f207b3f28cbab10da36f3c656001e86a61a
+DIST python_swiftclient-4.8.0.tar.gz 210041 BLAKE2B 3f1d58509dc13219092d01f9063cdeb854406072810bc1fee7a6e0ce3a4e4507feac04f4c9b9c36b1b2f7c64c90a06e8a58a630b1d1373670f5e3a11c47adf60 SHA512 2cf457184b37d1f3236b9d2b5cc86caef9578dd984a75150980c8b046d84ece1f4688aad49f5f1bdb36cd36fc69bdb8565dfdba49387d8eb667aff520af4d14e
diff --git a/dev-python/python-swiftclient/python-swiftclient-4.8.0.ebuild b/dev-python/python-swiftclient/python-swiftclient-4.8.0.ebuild
new file mode 100644
index 000000000000..0044b014e3ea
--- /dev/null
+++ b/dev-python/python-swiftclient/python-swiftclient-4.8.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings to the OpenStack Object Storage API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-swiftclient/
+ https://github.com/openstack/python-swiftclient/
+ https://pypi.org/project/python-swiftclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/keystoneauth1-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_prepare_all() {
+ sed -e 's/test_password_prompt/_&/' -i test/unit/test_shell.py || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/rpds-py/Manifest b/dev-python/rpds-py/Manifest
index 16a45605be6d..d10d94ce5ff4 100644
--- a/dev-python/rpds-py/Manifest
+++ b/dev-python/rpds-py/Manifest
@@ -41,6 +41,7 @@ DIST rpds-1.1.1.crate 75894 BLAKE2B d53d2686f3807331203213469b7558bf9db82d3ace76
DIST rpds_py-0.23.1.tar.gz 26806 BLAKE2B 33b871bf5c849d607662279182a69f8ce20b377ca26ab4b21c7c12436972a9c2b6a76448db4593ec13cf4984828a3166737e6b4861105981ed3cc056666ae75b SHA512 c3130ebe5b259cf3f2bb26d2e8f1da404cb024e0fda81c4720d3ab55ac18865646865e465475328ee6504b646bed38c27ba20b9c169392a12c3f25afb428472a
DIST rpds_py-0.24.0.tar.gz 26863 BLAKE2B c248b74cd698ba66c73e97f5b4471833b020fab56261877693e98c262e7fe59e2f31f24ca2b8b9317a82303f0f9d41a3cfcfcc718b215c681181254121646c17 SHA512 dc11c2056f049039ac4afde50176ec3ff439b6a7f1caa90e89d387b68464f0e8541bdd13c84d3616439a46e18e7259f1aa37d3d14252da2d712b302fad2da91a
DIST rpds_py-0.25.0.tar.gz 26822 BLAKE2B c969c3fe7db6c20575eca9b51b1b6684460c4c98ab902b86664a715b28b23c981a1e6f07f4820d7577e639127bc7aa8e063dfb47aef9aa2898a5ef6296671ee0 SHA512 267b72f84a77b993d7797d6d37e7b49dd450399bd1a9f83c71ddd1d51abecbffc43289cd41c72ae24f19d5909ef57ae2b9625624adc29a738cfc055dee1631d4
+DIST rpds_py-0.25.1.tar.gz 27304 BLAKE2B 4ca27f7316a95fd5cd8da3e863596b5637684e270f042c77b25770b3f708c9d2dacc4678825a1b3f713c7662bb512f09867ef2e5593171f15eaa6378cb7c2cfe SHA512 f628e36848ec247de6c9df2c5b620137842853bae0f2d2552269552822d0a1f811d531d9b61768f7e89cbe99de8e5d637912ad680d29b1f95704114bac453591
DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
DIST syn-2.0.101.crate 299250 BLAKE2B 7018cdede66dca82e7d7a7e07e52a178687957fcfd69f1a2862094497d2fb9d78ada14b94761679bbc5f6c76c808a63e948ed071e4f65c2f9580a40bf58c9426 SHA512 05e4233a51f4d229dd4c9bd23c5224c42ec5554d02fd316dad10dfdb876aa1d379c7ea30b1ace979537da91ee746ca4fdcef7690885f83fd41ec8c9dc5984101
DIST syn-2.0.69.crate 265441 BLAKE2B b01576c2c86426d2bbb2c9553dc1dce6a309d9922c35167ee6a718ad08cf3d0a22f0aed4d4c547cdbed85b47283e5b60a128fd1bbb230a6687f0c28af3a9c228 SHA512 fddc0f1ffa3e68ce57833c6ff18382296838287dd98f9f77f679ced471c3f801af30376363a870232f337bda27b3ba6ea93074f8e3c05ee390bcc024e3690bea
diff --git a/dev-python/rpds-py/rpds-py-0.25.1.ebuild b/dev-python/rpds-py/rpds-py-0.25.1.ebuild
new file mode 100644
index 000000000000..ecd3ccce46f4
--- /dev/null
+++ b/dev-python/rpds-py/rpds-py-0.25.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+CRATES="
+ archery@1.2.1
+ autocfg@1.4.0
+ cc@1.2.22
+ heck@0.5.0
+ indoc@2.0.6
+ libc@0.2.172
+ memoffset@0.9.1
+ once_cell@1.21.3
+ portable-atomic@1.11.0
+ proc-macro2@1.0.95
+ pyo3-build-config@0.25.0
+ pyo3-ffi@0.25.0
+ pyo3-macros-backend@0.25.0
+ pyo3-macros@0.25.0
+ pyo3@0.25.0
+ python3-dll-a@0.2.13
+ quote@1.0.40
+ rpds@1.1.1
+ shlex@1.3.0
+ syn@2.0.101
+ target-lexicon@0.13.2
+ triomphe@0.1.14
+ unicode-ident@1.0.18
+ unindent@0.2.4
+"
+
+RUST_MIN_VER="1.77.1"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Python bindings to Rust's persistent data structures (rpds)"
+HOMEPAGE="
+ https://github.com/crate-py/rpds/
+ https://pypi.org/project/rpds-py/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT MPL-2.0 Unicode-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
+
+export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
+
+distutils_enable_tests pytest
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 6674d05385b4..4f40a613eeb1 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -2,3 +2,5 @@ DIST sqlglot-26.17.1-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b
DIST sqlglot-26.17.1.tar.gz 5356122 BLAKE2B 7c83c2569c767a424929b0d88aa451e29f83596e3b381db9e35175488492ef1e30bc7fbf2a33a7a261c2396259db12b1cc89f07420f3e1994c416b5d891be258 SHA512 5cef50050b412baa5ef72056b377d327e6d19990de07f9b6f5d915b7bc628ee3a343fc64003e1ea3fc2555759c79662d4081d7925d3dd6b77f6c08a6507e971e
DIST sqlglot-26.18.1-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e
DIST sqlglot-26.18.1.tar.gz 5365490 BLAKE2B 35c20d42f32ac1804a9e093ef74385b88950952ba9d327411de904ff47ae42c6ac8474c6813d8bcaa98e81b8ae679f6801dc7cf004cd664dd7f8389c719bdf6d SHA512 67cb69b28a468ed393993edf3d14a927dbdbd8a455aef7979e52ef056503fd875fbe33c25aea161ef55b2dc7717cec4d5afac6f8b138ed94cd90aa7cdd4cc8cc
+DIST sqlglot-26.19.0-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e
+DIST sqlglot-26.19.0.tar.gz 5366769 BLAKE2B 69baaf162cd83814facf4ab955af8a4f941f3c20d3d2d7babb90249ee4e3ae95096bf02fcf39bf10eeff2b5e9a4c1c1789ea397b32ee2b8413d8e5948d40a508 SHA512 1aa839a43f9acdea5a45ba0c6fea473ee42d97817c51a0b106f2766fe05b5a8ac4863297649c8ab98f6db53ffdc0d00d1a3ec2fc727532d04412bdb2c8516eb6
diff --git a/dev-python/sqlglot/sqlglot-26.19.0.ebuild b/dev-python/sqlglot/sqlglot-26.19.0.ebuild
new file mode 100644
index 000000000000..745ae109fd13
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-26.19.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES=""
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+CARGO_OPTIONAL=1
+
+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? (
+ https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${PV}/${P}-crates.tar.xz
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 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"
+
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ local DISTUTILS_UPSTREAM_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/stone/Manifest b/dev-python/stone/Manifest
index 3b7db4c057fd..1bf8dddc3615 100644
--- a/dev-python/stone/Manifest
+++ b/dev-python/stone/Manifest
@@ -1,2 +1 @@
-DIST stone-3.3.8.gh.tar.gz 281200 BLAKE2B 17af8af8d5cf01483ab4f63ebb694076e675880c0374a11a4b38f02d8783a35c4b518a9109721523fb3efe5b9f6f3381f288a4e00322dfda62343f77f2768f43 SHA512 bd7cd80a44f59225cbd322e385cfc6b6eccd7e30d8e6f0939d0fd65405b75773b1bc4449f6737366d0fa481c5860931b20ffe048eff57aad34ae90be47d18020
DIST stone-3.3.9.gh.tar.gz 290882 BLAKE2B ad6e579d98b95d1828d0050ec29c53c6e5e52968def1fc10d315d311afdb8f350e9a7fd26330dce692c8f2419fe62ee22dba5ae54f0bcc91f09f51d7a7368f9c SHA512 916e8bce6e46114da8e684af25666d15257aa33bb0abb571c10f84457cfb958c309ca35bd3884f816ef8091c877e20b56b392cf5c85a760fab95f116efc7b321
diff --git a/dev-python/stone/stone-3.3.8.ebuild b/dev-python/stone/stone-3.3.8.ebuild
deleted file mode 100644
index b848c5e2dec7..000000000000
--- a/dev-python/stone/stone-3.3.8.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1
-
-DESCRIPTION="The Official Api Spec Language for Dropbox"
-HOMEPAGE="
- https://www.dropbox.com/developers
- https://github.com/dropbox/stone
- https://pypi.org/project/stone/
-"
-SRC_URI="https://github.com/dropbox/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/ply[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/stone/stone-3.3.9.ebuild b/dev-python/stone/stone-3.3.9.ebuild
index 25077a9ecd7c..655688dcbecb 100644
--- a/dev-python/stone/stone-3.3.9.ebuild
+++ b/dev-python/stone/stone-3.3.9.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
diff --git a/dev-python/survey/Manifest b/dev-python/survey/Manifest
index 2670d5cf1151..50b1b1e88e13 100644
--- a/dev-python/survey/Manifest
+++ b/dev-python/survey/Manifest
@@ -1,2 +1 @@
-DIST survey-5.3.1.gh.tar.gz 1564902 BLAKE2B de8bafd2fc5a683ca0364f9e1540e177bf2f10344406563ff3ef6723abd2c415517e72ffacccae51e1d69912b966bf678c2abc62b22545f1c5871d4f3459d121 SHA512 383d7339e93760294095881b6ebf3fd00d687210865303aa2c17a51a390f8087b8666364e0ba7b7657e009803665cf02e64f280c8a09a535ce1fa1ebeaafe963
DIST survey-5.4.2.gh.tar.gz 1565387 BLAKE2B f2e8542bb43e029ffc59335461f65d5216128273d01ff3237cf828bb5be2aac613b9872a0504186ab30b11d42438e76c16e758960ea39e686b95bfa89faa642d SHA512 3d3bf0911e1ef49814bd040bf01d3ae7024cecb5d0e20e46dcbaf6e1f8896d4cb9eeb9ed1dae7ff3431acfb706a334d6c2afa89d4f1cd9b82661a0defe53803c
diff --git a/dev-python/survey/survey-5.3.1.ebuild b/dev-python/survey/survey-5.3.1.ebuild
deleted file mode 100644
index dcb49699727d..000000000000
--- a/dev-python/survey/survey-5.3.1.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-inherit distutils-r1
-
-DESCRIPTION="A simple library for creating beautiful interactive prompts"
-HOMEPAGE="
- https://github.com/Exahilosys/survey
- https://pypi.org/project/survey/
-"
-MY_PV=${PV/_/-}
-SRC_URI="https://github.com/Exahilosys/survey/archive/v${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
-S="${WORKDIR}"/${PN}-${MY_PV}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
-"
-
-distutils_enable_sphinx docs \
- dev-python/sphinx-autodoc-typehints \
- dev-python/sphinx-paramlinks \
- dev-python/sphinx-rtd-theme
-
-src_configure() {
- distutils-r1_src_configure
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-}
diff --git a/dev-python/survey/survey-5.4.2.ebuild b/dev-python/survey/survey-5.4.2.ebuild
index dcb49699727d..323dcf82a150 100644
--- a/dev-python/survey/survey-5.4.2.ebuild
+++ b/dev-python/survey/survey-5.4.2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
DESCRIPTION="A simple library for creating beautiful interactive prompts"
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index 2542fb692cf2..8c1607072370 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1 @@
-DIST tifffile-2025.3.30.gh.tar.gz 354935 BLAKE2B f388a2db46c53aef7855f57e2e1ee04583c17b9fc5a7ce565ae5b3a2a921f80e1bfd48d03662baed9cfc8504919977748625b72c6b6ba6cc40fb9269d6be4404 SHA512 facc58da99ae0d877f0ed4ae5e7392a8e500cb7ff18fd821095af31911315f5c1c89ffe1a91d17ab24d52c714cac97ef16d59a6673953882279333f5c87bc02f
DIST tifffile-2025.5.10.gh.tar.gz 354939 BLAKE2B 421f30a95286bed985794b35d94aca1ab2c892d08c23cbb8fb6f494500e2c444e03bd3ee1a049f7d50e5d02f2ef8375c056f03405af0863fe407231b34e7a119 SHA512 edeb7367970c8218009a715c3552b28f9cbde8265727835b1eebca1756fa3c902153756adba11be7e096c9e8fa2b88bbbbdc72ad5dd4e4a06379d58ab586d3dd
diff --git a/dev-python/tifffile/tifffile-2025.3.30.ebuild b/dev-python/tifffile/tifffile-2025.3.30.ebuild
deleted file mode 100644
index 7e61f5160c1b..000000000000
--- a/dev-python/tifffile/tifffile-2025.3.30.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2021-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1
-
-DESCRIPTION="Read and write TIFF files"
-HOMEPAGE="
- https://pypi.org/project/tifffile/
- https://github.com/cgohlke/tifffile/
- https://www.cgohlke.com/
-"
-SRC_URI="
- https://github.com/cgohlke/tifffile/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/numpy-1.19.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- >=dev-python/fsspec-2021.5.0[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
- dev-python/xarray[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local -x SKIP_LARGE=1
- local -x SKIP_HTTP=1
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/tld/Manifest b/dev-python/tld/Manifest
index 54d915d2e989..1f96d2ed0cf4 100644
--- a/dev-python/tld/Manifest
+++ b/dev-python/tld/Manifest
@@ -1 +1,2 @@
+DIST tld-0.13.1.gh.tar.gz 459349 BLAKE2B 5b32729ee5b6fbb45d94091d88a6c351952b2fc3dd530e341eb54302a4f5d642858c56c226f3e48dd2c5b83ed8742fa06b6901f7b45921ea6aa7618882f64413 SHA512 5b4dbf8cdb88e62d9da6f7b084d76497637a6d144a452c749c37b6a845133ec1aeb288d599072488f59193ab21bb303a2baf4f502cd10e4b5e00db71a35ac3cd
DIST tld-0.13.gh.tar.gz 443877 BLAKE2B 9f84307ce704500096dd2abff75ead534dbd17b59ea0d3dae84394b791aeee873638e6e224ddd3b5c598293a46ead964ae36022b0c3c7411de7c64096d0c69cc SHA512 87157ca2fc8977a96f6289269015bc5a90f3f033fb8ea96552eb8d00d05a346d8f3c61123a311803aa301c735a510a2c0986364f3b2ae4366e2c34aea15b538d
diff --git a/dev-python/tld/tld-0.13.1.ebuild b/dev-python/tld/tld-0.13.1.ebuild
new file mode 100644
index 000000000000..be362b6dd600
--- /dev/null
+++ b/dev-python/tld/tld-0.13.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Extract the top level domain (TLD) from the URL given"
+HOMEPAGE="
+ https://github.com/barseghyanartur/tld/
+ https://pypi.org/project/tld/
+"
+SRC_URI="
+ https://github.com/barseghyanartur/tld/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ test? (
+ dev-python/fake-py[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # remove pytest-codeblock nonsense
+ rm conftest.py || die
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts=
+}
diff --git a/dev-python/typing-inspection/Manifest b/dev-python/typing-inspection/Manifest
index 4f5384f9ac4c..01e593440e01 100644
--- a/dev-python/typing-inspection/Manifest
+++ b/dev-python/typing-inspection/Manifest
@@ -1 +1,2 @@
DIST typing_inspection-0.4.0.tar.gz 76222 BLAKE2B 08e509950b6d71d5036d91293c6773467f0d7a09ea21a54692341eb980aee6f91b364039070bc49680f4b201fa6bc8d8211d889f9fafdc2341762559354e4e0d SHA512 95e725e7db7609406f8a63dda46ac7559adf13ef5d63e44a43966977163ff69825df465fb741d288e63ee01240dc3fe8b1314b0cd5030f2d5b08d24a739b7b02
+DIST typing_inspection-0.4.1.tar.gz 75726 BLAKE2B c0672fc3ec44921ccddd32ec614a1261606ab8c44984d890e9252b587b886189952fa578d936a621bdc78f0ad9086df7bc67280b08fb69745b0d3c4977752d75 SHA512 57be9e86b2e1d787eeda8366e0c4ffe07e87ff6a32f06e401d70d092661c663cfb989b77a1e02fa333a427b6dc32ba00118761c3aa9b30e27d0d71ef03fc1695
diff --git a/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild b/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild
new file mode 100644
index 000000000000..0e91f4a46301
--- /dev/null
+++ b/dev-python/typing-inspection/typing-inspection-0.4.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Runtime typing introspection tools"
+HOMEPAGE="
+ https://github.com/pydantic/typing-inspection/
+ https://pypi.org/project/typing-inspection/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/versioningit/versioningit-3.1.3.ebuild b/dev-python/versioningit/versioningit-3.1.3.ebuild
index 572bf62ad97a..6e6b1656c285 100644
--- a/dev-python/versioningit/versioningit-3.1.3.ebuild
+++ b/dev-python/versioningit/versioningit-3.1.3.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
inherit distutils-r1 pypi
diff --git a/dev-python/zlib-ng/Manifest b/dev-python/zlib-ng/Manifest
new file mode 100644
index 000000000000..d7ead4051870
--- /dev/null
+++ b/dev-python/zlib-ng/Manifest
@@ -0,0 +1 @@
+DIST python-zlib-ng-0.5.1.gh.tar.gz 3381700 BLAKE2B 9c9c460c60a10fa5f24816f6f4562f4feeef585c70da34bb0fe0ea2b9c43e62f19f1559a0dd74a48659b02561d3ba505fc3b1b399249a0d8d0603695f7c44db5 SHA512 98d689d6d3462310cdec4d73ec63ee2a8842b54ae5285c7765629b2385a23234bfec45207fedd1e36cca58e7388cb49c34e8bef5f4e102c61e624c80e488492e
diff --git a/dev-python/zlib-ng/metadata.xml b/dev-python/zlib-ng/metadata.xml
new file mode 100644
index 000000000000..7ad11570cc7d
--- /dev/null
+++ b/dev-python/zlib-ng/metadata.xml
@@ -0,0 +1,9 @@
+<?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>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild b/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild
new file mode 100644
index 000000000000..4860b96128f9
--- /dev/null
+++ b/dev-python/zlib-ng/zlib-ng-0.5.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=python-zlib-ng-${PV}
+DESCRIPTION="Drop-in replacement for zlib and gzip modules using zlib-ng"
+HOMEPAGE="
+ https://github.com/pycompression/python-zlib-ng/
+ https://pypi.org/project/zlib-ng/
+"
+# no tests in sdist, as of 0.5.1
+# same upstream as dev-python/isal, so let's see how that report goes:
+# https://github.com/pycompression/python-isal/issues/231
+SRC_URI="
+ https://github.com/pycompression/python-zlib-ng/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ sys-libs/zlib-ng:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_configure() {
+ export PYTHON_ZLIB_NG_LINK_DYNAMIC=1
+
+ # why people can't use setuptools-scm...
+ sed -i -e '/versioningit/d' setup.py || die
+ sed -i -e 's/versioningit/ignoreme/' pyproject.toml || die
+ echo "[metadata]" >> setup.cfg || die
+ echo "version = ${PV}" >> setup.cfg || die
+ echo "__version__ = '${PV}'" > src/zlib_ng/_version.py || die
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests
+}