summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-27 07:05:52 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-27 07:05:52 +0000
commit90275957b98718f0a44551e34d08678f1f545a88 (patch)
tree3cdd03d8a391ac0ca749f5e88af6a5329f8b59fb /dev-python
parent9f03c51a3b649a773b9a143ac179ef6306d401c0 (diff)
downloadbaldeagleos-repo-90275957b98718f0a44551e34d08678f1f545a88.tar.gz
baldeagleos-repo-90275957b98718f0a44551e34d08678f1f545a88.tar.xz
baldeagleos-repo-90275957b98718f0a44551e34d08678f1f545a88.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/Manifest1
-rw-r--r--dev-python/aiohttp/aiohttp-3.12.2.ebuild154
-rw-r--r--dev-python/ensurepip-setuptools/Manifest1
-rw-r--r--dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0.ebuild20
-rw-r--r--dev-python/inline-snapshot/Manifest1
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.23.1.ebuild61
-rw-r--r--dev-python/ipython/Manifest3
-rw-r--r--dev-python/ipython/ipython-8.35.0-r1.ebuild161
-rw-r--r--dev-python/ipython/ipython-8.36.0-r1.ebuild2
-rw-r--r--dev-python/ipython/ipython-9.0.2-r1.ebuild148
-rw-r--r--dev-python/ipython/ipython-9.1.0-r1.ebuild148
-rw-r--r--dev-python/jsonschema/Manifest1
-rw-r--r--dev-python/jsonschema/jsonschema-4.24.0.ebuild57
-rw-r--r--dev-python/jupyter-core/Manifest1
-rw-r--r--dev-python/jupyter-core/jupyter-core-5.8.0.ebuild32
-rw-r--r--dev-python/jupyterlab/Manifest1
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.4.3.ebuild78
-rw-r--r--dev-python/libtmux/Manifest1
-rw-r--r--dev-python/libtmux/libtmux-0.46.2.ebuild53
-rw-r--r--dev-python/miniupnpc/Manifest2
-rw-r--r--dev-python/miniupnpc/miniupnpc-2.3.3.ebuild52
-rw-r--r--dev-python/narwhals/Manifest1
-rw-r--r--dev-python/narwhals/narwhals-1.41.0.ebuild36
-rw-r--r--dev-python/notebook/Manifest1
-rw-r--r--dev-python/notebook/notebook-7.4.3.ebuild66
-rw-r--r--dev-python/passlib/passlib-1.7.4-r3.ebuild2
-rw-r--r--dev-python/pathable/Manifest1
-rw-r--r--dev-python/pathable/pathable-0.5.0_alpha1.ebuild31
-rw-r--r--dev-python/protobuf/protobuf-6.30.2.ebuild2
-rw-r--r--dev-python/pytest-mock/Manifest1
-rw-r--r--dev-python/pytest-mock/pytest-mock-3.14.1.ebuild53
-rw-r--r--dev-python/pytest-xdist/Manifest1
-rw-r--r--dev-python/pytest-xdist/pytest-xdist-3.7.0.ebuild43
-rw-r--r--dev-python/python-openstackclient/Manifest1
-rw-r--r--dev-python/python-openstackclient/python-openstackclient-8.1.0.ebuild60
-rw-r--r--dev-python/python-tests/Manifest3
-rw-r--r--dev-python/python-tests/python-tests-3.14.0_beta2-r100.ebuild70
-rw-r--r--dev-python/python-tests/python-tests-3.14.0_beta2.ebuild70
-rw-r--r--dev-python/readme-renderer/files/readme-renderer-44.0-test.patch95
-rw-r--r--dev-python/readme-renderer/readme-renderer-44.0.ebuild4
-rw-r--r--dev-python/selenium/selenium-4.33.0-r1.ebuild (renamed from dev-python/selenium/selenium-4.33.0.ebuild)7
-rw-r--r--dev-python/setuptools/Manifest1
-rw-r--r--dev-python/setuptools/setuptools-80.9.0.ebuild130
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-26.21.0.ebuild96
-rw-r--r--dev-python/tifffile/Manifest1
-rw-r--r--dev-python/tifffile/tifffile-2025.5.26.ebuild47
-rw-r--r--dev-python/websockify/Manifest1
-rw-r--r--dev-python/websockify/websockify-0.13.0.ebuild37
-rw-r--r--dev-python/zipp/Manifest1
-rw-r--r--dev-python/zipp/zipp-3.22.0.ebuild53
51 files changed, 1427 insertions, 468 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 5c2d5072e9ac..341298c4cb6b 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,3 +1,4 @@
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.0.tar.gz 7762804 BLAKE2B 2fa51165917038cc8442cc4dab74373b47862cc1eca54a33e2a4b0f46c0362ca984614fec8615b4d89f065af039de9576b00c1c5b566c1758d608ef1e43702dc SHA512 8b3ad37b9aa73eb8961a397cc62dadea8ff286e2de1d91d9cb94f9ac86ae0fbd0127a6fa2867710f2e9accae1093892da4b87c17d5e7c24f8031670a3585d41b
+DIST aiohttp-3.12.2.tar.gz 7780423 BLAKE2B 47c7dccb2666c4641bbcfdba4f13f2f423e84d3043163dd9c2436aa32ccb2698b2a6ceb7c0ccf5defc98c1fb5799b39849a0a25f8aa37aaa4aab186b2b936c68 SHA512 8c6aed54ae385962fb1ad34f6f80f322612d7aec6c65845c56e8047b6b4e4102f9044964ac34ed765a09799bb6753e980ce51bf8194ce2e1ec7a9d8dd7c5cbd1
diff --git a/dev-python/aiohttp/aiohttp-3.12.2.ebuild b/dev-python/aiohttp/aiohttp-3.12.2.ebuild
new file mode 100644
index 000000000000..cff1ef1629c6
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.12.2.ebuild
@@ -0,0 +1,154 @@
+# 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"
+KEYWORDS="~alpha ~amd64 ~arm ~riscv ~x86"
+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}]
+ dev-python/pkgconfig[${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() {
+ 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() {
+ local -x AIOHTTP_USE_SYSTEM_DEPS=1
+ # 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/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest
index c16387080997..5ff77ed93737 100644
--- a/dev-python/ensurepip-setuptools/Manifest
+++ b/dev-python/ensurepip-setuptools/Manifest
@@ -1,3 +1,4 @@
DIST setuptools-79.0.1-py3-none-any.whl 1256281 BLAKE2B 8ae51bdd1c0ccada116757c2bd765225fcf4bedc7ada18567ae12f09b6978cdbcddd4f635a39a5568b6d3ed4388e4f73af5c33a7060f2ac0d0907fc82d8fd74f SHA512 fef6cfc6f95a5bb7320f1680e1c665cb8d9a4e4227cde4d8aab8a50bed4bcf04320085b9d7d5343359f887008db5c5a861e57f3d08b7b0b2311a28adaeee6b4a
DIST setuptools-80.4.0-py3-none-any.whl 1200812 BLAKE2B a3487a12084fa8582f1201b6df8cdd23de5b5fc763c5df607a4ae9a688fbd8defe064865e7f03a860819cdff1bf8c8fb98e3f94408e6511709f52eb9538feaef SHA512 2348c2e181394016f23d8ab55d9bf1104f16154729dfa891c3f57cd76d4f2fa0b96cc09b61d2a2ba73ac862c79ae03a6c57850c02c0a46ec279a78dddb06c39d
DIST setuptools-80.8.0-py3-none-any.whl 1201470 BLAKE2B 7e958fecd9c9597d307d89c31e93fed5d15e505ad882c594c51482368f7227e0944b6ac02298cfcd5d126fc6c2398389843567a5a944ada5bfcd3aead0376766 SHA512 229e18dbaddd34e3a982e0ef8c6dccfa9a513164f54ff141a4ff0a0a3be25ab069766bda9eec4eea82c908506c0aa5eae271450605401f48ed8c94e54476ee0f
+DIST setuptools-80.9.0-py3-none-any.whl 1201486 BLAKE2B 79895683ef4df387aee698984dfdf13adb14314f2d0267f41291c1c1ca68f4383a4273f004b6f3457463913eb19f8d386f32e2630ceaceaaf27ef32c4f61b7ed SHA512 2a0420f7faaa33d2132b82895a8282688030e939db0225ad8abb95a47bdb87b45318f10985fc3cee271a9121441c1526caa363d7f2e4a4b18b1a674068766e87
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0.ebuild
new file mode 100644
index 000000000000..b76c3f6972d8
--- /dev/null
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-80.9.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pypi
+
+DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
+HOMEPAGE="https://pypi.org/project/setuptools/"
+SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
+S=${DISTDIR}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+src_install() {
+ insinto /usr/lib/python/ensurepip
+ doins "${A}"
+}
diff --git a/dev-python/inline-snapshot/Manifest b/dev-python/inline-snapshot/Manifest
index 4ed6eec16647..5c65903d02d6 100644
--- a/dev-python/inline-snapshot/Manifest
+++ b/dev-python/inline-snapshot/Manifest
@@ -1 +1,2 @@
DIST inline_snapshot-0.23.0.tar.gz 259375 BLAKE2B 9f14733a06d983adc7f438537180d22762009cf82756c612200ff8feaffae7f1ac3a80a19abd63b2e344e31af8b557681e76c67619611f22e09bcc86c0716e24 SHA512 dad5ae1a4f291f562267231e30ae865c854c4be6d218a47ebbfd38cc8421d8adbd4d3945cba44f6a061b562829badbe61f026ed9968857399f93483f1a392598
+DIST inline_snapshot-0.23.1.tar.gz 260658 BLAKE2B 8fdc0983232eb61842a6e6b4088bad0ce061a2e470907afb43d66fb31018911bfa1917e5415e749f0cf4384917071a275a59ba9a0ae4a3791120829caa21d647 SHA512 d4b01a41a2a2589aa4ac2c0c275dba3a2c248297fb5374410303e81e437dc1106a03f175959be7c4e190a817ac2b063e11b8f34dbd32fcb8b499bb874b8708dd
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.23.1.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.23.1.ebuild
new file mode 100644
index 000000000000..6d9befd1de87
--- /dev/null
+++ b/dev-python/inline-snapshot/inline-snapshot-0.23.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2024-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="Create and update inline snapshots in your Python tests"
+HOMEPAGE="
+ https://15r10nk.github.io/inline-snapshot/
+ https://github.com/15r10nk/inline-snapshot/
+ https://pypi.org/project/inline-snapshot/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
+ >=dev-python/executing-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8.3.4[${PYTHON_USEDEP}]
+ >=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/attrs[${PYTHON_USEDEP}]
+ >=dev-python/black-23.3.0[${PYTHON_USEDEP}]
+ >=dev-python/dirty-equals-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.75.5[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/mypy[${PYTHON_USEDEP}]
+ ' 'python*')
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-freezer-0.4.8[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.14.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-subtests-0.11.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires pyright
+ 'tests/test_typing.py::test_typing_args[pyright]'
+ 'tests/test_typing.py::test_typing_call[pyright]'
+ # TODO
+ tests/test_formating.py::test_format_command_fail
+ )
+
+ local -x COLUMNS=80
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=inline_snapshot.pytest_plugin,pytest_freezer,pytest_subtests.plugin,xdist.plugin
+ local -x PYTHONPATH=${S}/src
+ epytest -p pytest_mock
+}
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
index 11209bdb14cd..ea57d66e1896 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1,6 +1,3 @@
DIST ipython-8.34.0.tar.gz 5508477 BLAKE2B 15c34a086ff4ec48ca97624e904cc4ebf55fe180ac3a222cafeab738c6b77676417e64b560fc73f3ae32cc22875fe4e3df13f5a5f170a8104fff00629aa0100e SHA512 1ff033b5d87ce21006d90469ac06f247cdf087ddd0b74e711b957d61428ffb64a42b459b879cfed60a312edcdd710e49cd76925bd0e3b8c89d18c8c79d8686d4
-DIST ipython-8.35.0.tar.gz 5605027 BLAKE2B 4d1e65209e97b3230844ef93ca5a051c20f40e9f4c30de0ed73406319120acb2d8effa948a46ff7871ecf0503136218d21efdc8dfc44151883f68cf68a7c3338 SHA512 41734bf8d2c7c4b72c9a256c55ff8bbef4d1adf8f0537895700f9826dc016acba5f5ab174db7ede6d2f7aaef9725ccab4ae25036ef8132369e13d185e4794ad3
DIST ipython-8.36.0.tar.gz 5604997 BLAKE2B 3ba37dc146d0e7fc773fceb3f1e00257e0115661f012a5977bcab351d80d3764813aaa1172f5d0390995419eccef07e4af2530b36b62cd9b5a23606b5982afef SHA512 0418c96242e5e7247526bdad54eaf3a30fe10d01bec6cf7134948c645ab5c80ce958b7cd39f4cfde88714a2d2e1128edf8f71848c6ce4aadc9c02f7ac50c34b2
-DIST ipython-9.0.2.tar.gz 4366102 BLAKE2B 68dbe8f0decbf7637522ef3e763562a31d678b350c58fd4eee3799409f5a67b85b289b1591f01e0e509765e8cffca60717b65f62e358e7af3b60b57b0185de4a SHA512 fb3e48a3f8ffc9e4a147cb8739b2458dd280f59798b24a001f3feb177ea372284b1aabd87ce57bc9647b578a2c81a476728efcf376ce3e735cc409c40dd32eed
-DIST ipython-9.1.0.tar.gz 4373688 BLAKE2B d45595a755adf5cb49cbc0ebb762d2bb9f0218a33873a216352a81bde19c8aa11cbb7a0787d4c35fb54d3e015a8b142592512ee7a60a70464650bb72db9f73f2 SHA512 446387d581e9823c7dbfd2a8759391ddd6b25b863b2744345084c0be95b0e81bbaa7707f41b7720c6f02539133f3c3a0de6b7fffbc194559ceccf01259dfee8f
DIST ipython-9.2.0.tar.gz 4424394 BLAKE2B 3a2830461610d3139b64a848217c82f1d363ea5cadd416119a9ac56ccd494cc21738cfc87e6ac766fff28991ddad6261406e1a68a053b060165576eb1dc4c100 SHA512 06fcdb152ff15e780e182276766527a727d8dfd774e87bf5561005a5006764fd44b6da42e76c3372caa2ac7cfdbe3f083ecb3ed7b5303755d444006255cd80eb
diff --git a/dev-python/ipython/ipython-8.35.0-r1.ebuild b/dev-python/ipython/ipython-8.35.0-r1.ebuild
deleted file mode 100644
index 773c2cef31af..000000000000
--- a/dev-python/ipython/ipython-8.35.0-r1.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
-
-inherit distutils-r1 optfeature pypi virtualx
-
-DESCRIPTION="Advanced interactive shell for Python"
-HOMEPAGE="
- https://ipython.org/
- https://github.com/ipython/ipython/
- https://pypi.org/project/ipython/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
-IUSE="examples notebook nbconvert qt5 +smp test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/decorator[${PYTHON_USEDEP}]
- >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
- >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
- <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
- dev-python/stack-data[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/exceptiongroup[${PYTHON_USEDEP}]
- ' 3.10)
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.10 3.11)
-"
-
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- app-text/dvipng[truetype]
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
- dev-python/nbformat[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/pickleshare[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-RDEPEND+="
- nbconvert? (
- dev-python/nbconvert[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- $(python_gen_cond_dep '
- qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
- ' 'python*')
- $(python_gen_cond_dep '
- notebook? (
- dev-python/notebook[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/widgetsnbextension[${PYTHON_USEDEP}]
- )
- ' 3.{10..12})
- smp? (
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
- )
-"
-
-python_prepare_all() {
- # Rename the test directory to reduce sys.path pollution
- # https://github.com/ipython/ipython/issues/12892
- mv IPython/extensions/{,ipython_}tests || die
-
- distutils-r1_python_prepare_all
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
- local EPYTEST_DESELECT=(
- # TODO: looks to be a regression due to a newer dep
- IPython/core/tests/test_oinspect.py::test_class_signature
- IPython/core/tests/test_oinspect.py::test_render_signature_long
- IPython/terminal/tests/test_shortcuts.py::test_modify_shortcut_with_filters
- )
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/14244
- IPython/lib/tests/test_display.py::TestAudioDataWithoutNumpy
- )
- ;;
- python3.13)
- EPYTEST_DESELECT+=(
- # docstring mismatch?
- IPython/core/tests/test_debugger.py::IPython.core.tests.test_debugger.test_ipdb_magics
- )
- ;;
- esac
-
- # nonfatal implied by virtx
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest -p asyncio --asyncio-mode=auto ||
- die "Tests failed on ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # Create ipythonX.Y symlinks.
- # TODO:
- # 1. do we want them for pypy? No. pypy has no numpy
- # 2. handle it in the eclass instead (use _python_ln_rel).
- # With pypy not an option the dosym becomes unconditional
- dosym ../lib/python-exec/${EPYTHON}/ipython \
- /usr/bin/ipython${EPYTHON#python}
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-}
-
-pkg_postinst() {
- optfeature "code formatting" dev-python/black
- optfeature "sympyprinting" dev-python/sympy
- optfeature "cythonmagic" dev-python/cython
- optfeature "%lprun magic command" dev-python/line-profiler
- optfeature "%matplotlib magic command" dev-python/matplotlib-inline
-
- if use nbconvert; then
- if ! has_version virtual/pandoc ; then
- einfo "Node.js will be used to convert notebooks to other formats"
- einfo "like HTML. Support for that is still experimental. If you"
- einfo "encounter any problems, please use app-text/pandoc instead."
- fi
- fi
-}
diff --git a/dev-python/ipython/ipython-8.36.0-r1.ebuild b/dev-python/ipython/ipython-8.36.0-r1.ebuild
index 982e3883fca3..fde1f400be99 100644
--- a/dev-python/ipython/ipython-8.36.0-r1.ebuild
+++ b/dev-python/ipython/ipython-8.36.0-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/ipython/ipython-9.0.2-r1.ebuild b/dev-python/ipython/ipython-9.0.2-r1.ebuild
deleted file mode 100644
index 6a5a5116d3d0..000000000000
--- a/dev-python/ipython/ipython-9.0.2-r1.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
-
-inherit distutils-r1 optfeature pypi virtualx
-
-DESCRIPTION="Advanced interactive shell for Python"
-HOMEPAGE="
- https://ipython.org/
- https://github.com/ipython/ipython/
- https://pypi.org/project/ipython/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="examples notebook nbconvert qt5 +smp test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/decorator[${PYTHON_USEDEP}]
- dev-python/ipython-pygments-lexers[${PYTHON_USEDEP}]
- >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
- >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
- <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
- dev-python/stack-data[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.11)
-"
-
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- app-text/dvipng[truetype]
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
- dev-python/nbformat[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/pickleshare[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-RDEPEND+="
- nbconvert? (
- dev-python/nbconvert[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- $(python_gen_cond_dep '
- qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
- ' 'python*')
- $(python_gen_cond_dep '
- notebook? (
- dev-python/notebook[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/widgetsnbextension[${PYTHON_USEDEP}]
- )
- ' 3.{10..12})
- smp? (
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
- )
-"
-
-python_prepare_all() {
- # Rename the test directory to reduce sys.path pollution
- # https://github.com/ipython/ipython/issues/12892
- mv IPython/extensions/{,ipython_}tests || die
-
- distutils-r1_python_prepare_all
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/14244
- tests/test_display.py::TestAudioDataWithoutNumpy
- )
- ;;
- esac
-
- # nonfatal implied by virtx
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest -p asyncio --asyncio-mode=auto ||
- die "Tests failed on ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # Create ipythonX.Y symlinks.
- # TODO:
- # 1. do we want them for pypy? No. pypy has no numpy
- # 2. handle it in the eclass instead (use _python_ln_rel).
- # With pypy not an option the dosym becomes unconditional
- dosym ../lib/python-exec/${EPYTHON}/ipython \
- /usr/bin/ipython${EPYTHON#python}
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-}
-
-pkg_postinst() {
- optfeature "code formatting" dev-python/black
- optfeature "sympyprinting" dev-python/sympy
- optfeature "cythonmagic" dev-python/cython
- optfeature "%lprun magic command" dev-python/line-profiler
- optfeature "%matplotlib magic command" dev-python/matplotlib-inline
-
- if use nbconvert; then
- if ! has_version virtual/pandoc ; then
- einfo "Node.js will be used to convert notebooks to other formats"
- einfo "like HTML. Support for that is still experimental. If you"
- einfo "encounter any problems, please use app-text/pandoc instead."
- fi
- fi
-}
diff --git a/dev-python/ipython/ipython-9.1.0-r1.ebuild b/dev-python/ipython/ipython-9.1.0-r1.ebuild
deleted file mode 100644
index 747b10815925..000000000000
--- a/dev-python/ipython/ipython-9.1.0-r1.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
-
-inherit distutils-r1 optfeature pypi virtualx
-
-DESCRIPTION="Advanced interactive shell for Python"
-HOMEPAGE="
- https://ipython.org/
- https://github.com/ipython/ipython/
- https://pypi.org/project/ipython/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="examples notebook nbconvert qt5 +smp test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/decorator[${PYTHON_USEDEP}]
- dev-python/ipython-pygments-lexers[${PYTHON_USEDEP}]
- >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
- >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
- <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
- dev-python/stack-data[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.11)
-"
-
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- app-text/dvipng[truetype]
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
- dev-python/nbformat[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/pickleshare[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-RDEPEND+="
- nbconvert? (
- dev-python/nbconvert[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- $(python_gen_cond_dep '
- qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
- ' 'python*')
- $(python_gen_cond_dep '
- notebook? (
- dev-python/notebook[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/widgetsnbextension[${PYTHON_USEDEP}]
- )
- ' 3.{10..12})
- smp? (
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
- )
-"
-
-python_prepare_all() {
- # Rename the test directory to reduce sys.path pollution
- # https://github.com/ipython/ipython/issues/12892
- mv IPython/extensions/{,ipython_}tests || die
-
- distutils-r1_python_prepare_all
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/14244
- tests/test_display.py::TestAudioDataWithoutNumpy
- )
- ;;
- esac
-
- # nonfatal implied by virtx
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest -p asyncio --asyncio-mode=auto ||
- die "Tests failed on ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # Create ipythonX.Y symlinks.
- # TODO:
- # 1. do we want them for pypy? No. pypy has no numpy
- # 2. handle it in the eclass instead (use _python_ln_rel).
- # With pypy not an option the dosym becomes unconditional
- dosym ../lib/python-exec/${EPYTHON}/ipython \
- /usr/bin/ipython${EPYTHON#python}
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-}
-
-pkg_postinst() {
- optfeature "code formatting" dev-python/black
- optfeature "sympyprinting" dev-python/sympy
- optfeature "cythonmagic" dev-python/cython
- optfeature "%lprun magic command" dev-python/line-profiler
- optfeature "%matplotlib magic command" dev-python/matplotlib-inline
-
- if use nbconvert; then
- if ! has_version virtual/pandoc ; then
- einfo "Node.js will be used to convert notebooks to other formats"
- einfo "like HTML. Support for that is still experimental. If you"
- einfo "encounter any problems, please use app-text/pandoc instead."
- fi
- fi
-}
diff --git a/dev-python/jsonschema/Manifest b/dev-python/jsonschema/Manifest
index c798ac3628ab..b61047edfd5f 100644
--- a/dev-python/jsonschema/Manifest
+++ b/dev-python/jsonschema/Manifest
@@ -1 +1,2 @@
DIST jsonschema-4.23.0.tar.gz 325778 BLAKE2B ccfcfa2b8f27e1d1f3a7d282f4701b04e3711bb57853f5f252ea286bb240395814c33219fff1b2bea661f462d1fc20fcf7d919fe85593d2e1dd89ac289f18ced SHA512 3bc3f7c4bb22dc0233bf99ca5cb8e22002cc3b097c7ae8a78c83ae106e4791dcaca228a6830074b1c42312889374b66c1f5390932768110a1e453babd7302bf9
+DIST jsonschema-4.24.0.tar.gz 353480 BLAKE2B d063c9e55f25472b403645f9b274b8274cbaeca68f9cd1c88867431d05fca07a5885b805a7e91bd82f30cc6bc76dd44a2c561c0a69e5f1847dcea5a3ecbf90c2 SHA512 64840a1c989874fbdda2a996288ac0c5f46fe1ae9d5254eface832326b49d0090f33c3a06de952965b910eb8857daf9548e790de604abaf9cea588c8e3d89234
diff --git a/dev-python/jsonschema/jsonschema-4.24.0.ebuild b/dev-python/jsonschema/jsonschema-4.24.0.ebuild
new file mode 100644
index 000000000000..49d4e04aab33
--- /dev/null
+++ b/dev-python/jsonschema/jsonschema-4.24.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-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="An implementation of JSON-Schema validation for Python"
+HOMEPAGE="
+ https://pypi.org/project/jsonschema/
+ https://github.com/python-jsonschema/jsonschema/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-specifications-2023.03.6[${PYTHON_USEDEP}]
+ >=dev-python/referencing-0.28.4[${PYTHON_USEDEP}]
+ >=dev-python/rpds-py-0.7.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ test? (
+ !!dev-python/shiboken6
+ )
+"
+
+# formatter deps
+RDEPEND+="
+ dev-python/fqdn[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/isoduration[${PYTHON_USEDEP}]
+ >=dev-python/jsonpointer-1.13[${PYTHON_USEDEP}]
+ dev-python/rfc3339-validator[${PYTHON_USEDEP}]
+ dev-python/rfc3986-validator[${PYTHON_USEDEP}]
+ dev-python/rfc3987[${PYTHON_USEDEP}]
+ dev-python/uri-template[${PYTHON_USEDEP}]
+ >=dev-python/webcolors-24.6.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # requires pip, does not make much sense for the users
+ jsonschema/tests/test_cli.py::TestCLIIntegration::test_license
+ # fragile warning tests
+ jsonschema/tests/test_deprecations.py
+ # wtf?
+ jsonschema/tests/test_jsonschema_test_suite.py::test_suite_bug
+)
diff --git a/dev-python/jupyter-core/Manifest b/dev-python/jupyter-core/Manifest
index d0fffd3eeb2c..dbf22df4648d 100644
--- a/dev-python/jupyter-core/Manifest
+++ b/dev-python/jupyter-core/Manifest
@@ -1 +1,2 @@
DIST jupyter_core-5.7.2.tar.gz 87629 BLAKE2B b8d460f239419c7f648a856e55e1570646b6a6cd38ee900bbeac0aa64965f8868a88be20f6b890f2f424f0752f0da44d79abd0b3d18d275ac3f9c574ad7d18b4 SHA512 1eb4766dbc10afdcbc469853b391a88a2551a0ee2b2a3f93a316b407371ca10f546746aa4a327f8c0423cc10e4de022630c04ca7547dcf7ee8d9a911e9a0e572
+DIST jupyter_core-5.8.0.tar.gz 88884 BLAKE2B 1c3885308217fbedf62dfb5987d0da101e0868d71266afeee7cb23bd42096d295e402064ec86ed4d4bbb34fcde2fd143ad77757fc2407d2a4ba699dd94ea0062 SHA512 ef85915fcb64b7ebf5e43b1e975826a16a619dc5860223043caf9e9ee1518e7e387f6eaf1c02ff4207f37e5caec092c87b4328566732c6ffe48eeab017955c0d
diff --git a/dev-python/jupyter-core/jupyter-core-5.8.0.ebuild b/dev-python/jupyter-core/jupyter-core-5.8.0.ebuild
new file mode 100644
index 000000000000..1f4afb612c6a
--- /dev/null
+++ b/dev-python/jupyter-core/jupyter-core-5.8.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-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="Core common functionality of Jupyter projects"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/jupyter_core/
+ https://pypi.org/project/jupyter-core/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/platformdirs-2.5[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.11.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/jupyterlab/Manifest b/dev-python/jupyterlab/Manifest
index de67ee13a270..86ea58b1133a 100644
--- a/dev-python/jupyterlab/Manifest
+++ b/dev-python/jupyterlab/Manifest
@@ -1,2 +1,3 @@
DIST jupyterlab-4.3.7.tar.gz 21827544 BLAKE2B 6aa1886b3fa9e67c8e4978e90cf5b0e84466de15ad5dfa90c07913e1141b5c24b755f9374b34b9b9bcbd6f712f3d58b72d259e969c91263859ff7e16358a296b SHA512 57301337c8ebfc22b6ad8c09468b2f2642785967f20b74060e5ee50b0a3e1eb778f92d8179535dde5564c56b34102d096c4eee05f3fd3c6f6edbcf830f2765ed
DIST jupyterlab-4.4.2.tar.gz 23030818 BLAKE2B 627a755b89541de1cf0b69b76bf01dee940bfe1edc0585e875a34d594044749c633e70dd044e8d0e69dc196a7e247021098210a25e0c535193008631e885a396 SHA512 4883ea8217fb4938233631310abeec38d1e0d074cce3997ee1b604c156ac408820238409a50de6abc85d7351c3e52369d8f625b5095cc690937ff310262b33a8
+DIST jupyterlab-4.4.3.tar.gz 23032376 BLAKE2B 5cf0cbe4f7ba009da2bbb59568be159e142a5ba71795556bd8ce4e92674e3fba58fc9ffb0504be6e419ad4eabd8ce70af23672794ca6c2a93f1e49d460cd2944 SHA512 07e013eff2e6a3de0214a3f5c2a001152d13f7501e015571716e42132fd9d3eb15e9e6b8182961022539564a5062e7ddad309db207dca0702c9516bc2910a6c0
diff --git a/dev-python/jupyterlab/jupyterlab-4.4.3.ebuild b/dev-python/jupyterlab/jupyterlab-4.4.3.ebuild
new file mode 100644
index 000000000000..55bb81700775
--- /dev/null
+++ b/dev-python/jupyterlab/jupyterlab-4.4.3.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-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 xdg
+
+DESCRIPTION="JupyterLab computational environment"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyterlab/jupyterlab/
+ https://pypi.org/project/jupyterlab/
+"
+
+LICENSE="BSD MIT GPL-3 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.5.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-41.1.0[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+ net-libs/nodejs[npm]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ >=dev-python/pytest-jupyter-0.5.3[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-cache[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # These tests call npm and want internet
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_uninstall_core_extension
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned_folder
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom_minimal_core_config
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_check
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_clear
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_build
+)
+
+EPYTEST_IGNORE=(
+ jupyterlab/tests/test_announcements.py
+)
+
+distutils_enable_tests pytest
+# TODO: package sphinx_copybutton
+#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index 51e36db00bdc..387e1fe44451 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -6,3 +6,4 @@ DIST libtmux-0.44.2.gh.tar.gz 326828 BLAKE2B ac2441ac13157bdce2465b1388f3e1570eb
DIST libtmux-0.45.0.gh.tar.gz 329763 BLAKE2B 3c8184b9e7ab874b4a85e3d3c3be3e96e48bfb14a02bf26a683062374c0a5258d911026a8c994639514668c775ab3855201d1daa466a20041635aeb978cffe24 SHA512 e1f921bddabcc26f034c331d3b9e7082c3d6d4cdbd8f0173e1499d8a05fd80ca79317409b29cb9ac95827ccb6e9127c58dffa6198ea5a2dee547fdaef23ba2ee
DIST libtmux-0.46.0.gh.tar.gz 337117 BLAKE2B 23caa10584c943ee1e7c162ce97d9d18d297a52fa15a4ac66be2e29314499d2f99bfa5a3061cef6ad80dc94ba8bf9362725d92e74385973aa717849a78388ac4 SHA512 4143639f0219c5751e69718d79c08efec8f9a6f5229aa48f6a7f7fe6c32486ee4b92f6d962fa6ef8f396852a688e373daf0d416f29b95036d015b3fcbba063a9
DIST libtmux-0.46.1.gh.tar.gz 337302 BLAKE2B b0e086aab882c9ec82ee5606a7ea02e81a549d3009bf8b0f4bc736d8ba8cc7130afd024781c95e332527bdb72202346558d90a4989c5ff2cbb7f6836960e88ef SHA512 41b526d40373d1251260cea8e4fc94cb176275f2c399030b66266663e831f733fb017bebc32e92b9809212c064b21e539853ec780b8f75f0afe01db8b5cb2236
+DIST libtmux-0.46.2.gh.tar.gz 350347 BLAKE2B b771eb8e0fc48082ec7e08d82143c48c0df51bb0f5cc2783df4969a78cbfb232aef76e9ec3b44e728a49651c892cfec6b4623297fc7c5cf8f7cf96453b04aba4 SHA512 60ca1e3699ce6fb5bb0b44ef6ef7349b96c9b1eec8f3761e6da94cd69fc9088a25d717271d34350b79b4139c4607ee37933370d83d6645462b34caa02f65bb07
diff --git a/dev-python/libtmux/libtmux-0.46.2.ebuild b/dev-python/libtmux/libtmux-0.46.2.ebuild
new file mode 100644
index 000000000000..a96cba189ffe
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.46.2.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=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Typed library that provides an ORM wrapper for tmux, a terminal multiplexer"
+HOMEPAGE="
+ https://libtmux.git-pull.com/
+ https://github.com/tmux-python/libtmux/
+ https://pypi.org/project/libtmux/
+"
+SRC_URI="
+ https://github.com/tmux-python/libtmux/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=app-misc/tmux-3.0a
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ local issues="https://github.com/tmux-python/libtmux/issues/"
+ sed -r -i "s|:issue:\`([[:digit:]]+)\`|\`issue \1 ${issues}\1\`|" CHANGES || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # tests/test_window.py::test_fresh_window_data fails if TMUX_PANE is set
+ # https://bugs.gentoo.org/927158
+ local -x TMUX_PANE=
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=libtmux.pytest_plugin
+
+ epytest -o addopts= -p pytest_mock -p rerunfailures --reruns=5 tests
+}
diff --git a/dev-python/miniupnpc/Manifest b/dev-python/miniupnpc/Manifest
index b071cd2c53f3..248c5eebfe23 100644
--- a/dev-python/miniupnpc/Manifest
+++ b/dev-python/miniupnpc/Manifest
@@ -1,2 +1,4 @@
DIST miniupnpc-2.3.2.tar.gz 140137 BLAKE2B 3c9928b06a26ebc023c0e0f740c91803e1e08ff1603916ca77ae959b6ba436016754754f3718add0138cfa82116363981ee95798e72f03457f7ef8aa9945c813 SHA512 c20a74cd5f1b8fcf8663c50565b7d62da4d9231a2a26c20e2a322a0e6874b31155c5c8f0571eb2af142adeb5892693f92e42539bae8c20c50f1e1903b1c098ce
DIST miniupnpc-2.3.2.tar.gz.sig 543 BLAKE2B e15ff3a1cf923fe5790e6d84ebf7ed685ec5bd9e370cebffc44fe1b3fff643bc791f099f4ca42c8e18d10180b21f57d3e4d458a657be02d0cc7c588d364ad2dd SHA512 05cd7fbfc55adb453bcc82ffaff544612f6f063c53b0a683bf942f8e21afa193f75b3506c71e5a4eb23d6f2921379747640f6058d9b9f8a69fbe43951f731e27
+DIST miniupnpc-2.3.3.tar.gz 141281 BLAKE2B 3f20f13c5b4056be1f61dfcfc3c8a8ece65cd6377d8c2a96c2bc937932f7d084820f43f0c4a7c05f1676347c558ee6edea77df9552ed0f13232338114bd910c3 SHA512 a4ac76ae4dac73773b68f4af81f8f8502d168122e16313c986b7fa7cdea02ded0e722a6dd6c8dc8633f167e04b8df1ed6f7202db0d76438c4010780c48e5594c
+DIST miniupnpc-2.3.3.tar.gz.sig 543 BLAKE2B ef45851a5e372780e6bbefd81662aa29f5498ca17301f7638ddd497d9816d4a47d36616e5dd98e6cbce61ce1291b00b2734a39e2c9683d99b2a82ace9d6cefc3 SHA512 003fd05a59a9519679f5baad5775c02a64e697150d7ff71bdf0267a803ff2e4585a2c15acd3f87f9543d04eec78288e8e03840faee9e6f5edec9b6eab0310520
diff --git a/dev-python/miniupnpc/miniupnpc-2.3.3.ebuild b/dev-python/miniupnpc/miniupnpc-2.3.3.ebuild
new file mode 100644
index 000000000000..f3dc4259c0bb
--- /dev/null
+++ b/dev-python/miniupnpc/miniupnpc-2.3.3.ebuild
@@ -0,0 +1,52 @@
+# 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 verify-sig
+
+MY_P=${P/python-}
+DESCRIPTION="Python bindings for UPnP client library"
+HOMEPAGE="
+ http://miniupnp.free.fr/
+ https://miniupnp.tuxfamily.org/
+ https://github.com/miniupnp/miniupnp/
+"
+SRC_URI="
+ https://miniupnp.tuxfamily.org/files/${MY_P}.tar.gz
+ verify-sig? (
+ https://miniupnp.tuxfamily.org/files/${MY_P}.tar.gz.sig
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+DEPEND="
+ >=net-libs/miniupnpc-${PV}:0=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ verify-sig? ( sec-keys/openpgp-keys-miniupnp )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/miniupnp.asc
+
+PATCHES=(
+ "${FILESDIR}"/miniupnpc-2.2.3-shared-lib.patch
+)
+
+# DOCS are installed by net-libs/miniupnpc.
+DOCS=()
+
+# Example test command:
+# python -c 'import miniupnpc; u = miniupnpc.UPnP(); u.discover(); u.selectigd(); print(u.externalipaddress())'
+distutils_enable_tests import-check
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index c2e372bc0706..48459254d9b1 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -1,2 +1,3 @@
DIST narwhals-1.39.1.tar.gz 484444 BLAKE2B a3e1913a99fbe2602cdc9f6a1ae6c218e66f053365b68e682a2d32d60d600986bcdb1fddfa4b7fd7c2910bf2283f7f0add47a191594e0417f090160362651aa3 SHA512 8d4a6fc5220145db0b36901366dbeaa86956b773fb94dda3d4c84ab69abfbb26a2bf1da29b8d24a1cc2c8d11c3a3b124cb7c5a5cbafabb1813bec41a77093086
DIST narwhals-1.40.0.tar.gz 487625 BLAKE2B c92c5447b2f7f782f93620b6772780e7d111795d190e593eef2820b3229165f4706b7f650d84bf55524053b884e6243cb6312df2b84d510e15fbd8d8602111c4 SHA512 820f8633a86283cd35cf4d672e1894fdbd7f7432de5b1fb03435790eaf73d714aad261c812bf8d329524f5ebabee07d8394b315de366186babe55ada18fbc18e
+DIST narwhals-1.41.0.tar.gz 488446 BLAKE2B dbf5144fd96e4a4a555c88b32bb9acbdbcb419b3c2ddb61a4283ac492c100d4eadcd76f6e286295f0575a1d0ca24247928c2b31085230b66a028bdf9c291a36d SHA512 41492fd945863b2e87440983892b81e237e7cfdab0996eba7721b69b648a1c9267b21499494630750424dabbf50b5a5d756ae25ed76ec96346038715da2aaf85
diff --git a/dev-python/narwhals/narwhals-1.41.0.ebuild b/dev-python/narwhals/narwhals-1.41.0.ebuild
new file mode 100644
index 000000000000..8422b7e22466
--- /dev/null
+++ b/dev-python/narwhals/narwhals-1.41.0.ebuild
@@ -0,0 +1,36 @@
+# 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} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extremely lightweight compatibility layer between dataframe libraries"
+HOMEPAGE="
+ https://github.com/narwhals-dev/narwhals/
+ https://pypi.org/project/narwhals/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+BDEPEND="
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pyarrow[${PYTHON_USEDEP}]
+ dev-python/pytest-env[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow"
+}
diff --git a/dev-python/notebook/Manifest b/dev-python/notebook/Manifest
index 0d90e0f9b97d..0d1de285255d 100644
--- a/dev-python/notebook/Manifest
+++ b/dev-python/notebook/Manifest
@@ -1,2 +1,3 @@
DIST notebook-7.3.3.tar.gz 12758099 BLAKE2B e5e988a166b5124f95cc050a4d9402778108c084325024c8ed3829780665d7149a06cccd4ab80d33e572b0b98d9088751d2a9313f10a940e8d82b5eb14db25f3 SHA512 e0f476c5a91edba48dc43b25417946983c46d5b4beaac6531ebf7af02bc4a9f2bae09b7d7524d7ad6e33c262769c1dc40c36f4593cfc70b8c98f41f40a75f8a2
DIST notebook-7.4.2.tar.gz 13881273 BLAKE2B 3debd1d9d3bb1f7f5ca20ab8dc0af43fe6c137db3a58a3bdbf371b09e4bb9aa69c13f17f6662e87e6eb79dd2f60c975f2fe139e6f990a53f67c9ace3cf15b692 SHA512 286b6f93398f34c4dcb4beb92bfb27be0045084294677c1be9fb0a7c8bd454a000851b26df22f97adf7c0719cb55d2dd10fa7c33decbb268da6e745a7e468c2d
+DIST notebook-7.4.3.tar.gz 13881668 BLAKE2B 4d2a3645986ccc90d08d0437e52b32657bb850b860dadc35439343612a518b0e17fed7e12721684dea439c4a21eb27bc2a24a6c6ea9fc53b8301ee561faccc2a SHA512 444b91793705ca97053da8d1feb8d7ecf343d44f09e872c37e1a165cfa849c068a4f76b47a4bd2056b41d7f29616f564038460caa40228be31d0f9a0081be4f7
diff --git a/dev-python/notebook/notebook-7.4.3.ebuild b/dev-python/notebook/notebook-7.4.3.ebuild
new file mode 100644
index 000000000000..9a4e72dd353c
--- /dev/null
+++ b/dev-python/notebook/notebook-7.4.3.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-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 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi xdg-utils
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/notebook/
+ https://pypi.org/project/notebook/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-4.4.3[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-4.5[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ <dev-python/notebook-shim-0.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-4.4[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-4.5[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/nbval[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-unixsocket[${PYTHON_USEDEP}]
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/dev-python/passlib/passlib-1.7.4-r3.ebuild b/dev-python/passlib/passlib-1.7.4-r3.ebuild
index 5263ffaa8c41..3ce49005bf3e 100644
--- a/dev-python/passlib/passlib-1.7.4-r3.ebuild
+++ b/dev-python/passlib/passlib-1.7.4-r3.ebuild
@@ -45,7 +45,7 @@ python_test() {
)
case ${EPYTHON} in
- python3.13)
+ python3.13*|python3.14*)
EPYTEST_DESELECT+=(
# crypt module has been removed, so the platform backend
# does not work anymore
diff --git a/dev-python/pathable/Manifest b/dev-python/pathable/Manifest
index 987d500387e5..9bad37ff0cbb 100644
--- a/dev-python/pathable/Manifest
+++ b/dev-python/pathable/Manifest
@@ -1 +1,2 @@
DIST pathable-0.4.4.gh.tar.gz 21381 BLAKE2B f0ba3579204a636948f96259bc67b3a6e923af1de7b6fcf4021152c9482f82fc362d5d50cb1bcd6b5393c49d2914c6d36e941647754ef7bc2554722ad02f38ad SHA512 4b1ec32f7e952749ec0384036e7becf5343e92cbec9160627c2a678e314d7387bd4ad56a3953171038a38102c715469e973218cb3995df414bd9dd750986e046
+DIST pathable-0.5.0a1.gh.tar.gz 30683 BLAKE2B 7416acc83d431b9140ca9ad9f54c975b18aef146bbfbf9a176c4d2d68a1732bcc9848df7324a01b09e2dceef5d09cc340e7fd805654072a3f7d402f603a6aea1 SHA512 3f3e0c43f94bd1043c5e14d4d5ba3fd5256f9e6bd295b223918af40c25494f3844f25e9f1e75acf04192b2a83f2d72a0c57631012a08759ba755cd5ff5724790
diff --git a/dev-python/pathable/pathable-0.5.0_alpha1.ebuild b/dev-python/pathable/pathable-0.5.0_alpha1.ebuild
new file mode 100644
index 000000000000..ecac4e029d05
--- /dev/null
+++ b/dev-python/pathable/pathable-0.5.0_alpha1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=${P/_alpha/a}
+DESCRIPTION="Object-oriented paths"
+HOMEPAGE="
+ https://pypi.org/project/pathable/
+ https://github.com/p1c2u/pathable
+"
+SRC_URI="
+ https://github.com/p1c2u/pathable/archive/${PV/_alpha/a}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -e '/--cov/d' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/protobuf/protobuf-6.30.2.ebuild b/dev-python/protobuf/protobuf-6.30.2.ebuild
index 4417da5d09e0..dc190c2fdb57 100644
--- a/dev-python/protobuf/protobuf-6.30.2.ebuild
+++ b/dev-python/protobuf/protobuf-6.30.2.ebuild
@@ -26,4 +26,4 @@ SRC_URI="
LICENSE="BSD"
SLOT="0/$(ver_cut 1-3)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
diff --git a/dev-python/pytest-mock/Manifest b/dev-python/pytest-mock/Manifest
index 3f7cb9be9fbf..8baf0799857a 100644
--- a/dev-python/pytest-mock/Manifest
+++ b/dev-python/pytest-mock/Manifest
@@ -1 +1,2 @@
DIST pytest-mock-3.14.0.tar.gz 32814 BLAKE2B f6e10dd6781bf10076c7c42f9cfc8cd4e4cfd3aa08030c9ad6377ee64b3386ddd190eac8bd1a912d54b5ef4aba14dfe136b3968b6ed08683dd4c4f102eaf8a26 SHA512 c60059fe8fb64540f33382e52b9015dd9771483e2074d35c02cd5852a50eed02a64e202b7e81e920bbbd0621bd23fa9bb0467d2ceef7abd582df3e27eafeaa20
+DIST pytest_mock-3.14.1.tar.gz 33241 BLAKE2B bfc638313f3169e2eb5ed69d6eaa89742cc43a39b51c2d41860848f03bbdcd062749294526cb555fafb99fadc4c566ed6cf96baf2491b74d0aec69f9d793c9ff SHA512 fff44e9520ce5cb55f259f60af5a9cc2c114e0b94d9493cd87381fc0939cfa89a6370304369ab2e5b06b3437c7525175860d35e526c2e9c84f01c0e47bab9cf9
diff --git a/dev-python/pytest-mock/pytest-mock-3.14.1.ebuild b/dev-python/pytest-mock/pytest-mock-3.14.1.ebuild
new file mode 100644
index 000000000000..3f9fe8c4a35a
--- /dev/null
+++ b/dev-python/pytest-mock/pytest-mock-3.14.1.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_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Thin-wrapper around the mock package for easier use with pytest"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-mock/
+ https://pypi.org/project/pytest-mock/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/pytest-6.2.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_mock,pytest_asyncio.plugin
+ local EPYTEST_DESELECT=()
+
+ if has_version dev-python/mock; then
+ EPYTEST_DESELECT+=(
+ tests/test_pytest_mock.py::test_standalone_mock
+ )
+ fi
+
+ epytest --assert=plain
+}
diff --git a/dev-python/pytest-xdist/Manifest b/dev-python/pytest-xdist/Manifest
index 12651f40e9a0..88c4c209d679 100644
--- a/dev-python/pytest-xdist/Manifest
+++ b/dev-python/pytest-xdist/Manifest
@@ -1 +1,2 @@
DIST pytest_xdist-3.6.1.tar.gz 84060 BLAKE2B 01392bc1f5a1587f609fc0246235457ab92ca40b3c34c660c117fae1c2b8b98dc0cde345f42951d69c3b58732e0094c7618ed570a6e3ca41165e93e2d8cf9e84 SHA512 583a78d0adc05d81458bbdd5832c239581c0fcd9cad9edfd16fa78009c005c15bffec7ed074d9e18f1542393f62d9ccb2c9e0a96d825e9cff1faec123545a2a3
+DIST pytest_xdist-3.7.0.tar.gz 87550 BLAKE2B 14a95cdc4275495cc5f5a4c3f0ce3d641b0cd043bd713b49e36b2a8c47cd3cc7d725f7c24f1394eb796df604fc0f1aa0f8a24bd243af80dc1bf2bacb685f98b4 SHA512 5c2287a29d2052544a1374c552fd0113841611a5dbd76aae5fc8cf990106734468e73df5c6fffb2134d226fa2e397ea11d505ac57493ac497dcc1f277905586f
diff --git a/dev-python/pytest-xdist/pytest-xdist-3.7.0.ebuild b/dev-python/pytest-xdist/pytest-xdist-3.7.0.ebuild
new file mode 100644
index 000000000000..d3db86fe0fab
--- /dev/null
+++ b/dev-python/pytest-xdist/pytest-xdist-3.7.0.ebuild
@@ -0,0 +1,43 @@
+# 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="Distributed testing and loop-on-failing modes"
+HOMEPAGE="
+ https://pypi.org/project/pytest-xdist/
+ https://github.com/pytest-dev/pytest-xdist/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/execnet-2.1[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/filelock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ # disable autoloading plugins in nested pytest calls
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # since we disabled autoloading, force loading necessary plugins
+ local -x PYTEST_PLUGINS=xdist.plugin,xdist.looponfail
+
+ epytest -o tmp_path_retention_count=1
+}
diff --git a/dev-python/python-openstackclient/Manifest b/dev-python/python-openstackclient/Manifest
index 53a7c9c36a56..ca4bd37a4e7a 100644
--- a/dev-python/python-openstackclient/Manifest
+++ b/dev-python/python-openstackclient/Manifest
@@ -1 +1,2 @@
DIST python_openstackclient-8.0.0.tar.gz 914450 BLAKE2B 40630fd35cee86084229a23b44810cacaa310668227ae701da147a3291ff90fc588bba2e6cbf601d3e42b4bc75ac02de128df48f46684c7b9ee9f0ee5ba6b2e5 SHA512 b9bcd9d2503e81dd52736ad225c0a5d9cc4c2193f490f91bc74e81185e0cf81431e129f16e8ce042054d9e26fb139fe536c7b56cd0242eea314db456eb28a2f9
+DIST python_openstackclient-8.1.0.tar.gz 924058 BLAKE2B aebdbe7ce6e7f4afbec6fdd4b689c7b40ff64d31c5483fe4b7f42bde9e1a1175aa8272fe17f83853f68ee5356fd53dbc6689c7c0d0e4d3add94a37ee95f25624 SHA512 3de4d5edc0f57b54a8d0c38b878f4c2a7e07dd5982c640943226123fef30c8a68322cf1f232abe02806ed0d5ea8038d818c48e2bf67194fcc46ba2f41422a843
diff --git a/dev-python/python-openstackclient/python-openstackclient-8.1.0.ebuild b/dev-python/python-openstackclient/python-openstackclient-8.1.0.ebuild
new file mode 100644
index 000000000000..d711ae9f73b0
--- /dev/null
+++ b/dev-python/python-openstackclient/python-openstackclient-8.1.0.ebuild
@@ -0,0 +1,60 @@
+# 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 client for the OpenStack APIs"
+HOMEPAGE="
+ https://opendev.org/openstack/python-openstackclient/
+ https://github.com/openstack/python-openstackclient/
+ https://pypi.org/project/python-openstackclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/osc-lib-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-3.22.0[${PYTHON_USEDEP}]
+ >=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.27.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-2.0.1[${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/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/wrapt-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Depends on a specific runner
+ sed -e 's/test_command_has_logger/_&/' \
+ -i openstackclient/tests/unit/common/test_command.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstackclient/tests/unit
+}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 1b863ec0adee..7b91b021331e 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -6,7 +6,10 @@ DIST Python-3.13.3.tar.xz 22654240 BLAKE2B 24ac47c13cbfa4dc9ce6ae4d18d7b5310f83a
DIST Python-3.13.3.tar.xz.asc 963 BLAKE2B 4a98965305b80e985512f54d9ce8ab88a74fe0d3ee48e300fbc2b4e251c0f499f4eb935e0aeb6d5ad8262338643325126f094fff926da1e2b9a2b3a2247701dc SHA512 54f8da5f4a4dcadc9830cb07aecf695a26a2de48ab98e1f42b09fdde1c70989476d07ce7ea81337216f1e5fcbf6b688e0608c88a2545ced416b01640108e94db
DIST Python-3.14.0b1.tar.xz 23358200 BLAKE2B c18329ee73545a3c50fb4d4a56c0888d19e15c9fb53e1e3b6c0bc4b9eb22fc4912f1c934dc6f0f9b24c19b187ddbc76776d84898d5fc371d740c9a499c9294c4 SHA512 46c0792fe4d7beab13403938e51cc73e4cbc90a1d0367ba106f56353fae6e93697aa08d6389fd5a1fffa71d59376aee0196aba82b2c40d2f0cf642f14eefead8
DIST Python-3.14.0b1.tar.xz.sigstore 5083 BLAKE2B 5192c84b0580af88cbac55f9bc4fb3aa4b018ae384524108bf82e69a986f21a1512bf88298549f23bf9036951bb12fd56fcdd6032f532cb9f7695dcd9baae6ea SHA512 b8f6e4b4f10b50e0d71a5eba9b9ba18660d994c8ae6aff7d46caa706738a4aca0d4f53e29c5ae668c963ec0c9531b91f77aed03c550ffafe69eb6a5a2e5f755e
+DIST Python-3.14.0b2.tar.xz 23579860 BLAKE2B bf5ebac54531a7c837e7650754264b4be28e28613d488d1c7546db77e2ef3b501ff646d7fb505c6ac0fa1381c3230d1c1899bc82144f369339c89687b5dc7f5c SHA512 cdd37f8a982e6194d5afa80a2eb94c899080809749d59a50a2ce3eed37f720a1fd9a7977f0dd3992650d173a7070b15610077d97cb499bd16a7500c56ef1f8dd
+DIST Python-3.14.0b2.tar.xz.sigstore 5131 BLAKE2B 04cab57a4da63f5abf28db94e5fd952206124ce37ef5a5d981839a0790881c9c4ea6d186f233eaaf6e82350bdfdbb0048d761b816d81eaba71c707bd9714a9d9 SHA512 a356037824fbde5950f197cf04f0d71ddaf4b68006b2ab9951f9b4c2df508e84bd0bec7d72051e75d22c17eee767e46e5d2c167e853fb941b0831cb26d518fdc
DIST python-gentoo-patches-3.11.12.tar.xz 15616 BLAKE2B 5d4a47058fc35c4ae966e3dff823f91129852bf81cd586d5b3a34a6daf672732918daf00199394f2f982411ec30a291f45bba55b3ffa3d96a179ecd600ea4647 SHA512 77973ef88403f94d55162e0138cd29b4d8959a8fcf4cec730daf7ddd8fb4a3acfcd0dd1fdaacbdd2b218bd15f6c6715ce339df4eba48227d17520243d96eeb39
DIST python-gentoo-patches-3.12.10.tar.xz 10744 BLAKE2B 2abf4874018156d6735cf8604c410dc4726ac9365bc7500abe6b82472aad100aac7268957256692f4275b02965773e58178519ed8038e121f1ffa3c53770d238 SHA512 62066405aa00f46f9645e9c747d53bb93bf510fc791d14d49e00edfd79981778e6c8e07bfa7bac88d76407a0ffd8f7321dea89f81d90b01dbf13f4d381b6a1a3
DIST python-gentoo-patches-3.13.3.tar.xz 8336 BLAKE2B 66393886fbd034eb14732e4f81f5798e77650ea3fe1c4f8176bd93808b711c8977a53c3f52be6c9b97a368299258b851d9bdb6d4c8e0c75695c6aea784d48b44 SHA512 c1ed31d6aaef81addf786c2ccc1013309b122b791c42fe10e467a677d0db8f149e8b1cc21928c146298918c7ceb851b4b19d1e59f491cb161004e1c9386db289
DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7
+DIST python-gentoo-patches-3.14.0b2.tar.xz 6168 BLAKE2B ecf2fd981efc289fbc16d615c6e69ad7a797bd6906e6f974ece47eace582d7c4b3ea0217b0df9575e522416df2749125ff3658d8aca6a53bf977d5f155dd6b90 SHA512 552ff5306ca43c89e65b1df42cb71753c7e900efc4be7e35150c187184a5e94241fea78bb9084831508fd4a7e71323be59c1565901560ec53fc076c3697baf34
diff --git a/dev-python/python-tests/python-tests-3.14.0_beta2-r100.ebuild b/dev-python/python-tests/python-tests-3.14.0_beta2-r100.ebuild
new file mode 100644
index 000000000000..2c0d382ad617
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.14.0_beta2-r100.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_beta/b}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.14.0_beta2.ebuild b/dev-python/python-tests/python-tests-3.14.0_beta2.ebuild
new file mode 100644
index 000000000000..0c38f052dfe9
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.14.0_beta2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_beta/b}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/readme-renderer/files/readme-renderer-44.0-test.patch b/dev-python/readme-renderer/files/readme-renderer-44.0-test.patch
new file mode 100644
index 000000000000..f9ed1efa8cb5
--- /dev/null
+++ b/dev-python/readme-renderer/files/readme-renderer-44.0-test.patch
@@ -0,0 +1,95 @@
+From 04d5cfe76850192364eff344be7fe27730af8484 Mon Sep 17 00:00:00 2001
+From: shenxianpeng <xianpeng.shen@gmail.com>
+Date: Sat, 18 Jan 2025 06:30:04 -0500
+Subject: [PATCH] update test outputs to fix test fail (#325)
+
+---
+ tests/fixtures/test_CommonMark_008.html | 6 +++---
+ tests/fixtures/test_GFM_doublequotes.html | 2 +-
+ tests/fixtures/test_GFM_highlight.html | 2 +-
+ tests/fixtures/test_GFM_highlight_default_py.html | 2 +-
+ tests/fixtures/test_GFM_malicious_pre.html | 2 +-
+ tests/fixtures/test_rst_008.html | 6 +++---
+ 6 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/tests/fixtures/test_CommonMark_008.html b/tests/fixtures/test_CommonMark_008.html
+index eef144d..5072058 100644
+--- a/tests/fixtures/test_CommonMark_008.html
++++ b/tests/fixtures/test_CommonMark_008.html
+@@ -1,9 +1,9 @@
+ <p>Here is some Python code for a <code>Dog</code>:</p>
+-<pre lang="python3"><span class="k">class</span> <span class="nc">Dog</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span>
+- <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
++<pre lang="python3"><span class="k">class</span><span class="w"> </span><span class="nc">Dog</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span>
++ <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
+
+- <span class="k">def</span> <span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
++ <span class="k">def</span><span class="w"> </span><span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="nb">print</span><span class="p">(</span><span class="s1">'Ruff!'</span><span class="p">)</span>
+
+ <span class="n">dog</span> <span class="o">=</span> <span class="n">Dog</span><span class="p">(</span><span class="s1">'Fido'</span><span class="p">)</span>
+diff --git a/tests/fixtures/test_GFM_doublequotes.html b/tests/fixtures/test_GFM_doublequotes.html
+index f75a4cf..b26adba 100644
+--- a/tests/fixtures/test_GFM_doublequotes.html
++++ b/tests/fixtures/test_GFM_doublequotes.html
+@@ -1,7 +1,7 @@
+ <p>This is normal text.</p>
+ <pre><code>This is code text.
+ </code></pre>
+-<pre lang="python3"><span class="k">def</span> <span class="nf">this_is_python</span><span class="p">():</span>
++<pre lang="python3"><span class="k">def</span><span class="w"> </span><span class="nf">this_is_python</span><span class="p">():</span>
+ <span class="w"> </span><span class="sd">"""This is a docstring."""</span>
+ <span class="k">pass</span>
+ </pre>
+diff --git a/tests/fixtures/test_GFM_highlight.html b/tests/fixtures/test_GFM_highlight.html
+index c2cf7bb..1eae5fd 100644
+--- a/tests/fixtures/test_GFM_highlight.html
++++ b/tests/fixtures/test_GFM_highlight.html
+@@ -1,7 +1,7 @@
+ <p>This is normal text.</p>
+ <pre><code>This is code text.
+ </code></pre>
+-<pre lang="python3"><span class="k">def</span> <span class="nf">this_is_python</span><span class="p">():</span>
++<pre lang="python3"><span class="k">def</span><span class="w"> </span><span class="nf">this_is_python</span><span class="p">():</span>
+ <span class="k">pass</span>
+ </pre>
+ <pre lang="go"><span class="kd">func</span><span class="w"> </span><span class="nx">ThisIsGo</span><span class="p">(){</span>
+diff --git a/tests/fixtures/test_GFM_highlight_default_py.html b/tests/fixtures/test_GFM_highlight_default_py.html
+index d85d6ce..d1a136f 100644
+--- a/tests/fixtures/test_GFM_highlight_default_py.html
++++ b/tests/fixtures/test_GFM_highlight_default_py.html
+@@ -1,4 +1,4 @@
+-<pre lang="python3"><span class="k">async</span> <span class="k">def</span> <span class="nf">this_is_python</span><span class="p">():</span>
++<pre lang="python3"><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">this_is_python</span><span class="p">():</span>
+ <span class="k">pass</span>
+
+ <span class="nb">print</span><span class="p">(</span><span class="k">await</span> <span class="n">this_is_python</span><span class="p">())</span>
+diff --git a/tests/fixtures/test_GFM_malicious_pre.html b/tests/fixtures/test_GFM_malicious_pre.html
+index dc7b6e6..2e586ec 100644
+--- a/tests/fixtures/test_GFM_malicious_pre.html
++++ b/tests/fixtures/test_GFM_malicious_pre.html
+@@ -1,5 +1,5 @@
+ <p>This is normal text.</p>
+-<pre lang="python3"><span class="k">def</span> <span class="nf">this_is_python</span><span class="p">():</span>
++<pre lang="python3"><span class="k">def</span><span class="w"> </span><span class="nf">this_is_python</span><span class="p">():</span>
+ <span class="w"> </span><span class="sd">"""This is a docstring."""</span>
+ <span class="k">pass</span>
+ <span class="o">&lt;</span><span class="n">script</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"text/javascript"</span><span class="o">&gt;</span><span class="n">alert</span><span class="p">(</span><span class="s1">'I am evil.'</span><span class="p">);</span><span class="o">&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
+diff --git a/tests/fixtures/test_rst_008.html b/tests/fixtures/test_rst_008.html
+index 6762f3a..bbb44a8 100644
+--- a/tests/fixtures/test_rst_008.html
++++ b/tests/fixtures/test_rst_008.html
+@@ -1,9 +1,9 @@
+ <p>Here is some Python code for a <span class="docutils literal">Dog</span>:</p>
+-<pre><code><span class="k">class</span> <span class="nc">Dog</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span><span class="w">
+-</span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span><span class="w">
++<pre><code><span class="k">class</span><span class="w"> </span><span class="nc">Dog</span><span class="p">(</span><span class="n">Animal</span><span class="p">):</span><span class="w">
++</span> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span><span class="w">
+ </span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="w">
+
+-</span> <span class="k">def</span> <span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span><span class="w">
++</span> <span class="k">def</span><span class="w"> </span><span class="nf">make_sound</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span><span class="w">
+ </span> <span class="nb">print</span><span class="p">(</span><span class="s1">'Ruff!'</span><span class="p">)</span><span class="w">
+
+ </span><span class="n">dog</span> <span class="o">=</span> <span class="n">Dog</span><span class="p">(</span><span class="s1">'Fido'</span><span class="p">)</span></code></pre>
diff --git a/dev-python/readme-renderer/readme-renderer-44.0.ebuild b/dev-python/readme-renderer/readme-renderer-44.0.ebuild
index 0951c3aac571..8cbccf7ea1cd 100644
--- a/dev-python/readme-renderer/readme-renderer-44.0.ebuild
+++ b/dev-python/readme-renderer/readme-renderer-44.0.ebuild
@@ -27,3 +27,7 @@ RDEPEND="
distutils_enable_tests pytest
DOCS=( README.rst )
+PATCHES=(
+ # https://github.com/pypa/readme_renderer/pull/325
+ "${FILESDIR}/${P}-test.patch"
+)
diff --git a/dev-python/selenium/selenium-4.33.0.ebuild b/dev-python/selenium/selenium-4.33.0-r1.ebuild
index d1c5bd987a95..ff644b178cbc 100644
--- a/dev-python/selenium/selenium-4.33.0.ebuild
+++ b/dev-python/selenium/selenium-4.33.0-r1.ebuild
@@ -35,15 +35,10 @@ RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/certifi-2025.4.26[${PYTHON_USEDEP}]
- <dev-python/trio-1[${PYTHON_USEDEP}]
>=dev-python/trio-0.30[${PYTHON_USEDEP}]
- <dev-python/trio-websocket-1[${PYTHON_USEDEP}]
>=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}]
- <dev-python/typing-extensions-5[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}]
- <dev-python/urllib3-3[${PYTHON_USEDEP}]
>=dev-python/urllib3-2.4.0[${PYTHON_USEDEP}]
- <dev-python/websocket-client-2[${PYTHON_USEDEP}]
>=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}]
"
BDEPEND="
@@ -73,6 +68,8 @@ src_prepare() {
# do not build selenium-manager implicitly
sed -e 's:\[tool\.setuptools-rust:[tool.ignore-me:' \
-i pyproject.toml || die
+ # unpin deps
+ sed -i -e 's:~=:>=:g' pyproject.toml || die
if use test; then
cd "${WORKDIR}/${TEST_P}" || die
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
index fd78e9fe49d7..87c413a46546 100644
--- a/dev-python/setuptools/Manifest
+++ b/dev-python/setuptools/Manifest
@@ -1,3 +1,4 @@
DIST setuptools-79.0.1.tar.gz 1367909 BLAKE2B d495a22753400b3b0ef71423e2c9b5adaad1a065d1f9638b5da8161b29c453495701c3efaa3abd2482777e186ba992bd7b57090dfc711d9cdfdaa8254616a8ff SHA512 5b68d7cc775f4318e178f7d7f69c60a01b1abc607411e88c88e3507a08bd85eed241b915d4be5f3ada90df4b68718056c2ba032943c1f53fe68d171c7d728179
DIST setuptools-80.4.0.tar.gz 1315008 BLAKE2B e41541fdd6e6adad6ed2f39f2c344c944336e89c24b6d9de9984c8a0234c61dba05b15df805639d380e840b0a15b98a3998c251b764340b5251624827be0934a SHA512 d4d55d9f7bdecbf26e3de6e5a99245db4b69a203a37475539ce4a3b8c6e6b9f1c47f5dc29b4d6a4dc971cabc6714ae7bc0a55f99e214d9402b47bb3dd89b58a4
DIST setuptools-80.8.0.tar.gz 1319720 BLAKE2B 0416a838d4806c646b6c957f120c0ea265b63429142de9ffa2708233f55500055f1fd5b8b8760950a73eb348ecbec2168c35d3beb1b3888de2e6df85913f5702 SHA512 e2b54c43b0925a911aee7738ca71e62e448ac5732332b375ebf5b55aeda1abfb59b06afbb40662d37b9a65f499b5a64ee2878f28e915059d4c7d0a61d408e8a1
+DIST setuptools-80.9.0.tar.gz 1319958 BLAKE2B ab367912eec92b0d1251916d09c1dd2e311767eec87225beaff870dff923b47ba1732d2f7393b7d9e55d1ff1249c612e4403019e0021048951f9fc3b775c04c9 SHA512 36eb1f219d29c6b9e135936bde2001ad70a971c8069cd0175d3a5325b450e6843a903d3f70043c9f534768ebeab8ab0c544b8f44456555d333f1ed72daa5c18b
diff --git a/dev-python/setuptools/setuptools-80.9.0.ebuild b/dev-python/setuptools/setuptools-80.9.0.ebuild
new file mode 100644
index 000000000000..8b8c38e414b5
--- /dev/null
+++ b/dev-python/setuptools/setuptools-80.9.0.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+# please bump dev-python/ensurepip-setuptools along with this package!
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-4[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.2.2[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.44.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/build-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
+ dev-python/pytest-subprocess[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+# setuptools-scm is here because installing plugins apparently breaks stuff at
+# runtime, so let's pull it early. See bug #663324.
+#
+# trove-classifiers are optionally used in validation, if they are
+# installed. Since we really oughtn't block them, let's always enforce
+# the newest version for the time being to avoid errors.
+# https://github.com/pypa/setuptools/issues/4459
+PDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ local PATCHES=(
+ # TODO: remove this when we're 100% PEP517 mode
+ "${FILESDIR}/setuptools-62.4.0-py-compile.patch"
+ # https://github.com/abravalheri/validate-pyproject/pull/221
+ "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # breaks tests
+ sed -i -e '/--import-mode/d' pytest.ini || die
+
+ # remove bundled dependencies
+ rm -r */_vendor || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # network
+ setuptools/tests/integration/test_pbr.py::test_pbr_integration
+ setuptools/tests/test_build_meta.py::test_legacy_editable_install
+ setuptools/tests/test_develop.py::TestNamespaces::test_namespace_package_importable
+ setuptools/tests/test_distutils_adoption.py
+ setuptools/tests/test_editable_install.py
+ setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
+ setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ # expects bundled deps in virtualenv
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
+ # fails if python-xlib is installed
+ setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
+ # TODO, probably some random package
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
+ # broken by unbundling
+ setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
+ # fails on normalized metadata, perhaps different dep version?
+ setuptools/tests/test_build_meta.py::TestBuildMetaBackend::test_build_with_pyproject_config
+ # TODO
+ setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist
+ # relies on -Werror
+ setuptools/_static.py::setuptools._static.Dict
+ setuptools/_static.py::setuptools._static.List
+ setuptools/tests/test_bdist_egg.py::Test::test_bdist_egg
+ # TODO
+ setuptools/dist.py::setuptools.dist.Distribution._find_pattern
+ )
+
+ local EPYTEST_XDIST=1
+ local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
+ epytest -o tmp_path_retention_policy=all \
+ -m "not uses_network" setuptools
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 15a0be193cda..5b22a767e6be 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -6,3 +6,5 @@ DIST sqlglot-26.19.0-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b
DIST sqlglot-26.19.0.tar.gz 5366769 BLAKE2B 69baaf162cd83814facf4ab955af8a4f941f3c20d3d2d7babb90249ee4e3ae95096bf02fcf39bf10eeff2b5e9a4c1c1789ea397b32ee2b8413d8e5948d40a508 SHA512 1aa839a43f9acdea5a45ba0c6fea473ee42d97817c51a0b106f2766fe05b5a8ac4863297649c8ab98f6db53ffdc0d00d1a3ec2fc727532d04412bdb2c8516eb6
DIST sqlglot-26.20.0-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e
DIST sqlglot-26.20.0.tar.gz 5367894 BLAKE2B 079f8d305a075a48d07966d01be6c200c3e7f0703fd99e2d7f572d755a0b01c10d90721ce022dcf26efbf37862436be807efc97f4c0356e28dee720bcba88793 SHA512 5ead69e2a41706ab94f17b817e55db2bc47a47aee7e49a1a53064c0525bf193c5ff3f0f6dbf2dc5734b261426757a94bebfa68aded804be2921de98b0ecfb6e9
+DIST sqlglot-26.21.0-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e
+DIST sqlglot-26.21.0.tar.gz 5368779 BLAKE2B 7db10b620179b5ec6e4a5b5af25764ab7fd3ed9ccd4d437f590c28e4f3cbc1853075e70e75d708ec92149ede85cc0c7ac4b13e59dd7e9bc853a0e18b64a02a8e SHA512 d4cd176207b63ea7099980465b33314496f080eaf10a97f49f373a1479abea648694a4145998221f7c609ea140e19063440edb5d547c003d70ce30daeb778359
diff --git a/dev-python/sqlglot/sqlglot-26.21.0.ebuild b/dev-python/sqlglot/sqlglot-26.21.0.ebuild
new file mode 100644
index 000000000000..745ae109fd13
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-26.21.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/tifffile/Manifest b/dev-python/tifffile/Manifest
index 893f39a9dcd8..e627de3897d6 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,3 @@
DIST tifffile-2025.5.10.gh.tar.gz 354939 BLAKE2B 421f30a95286bed985794b35d94aca1ab2c892d08c23cbb8fb6f494500e2c444e03bd3ee1a049f7d50e5d02f2ef8375c056f03405af0863fe407231b34e7a119 SHA512 edeb7367970c8218009a715c3552b28f9cbde8265727835b1eebca1756fa3c902153756adba11be7e096c9e8fa2b88bbbbdc72ad5dd4e4a06379d58ab586d3dd
DIST tifffile-2025.5.24.gh.tar.gz 357783 BLAKE2B f2c5bfcef2527f8a1311613386ebd4effc4ed57a04f0beef958b447eeab2c2b7ca4c0f31456504296a4c0dbbfc5fae0d90ab43f424e2501be6cbb9136de4f5e5 SHA512 d5a9fb8db81aff7457c7c7b3516edd248893295bc1f683e1f139d3447617376ffd4e2409c7c43a337bedfc259af1a2083bec00d5326106c46befff9d90d844e0
+DIST tifffile-2025.5.26.gh.tar.gz 358236 BLAKE2B 95a6b9e8d9419f539b47df7601227139b61fd889eb71455c118a8308cd1c02e1ac1ad8ec00fc413413254e96be1377a95b2142c45401fb91429021d1ce42e31b SHA512 4915c5a4ae544c2d3a96b9f928112ff662bf8709ecd4d29605ba51fd24ccf970a26b0bb660acbf33157a58470eef90f8e56a31489522c48d70513ddb984606a3
diff --git a/dev-python/tifffile/tifffile-2025.5.26.ebuild b/dev-python/tifffile/tifffile-2025.5.26.ebuild
new file mode 100644
index 000000000000..7e61f5160c1b
--- /dev/null
+++ b/dev-python/tifffile/tifffile-2025.5.26.ebuild
@@ -0,0 +1,47 @@
+# 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/websockify/Manifest b/dev-python/websockify/Manifest
index 845351217bc0..3b261dd823d7 100644
--- a/dev-python/websockify/Manifest
+++ b/dev-python/websockify/Manifest
@@ -1 +1,2 @@
DIST websockify-0.12.0.gh.tar.gz 56839 BLAKE2B d330f534dd69c186b14b14c5f29d2b4f86c1fc444fa887c04b2b9eb2beed2ed0895db029acbcd84714ce2fd6da30cc306cef4c4bb836e31a31f10dbff6dc3abd SHA512 616619a27b00af6621d9b2e3be415ff958fc226a08714302688b76690976805a22c120ff7f0eaca3d7f26fd5575971a96b5e27e5d20688c6edbb4eb84b896871
+DIST websockify-0.13.0.gh.tar.gz 57826 BLAKE2B 6555354be6314f2b3c236b57a61b5713ec3898bf77e2f7c3e1dbb1061fc586f67e2f5adb9259772d94ea67de24f4a2141ad6ba4ad1fd319a6b7e311f428a7f74 SHA512 52a6615d7a45ea12015c90e3e50fcf7338a2a67412c44bd6da4d039ebc2edc8ce1bd7a1cee977f7e2b76aaa6dccdb601851a0b9a2f49af53081c2e5b296b3062
diff --git a/dev-python/websockify/websockify-0.13.0.ebuild b/dev-python/websockify/websockify-0.13.0.ebuild
new file mode 100644
index 000000000000..c480a4b48fbf
--- /dev/null
+++ b/dev-python/websockify/websockify-0.13.0.ebuild
@@ -0,0 +1,37 @@
+# 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="WebSockets support for any application/server"
+HOMEPAGE="
+ https://github.com/novnc/websockify/
+ https://pypi.org/project/websockify/
+"
+SRC_URI="
+ https://github.com/novnc/websockify/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/jwcrypto[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/redis[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+python_install_all() {
+ doman docs/${PN}.1
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/zipp/Manifest b/dev-python/zipp/Manifest
index 7f6649408309..aff50c4409cf 100644
--- a/dev-python/zipp/Manifest
+++ b/dev-python/zipp/Manifest
@@ -1 +1,2 @@
DIST zipp-3.21.0.tar.gz 24545 BLAKE2B 3a21098768c54efb1bcb049f25a7b04a16d5f02eacc6e2107dfbc358ec3e595478b407e78fa0d831f5a8f2dadd92287812bc1259db925859aeedc1174378ab2d SHA512 f57489283d979dbeb3234f66f5b6b298876209ba79cf0d7a2562f0ce4747a87fd1494d26a35734c6729620d1edfa3bf8f56769de2ae9576ac9cff074caa39331
+DIST zipp-3.22.0.tar.gz 25257 BLAKE2B b4a6b67b428b696724354b3fcca57b6ecd7a4e65543016e3fbfe7def09fc6125245492edcd37d909c33869118017ec7875f18ef9befe459ead809629c17dae5a SHA512 fcdf53f5058a1036b5a637343d40528373147e480694f85b94d2ca030545169e8bc2271bbd2ad5779eb14841d5dd2630a829192b3ffcefddff956e81d44622a9
diff --git a/dev-python/zipp/zipp-3.22.0.ebuild b/dev-python/zipp/zipp-3.22.0.ebuild
new file mode 100644
index 000000000000..4f3f288a8e38
--- /dev/null
+++ b/dev-python/zipp/zipp-3.22.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Backport of pathlib-compatible object wrapper for zip files"
+HOMEPAGE="
+ https://github.com/jaraco/zipp/
+ https://pypi.org/project/zipp/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+
+# big_o is only used in test_complexity, that we ignore
+BDEPEND="
+ test? (
+ dev-python/jaraco-functools[${PYTHON_USEDEP}]
+ dev-python/jaraco-itertools[${PYTHON_USEDEP}]
+ dev-python/jaraco-test[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # performance tests are flaky by design
+ tests/test_complexity.py
+)
+
+src_configure() {
+ grep -q 'build-backend = "setuptools' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "zipp"
+ version = "${PV}"
+ description = "Backport of pathlib-compatible object wrapper for zip files"
+ EOF
+}