summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-18 19:14:06 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-18 19:14:06 +0000
commite6fc564c40d23f49a149fdae8513f6d0309ec47a (patch)
tree3fe00b469936a030ce8caec8af8ba21f23e4c225 /dev-python
parentba4c1875f8c9ddf19f301d06ec0b76f59ea23a2a (diff)
downloadbaldeagleos-repo-e6fc564c40d23f49a149fdae8513f6d0309ec47a.tar.gz
baldeagleos-repo-e6fc564c40d23f49a149fdae8513f6d0309ec47a.tar.xz
baldeagleos-repo-e6fc564c40d23f49a149fdae8513f6d0309ec47a.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.40.55.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.40.55.ebuild67
-rw-r--r--dev-python/cairocffi/cairocffi-1.7.1-r1.ebuild52
-rw-r--r--dev-python/contourpy/Manifest1
-rw-r--r--dev-python/contourpy/contourpy-1.3.3-r1.ebuild (renamed from dev-python/contourpy/contourpy-1.3.2.ebuild)18
-rw-r--r--dev-python/crc32c/Manifest2
-rw-r--r--dev-python/crc32c/crc32c-2.8.ebuild (renamed from dev-python/crc32c/crc32c-2.7.1.ebuild)2
-rw-r--r--dev-python/elastic-transport/Manifest1
-rw-r--r--dev-python/elastic-transport/elastic-transport-9.2.0.ebuild67
-rw-r--r--dev-python/google-api-python-client/Manifest1
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.185.0.ebuild51
-rw-r--r--dev-python/google-auth-httplib2/google-auth-httplib2-0.2.0-r1.ebuild38
-rw-r--r--dev-python/google-auth-oauthlib/google-auth-oauthlib-1.2.2.ebuild1
-rw-r--r--dev-python/google-auth/google-auth-2.41.1.ebuild14
-rw-r--r--dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-r1.ebuild40
-rw-r--r--dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild91
-rw-r--r--dev-python/ipykernel/ipykernel-7.0.1.ebuild30
-rw-r--r--dev-python/ipyparallel/Manifest1
-rw-r--r--dev-python/ipyparallel/ipyparallel-9.0.2.ebuild1
-rw-r--r--dev-python/ipywidgets/ipywidgets-8.1.7-r1.ebuild57
-rw-r--r--dev-python/jupyter-client/jupyter-client-8.6.3-r1.ebuild49
-rw-r--r--dev-python/jupyter-server-terminals/jupyter-server-terminals-0.5.3-r1.ebuild46
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.17.0-r1.ebuild (renamed from dev-python/jupyter-server/jupyter-server-2.16.0.ebuild)25
-rw-r--r--dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.15-r1.ebuild24
-rw-r--r--dev-python/libvirt-python/Manifest8
-rw-r--r--dev-python/libvirt-python/libvirt-python-11.1.0.ebuild64
-rw-r--r--dev-python/libvirt-python/libvirt-python-11.2.0.ebuild64
-rw-r--r--dev-python/libvirt-python/libvirt-python-11.6.0.ebuild2
-rw-r--r--dev-python/libvirt-python/libvirt-python-11.8.0.ebuild (renamed from dev-python/libvirt-python/libvirt-python-11.4.0.ebuild)5
-rw-r--r--dev-python/libvirt-python/libvirt-python-9999.ebuild5
-rw-r--r--dev-python/matplotlib/Manifest1
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.7.ebuild7
-rw-r--r--dev-python/moto/Manifest2
-rw-r--r--dev-python/moto/moto-5.1.15.ebuild114
-rw-r--r--dev-python/nbclient/nbclient-0.10.2-r1.ebuild47
-rw-r--r--dev-python/nbconvert/nbconvert-7.16.6-r1.ebuild80
-rw-r--r--dev-python/nest-asyncio/nest-asyncio-1.6.0-r1.ebuild36
-rw-r--r--dev-python/nvidia-ml-py/Manifest1
-rw-r--r--dev-python/nvidia-ml-py/metadata.xml20
-rw-r--r--dev-python/nvidia-ml-py/nvidia-ml-py-12.575.51.ebuild43
-rw-r--r--dev-python/proto-plus/proto-plus-1.26.1-r1.ebuild41
-rw-r--r--dev-python/pydantic/Manifest11
-rw-r--r--dev-python/pydantic/pydantic-2.11.8.ebuild71
-rw-r--r--dev-python/pydantic/pydantic-2.11.9.ebuild71
-rw-r--r--dev-python/pydantic/pydantic-2.12.0.ebuild223
-rw-r--r--dev-python/pydantic/pydantic-2.12.1.ebuild231
-rw-r--r--dev-python/pydantic/pydantic-2.12.3.ebuild (renamed from dev-python/pydantic/pydantic-2.12.2.ebuild)0
-rw-r--r--dev-python/pypresence/Manifest1
-rw-r--r--dev-python/pypresence/metadata.xml4
-rw-r--r--dev-python/pypresence/pypresence-4.6.1.ebuild24
-rw-r--r--dev-python/pytest-qt/Manifest1
-rw-r--r--dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild81
-rw-r--r--dev-python/python-ldap/Manifest1
-rw-r--r--dev-python/python-ldap/python-ldap-3.4.4.ebuild80
-rw-r--r--dev-python/python-ldap/python-ldap-3.4.5.ebuild2
-rw-r--r--dev-python/pythran/pythran-0.18.0-r1.ebuild114
-rw-r--r--dev-python/pyu2f/pyu2f-0.1.5-r1.ebuild3
-rw-r--r--dev-python/pyzotero/Manifest2
-rw-r--r--dev-python/pyzotero/pyzotero-1.7.2.ebuild49
-rw-r--r--dev-python/qtconsole/qtconsole-5.7.0.ebuild2
-rw-r--r--dev-python/qtpy/qtpy-2.4.3-r1.ebuild190
-rw-r--r--dev-python/scipy/Manifest6
-rw-r--r--dev-python/scipy/scipy-1.15.3.ebuild152
-rw-r--r--dev-python/scipy/scipy-1.16.0.ebuild174
-rw-r--r--dev-python/scipy/scipy-1.16.1.ebuild171
-rw-r--r--dev-python/scipy/scipy-1.16.2-r1.ebuild2
-rw-r--r--dev-python/scipy/scipy-1.16.2-r2.ebuild (renamed from dev-python/scipy/scipy-1.16.2.ebuild)21
-rw-r--r--dev-python/selenium/Manifest2
-rw-r--r--dev-python/selenium/selenium-4.37.0.ebuild151
-rw-r--r--dev-python/spyder-kernels/Manifest1
-rw-r--r--dev-python/spyder-kernels/spyder-kernels-3.1.1.ebuild86
-rw-r--r--dev-python/stack-data/stack-data-0.6.3-r1.ebuild45
-rw-r--r--dev-python/whitenoise/Manifest5
-rw-r--r--dev-python/whitenoise/metadata.xml6
-rw-r--r--dev-python/whitenoise/whitenoise-6.11.0.ebuild (renamed from dev-python/whitenoise/whitenoise-6.8.2.ebuild)5
-rw-r--r--dev-python/widgetsnbextension/widgetsnbextension-4.0.14-r1.ebuild30
-rw-r--r--dev-python/wrapt/Manifest1
-rw-r--r--dev-python/wrapt/wrapt-2.0.0_rc6.ebuild35
81 files changed, 1932 insertions, 1397 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index caccd6687789..59d69e323021 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -10,3 +10,4 @@ DIST boto3-1.40.51.gh.tar.gz 1009591 BLAKE2B 1b574f5c14eb8e8274f51764b587c8dc6cd
DIST boto3-1.40.52.gh.tar.gz 1010268 BLAKE2B 83b1ca1b5b65bd8e058fea5a97dc37b6bef6a4243bf0fc2cc1c6d9be1b9808852e5b854ac902e7a97ded4a65cb25279ae43ca39c179c6552b83f859522859f80 SHA512 8e18f4c9ba9101babd0ca83a7094daa1e1302ef2e46c49d67a3b61b00f89983698a0dd2632d2d566138031cf6cbe3924202b60e5aaee4a9d48ace83fa77b8e86
DIST boto3-1.40.53.gh.tar.gz 1011133 BLAKE2B c2b93b36d9ed83c442ee2f2f873668947c06f27122b77eec925ca23b52753ac2056dbfb49aed7793b95c8bba7d8bf5b19df85f9bd7160270f72039dd4c61e412 SHA512 b595ec51307c5d218a25fe88cd26f01786d4b0afb7b160f6c42f256f7fdd1789ed9a05d0b2e77c4967384413328caa7fda43981567ad562ba3230e25844f92ae
DIST boto3-1.40.54.gh.tar.gz 1012193 BLAKE2B 11f293c1a8737992b44b152db1ed3589ce76f29b22be5d043f6cced42c3134e0b788b12d1fc1c114c7e8a7a964c56fc06dd46a3356d0fdd899f257fd245e73ee SHA512 1c5162a07d731ca1cea80a2b6a5e1d1484357ad238de8108dd3d66a046f0180d4fce74cf8a2590cd6fc3baa21e4b68b196268bb9ac558e530ea6a2e0fdaaa808
+DIST boto3-1.40.55.gh.tar.gz 1013401 BLAKE2B 86de575af2244a1b6ec317dac61a71ba2b5eee42f28ca3b3d1ded552cbad10bb22e96ae6bf49212be0ee5fb220342a8829213fff9ec19ce046aae0262f791ee9 SHA512 b9fe63173e21303d688add1a519b589072313d9f62d474418a0f99eee50a92d595e36e4f1d9cd8259884c9c4c21b29c55242c9583c21b7e8a4f0bdcd76c79841
diff --git a/dev-python/boto3/boto3-1.40.55.ebuild b/dev-python/boto3/boto3-1.40.55.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.55.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.14.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index e19cc2fd034b..d86ede46fd9b 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -10,3 +10,4 @@ DIST botocore-1.40.51.gh.tar.gz 15225894 BLAKE2B c4524ecc477f6d21b87040792f4c123
DIST botocore-1.40.52.gh.tar.gz 15233376 BLAKE2B 42b98caa71139cc3893a99216caa5eb3553d37419c24ddf1f8f21798652ef7c61611d887b7b4d2d0d68a6060a7e96c2847f0858d1c9445ad224a586db864d1c2 SHA512 799393c26e105a64fb6e83259f2a4ade3fdddd334056a5bf4f77f7b51eda548687e9fe1de9dad4e95a0258302d63d84a66d2b3e0296643bd96234ec96c31ace3
DIST botocore-1.40.53.gh.tar.gz 15251620 BLAKE2B ff4e660e6b2ab94e1ddc2f7a8c9a888ebc9be3833f672e49dc7fa9960f51caddf6e1ad5d0a7453a8948bcd016f2bbe995c1a06509341713c863b64e92fef01b0 SHA512 f64a034fa916b7cd49a21a3248b888c63635bafbce3034ca1ee144f80a92ccc94ac7f51cb5a459399449259d2f20d6f39efb126d6c19aa6c8200dd87e190e772
DIST botocore-1.40.54.gh.tar.gz 15251739 BLAKE2B ca4f84e88e76bf2ea9b88833b856b4d6f19b3b973e12bb4b6ffbec2004e6586cf607f410983762d2fefdae9f7d6460abba6362dfcf46887da0acdf249260fc26 SHA512 14b995a497dc77aa8f95a51a77862d6b0a8298f1ff526bc87c4c919a1073c834efd66040ac91279eb3932b81767e09bc360cc11b80951ab3fc2d96b89382fdc2
+DIST botocore-1.40.55.gh.tar.gz 15255349 BLAKE2B 22516d43d5737d92bbead967a13b4ce72fc6d35d928f9ac6d9906505412813b1649a5b5e73d14f90d7650682568ca3545e4b4b70b9908570725f4c3e2a4adaee SHA512 175dafe4d80c9283cfd4e81d74e59ad694356438b1a32c765baa78686b2afeb3f7e6083e76cdf488efcec0fbfb26967a408cb9a9cb48d0a0feb37977254a14a6
diff --git a/dev-python/botocore/botocore-1.40.55.ebuild b/dev-python/botocore/botocore-1.40.55.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.55.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cairocffi/cairocffi-1.7.1-r1.ebuild b/dev-python/cairocffi/cairocffi-1.7.1-r1.ebuild
new file mode 100644
index 000000000000..55f4bdf24f09
--- /dev/null
+++ b/dev-python/cairocffi/cairocffi-1.7.1-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="CFFI-based drop-in replacement for Pycairo"
+HOMEPAGE="
+ https://github.com/Kozea/cairocffi/
+ https://pypi.org/project/cairocffi/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+DEPEND="
+ >=dev-python/xcffib-0.3.2[${PYTHON_USEDEP}]
+ x11-libs/cairo:0=[X,xcb(+)]
+ x11-libs/gdk-pixbuf[jpeg]
+"
+RDEPEND="
+ ${DEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.1.0:=[${PYTHON_USEDEP}]
+ ' 'python*')
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.1.0:=[${PYTHON_USEDEP}]
+ ' 'python*')
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pikepdf[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.8.0-tests.patch
+)
+
+src_test() {
+ virtx distutils-r1_src_test
+}
diff --git a/dev-python/contourpy/Manifest b/dev-python/contourpy/Manifest
index 46f729534490..245f090c36bd 100644
--- a/dev-python/contourpy/Manifest
+++ b/dev-python/contourpy/Manifest
@@ -1,2 +1 @@
-DIST contourpy-1.3.2.gh.tar.gz 13447363 BLAKE2B e2ffdca06f2304f6b38414d556d2b1f40334e5626c722a5ca6e8fd6490f28fd8dbc388eacffa1c60815553e5f5183ada2e61c08ba571dbf52add7dc3904398b6 SHA512 4948f1fc706623ec63828066efb0fa720a946e39b3d9072356dea9d27ba07fe5fa37df297a865afd4e96e43419983161e3c7a1fe75d14973460683342bea4f0c
DIST contourpy-1.3.3.gh.tar.gz 13447399 BLAKE2B 3739abeb637fc17d3ab87d419b6f2a48bf3c0faca0581884c8abcb2078383b26cea104a058d3bf0505bd3111893a1e14c3a90c27e873838711f36c21615a7c78 SHA512 b920fc30189075cb29d6af346d0b7c9038b46b03c561388652eaf0d9647cb5246894903742c230b99fe5e3e62c6a60fcb634a24c31da6930819acd2eefb5f631
diff --git a/dev-python/contourpy/contourpy-1.3.2.ebuild b/dev-python/contourpy/contourpy-1.3.3-r1.ebuild
index b277ffa68a89..c99ad389f956 100644
--- a/dev-python/contourpy/contourpy-1.3.2.ebuild
+++ b/dev-python/contourpy/contourpy-1.3.3-r1.ebuild
@@ -21,17 +21,16 @@ SRC_URI="
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"
RDEPEND="
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.25[${PYTHON_USEDEP}]
"
BDEPEND="
>=dev-python/pybind11-2.13.4[${PYTHON_USEDEP}]
test? (
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
dev-python/wurlitzer[${PYTHON_USEDEP}]
)
"
@@ -40,14 +39,11 @@ DISTUTILS_ARGS=(
-Dwerror=false
)
+EPYTEST_PLUGINS=( pytest-rerunfailures )
EPYTEST_XDIST=1
distutils_enable_tests pytest
-python_test() {
- local EPYTEST_IGNORE=(
- # linters
- tests/test_codebase.py
- )
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
+EPYTEST_IGNORE=(
+ # linters
+ tests/test_codebase.py
+)
diff --git a/dev-python/crc32c/Manifest b/dev-python/crc32c/Manifest
index af0f7686fc5b..841687fb5dea 100644
--- a/dev-python/crc32c/Manifest
+++ b/dev-python/crc32c/Manifest
@@ -1,2 +1,2 @@
DIST crc32c-2.7.1.post0.tar.gz 46574 BLAKE2B e4241f9ba5416323130b80510e5adff0f0adc3f29a3565ab62af32754d452eba90c934ead2468e0c3525fbbdb2e7742bf86130e9be86e9f08d70bc1232a8026f SHA512 d89a9b34db7b9cf9b8255105c3054b1aa4de7c391630720f4df226e4efcc6a860c3eb5b18a9e1baee8dc9422c7ffa0c2067c5700aff53d3072b47a1c3b33d864
-DIST crc32c-2.7.1.tar.gz 45712 BLAKE2B 1aec82c981aaa4ff1e0858fb60df437c9c54cec5642cf5726c202ed1a682e9cf27ee2eeb6858ef3832fcbddbe9ffc244ce9bb1c8ffeeb4135a00858db3066d2a SHA512 2240339fa6b82ac16f5e4bf70d933a65dc2d32d4cbf62daaa1ba7d3dae0194de64a6e48c62a519dcdd261178b869abc0853634c45df14d23076f08dc2535225d
+DIST crc32c-2.8.tar.gz 48179 BLAKE2B 8a4a91d068fe2baed4f4f089fef77ef9f3fd24d0e10c029500740f04b09150eeeea761fe919968253bbf83bb084a91b2ae0a0cc9f3db509701e75f67110858ab SHA512 10f139333f912d62dee4b6c21590b3182c3e6652e31aceb1bdec28ca8817ef8aa26abec3f44e6a271cb5c4f8c4abd8942b56e4642a9ab434cb41866c1ce03e19
diff --git a/dev-python/crc32c/crc32c-2.7.1.ebuild b/dev-python/crc32c/crc32c-2.8.ebuild
index 98b45c5d5506..b0f161d7609b 100644
--- a/dev-python/crc32c/crc32c-2.7.1.ebuild
+++ b/dev-python/crc32c/crc32c-2.8.ebuild
@@ -21,10 +21,10 @@ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86"
# NB: these don't affect the build, they are only used for tests
IUSE="cpu_flags_arm_crc32 cpu_flags_x86_sse4_2"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x CRC32C_SW_MODE
# force = run "software" code (i.e. unoptimized)
diff --git a/dev-python/elastic-transport/Manifest b/dev-python/elastic-transport/Manifest
index 12c083da7b59..b6c3239a6660 100644
--- a/dev-python/elastic-transport/Manifest
+++ b/dev-python/elastic-transport/Manifest
@@ -1,2 +1,3 @@
DIST elastic-transport-python-8.17.1.gh.tar.gz 77401 BLAKE2B 1660de0e941c2b387d97a1c3ce5f95b27c6219e46bf63a2cfa770a2c728b7d735c4289dbb0b758b06a9df54000fcc6b89afb906b3828e4b671a0e932884bc85d SHA512 631a9dd65ea0ea5d42de258d97b5b9582eb68a73712f6c1bcc2948c3d6198808ec68ef8a81f08dbe62b7ae1947440ea01c7303ee6e1d5dc6cd00b42373191e4d
DIST elastic-transport-python-9.1.0.gh.tar.gz 77490 BLAKE2B 018daeaf7b9e5b89bf05cdf263b5d5fcdb6cfa9dc857fbb13c6536309a8957b5cfed64a835bd6f1d06f75629899decdb6abc0fac9ef20c36e4576de1eaa3ba6e SHA512 70a7301376d8e19d3d29d118a46efe52c74bb32758572eaf007cb6018363294c3c559298c54f0a483907daac0ff8ab60fd9e5704088658d5f4955922cb998615
+DIST elastic-transport-python-9.2.0.gh.tar.gz 78196 BLAKE2B bbd44d8495f217386f85d3841237cd16b07cd9c5b1d06870f0a600e10e1275e58a76868dc62c1b9431b201b993b0d0adf9aefd2f8a2c05cdbf02026128a7c189 SHA512 f99f6890bdd7d60e2af0d01f201b55fb24477cbe47579437416d4c439ae3f61fe0968ca14c9a1720a470983a02b03c9e84869facdf3398a824f29be11242bcb5
diff --git a/dev-python/elastic-transport/elastic-transport-9.2.0.ebuild b/dev-python/elastic-transport/elastic-transport-9.2.0.ebuild
new file mode 100644
index 000000000000..e9072c930d35
--- /dev/null
+++ b/dev-python/elastic-transport/elastic-transport-9.2.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P=elastic-transport-python-${PV}
+DESCRIPTION="Transport classes and utilities shared among Python Elastic client libraries"
+HOMEPAGE="
+ https://github.com/elastic/elastic-transport-python/
+ https://pypi.org/project/elastic-transport/
+"
+SRC_URI="
+ https://github.com/elastic/elastic-transport-python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/sniffio[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.26.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-api[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-sdk[${PYTHON_USEDEP}]
+ dev-python/orjson[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/respx[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/furo \
+ dev-python/sphinx-autodoc-typehints
+EPYTEST_PLUGINS=( anyio pytest-asyncio pytest-httpbin pytest-httpserver )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fragile to random warnings
+ tests/node/test_http_aiohttp.py::TestAiohttpHttpNode::test_uses_https_if_verify_certs_is_off
+ tests/node/test_http_aiohttp.py::test_ssl_assert_fingerprint
+ tests/node/test_urllib3_chain_certs.py::test_assert_fingerprint_in_cert_chain
+ # hardcodes supported Accept-Encoding
+ # https://github.com/elastic/elastic-transport-python/issues/269
+ tests/async_/test_async_transport.py::test_async_transport_httpbin
+ tests/async_/test_httpbin.py::test_node
+)
+
+python_test() {
+ epytest -o addopts= # avoid coverage
+}
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 00abafd058a4..270932aa269b 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -2,3 +2,4 @@ DIST google_api_python_client-2.181.0.tar.gz 13545438 BLAKE2B dd661f2c7d82d695b5
DIST google_api_python_client-2.182.0.tar.gz 13599318 BLAKE2B ca1250cdac8332e7323b3a04ed9e8adb120e0125ac1159976866f89796221ee93fd298fd32fe4086bfd1bdacdd016f586d082caaad87a6104d77aecc2bb32467 SHA512 611d70d520c3e9a1c08776346d8cb06cc980dbeff9dbeee44fd8cc386996ee3af79f47bb010ed0631d2c11c58026d1e23c03f2f5b5b5bfddc3ee90b711b50ae9
DIST google_api_python_client-2.183.0.tar.gz 13645623 BLAKE2B fddadd024a6ef0424cf8a0c04f33d0bfd98485784e6e0189326b05c02772b3f3a517d1aa1be5a82b73975368e258dfa6cb2c01856bb78ece02ccb75ea5345ed7 SHA512 de2d94d1d9cacf84a2c65e8e15d53cf66b3e1a6b2fa8a1765214c96db1aec17491baa9ee6fcee9b426d9f7540dad71955f5c4464d65aaf49d775c3e27e66404b
DIST google_api_python_client-2.184.0.tar.gz 13694120 BLAKE2B be2c5e577ff24cc73d2d5676d820164934c11a399175374af61f550cb1c10291d25462fd33b49cad6e93c0e9a8f7030d7dc7d131925ac421d3939635f37f79e9 SHA512 3c7aea52cc7df0740eb88796ae6ae7f3c550bbf71e576cfef1d664baca9041f5a4157f4257da9df3b7a7c6cba61e40908c02d79740cb6f716ab83c6906050458
+DIST google_api_python_client-2.185.0.tar.gz 13885609 BLAKE2B c2afec9ced8750a605235afbd939f8a90a11e757b446eb89f6771af9aeadee9fe523c07150561aafd58d03ee0f17bb72a6fcdfd48ff73ad5f64aaa4fbc548d0d SHA512 a7eac14c644d759bcbfb2d8b9d9285c6bf28332e4ebabb904e78a8abc948b666effcd8532f5a4beb3f82b77357283cd02264511032f47e6d6ca0afd211cd8e69
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.185.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.185.0.ebuild
new file mode 100644
index 000000000000..c898d6e76ad0
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.185.0.ebuild
@@ -0,0 +1,51 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="
+ https://github.com/googleapis/google-api-python-client/
+ https://pypi.org/project/google-api-python-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
+ <dev-python/httplib2-1[${PYTHON_USEDEP}]
+ >=dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/uritemplate-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # require Internet access (and credentials)
+ tests/test_discovery.py::DiscoveryErrors::test_credentials_and_credentials_file_mutually_exclusive
+ tests/test_discovery.py::DiscoveryFromDocument::test_api_endpoint_override_from_client_options_mapping_object
+ tests/test_discovery.py::Universe::test_client_options_universe_configured_with_mtls
+ tests/test_discovery.py::Universe::test_universe_env_var_configured_with_mtls
+ )
+
+ epytest tests
+}
diff --git a/dev-python/google-auth-httplib2/google-auth-httplib2-0.2.0-r1.ebuild b/dev-python/google-auth-httplib2/google-auth-httplib2-0.2.0-r1.ebuild
new file mode 100644
index 000000000000..31eb038162e6
--- /dev/null
+++ b/dev-python/google-auth-httplib2/google-auth-httplib2-0.2.0-r1.ebuild
@@ -0,0 +1,38 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+MY_P="google-auth-library-python-httplib2-${PV}"
+DESCRIPTION="httplib2 Transport for Google Auth"
+HOMEPAGE="
+ https://pypi.org/project/google-auth-httplib2/
+ https://github.com/googleapis/google-auth-library-python-httplib2/
+"
+SRC_URI="
+ https://github.com/googleapis/google-auth-library-python-httplib2/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/httplib2[${PYTHON_USEDEP}]
+ dev-python/google-auth[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/flask[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-localserver )
+distutils_enable_tests pytest
diff --git a/dev-python/google-auth-oauthlib/google-auth-oauthlib-1.2.2.ebuild b/dev-python/google-auth-oauthlib/google-auth-oauthlib-1.2.2.ebuild
index d9dbdef3cd54..53f4aec377ba 100644
--- a/dev-python/google-auth-oauthlib/google-auth-oauthlib-1.2.2.ebuild
+++ b/dev-python/google-auth-oauthlib/google-auth-oauthlib-1.2.2.ebuild
@@ -30,6 +30,7 @@ RDEPEND="
>=dev-python/requests-oauthlib-0.7.0[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/google-auth/google-auth-2.41.1.ebuild b/dev-python/google-auth/google-auth-2.41.1.ebuild
index 80468af9ed82..f93f5a15dc7a 100644
--- a/dev-python/google-auth/google-auth-2.41.1.ebuild
+++ b/dev-python/google-auth/google-auth-2.41.1.ebuild
@@ -43,13 +43,6 @@ EPYTEST_PLUGINS=( pytest-{asyncio,localserver} )
EPYTEST_XDIST=1
distutils_enable_tests pytest
-src_prepare() {
- distutils-r1_src_prepare
-
- # unpin deps
- sed -i -e 's:,<[0-9.]*::' setup.py || die
-}
-
EPYTEST_DESELECT=(
# tests are broken with up-to-date pyopenssl
tests/transport/test__mtls_helper.py::TestDecryptPrivateKey::test_success
@@ -60,3 +53,10 @@ EPYTEST_IGNORE=(
# disable them to unblock removal of that package
tests/test__oauth2client.py
)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' setup.py || die
+}
diff --git a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-r1.ebuild b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-r1.ebuild
new file mode 100644
index 000000000000..a9940c1ff2b2
--- /dev/null
+++ b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-r1.ebuild
@@ -0,0 +1,40 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A hatch plugin to help build Jupyter packages"
+HOMEPAGE="
+ https://pypi.org/project/hatch-jupyter-builder/
+ https://github.com/jupyterlab/hatch-jupyter-builder
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/hatchling-1.17[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ dev-python/twine[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # Calls pip, requires internet
+ tests/test_plugin.py::test_hatch_build
+)
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
diff --git a/dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild b/dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild
new file mode 100644
index 000000000000..2ed2496dcf50
--- /dev/null
+++ b/dev-python/ipykernel/ipykernel-6.30.1-r1.ebuild
@@ -0,0 +1,91 @@
+# 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_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="IPython Kernel for Jupyter"
+HOMEPAGE="
+ https://github.com/ipython/ipykernel/
+ https://pypi.org/project/ipykernel/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/comm-0.1.1[${PYTHON_USEDEP}]
+ >=dev-python/ipython-7.23.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-4.12[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-inline-0.1[${PYTHON_USEDEP}]
+ >=dev-python/nest-asyncio-1.4[${PYTHON_USEDEP}]
+ >=dev-python/packaging-22[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.7[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-25[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.4.0[${PYTHON_USEDEP}]
+"
+# RDEPEND seems specifically needed in BDEPEND, at least jupyter
+# bug #816486
+# pytest-8 runs a small subset of tests, we allow newer for 3.13
+# since a few tests are better than skipping entirely
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/ipyparallel[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( flaky pytest-{asyncio,timeout} )
+distutils_enable_tests pytest
+
+src_prepare() {
+ # debugpy is actually optional
+ sed -i -e '/debugpy/d' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ # Use python3 in kernel.json configuration, bug #784764
+ sed -i -e '/python3.[0-9]\+/s//python3/' \
+ "${BUILD_DIR}/install${EPREFIX}/usr/share/jupyter/kernels/python3/kernel.json" || die
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_debugger.py::test_attach_debug
+ tests/test_debugger.py::test_breakpoint_in_cell_with_leading_empty_lines
+ tests/test_debugger.py::test_rich_inspect_at_breakpoint
+ tests/test_debugger.py::test_rich_inspect_not_at_breakpoint
+ tests/test_debugger.py::test_set_breakpoints
+ tests/test_debugger.py::test_stop_on_breakpoint
+ tests/test_debugger.py::test_copy_to_globals
+ # hangs?
+ tests/test_eventloop.py::test_tk_loop
+ # doesn't like pyside2?
+ tests/test_eventloop.py::test_qt_enable_gui
+ )
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ tests/test_kernel.py::test_subprocess_{error,print}
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/ipykernel/ipykernel-7.0.1.ebuild b/dev-python/ipykernel/ipykernel-7.0.1.ebuild
index 34ce055726a6..88ed3255c4a9 100644
--- a/dev-python/ipykernel/ipykernel-7.0.1.ebuild
+++ b/dev-python/ipykernel/ipykernel-7.0.1.ebuild
@@ -48,15 +48,6 @@ BDEPEND="
EPYTEST_PLUGINS=( pytest-{asyncio,rerunfailures,timeout} )
distutils_enable_tests pytest
-EPYTEST_DESELECT=(
- # hangs?
- tests/test_eventloop.py::test_tk_loop
- # flaky
- tests/test_eventloop.py::test_qt_enable_gui
- # fails without pytest-cov; apparently "time-sensitive" too
- tests/test_subshells.py::test_run_concurrently_sequence
-)
-
src_prepare() {
# debugpy is actually optional
sed -i -e '/debugpy/d' pyproject.toml || die
@@ -73,3 +64,24 @@ python_compile() {
src_test() {
virtx distutils-r1_src_test
}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # hangs?
+ tests/test_eventloop.py::test_tk_loop
+ # flaky
+ tests/test_eventloop.py::test_qt_enable_gui
+ # fails without pytest-cov; apparently "time-sensitive" too
+ tests/test_subshells.py::test_run_concurrently_sequence
+ )
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ tests/test_kernel.py::test_subprocess_{error,print}
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/ipyparallel/Manifest b/dev-python/ipyparallel/Manifest
index 250fdeb94f6e..533aba7083e0 100644
--- a/dev-python/ipyparallel/Manifest
+++ b/dev-python/ipyparallel/Manifest
@@ -1,2 +1,3 @@
DIST ipyparallel-9.0.1.tar.gz 4407324 BLAKE2B 9302e0aa6ed790a687fd5d7f3842684d11e73868d9f2f299634d8813735e4d09f0faa873cca45c619f43e6413f269928be3af68bf9c733fd05853918b361e66a SHA512 6359f932a249197610016b3ccc5f86b6e0565e1e2070f5dde72c0e75877f0bc4e038a0cc5cea05c9a068d1e82e923d983470e6db465169527bcb9499cc550d52
DIST ipyparallel-9.0.2.tar.gz 4407304 BLAKE2B 4095b9eb9f61a3d3da311ddfa01a3c185d99d44d9cd51079e40422dfa6b1c6522d34f5df7254f3ba19622da8aeec5b3b16c86fb43ce94f9173a00bf4b53ca1fc SHA512 c7719a9313a3bdf40300a09888f056884cbcf77158fec1eef4cd242ce956e2b6fa1917b35c1997d0b375dc8e590212c6c23f533c1a20673c59eaf411fbded7bf
+DIST ipyparallel-9.0.2.tar.gz.provenance 9373 BLAKE2B 5c842b77ad12f4deab211325146d592c62663f4e05a77c97e39f4331362614a938262f38b284a6968abd0a61bca681c08414a0f92ec86452e10673a93713a77b SHA512 80d7e8268fcee7f2d8fa676dd82be45df90c7f22710563f2a246ae365a04c23a5bfc26a5181369243919202f311833278a23c86c0f356432f0bf9f211859544f
diff --git a/dev-python/ipyparallel/ipyparallel-9.0.2.ebuild b/dev-python/ipyparallel/ipyparallel-9.0.2.ebuild
index e35344f48792..1fc552c10b19 100644
--- a/dev-python/ipyparallel/ipyparallel-9.0.2.ebuild
+++ b/dev-python/ipyparallel/ipyparallel-9.0.2.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/ipython/ipyparallel
PYTHON_COMPAT=( python3_{10..14} )
PYTHON_REQ_USE="threads(+)"
diff --git a/dev-python/ipywidgets/ipywidgets-8.1.7-r1.ebuild b/dev-python/ipywidgets/ipywidgets-8.1.7-r1.ebuild
new file mode 100644
index 000000000000..aa51998d0195
--- /dev/null
+++ b/dev-python/ipywidgets/ipywidgets-8.1.7-r1.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=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="IPython HTML widgets for Jupyter"
+HOMEPAGE="
+ https://ipywidgets.readthedocs.io/
+ https://github.com/jupyter-widgets/ipywidgets/
+ https://pypi.org/project/ipywidgets/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/comm-0.1.3[${PYTHON_USEDEP}]
+ >=dev-python/ipython-genutils-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.3.1[${PYTHON_USEDEP}]
+ >=dev-python/widgetsnbextension-4.0.14[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-widgets-3.0.15[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ >=dev-python/ipython-6.1.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # https://github.com/pypy/pypy/issues/4892
+ ipywidgets/widgets/tests/test_interaction.py::test_interact_noinspect
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/jupyter-client/jupyter-client-8.6.3-r1.ebuild b/dev-python/jupyter-client/jupyter-client-8.6.3-r1.ebuild
new file mode 100644
index 000000000000..c92a4de51025
--- /dev/null
+++ b/dev-python/jupyter-client/jupyter-client-8.6.3-r1.ebuild
@@ -0,0 +1,49 @@
+# 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_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Jupyter protocol implementation and client libraries"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/jupyter_client/
+ https://pypi.org/project/jupyter-client/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/jupyter-core-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-23.0[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.0[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ipykernel-6.14[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_RERUNS=3
+EPYTEST_PLUGINS=( pytest-{asyncio,jupyter,timeout} )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: times out
+ tests/test_client.py::TestAsyncKernelClient::test_input_request
+ # TODO
+ tests/test_multikernelmanager.py::TestKernelManager::test_tcp_cinfo
+ )
+
+ epytest -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/jupyter-server-terminals/jupyter-server-terminals-0.5.3-r1.ebuild b/dev-python/jupyter-server-terminals/jupyter-server-terminals-0.5.3-r1.ebuild
new file mode 100644
index 000000000000..3b213966c6fd
--- /dev/null
+++ b/dev-python/jupyter-server-terminals/jupyter-server-terminals-0.5.3-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Jupyter Server Extension Providing Terminals"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/jupyter_server_terminals/
+ https://pypi.org/project/jupyter-server-terminals/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/terminado[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/jupyter-server[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # Fails if shell is not bash
+ tests/test_terminal.py::test_terminal_create_with_cwd
+ tests/test_terminal.py::test_terminal_create_with_relative_cwd
+)
+
+EPYTEST_PLUGINS=( pytest-{jupyter,timeout} )
+distutils_enable_tests pytest
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index a943f795a7e0..f61aebd1628f 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1,2 +1 @@
-DIST jupyter_server-2.16.0.tar.gz 728177 BLAKE2B 4a508114057b2e54cc62e794ab8dee8934caea0bf4335928c0586190dc9cf46c9825cd006d5ae35ac82207b00e93f3edd11e45dbeaeba1baadacf472e6e6ec6b SHA512 75cce8d69a57ba5792184d16b53a75e3b83f67222ce8a3f9a7091aa0f452621d9914d639731b8497f5baf92176c405736cac6b5bf7a383e8e3523a67f738fb3c
DIST jupyter_server-2.17.0.tar.gz 731949 BLAKE2B e15b8e385f620549ce965a553a49f4606180fc782cd1617b4cc723a5a6443c2a0a7e3c19c9f00577afd125ea9f8e8a68e60eb42d2e73c09b69e0181f6fc8b790 SHA512 9eb386bee25e2fa28ef30a2d00178fcbe3a6ab0b3033c461863cfabb78433701fe7c856af27084e57d312d092610c7d50890637114c90c126e39b9f78bc15355
diff --git a/dev-python/jupyter-server/jupyter-server-2.16.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.17.0-r1.ebuild
index c6dff066740e..76adc58ecfe1 100644
--- a/dev-python/jupyter-server/jupyter-server-2.16.0.ebuild
+++ b/dev-python/jupyter-server/jupyter-server-2.17.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
>=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
@@ -29,7 +29,9 @@ RDEPEND="
>=dev-python/jupyter-events-0.11.0[${PYTHON_USEDEP}]
>=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
>=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
- >=dev-python/overrides-5.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/overrides-5.0[${PYTHON_USEDEP}]
+ ' 3.11)
>=dev-python/packaging-22.0[${PYTHON_USEDEP}]
>=dev-python/prometheus-client-0.9[${PYTHON_USEDEP}]
>=dev-python/pyzmq-24[${PYTHON_USEDEP}]
@@ -43,18 +45,19 @@ BDEPEND="
dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
test? (
dev-python/ipykernel[${PYTHON_USEDEP}]
- dev-python/flaky[${PYTHON_USEDEP}]
- dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
- >=dev-python/pytest-jupyter-0.7[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- dev-python/pytest-tornasync[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} )
+EPYTEST_RERUNS=5
distutils_enable_tests pytest
+PATCHES=(
+ # https://github.com/jupyter-server/jupyter_server/pull/1544
+ "${FILESDIR}/${P}-pytest-rerunfailures.patch"
+)
+
python_test() {
local EPYTEST_DESELECT=(
# This fails if your terminal is zsh (and maybe other non-bash as well?)
@@ -66,12 +69,6 @@ python_test() {
)
# FIXME: tests seem to be affected by previously installed version
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest \
- -p pytest_tornasync.plugin \
- -p jupyter_server.pytest_plugin \
- -p pytest_console_scripts \
- -p pytest_timeout \
- -p pytest_rerunfailures --reruns=5 \
-o tmp_path_retention_policy=all
}
diff --git a/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.15-r1.ebuild b/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.15-r1.ebuild
new file mode 100644
index 000000000000..d1c0ecb2af3e
--- /dev/null
+++ b/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.15-r1.ebuild
@@ -0,0 +1,24 @@
+# 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_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Jupyter interactive widgets for JupyterLab"
+HOMEPAGE="
+ https://ipython.org/
+ https://pypi.org/project/jupyterlab-widgets/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/libvirt-python/Manifest b/dev-python/libvirt-python/Manifest
index 4d2ba1695d55..be0fe4ada34b 100644
--- a/dev-python/libvirt-python/Manifest
+++ b/dev-python/libvirt-python/Manifest
@@ -1,8 +1,4 @@
-DIST libvirt-python-11.1.0.tar.gz 241110 BLAKE2B 921be6848d275184d90c3aa55a50f66daa39e56ae73008f09a4b8f86ecfdcb2afa4ca13f2a3f396056cd28949f2095d1b40b62b0f0018d6164bb7fae3a67ecdb SHA512 2183969fe3057722f3ab0412f331cefd5ae52f90e024207a36d94105826aacd3e9193889ef0bd6eb24921f0145c5d6256328431534f828c3607c92c10b6d46ba
-DIST libvirt-python-11.1.0.tar.gz.asc 833 BLAKE2B af5ead2015dc0fe7c56642625e9ceb4d4f460bf9ff24647794d9ee21ad8919029ac18b9298237a5abb1ff44e50ff9ff19d9bd57020106db106ccee294b848f27 SHA512 57d58031ccd654db103b0251655cc6e7dcf51adfd67bb457c2daee07c3681d9225f1c4c4da3e4cf7e433ec921c318a0e46314836194322d047c727db38b860cf
-DIST libvirt-python-11.2.0.tar.gz 242152 BLAKE2B 8bf92854c73184e43b364d66f04e8b017d6ad6b40173915c10f7c0dd0b0fadd4b55ea8704155392f016b151b1f65fc7805313e8610569fe362bb4a28bfee8dbf SHA512 02019186fd086df8c57998f2a3e6496897e9de1a09b97aba983897480e50be58ac0599de0ed7cb62cabb9834913973dcf99f034397e48fac96d65c32b056059f
-DIST libvirt-python-11.2.0.tar.gz.asc 833 BLAKE2B fa3231a0fbc525d039d0ccc9dee91e7630dc7b615481d0c7dae6636666a575305a6a7f9088cc70a9c756aa684141c6cda8ca479987c7f6dbaafb9df07072bdb8 SHA512 61c6b67be7b71fcf6ae6695e23e66eb9ff5531f63dfa6bfdee2db49f22c9e02d3169a3bab4d7731fb306796d03ea76384ae3e72dd970ab2bde690b604fcd6c35
-DIST libvirt-python-11.4.0.tar.gz 242629 BLAKE2B d19a3b7a1c7ef27b7c67a3a7bcc9f0dab02d55a2acdb0ce62abd7e68619275dbc9f7536695e9e2ed688132860cfd7efeee2a6116d4a6f7efd91f65da4b3d39c8 SHA512 d1730d706b784184ea1174b2212e8c6ce633efb4736eeda2e165aaa52edb1b11b6f0aea96de2adec81910472a372692dbde1f0b7a1ee5a345a5b17a9d686693c
-DIST libvirt-python-11.4.0.tar.gz.asc 833 BLAKE2B 42695946afdf0af8faaf558b00f963167f3b7fcea516919864fbeb2ebdb52861654cb085a042d48369af44c804330f6b5d96b8e3e27c54479dd4fbfa171e5889 SHA512 2437cbeb70c32a2fdd7c510deb7c63f588570d1ace8335db1f94a3a212e07898d0b40a99fd4ec3727c2ce3352e87d1f350b8f861ab993c3fc88f90fcef001b99
DIST libvirt-python-11.6.0.tar.gz 242654 BLAKE2B 33150ead07e0329768ddec082b36e69a71235b5083004afdc0293a78f79b9df3605e5d8cb8bc4ec3a4523c8846fe201203d3e4ff0a0ceddaa23989b156199bb9 SHA512 06c09e8c62eafe11cb2419f8a13e040e9f4380591b235d1debdfc29e11b9f62535c1d8285e19bc190528dc3d987076bd39511c1c734b4bd590937d788977f05b
DIST libvirt-python-11.6.0.tar.gz.asc 833 BLAKE2B 342066ba8d6f82f310908a532f507dcb6b47ea3df810b2d54e537cf7965d42df87fc1a4647fc3c581ce4cc07f69ffa8eecda1467d11fa15f0c9d53f15de7c97c SHA512 75d8c79cd4157c3e1787cdd3c0fbf2ea3265e48d65d7d0fce2a4741ac5199026d01773799e0cf7861d948a2515ebcc468d56b93cafa9d4cb23d004efba864a24
+DIST libvirt_python-11.8.0.tar.gz 242986 BLAKE2B df2262200aea58f4198cbe0e94639e000053d0e0451e5314227aff79971739b704442312c33f02e7c6e452fc66f2d26db13ee4c017109b7e69aeebb4d04997ad SHA512 8a82169d8b7c17d16150d8441900c4e1bac620c079d681a6c8e76d5b4924b65d7c13e3e04d776f23304ea594da7eb35f97d6e5915931397a14bb466b5f20ee3f
+DIST libvirt_python-11.8.0.tar.gz.asc 833 BLAKE2B 7fbd65fc891a026568498d5d1118feb360054a3a1df647285622ef9ea0203fed510750b1e265b246bf9ab4cda695ded904f64f1a020cd8aff565e14ac9866c42 SHA512 0165d5fcd91f181e22bd27b663bb8492190572b67102f5695fd097fdfa4e6db70d8e93f3717e53cd3bb44ec80f6a1c4ccbc017485bce2bc3b53c65d447f27e92
diff --git a/dev-python/libvirt-python/libvirt-python-11.1.0.ebuild b/dev-python/libvirt-python/libvirt-python-11.1.0.ebuild
deleted file mode 100644
index 2b34af1d8131..000000000000
--- a/dev-python/libvirt-python/libvirt-python-11.1.0.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Packages which get releases together:
-# app-emacs/nxml-libvirt-schemas
-# dev-python/libvirt-python
-# dev-perl/Sys-Virt
-# app-emulation/libvirt
-# Please bump them together!
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-inherit distutils-r1 verify-sig
-
-if [[ ${PV} == *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt-python.git"
- RDEPEND="app-emulation/libvirt:="
-else
- MY_P="${P/_rc/-rc}"
- SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
- verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
- KEYWORDS="amd64 ~arm arm64 ppc64 x86"
- RDEPEND="app-emulation/libvirt:0/${PV}"
-fi
-
-DESCRIPTION="libvirt Python bindings"
-HOMEPAGE="https://www.libvirt.org"
-
-S="${WORKDIR}/${P%_rc*}"
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="examples test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-python/lxml[${PYTHON_USEDEP}]
- )
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
-"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
-
-distutils_enable_tests pytest
-
-python_compile() {
- # setuptools is broken for C extensions, bug #907718
- distutils-r1_python_compile -j1
-}
-
-python_install_all() {
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/libvirt-python/libvirt-python-11.2.0.ebuild b/dev-python/libvirt-python/libvirt-python-11.2.0.ebuild
deleted file mode 100644
index a636af5be9bd..000000000000
--- a/dev-python/libvirt-python/libvirt-python-11.2.0.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Packages which get releases together:
-# app-emacs/nxml-libvirt-schemas
-# dev-python/libvirt-python
-# dev-perl/Sys-Virt
-# app-emulation/libvirt
-# Please bump them together!
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-inherit distutils-r1 verify-sig
-
-if [[ ${PV} == *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt-python.git"
- RDEPEND="app-emulation/libvirt:="
-else
- MY_P="${P/_rc/-rc}"
- SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
- verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
- RDEPEND="app-emulation/libvirt:0/${PV}"
-fi
-
-DESCRIPTION="libvirt Python bindings"
-HOMEPAGE="https://www.libvirt.org"
-
-S="${WORKDIR}/${P%_rc*}"
-
-LICENSE="LGPL-2"
-SLOT="0"
-IUSE="examples test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-python/lxml[${PYTHON_USEDEP}]
- )
- verify-sig? ( sec-keys/openpgp-keys-libvirt )
-"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
-
-distutils_enable_tests pytest
-
-python_compile() {
- # setuptools is broken for C extensions, bug #907718
- distutils-r1_python_compile -j1
-}
-
-python_install_all() {
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/libvirt-python/libvirt-python-11.6.0.ebuild b/dev-python/libvirt-python/libvirt-python-11.6.0.ebuild
index ae56940984fa..2b34af1d8131 100644
--- a/dev-python/libvirt-python/libvirt-python-11.6.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-11.6.0.ebuild
@@ -23,7 +23,7 @@ else
MY_P="${P/_rc/-rc}"
SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
- KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
+ KEYWORDS="amd64 ~arm arm64 ppc64 x86"
RDEPEND="app-emulation/libvirt:0/${PV}"
fi
diff --git a/dev-python/libvirt-python/libvirt-python-11.4.0.ebuild b/dev-python/libvirt-python/libvirt-python-11.8.0.ebuild
index a636af5be9bd..3c25247486c9 100644
--- a/dev-python/libvirt-python/libvirt-python-11.4.0.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-11.8.0.ebuild
@@ -20,18 +20,17 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt-python.git"
RDEPEND="app-emulation/libvirt:="
else
- MY_P="${P/_rc/-rc}"
+ MY_P="${P/-/_}"
SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
RDEPEND="app-emulation/libvirt:0/${PV}"
+ S="${WORKDIR}/${MY_P}"
fi
DESCRIPTION="libvirt Python bindings"
HOMEPAGE="https://www.libvirt.org"
-S="${WORKDIR}/${P%_rc*}"
-
LICENSE="LGPL-2"
SLOT="0"
IUSE="examples test"
diff --git a/dev-python/libvirt-python/libvirt-python-9999.ebuild b/dev-python/libvirt-python/libvirt-python-9999.ebuild
index a636af5be9bd..3c25247486c9 100644
--- a/dev-python/libvirt-python/libvirt-python-9999.ebuild
+++ b/dev-python/libvirt-python/libvirt-python-9999.ebuild
@@ -20,18 +20,17 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt-python.git"
RDEPEND="app-emulation/libvirt:="
else
- MY_P="${P/_rc/-rc}"
+ MY_P="${P/-/_}"
SRC_URI="https://download.libvirt.org/python/${MY_P}.tar.gz
verify-sig? ( https://download.libvirt.org/python/${MY_P}.tar.gz.asc )"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
RDEPEND="app-emulation/libvirt:0/${PV}"
+ S="${WORKDIR}/${MY_P}"
fi
DESCRIPTION="libvirt Python bindings"
HOMEPAGE="https://www.libvirt.org"
-S="${WORKDIR}/${P%_rc*}"
-
LICENSE="LGPL-2"
SLOT="0"
IUSE="examples test"
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index 43b552e06277..bbbd0d3cb88d 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -4,3 +4,4 @@ DIST matplotlib-3.10.3.tar.gz 34799811 BLAKE2B f855a65ebf6d33373b8ed62fca0824291
DIST matplotlib-3.10.5.tar.gz 34804044 BLAKE2B ffda7bfb4c4a5bc6aacabb1f1595525fcdac9070f6e1c039abe6ba480cc34ea1663fc2c35a4583176a4d4695aacc238d3080eb75d965ee4ddc27bd96fda1d3e8 SHA512 761388d0aad410b80179b3bb97d63b6a99d71338a0eb8801702f4a38f4a1a0fdecd8fbb6401e664d2f30a0256f412167c7c102fc494664c1837495572ebf3caa
DIST matplotlib-3.10.6.tar.gz 34804264 BLAKE2B d6bbea7b225052026dcd326ab0434600191746b663fe922a306c21823b59a7eb6cd23ef45992e7eb4630b1e92fc2e58f351f258f53a7d98b8b1cb9c3dbf038af SHA512 c12686d52229bbbd3c16fa5b1d633a7a6eec8e9bae58221554dc3d9595ceae05f985ebb3207425ad2e134e4dae671f590225b1d692b66c2099dd78da13cc6332
DIST matplotlib-3.10.7.tar.gz 34804865 BLAKE2B 13895bb4e8677fdb05cc0dbe5e58c62efbd5f298469d0647a23806a5101f7b4021accf8fefbdc85a49374f125bf8caa5537a40ac534283746e465bcb87cc1e6d SHA512 48c54dc0719ee5e42a96288200ecd696b52c90816b74404c0350f1707cab31fe8e6371135a3d469f9d78fe4234abf03f92f32cb1777f70e8a34e4fe300d89c27
+DIST matplotlib-3.10.7.tar.gz.provenance 9556 BLAKE2B a429fffb82ef7b0b8f0e085c73e48d0551b2092b1274774553df559436eaaea7ca46ee4043ab0fdb057461a4a0c8af9cbb73746054bff63ba94e78263c076b06 SHA512 960a7d2c21877611ee6d30eed1ba124df51f2fb6c8c2b2f798bfd262c9306ec2a0a60733c82da4f4f2f01a255503a3e7e5eb2778b49da07b7b487026e93ec6c0
diff --git a/dev-python/matplotlib/matplotlib-3.10.7.ebuild b/dev-python/matplotlib/matplotlib-3.10.7.ebuild
index a3a1c42683a1..324774c23199 100644
--- a/dev-python/matplotlib/matplotlib-3.10.7.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.10.7.ebuild
@@ -5,6 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/matplotlib/matplotlib
PYTHON_COMPAT=( python3_{10..14} )
PYTHON_REQ_USE='tk?,threads(+)'
@@ -223,6 +224,12 @@ python_test() {
tests/test_constrainedlayout.py::test_compressed1
)
;;
+ python3.14)
+ EPYTEST_DESELECT+=(
+ # some minor asyncio trouble
+ tests/test_backends_interactive.py::test_webagg
+ )
+ ;;
esac
case ${ABI} in
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index 001b50428fc9..d95d3d19a17e 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -7,5 +7,7 @@ DIST moto-5.1.13.tar.gz 7194360 BLAKE2B 464a4997defae7386611c29eb46a3fff48e2d27a
DIST moto-5.1.13.tar.gz.provenance 9380 BLAKE2B 79e4254b116e18d5f568027edf26a0f716d7b3f4dc5294f9cc8d379600eff518c204fa4d402191b9a99dc6f94a97a0afa14a7e2741a8790b1e7b78aa575c18a8 SHA512 8776bd8698f27e823b84fbd77be42eb4f43cf7beec96847c26066bcf4a362306568cf7688d3d680df17e5e5c4a4550d8b64994dacca8a70e1a7c2f84c3c81b62
DIST moto-5.1.14.tar.gz 7264025 BLAKE2B cca4fd06070ee6db7306f3f95a2fd785b53f0f7f499d15bd53cc946c5cda83ebb96bd2baf56728abcc16f3dc7806d12b38388631f6c60ba6d21d4566e2530b99 SHA512 1f59cc49a3a5e12b130b37791a9ce2141134eac54c3b16d910099b7784ce6677ca9607eca4299a641555b3284166cd5588c81ebc17a95bd65dc3b90a57b95d07
DIST moto-5.1.14.tar.gz.provenance 9286 BLAKE2B 73c844157e33029d62fde7530a25d0557aae3f38d61df611248ba78e85925c3cf9df0b40bb9ddef93a7990c91fec6895d0c3a2c43306432a2a8f13c119254e6b SHA512 e7e5b1415d5b4cfd145f477fa49e72f39d7611a7f961735d6986aa5691e48fc6e13e3f87aeaccf5d6cd26b26b45ddd7b15ad01d89a086df2d545bf6342151503
+DIST moto-5.1.15.tar.gz 7288767 BLAKE2B 5f03a939de3dea4e635cc2c8ca35c7ab30b20d7ec6bf6a4fefc6a3dedc776bb1354da2ac0e0b317318bdc4edc3027e1c01e323a888ad077d389810338c502cff SHA512 dc58df1ef867b3259e30f8f788e1f2964ec48b5ad80102854be94740bfdb71573ea26b0b392af29919f2f967ce6150e59a2a96bbbd04f2c14c44ad671df5d856
+DIST moto-5.1.15.tar.gz.provenance 9286 BLAKE2B d64df561eba343899b85957544cfe6aae3e5fe19aacc97e9a6926293349f781e5a9321602370aa7986cb9a82ffaedadb250cbdcfbded8cd4b746d818a6d81508 SHA512 addc927ed1f14ffb26c8cce64710c9a65e9f54e49fd054a7d6a178874cff5755ec33ce4c9adf1987eae17a408dcdb95716da307bf0dab9c13b9f3e9ddb794409
DIST moto-5.1.8.tar.gz 7039961 BLAKE2B be2231a13036e2a5c925c7435ebce3adeea6ac03d9806d010d1c067b4e2d008f642a234fb80e082e5053332c6580d130f232ebe0b83d59c55977ea3a38364914 SHA512 fb8ad9ba2ac94a86261e2862d87d9ea632d2275c6cccf7d248ac95db96f615109add8803bf118625c828c7a2615fc6f20bcf682de1e4398f69add5eeb9fe8114
DIST moto-5.1.9.tar.gz 7041662 BLAKE2B 8121c2022e5af70e71b6d4855ca7f964234ef06f14f8b08e80bd3676c26f6e9a06e8f469e610bcf2882b5468d613a17c3108aff3c344c12dc8331a9f9582b87b SHA512 986d41cc9fa875b5ee51723fdd7669b528dacb6136b6ebb3fa72d4efb3bb89f1fbc44aaa06aa154b80d44c87bca2d93cce30ee32c1ab7c3e8d622b53e011167d
diff --git a/dev-python/moto/moto-5.1.15.ebuild b/dev-python/moto/moto-5.1.15.ebuild
new file mode 100644
index 000000000000..da29bd9851e6
--- /dev/null
+++ b/dev-python/moto/moto-5.1.15.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/getmoto/moto
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi toolchain-funcs
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
+ dev-python/jsonpath-ng[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+: "${EPYTEST_TIMEOUT:=180}"
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_dynamodb/test_dynamodb_import_table.py
+ # require joserfc
+ tests/test_apigateway/test_apigateway.py::test_create_authorizer
+ tests/test_apigateway/test_apigateway.py::test_delete_authorizer
+ tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
+ tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
+ tests/test_cognitoidp/test_server.py::test_associate_software_token
+ tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
+ # require py_partiql_parser
+ tests/test_dynamodb/test_dynamodb_statements.py
+ tests/test_s3/test_s3_select.py
+ # require graphql
+ tests/test_appsync/test_appsync_schema.py
+ # Internet
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ )
+ local EPYTEST_IGNORE=(
+ # require joserfc
+ tests/test_cognitoidp/test_cognitoidp.py
+ )
+
+ if ! tc-has-64bit-time_t; then
+ einfo "time_t is smaller than 64 bits, will skip broken tests"
+ EPYTEST_DESELECT+=(
+ tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
+ tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
+ tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
+ )
+ EPYTEST_IGNORE+=(
+ tests/test_route53domains/test_route53domains_domain.py
+ )
+ fi
+
+ local -x TZ=UTC
+ local -x AWS_DEFAULT_REGION=us-east-1
+
+ epytest -m 'not network and not requires_docker'
+}
diff --git a/dev-python/nbclient/nbclient-0.10.2-r1.ebuild b/dev-python/nbclient/nbclient-0.10.2-r1.ebuild
new file mode 100644
index 000000000000..ebabb782192d
--- /dev/null
+++ b/dev-python/nbclient/nbclient-0.10.2-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client library for executing Jupyter notebooks"
+HOMEPAGE="
+ https://nbclient.readthedocs.io/en/latest/
+ https://github.com/jupyter/nbclient/
+ https://pypi.org/project/nbclient/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/jupyter-client-6.1.12[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.0[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.19.3[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-7.1.0[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( flaky pytest-asyncio )
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # hangs?
+ 'tests/test_client.py::test_run_all_notebooks[Interrupt.ipynb-opts6]'
+)
diff --git a/dev-python/nbconvert/nbconvert-7.16.6-r1.ebuild b/dev-python/nbconvert/nbconvert-7.16.6-r1.ebuild
new file mode 100644
index 000000000000..0300a31bf23e
--- /dev/null
+++ b/dev-python/nbconvert/nbconvert-7.16.6-r1.ebuild
@@ -0,0 +1,80 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Converting Jupyter Notebooks"
+HOMEPAGE="
+ https://nbconvert.readthedocs.io/
+ https://github.com/jupyter/nbconvert/
+ https://pypi.org/project/nbconvert/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/bleach[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-4.7[${PYTHON_USEDEP}]
+ dev-python/jupyterlab-pygments[${PYTHON_USEDEP}]
+ >=dev-python/markupsafe-2.0[${PYTHON_USEDEP}]
+ <dev-python/mistune-4[${PYTHON_USEDEP}]
+ >=dev-python/nbclient-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.7[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pandocfilters-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.4.1[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.1.1[${PYTHON_USEDEP}]
+"
+# via bleach[css]
+RDEPEND+="
+ dev-python/tinycss2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ >=dev-python/ipywidgets-7.5[${PYTHON_USEDEP}]
+ )
+"
+
+# tests/preprocessors/test_execute.py are extremely flaky over output
+# buffering
+EPYTEST_PLUGINS=( flaky )
+EPYTEST_RERUNS=10
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_nbconvertapp.py::TestNbConvertApp::test_convert_full_qualified_name
+ tests/test_nbconvertapp.py::TestNbConvertApp::test_post_processor
+ # crazy qtweb* stuff, perhaps permissions
+ tests/exporters/test_qtpdf.py::TestQtPDFExporter::test_export
+ tests/exporters/test_qtpng.py::TestQtPNGExporter::test_export
+ )
+
+ # virtx implies nonfatal, make it explicit to avoid confusion
+ nonfatal epytest || die
+}
+
+pkg_postinst() {
+ if ! has_version virtual/pandoc; then
+ einfo "Pandoc is required for converting to formats other than Python,"
+ einfo "HTML, and Markdown. If you need this functionality, install"
+ einfo "app-text/pandoc or app-text/pandoc-bin."
+ fi
+}
diff --git a/dev-python/nest-asyncio/nest-asyncio-1.6.0-r1.ebuild b/dev-python/nest-asyncio/nest-asyncio-1.6.0-r1.ebuild
new file mode 100644
index 000000000000..565a1babb037
--- /dev/null
+++ b/dev-python/nest-asyncio/nest-asyncio-1.6.0-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Patch asyncio to allow nested event loops"
+HOMEPAGE="
+ https://github.com/erdewit/nest_asyncio/
+ https://pypi.org/project/nest-asyncio/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ tests/nest_test.py::NestTest::test_timeout
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/nvidia-ml-py/Manifest b/dev-python/nvidia-ml-py/Manifest
new file mode 100644
index 000000000000..e44b0b5d9f82
--- /dev/null
+++ b/dev-python/nvidia-ml-py/Manifest
@@ -0,0 +1 @@
+DIST nvidia_ml_py-12.575.51.tar.gz 46597 BLAKE2B 55e7a3dbced43e0bd0b37d9d1d9b11718ac6a37173af290e1f3507eb9c165fe049fe1d5422171374fc2e6b9471bb46c70ed84509e9d381e0aeec0ef00c763c38 SHA512 3132e9d8e601e88f036188f026ea5e6f0ae0358a8a381d2e8dcb363d4fe1f8aecbb31e0fb72555e32991df6c4c86c8c1713002f47094dc9afebd58c1cde1d2e2
diff --git a/dev-python/nvidia-ml-py/metadata.xml b/dev-python/nvidia-ml-py/metadata.xml
new file mode 100644
index 000000000000..3cd65fc0a915
--- /dev/null
+++ b/dev-python/nvidia-ml-py/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zhixu.liu@gmail.com</email>
+ <name>Z. Liu</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ Provides a Python interface to GPU management and monitoring functions.
+ This is a wrapper around the NVML library. For information about the NVML
+ library, see the NVML developer page
+ http://developer.nvidia.com/nvidia-management-library-nvml
+ </longdescription>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/nvidia-ml-py/nvidia-ml-py-12.575.51.ebuild b/dev-python/nvidia-ml-py/nvidia-ml-py-12.575.51.ebuild
new file mode 100644
index 000000000000..c8920a1c47fc
--- /dev/null
+++ b/dev-python/nvidia-ml-py/nvidia-ml-py-12.575.51.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
+PYPI_PN=${PN/-/_}
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings to the NVIDIA Management Library"
+HOMEPAGE="
+ https://pypi.org/project/nvidia-ml-py/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ x11-drivers/nvidia-drivers
+"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ # don't install example.py
+ sed -i "s/, 'example'//g" setup.py || die
+
+ default
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r example.py
+ fi
+}
diff --git a/dev-python/proto-plus/proto-plus-1.26.1-r1.ebuild b/dev-python/proto-plus/proto-plus-1.26.1-r1.ebuild
new file mode 100644
index 000000000000..1cd8448d3f49
--- /dev/null
+++ b/dev-python/proto-plus/proto-plus-1.26.1-r1.ebuild
@@ -0,0 +1,41 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+MY_P=${PN}-python-${PV}
+DESCRIPTION="Beautiful, Pythonic protocol buffers"
+HOMEPAGE="
+ https://github.com/googleapis/proto-plus-python/
+ https://pypi.org/project/proto-plus/
+"
+SRC_URI="
+ https://github.com/googleapis/proto-plus-python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/protobuf-7[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-3.19.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/google-api-core-1.31.5[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
diff --git a/dev-python/pydantic/Manifest b/dev-python/pydantic/Manifest
index 27055320576c..73a1c83ef696 100644
--- a/dev-python/pydantic/Manifest
+++ b/dev-python/pydantic/Manifest
@@ -47,15 +47,8 @@ DIST portable-atomic-1.6.0.crate 140689 BLAKE2B c91d06e04a87c9a207233d8a850859aa
DIST proc-macro2-1.0.86.crate 48958 BLAKE2B 4b89e07f23af8328dbb34fe2b3f1b202f1e6a3885a6269740a23359b41bb4099ac2484565d3b2b0936261689ca525785ac620c766997234fd8d0f409e80e5ea3 SHA512 1cdb7e22a35ae231d880c9420784c9acf97bda2db258b3d34aae5061dc1858449defe19a49e12c6a4173906aa72a4115059ac2db0fc760205fd2ab8b5b414434
DIST pydantic-2.11.10.tar.gz 788494 BLAKE2B 0fad8fa9baf40869df8ccb2715dc314ff64f7c21c20328be6b8c7387f4efbab92e681bc11660cdb321e12b462e1cd908bd0ae4c9c91b1d9a9ee6b072512badc7 SHA512 7bebff22b441bf0708457ed6b93909b4e2faaa7ff168323646bc61722fddc4497ceff8fc1759b9237a57a223f08c8ef450a0c9e062cee54e97c6ebc5f396b59a
DIST pydantic-2.11.7.tar.gz 788350 BLAKE2B 4767f593beb649fe3139f3b22e3814a9f56793494dc17428cf70952451e9112d03b275c0af979f0f0159b25deae2e2794bfdb1392e2c3499220ad3cd67945414 SHA512 54ee1a49d5a429cad31928425c197139ae3cce004d8f3530835ce39897be9afa6aea35e639af1d6290bace7148e1369ce66840e26bced329bc2e7d93b3dad6e5
-DIST pydantic-2.11.8.tar.gz 788452 BLAKE2B 91c967ddf3f6ad6ec3713e1503e35d43adffc3160d9a4df2710db4ccab4c313ef8009de379473f7438d3f0ce716408b924963974d381bf27232aafb5afb960b1 SHA512 f06b821d84cecc6b1b9f364d35ae67cd79fd25dc356922d4af4418ad77dacc57ba327febc7fd33dee5cf070f8e9018ee3362c8f0aa8a5802a6af2ff327018254
-DIST pydantic-2.11.9.tar.gz 788495 BLAKE2B d22e4aef09d65c30829dfb31d161c82511cc8e1a1b57dde08008462f42a23e4653979ff0578ab571314538d1267b8628bb4ab0eb4fe9af59ed2023c83f33a530 SHA512 32bcaf1de12d2df2344222389c8deefb88432886449ad52b420b4ff760b7b882522d416996fdea4d44a6cf4d24f96b2aec55d003e9772e28b2cacd654eed64fb
-DIST pydantic-2.12.0.tar.gz 814760 BLAKE2B e827366bb224d20dd0a527793f0679caf81c4b0553bebe6163107f1157eeefc768066f03551d857fb934d4dc0949d2841b875af2cd71b73cc8fbd4c569c38637 SHA512 f3694cdd347af6d436dd85f27d00faf4459188d2825a2c6b7b31d15ba7fef0b37fd681f8b070ec648b1b5eb5eedc52245741902aecdc5d297202ef009ec26a91
-DIST pydantic-2.12.1.tar.gz 815997 BLAKE2B 09e9a2cfe5dbc712007161d53544a2334ee8b13676a5b75319d42ce814f3705ffe0a40c2f7c206c9cc284de5e624cbd5fca52afb6c5c45ddb2804e40201fe100 SHA512 13fd00df72b9b23e5fad277fbe05fcaf4acc42ef2736a568569e7a15889bbf69fe6865f4849c5ff746b890cf0417cf5e483c5ec987e9290e4e0f27d89e6a273b
-DIST pydantic-2.12.1.tar.gz.provenance 9008 BLAKE2B b833f79eef6ed015ccba9311f8821f22c4eb325e9db83f96003fc9051f18bdd951ceb5ecc9f80c2b937e2210723bcd17aa0143e6a22f0395b01a82b23a49df7f SHA512 ad4fbe39df30dd65186a0798f0f23492b98f0eddbb8cdcddc2bf9d5c65d217ed410e022daaa96b704d6a260a2590485554b107f261f844c8e3d786e6688488ce
-DIST pydantic-2.12.2.tar.gz 816358 BLAKE2B 8b4efd9d6880deade3b4366d449d2a1c39c3fffeb300e56c213ab8aec80060aa23c305fe031efb0726a32b55568a1712594b3194dbc6d9aa1fc770331fe64a7d SHA512 2f36aef5400c6907a98c63d9fda0036a690899ac18f22a69906c952990ba30ad62ceb6a8779c57bbeb436a3b275e7ee023bd7433fa4a4153f90931dce84931d5
-DIST pydantic-2.12.2.tar.gz.provenance 9345 BLAKE2B bddbc886197130418681489fe021a55baf0ffc98e3c99c04590eaee6b669e5db7c00df30201a894640ee609f9f62c3bf728a5d1ba89926e803fb2f2786b09c5f SHA512 88bc8061c72bb119ab3da508fa0ce60f3cc141e987f02c4f65348e169a54b049f017b39ba813d08dfec5b00620c0c391b2e832a7e53d2a7d88b24a85ee565cb4
-DIST pydantic_core-2.41.1.tar.gz 454870 BLAKE2B 8f02136a593a1b7613ed417d7e4edae1dc56d8ee06c1e92b336ade41d66a977668c2603360d85a7e36b273ae3215e878c3bda0c7d400cf4b528f5862a898fd75 SHA512 63d2d3cdfc2be673b6e60d677e3415f5b8718dbe857560110d22d7da31c5f4184fc7bcabafd24fb46d9763fbc9c64256c0d0f5de58ee915cb1b3cf32e9a65c1e
-DIST pydantic_core-2.41.3.tar.gz 457489 BLAKE2B 77a19a5f3e7f6cd9c8e68c7b177cdf4d8b5add3af5b781c423e8cf92f35c7e92984f9130bec5f7a4e069512dfde97e122d62d44418edc0fe007284ff12bcb240 SHA512 5c5fe5c69278a448f39678dd1c44b3588fc2996215873dbdf94071c743b4f976c2ec7e5dea66b6261729cd78b8694f57c79191a2a7e7533a3c035d734a7bcc73
+DIST pydantic-2.12.3.tar.gz 819383 BLAKE2B 77e7242c478ad0cb686334207737d93e7381e6cd91117859e7755460d1adb05e73af1ace2733a3a4e8fca37bd5f063a643841a190c5d04c4519087e0d2d82549 SHA512 46af1777b4fa11d5e24ef8de93bad0eef3e0250150bdfdbd75be21d139925a58c32f526053675c1c022a229641763d7de6fa8f7ef81f86553572c366bd5cc341
+DIST pydantic-2.12.3.tar.gz.provenance 9153 BLAKE2B 9e7de239ba62592cf420a77a85cd64e7ace52d7cc8eb8069af6b0d811e6ce740602df7ec6af97086659437b400d5faece4ed9190ba9fa590eab747c766c14cf2 SHA512 1c3cf685838846b350f309b2ec71f7794490277bcfd799031decc53bf4ccb2eb634952103b37148b3a3cd14b5f009845bb40f97047f865d24f23b26136c9bf38
DIST pydantic_core-2.41.4.tar.gz 457557 BLAKE2B ebff295fe3a735fe29fd1c2384eb54c44f783413e849848392eff23e317f3e6650567211a284c2f5df5318827e447ff4ab457f7d63984e3a618698f3b9bfc243 SHA512 aced59b149d48956220407ff42001167c7fa98f3ae7539bab0b16011bf9a38d9c1e8994770db7bb0426114d3322316cb3ce12cb1961d54f6a4798d8b00d1ee85
DIST pyo3-0.26.0.crate 1151579 BLAKE2B bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3 SHA512 e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194
DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722 SHA512 a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b
diff --git a/dev-python/pydantic/pydantic-2.11.8.ebuild b/dev-python/pydantic/pydantic-2.11.8.ebuild
deleted file mode 100644
index bf7e4579dae8..000000000000
--- a/dev-python/pydantic/pydantic-2.11.8.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-# py3.14: https://github.com/pydantic/pydantic/issues/11613
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Data parsing and validation using Python type hints"
-HOMEPAGE="
- https://github.com/pydantic/pydantic/
- https://pypi.org/project/pydantic/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/annotated-types-0.6.0[${PYTHON_USEDEP}]
- ~dev-python/pydantic-core-2.33.2[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.0[${PYTHON_USEDEP}]
- dev-python/tzdata[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
- test? (
- $(python_gen_cond_dep '
- dev-python/cloudpickle[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/dirty-equals[${PYTHON_USEDEP}]
- >=dev-python/email-validator-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/faker-18.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/benchmark/d' pyproject.toml || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # -Werror, sigh
- tests/test_types_typeddict.py::test_readonly_qualifier_warning
- )
- local EPYTEST_IGNORE=(
- # require pytest-examples
- tests/test_docs.py
- # benchmarks
- tests/benchmarks
- )
-
- if ! has_version "dev-python/cloudpickle[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- tests/test_pickle.py
- )
- fi
-
- epytest
-}
diff --git a/dev-python/pydantic/pydantic-2.11.9.ebuild b/dev-python/pydantic/pydantic-2.11.9.ebuild
deleted file mode 100644
index bf7e4579dae8..000000000000
--- a/dev-python/pydantic/pydantic-2.11.9.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-# py3.14: https://github.com/pydantic/pydantic/issues/11613
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Data parsing and validation using Python type hints"
-HOMEPAGE="
- https://github.com/pydantic/pydantic/
- https://pypi.org/project/pydantic/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/annotated-types-0.6.0[${PYTHON_USEDEP}]
- ~dev-python/pydantic-core-2.33.2[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.0[${PYTHON_USEDEP}]
- dev-python/tzdata[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
- test? (
- $(python_gen_cond_dep '
- dev-python/cloudpickle[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/dirty-equals[${PYTHON_USEDEP}]
- >=dev-python/email-validator-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/faker-18.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/benchmark/d' pyproject.toml || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # -Werror, sigh
- tests/test_types_typeddict.py::test_readonly_qualifier_warning
- )
- local EPYTEST_IGNORE=(
- # require pytest-examples
- tests/test_docs.py
- # benchmarks
- tests/benchmarks
- )
-
- if ! has_version "dev-python/cloudpickle[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- tests/test_pickle.py
- )
- fi
-
- epytest
-}
diff --git a/dev-python/pydantic/pydantic-2.12.0.ebuild b/dev-python/pydantic/pydantic-2.12.0.ebuild
deleted file mode 100644
index 898b6090ca20..000000000000
--- a/dev-python/pydantic/pydantic-2.12.0.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{10..14} )
-
-PYDANTIC_CORE_PV=2.41.1
-RUST_MIN_VER="1.75.0"
-CRATES="
- ahash@0.8.12
- aho-corasick@1.1.3
- autocfg@1.3.0
- base64@0.22.1
- bitflags@2.9.1
- bitvec@1.0.1
- bumpalo@3.19.0
- cc@1.0.101
- cfg-if@1.0.0
- displaydoc@0.2.5
- enum_dispatch@0.3.13
- form_urlencoded@1.2.1
- funty@2.0.0
- getrandom@0.3.3
- heck@0.5.0
- hex@0.4.3
- icu_collections@1.5.0
- icu_locid@1.5.0
- icu_locid_transform@1.5.0
- icu_locid_transform_data@1.5.0
- icu_normalizer@1.5.0
- icu_normalizer_data@1.5.0
- icu_properties@1.5.1
- icu_properties_data@1.5.0
- icu_provider@1.5.0
- icu_provider_macros@1.5.0
- idna@1.1.0
- idna_adapter@1.2.0
- indoc@2.0.5
- itoa@1.0.11
- jiter@0.11.0
- js-sys@0.3.77
- lexical-parse-float@1.0.5
- lexical-parse-integer@1.0.5
- lexical-util@1.0.6
- libc@0.2.155
- litemap@0.7.3
- log@0.4.27
- memchr@2.7.4
- memoffset@0.9.1
- num-bigint@0.4.6
- num-integer@0.1.46
- num-traits@0.2.19
- once_cell@1.21.3
- percent-encoding@2.3.1
- portable-atomic@1.6.0
- proc-macro2@1.0.86
- pyo3-build-config@0.26.0
- pyo3-ffi@0.26.0
- pyo3-macros-backend@0.26.0
- pyo3-macros@0.26.0
- pyo3@0.26.0
- python3-dll-a@0.2.14
- quote@1.0.36
- r-efi@5.2.0
- radium@0.7.0
- regex-automata@0.4.11
- regex-syntax@0.8.5
- regex@1.11.3
- rustversion@1.0.17
- ryu@1.0.18
- serde@1.0.228
- serde_core@1.0.228
- serde_derive@1.0.228
- serde_json@1.0.145
- smallvec@1.15.1
- speedate@0.17.0
- stable_deref_trait@1.2.0
- static_assertions@1.1.0
- strum@0.27.2
- strum_macros@0.27.2
- syn@2.0.82
- synstructure@0.13.1
- tap@1.0.1
- target-lexicon@0.13.2
- tinystr@0.7.6
- unicode-ident@1.0.12
- unindent@0.2.3
- url@2.5.4
- utf16_iter@1.0.5
- utf8_iter@1.0.4
- uuid@1.18.1
- version_check@0.9.5
- wasi@0.14.2+wasi-0.2.4
- wasm-bindgen-backend@0.2.100
- wasm-bindgen-macro-support@0.2.100
- wasm-bindgen-macro@0.2.100
- wasm-bindgen-shared@0.2.100
- wasm-bindgen@0.2.100
- wit-bindgen-rt@0.39.0
- write16@1.0.0
- writeable@0.5.5
- wyz@0.5.1
- yoke-derive@0.7.4
- yoke@0.7.4
- zerocopy-derive@0.8.25
- zerocopy@0.8.25
- zerofrom-derive@0.1.4
- zerofrom@0.1.4
- zerovec-derive@0.10.3
- zerovec@0.10.4
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Data parsing and validation using Python type hints"
-HOMEPAGE="
- https://github.com/pydantic/pydantic/
- https://pypi.org/project/pydantic/
-"
-# pydantic-core & pydantic have a perfect circular test dep now
-SRC_URI+="
- $(pypi_sdist_url pydantic-core "${PYDANTIC_CORE_PV}")
- ${CARGO_CRATE_URIS}
-"
-PYDANTIC_CORE_S=${WORKDIR}/pydantic_core-${PYDANTIC_CORE_PV}
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 Unicode-DFS-2016
- || ( Apache-2.0 Boost-1.0 )
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/annotated-types-0.6.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.14.1[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.2[${PYTHON_USEDEP}]
- dev-python/tzdata[${PYTHON_USEDEP}]
- !dev-python/pydantic-core
-"
-BDEPEND="
- >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
- dev-util/maturin[${PYTHON_USEDEP}]
- test? (
- $(python_gen_cond_dep '
- dev-python/cloudpickle[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/dirty-equals[${PYTHON_USEDEP}]
- >=dev-python/email-validator-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/faker-18.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- )
-"
-# pydantic-core
-BDEPEND+="
- test? (
- >=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
- >=dev-python/inline-snapshot-0.13.3[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.1[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/pydantic_core/_pydantic_core.*.so"
-
-src_prepare() {
- sed -i -e '/benchmark/d' {.,"${PYDANTIC_CORE_S}"}/pyproject.toml || die
- sed -i -e '/^strip/d' "${PYDANTIC_CORE_S}"/Cargo.toml || die
- distutils-r1_src_prepare
-}
-
-python_compile() {
- distutils-r1_python_compile
-
- local DISTUTILS_USE_PEP517=maturin
- local DISTUTILS_UPSTREAM_PEP517=maturin
- cd "${PYDANTIC_CORE_S}" || die
- distutils-r1_python_compile
- cd - >/dev/null || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # == pydantic ==
- # -Werror, sigh
- tests/test_types_typeddict.py::test_readonly_qualifier_warning
-
- # == pydantic-core ==
- # TODO: recursion till segfault
- tests/serializers/test_functions.py::test_recursive_call
- )
- local EPYTEST_IGNORE=(
- # require pytest-examples (pydantic)
- tests/test_docs.py
- # benchmarks (both)
- tests/benchmarks
- )
-
- if ! has_version "dev-python/cloudpickle[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- # (pydantic)
- tests/test_pickle.py
- )
- fi
-
- cd "${PYDANTIC_CORE_S}" || die
- rm -rf pydantic_core || die
- # tests link to libpython, so they fail to link on pypy3
- [[ ${EPYTHON} != pypy3* ]] && cargo_src_test
- epytest -o xfail_strict=False -o addopts=
- cd - 2>/dev/null || die
-
- epytest
-}
diff --git a/dev-python/pydantic/pydantic-2.12.1.ebuild b/dev-python/pydantic/pydantic-2.12.1.ebuild
deleted file mode 100644
index 37b5775edb16..000000000000
--- a/dev-python/pydantic/pydantic-2.12.1.ebuild
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-# no provenance for pydantic-core:
-# https://github.com/pydantic/pydantic-core/issues/1842
-PYPI_VERIFY_REPO=https://github.com/pydantic/pydantic
-PYTHON_COMPAT=( python3_{10..14} )
-
-PYDANTIC_CORE_PV=2.41.3
-RUST_MIN_VER="1.75.0"
-CRATES="
- ahash@0.8.12
- aho-corasick@1.1.3
- autocfg@1.3.0
- base64@0.22.1
- bitflags@2.9.1
- bitvec@1.0.1
- bumpalo@3.19.0
- cc@1.0.101
- cfg-if@1.0.0
- displaydoc@0.2.5
- enum_dispatch@0.3.13
- form_urlencoded@1.2.1
- funty@2.0.0
- getrandom@0.3.3
- heck@0.5.0
- hex@0.4.3
- icu_collections@1.5.0
- icu_locid@1.5.0
- icu_locid_transform@1.5.0
- icu_locid_transform_data@1.5.0
- icu_normalizer@1.5.0
- icu_normalizer_data@1.5.0
- icu_properties@1.5.1
- icu_properties_data@1.5.0
- icu_provider@1.5.0
- icu_provider_macros@1.5.0
- idna@1.1.0
- idna_adapter@1.2.0
- indoc@2.0.5
- itoa@1.0.11
- jiter@0.11.0
- js-sys@0.3.77
- lexical-parse-float@1.0.5
- lexical-parse-integer@1.0.5
- lexical-util@1.0.6
- libc@0.2.155
- litemap@0.7.3
- log@0.4.27
- memchr@2.7.4
- memoffset@0.9.1
- num-bigint@0.4.6
- num-integer@0.1.46
- num-traits@0.2.19
- once_cell@1.21.3
- percent-encoding@2.3.1
- portable-atomic@1.6.0
- proc-macro2@1.0.86
- pyo3-build-config@0.26.0
- pyo3-ffi@0.26.0
- pyo3-macros-backend@0.26.0
- pyo3-macros@0.26.0
- pyo3@0.26.0
- python3-dll-a@0.2.14
- quote@1.0.36
- r-efi@5.2.0
- radium@0.7.0
- regex-automata@0.4.11
- regex-syntax@0.8.5
- regex@1.11.3
- rustversion@1.0.17
- ryu@1.0.18
- serde@1.0.228
- serde_core@1.0.228
- serde_derive@1.0.228
- serde_json@1.0.145
- smallvec@1.15.1
- speedate@0.17.0
- stable_deref_trait@1.2.0
- static_assertions@1.1.0
- strum@0.27.2
- strum_macros@0.27.2
- syn@2.0.82
- synstructure@0.13.1
- tap@1.0.1
- target-lexicon@0.13.2
- tinystr@0.7.6
- unicode-ident@1.0.12
- unindent@0.2.3
- url@2.5.4
- utf16_iter@1.0.5
- utf8_iter@1.0.4
- uuid@1.18.1
- version_check@0.9.5
- wasi@0.14.2+wasi-0.2.4
- wasm-bindgen-backend@0.2.100
- wasm-bindgen-macro-support@0.2.100
- wasm-bindgen-macro@0.2.100
- wasm-bindgen-shared@0.2.100
- wasm-bindgen@0.2.100
- wit-bindgen-rt@0.39.0
- write16@1.0.0
- writeable@0.5.5
- wyz@0.5.1
- yoke-derive@0.7.4
- yoke@0.7.4
- zerocopy-derive@0.8.25
- zerocopy@0.8.25
- zerofrom-derive@0.1.4
- zerofrom@0.1.4
- zerovec-derive@0.10.3
- zerovec@0.10.4
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Data parsing and validation using Python type hints"
-HOMEPAGE="
- https://github.com/pydantic/pydantic/
- https://pypi.org/project/pydantic/
-"
-# pydantic-core & pydantic have a perfect circular test dep now
-SRC_URI+="
- $(pypi_sdist_url pydantic_core "${PYDANTIC_CORE_PV}")
- ${CARGO_CRATE_URIS}
-"
-PYDANTIC_CORE_S=${WORKDIR}/pydantic_core-${PYDANTIC_CORE_PV}
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 Unicode-DFS-2016
- || ( Apache-2.0 Boost-1.0 )
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- >=dev-python/annotated-types-0.6.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.14.1[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.2[${PYTHON_USEDEP}]
- dev-python/tzdata[${PYTHON_USEDEP}]
- !dev-python/pydantic-core
-"
-BDEPEND="
- >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
- dev-util/maturin[${PYTHON_USEDEP}]
- test? (
- $(python_gen_cond_dep '
- dev-python/cloudpickle[${PYTHON_USEDEP}]
- ' 'python3*')
- dev-python/dirty-equals[${PYTHON_USEDEP}]
- >=dev-python/email-validator-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/faker-18.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- )
-"
-# pydantic-core
-BDEPEND+="
- test? (
- >=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
- >=dev-python/inline-snapshot-0.13.3[${PYTHON_USEDEP}]
- >=dev-python/typing-inspection-0.4.1[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/pydantic_core/_pydantic_core.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- sed -i -e '/benchmark/d' {.,"${PYDANTIC_CORE_S}"}/pyproject.toml || die
- sed -i -e '/^strip/d' "${PYDANTIC_CORE_S}"/Cargo.toml || die
- distutils-r1_src_prepare
-}
-
-python_compile() {
- distutils-r1_python_compile
-
- local DISTUTILS_USE_PEP517=maturin
- local DISTUTILS_UPSTREAM_PEP517=maturin
- cd "${PYDANTIC_CORE_S}" || die
- distutils-r1_python_compile
- cd - >/dev/null || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # == pydantic ==
- # -Werror, sigh
- tests/test_types_typeddict.py::test_readonly_qualifier_warning
-
- # == pydantic-core ==
- # TODO: recursion till segfault
- tests/serializers/test_functions.py::test_recursive_call
- )
- local EPYTEST_IGNORE=(
- # require pytest-examples (pydantic)
- tests/test_docs.py
- # benchmarks (both)
- tests/benchmarks
- )
-
- if ! has_version "dev-python/cloudpickle[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- # (pydantic)
- tests/test_pickle.py
- )
- fi
-
- cd "${PYDANTIC_CORE_S}" || die
- rm -rf pydantic_core || die
- # tests link to libpython, so they fail to link on pypy3
- [[ ${EPYTHON} != pypy3* ]] && cargo_src_test
- epytest -o xfail_strict=False -o addopts=
- cd - 2>/dev/null || die
-
- epytest
-}
diff --git a/dev-python/pydantic/pydantic-2.12.2.ebuild b/dev-python/pydantic/pydantic-2.12.3.ebuild
index 3b1e60563257..3b1e60563257 100644
--- a/dev-python/pydantic/pydantic-2.12.2.ebuild
+++ b/dev-python/pydantic/pydantic-2.12.3.ebuild
diff --git a/dev-python/pypresence/Manifest b/dev-python/pypresence/Manifest
index 76bb15b36079..3fdac0367e98 100644
--- a/dev-python/pypresence/Manifest
+++ b/dev-python/pypresence/Manifest
@@ -1 +1,2 @@
DIST pypresence-4.3.0.gh.tar.gz 376791 BLAKE2B 27cbbaee11145e01610b515344dcefec62adc6dc1071ff744bce03029ba447ddc400806f3bc3f1bce87c6a1efa3f2b76b7f5414a72b70852a2fb6fc3c9722861 SHA512 865f4017732967b64213608c2bd9c8aa95bea4a326ef907a798e4cc18f8b0b5fe7160ee5774f2fa00a18c68e333d17dcb24485be1a27ef4d883d694d78ca0517
+DIST pypresence-4.6.1.gh.tar.gz 217869 BLAKE2B 04673899211c651b7cff674378a37af1e21675576184afb96f2abdd6426d404fed0e25008eb1da5d32f4dbf7ea2aed57852afee1d37ee05eda3ab57ace6da6ae SHA512 df7dc6e9ed8426c0305149a842a618231f8242e57c6942568b8e8c0bb39398abf313134de2f1e57a07ce6c126cff2d2e6259a54d95a55274220356ddc1700a16
diff --git a/dev-python/pypresence/metadata.xml b/dev-python/pypresence/metadata.xml
index 5e878b626286..e0aed2ab00f7 100644
--- a/dev-python/pypresence/metadata.xml
+++ b/dev-python/pypresence/metadata.xml
@@ -5,6 +5,10 @@
<email>nowa@gentoo.org</email>
<name>Nowa Ammerlaan</name>
</maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
<origin>gentoo-staging</origin>
<stabilize-allarches/>
diff --git a/dev-python/pypresence/pypresence-4.6.1.ebuild b/dev-python/pypresence/pypresence-4.6.1.ebuild
new file mode 100644
index 000000000000..6ea28ee49eae
--- /dev/null
+++ b/dev-python/pypresence/pypresence-4.6.1.ebuild
@@ -0,0 +1,24 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Complete Discord IPC and Rich Presence wrapper library in Python"
+HOMEPAGE="https://github.com/qwertyquerty/pypresence"
+SRC_URI="
+ https://github.com/qwertyquerty/pypresence/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+distutils_enable_sphinx docs/sphinx dev-python/alabaster
+EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-qt/Manifest b/dev-python/pytest-qt/Manifest
index 2546bdc19698..2f71028c9090 100644
--- a/dev-python/pytest-qt/Manifest
+++ b/dev-python/pytest-qt/Manifest
@@ -1 +1,2 @@
DIST pytest_qt-4.5.0.tar.gz 128702 BLAKE2B c39abc147de4b9651308bf51fe6bef7285f27229c62f5b52d10357b05647b05fc7737c0a91c7032e88150af544e98044c2310b32154b93c4b3aaa30da76b7417 SHA512 84b4789e3017dfbbc0c36658bb36d175055cf2354612833aae91441e803457142d412edbe74823f916ac1cccb73efc87ed73b776a8b18cf71d66497514edc5cd
+DIST pytest_qt-4.5.0.tar.gz.provenance 9286 BLAKE2B 6eaf573ca9cfcabf9b1d54d30310e0307f44486b21b2439a78783688084a2691c5ecd3fb16234e1217d68e28f194d15036b3eb16f0ec1587adb490a3d113a3be SHA512 9f013bd314ad88a6bc918b7a68db5d172456fc0440e14f5a639c9cf8ea50aa8d1588eb7ead3a88426e79dbc4a801733c04cf5d763d05e7d6cf3a3ba218f34c10
diff --git a/dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild b/dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild
new file mode 100644
index 000000000000..fbc851736fe9
--- /dev/null
+++ b/dev-python/pytest-qt/pytest-qt-4.5.0-r1.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pytest-dev/pytest-qt
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 virtualx pypi
+
+DESCRIPTION="Pytest plugin for PyQt6 and PySide6 applications"
+HOMEPAGE="
+ https://pypi.org/project/pytest-qt/
+ https://github.com/pytest-dev/pytest-qt/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.1[${PYTHON_USEDEP}]
+ dev-python/qtpy[gui,testlib,widgets(+),${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ || (
+ dev-python/pyqt6[gui,testlib,widgets,${PYTHON_USEDEP}]
+ dev-python/pyqt5[gui,testlib,widgets,${PYTHON_USEDEP}]
+ dev-python/pyside:6[gui,testlib,widgets,${PYTHON_USEDEP}]
+ )
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires the window to be activated; that doesn't seem
+ # to be possible inside Xvfb
+ "tests/test_basics.py::test_wait_window[waitActive-True]"
+
+ # TODO
+ tests/test_exceptions.py::test_exceptions_dont_leak
+
+ # we are forcing a specific module via envvar, effectively
+ # overriding the config
+ tests/test_basics.py::test_qt_api_ini_config
+ tests/test_basics.py::test_qt_api_ini_config_with_envvar
+ )
+
+ local -x QT_API PYTEST_QT_API
+ local tests_ran=
+ for QT_API in pyqt{5,6} "pyside:6"; do
+ if has_version "dev-python/${QT_API}[gui,testlib,widgets,${PYTHON_USEDEP}]"
+ then
+ PYTEST_QT_API=${QT_API//:/}
+ einfo "Testing with ${EPYTHON} and ${PYTEST_QT_API}"
+ # force-disable xfail_strict as upstream as xfail assumptions
+ # don't seem to hold on arm64
+ nonfatal epytest -oxfail_strict=false ||
+ die -n "Tests failed with ${EPYTHON} and ${PYTEST_QT_API}" ||
+ return 1
+ tests_ran=1
+ fi
+ done
+
+ if [[ ! ${tests_ran} ]]; then
+ die "No tests ran!"
+ fi
+}
diff --git a/dev-python/python-ldap/Manifest b/dev-python/python-ldap/Manifest
index f17fbfa23c64..f229740ce905 100644
--- a/dev-python/python-ldap/Manifest
+++ b/dev-python/python-ldap/Manifest
@@ -1,2 +1 @@
-DIST python-ldap-3.4.4.gh.tar.gz 378862 BLAKE2B 05a0f9696b888f56ea51f4cdfc21e3c67b10aec8d1d300c1f6b26d23285d81e7a126e0e56e4a8343a5c1f35c919ef340287dc9109d26ed146e1d64a0831b722b SHA512 de87bc6f64540969d1a0ec003f2518c4e8a1899798085371ed017209702fe0c580eea235def8208a5aea42541011b2515c982924f6a75558a84b3f01785254ae
DIST python-ldap-3.4.5.gh.tar.gz 380704 BLAKE2B bd047f4472d23cbdb8573549e8b769b485bab1797d8325337a659e4388683ba44f8ab2709fa31289b46ab7198d3528247e0d156631c0e48ec7ee989d2b43802d SHA512 5161b7f2b5a0d975f7e5c7e16df132f0b709b986ec8a8e304d836bad278b971f5fdaf4ef39116d62947695f9eb5d7b3315317a3c7973d045c3cbde03933f4308
diff --git a/dev-python/python-ldap/python-ldap-3.4.4.ebuild b/dev-python/python-ldap/python-ldap-3.4.4.ebuild
deleted file mode 100644
index b8f6f65bc7e8..000000000000
--- a/dev-python/python-ldap/python-ldap-3.4.4.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# 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_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Various LDAP-related Python modules"
-HOMEPAGE="
- https://www.python-ldap.org/en/latest/
- https://pypi.org/project/python-ldap/
- https://github.com/python-ldap/python-ldap/
-"
-SRC_URI="
- https://github.com/python-ldap/python-ldap/archive/${P}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/${PN}-${P}
-
-LICENSE="MIT PSF-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~sparc x86"
-IUSE="examples sasl ssl"
-
-RDEPEND="
- >=dev-python/pyasn1-0.3.7[${PYTHON_USEDEP}]
- >=dev-python/pyasn1-modules-0.1.5[${PYTHON_USEDEP}]
- net-nds/openldap:=[sasl?,ssl?]
-"
-# We do not link against cyrus-sasl but we use some
-# of its headers during the build.
-DEPEND="
- net-nds/openldap:=[sasl?,ssl?]
- sasl? ( >=dev-libs/cyrus-sasl-2.1 )
-"
-
-distutils_enable_tests pytest
-distutils_enable_sphinx Doc
-
-python_prepare_all() {
- if ! use sasl; then
- sed -i 's/HAVE_SASL//g' setup.cfg || die
- fi
- if ! use ssl; then
- sed -i 's/HAVE_TLS//g' setup.cfg || die
- fi
-
- distutils-r1_python_prepare_all
-}
-
-python_test() {
- # Run all tests which don't require slapd
- local EPYTEST_IGNORE=(
- t_bind.py
- t_cext.py
- t_edit.py
- t_ldapobject.py
- t_ldap_options.py
- t_ldap_sasl.py
- t_ldap_schema_subentry.py
- t_ldap_syncrepl.py
- t_slapdobject.py
- )
- pushd Tests >/dev/null || die
- epytest
- popd > /dev/null || die
-}
-
-python_install_all() {
- if use examples; then
- docinto examples
- dodoc -r Demo/.
- docompress -x /usr/share/doc/${PF}/examples
- fi
- distutils-r1_python_install_all
-}
diff --git a/dev-python/python-ldap/python-ldap-3.4.5.ebuild b/dev-python/python-ldap/python-ldap-3.4.5.ebuild
index 0ea3cd88d572..371e768fadbf 100644
--- a/dev-python/python-ldap/python-ldap-3.4.5.ebuild
+++ b/dev-python/python-ldap/python-ldap-3.4.5.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${PN}-${P}
LICENSE="MIT PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~sparc x86"
IUSE="examples sasl ssl"
RDEPEND="
diff --git a/dev-python/pythran/pythran-0.18.0-r1.ebuild b/dev-python/pythran/pythran-0.18.0-r1.ebuild
new file mode 100644
index 000000000000..5f69c47d48d8
--- /dev/null
+++ b/dev-python/pythran/pythran-0.18.0-r1.ebuild
@@ -0,0 +1,114 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+MY_P=${P/_p/.post}
+DESCRIPTION="Ahead of Time compiler for numeric kernels"
+HOMEPAGE="
+ https://pypi.org/project/pythran/
+ https://github.com/serge-sans-paille/pythran/
+"
+SRC_URI="
+ https://github.com/serge-sans-paille/pythran/archive/${PV/_p/.post}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-libs/boost
+ dev-cpp/xsimd
+ =dev-python/beniget-0.4*[${PYTHON_USEDEP}]
+ =dev-python/gast-0.6*[${PYTHON_USEDEP}]
+ dev-python/numpy:=[${PYTHON_USEDEP}]
+ >=dev-python/ply-3.4[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-73.0.1[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ dev-libs/boost
+ dev-cpp/xsimd
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ virtual/cblas
+ !!dev-python/setuptools-declarative-requirements
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_configure() {
+ # vendored C++ headers -- use system copies
+ rm -r pythran/{boost,xsimd} || die
+
+ # https://bugs.gentoo.org/916461
+ sed -i \
+ -e 's|blas=blas|blas=cblas|' \
+ -e 's|libs=|libs=cblas|' \
+ pythran/pythran-*.cfg || die
+ # boost.math 1.82.0+ requires -std=c++14
+ sed -i \
+ -e 's|-std=c++11|-std=c++14|' \
+ pythran/pythran-*.cfg || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # multiple extra deps (meson, openblas)
+ # also broken on pypy3*
+ pythran/tests/test_distutils.py::TestMeson::test_meson_build
+
+ # newer numpy version?
+ pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_fromstring0
+ pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_fromstring1
+ pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_ndindex1
+ pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_ndindex2
+ pythran/tests/test_ndarray.py::TestNdarray::test_ndarray_bool
+ pythran/tests/test_xdoc.py::TestDoctest::test_tutorial
+ pythran/tests/test_xdoc.py::TestDoctest::test_utils
+ pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_random_bytes1
+
+ # newer gcc?
+ pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_ndenumerate0
+ pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_ndenumerate1
+ )
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO
+ pythran/tests/test_numpy_fft.py::TestNumpyFFT::test_fft_3d_axis
+ pythran/tests/test_numpy_fft.py::TestNumpyFFTN
+ )
+ ;&
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # https://github.com/serge-sans-paille/pythran/issues/2290
+ pythran/tests/test_conversion.py::TestConversion::test_builtin_type9
+ pythran/tests/test_ndarray.py::TestNdarray::test_ndarray_uintp
+ pythran/tests/test_numpy_ufunc_unary.py::TestNumpyUFuncUnary::test_numpy_ufunc_unary_numpy_ufunc_unary_numpy_uint32_scalar_float
+ )
+ ;;
+ esac
+
+ local -x COLUMNS=80
+ epytest
+}
diff --git a/dev-python/pyu2f/pyu2f-0.1.5-r1.ebuild b/dev-python/pyu2f/pyu2f-0.1.5-r1.ebuild
index dda06e8461df..fb39c6711e81 100644
--- a/dev-python/pyu2f/pyu2f-0.1.5-r1.ebuild
+++ b/dev-python/pyu2f/pyu2f-0.1.5-r1.ebuild
@@ -28,14 +28,13 @@ RDEPEND="
BDEPEND="
${RDEPEND}
test? (
- dev-python/pyfakefs[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
)
"
DOCS=( CONTRIBUTING.md README.md )
+EPYTEST_PLUGINS=( pyfakefs )
distutils_enable_tests pytest
python_prepare_all() {
diff --git a/dev-python/pyzotero/Manifest b/dev-python/pyzotero/Manifest
index cc79ff224cc8..089825bd446d 100644
--- a/dev-python/pyzotero/Manifest
+++ b/dev-python/pyzotero/Manifest
@@ -2,3 +2,5 @@ DIST pyzotero-1.6.16.tar.gz 526904 BLAKE2B f5b385e3d22ec4a2bf9e35ea9578c60f2947f
DIST pyzotero-1.6.16.tar.gz.provenance 9231 BLAKE2B 7e877621d092b4b8e07a5a9eac4c9d5143d0172eeb199fba11e3f34e92f145c01ea2a66ac2e2190b231004337b51ec25d0be9f685f98615db111a1a5edd60bf5 SHA512 debdfadded065a7abdac9ff43d0417d03518f876355515881dcbd1b7901c6b68240695d408c20a9b3b8f105f800a1a2066e83192b1b91ef081fc91b1121a84da
DIST pyzotero-1.6.17.tar.gz 527253 BLAKE2B 502c6e9a850b026bdb965b19e788068652242b476a8952d8922272dd7104a232f8f52f97d3e2b480cfc58a2c1bb9fb77e2913474c6faf16e295fa6cf99be6959 SHA512 c972b69e3e30f4e21eed6c5d4f0697ba913dc5543480264441250572a3ea9295a79c4b565555861bd6aa2fcf324a1bb24ca9849ec0f0f5edb7b6d2a82c701c4e
DIST pyzotero-1.6.17.tar.gz.provenance 9407 BLAKE2B 903dad16065eed019964b12e5220e1bd0ef9a0b1d00c4b2fb665ce47927d3b009ad71dcc8b9a374344a11d8e7e152277be44dd392d6a188eb8d3cda0b0606859 SHA512 4ee4325326dc69a8365d153fd377f7bbf75d849794dfddd43a30ee7c2bcaf68b0c0139d91ea2a2de4b7c847f4effe9230c83fab477badc03f26a1efcb9bb94f2
+DIST pyzotero-1.7.2.tar.gz 531570 BLAKE2B e615de0b8f34505353db19011d5b59e8ad38664abc01155272cd04bc166348cc6e7434efa74ba550582199b2879338da6073f83ac6f45f488be2bb86ab5c30c7 SHA512 4c42989276181b04f1593c1b1a2b4a11f38648a4e56d04b474dc6a9a908914693774dac1c17be5946e0afe63389cbf3073c82382fea3cc386506445e192da327
+DIST pyzotero-1.7.2.tar.gz.provenance 9395 BLAKE2B 6083881003437a1c7041aaac28f5678bfdaa317af8406fb9dcb899351ff7475a69e894a7d7d56d3e5c694f99525085e665f665e74be86a0188a0c5f482970482 SHA512 598a12a4928be2bbfe022c5f5a12ba20d706ca3e5341b01e6154174ba57afda3e7c0d678ebd88fc73ee659a949e6d0f8627f69489c0b93aee76c7129656c92ee
diff --git a/dev-python/pyzotero/pyzotero-1.7.2.ebuild b/dev-python/pyzotero/pyzotero-1.7.2.ebuild
new file mode 100644
index 000000000000..375eb6a672e6
--- /dev/null
+++ b/dev-python/pyzotero/pyzotero-1.7.2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYPI_VERIFY_REPO=https://github.com/urschrei/pyzotero
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python client for the Zotero API"
+HOMEPAGE="
+ https://github.com/urschrei/pyzotero/
+ https://pypi.org/project/pyzotero/
+"
+
+LICENSE="BlueOak-1.0.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ app-text/zotero-bin
+ <dev-python/bibtexparser-2[${PYTHON_USEDEP}]
+ >=dev-python/bibtexparser-1.4.3[${PYTHON_USEDEP}]
+ >=dev-python/feedparser-6.0.12[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ >=dev-python/whenever-0.8.8[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/httpretty-1.1.4[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2025.2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/tzdata-2025.2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx doc \
+ dev-python/sphinx-rtd-theme
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/qtconsole/qtconsole-5.7.0.ebuild b/dev-python/qtconsole/qtconsole-5.7.0.ebuild
index 748d90f5c204..9dd6940b3572 100644
--- a/dev-python/qtconsole/qtconsole-5.7.0.ebuild
+++ b/dev-python/qtconsole/qtconsole-5.7.0.ebuild
@@ -11,7 +11,7 @@ inherit distutils-r1 pypi virtualx
DESCRIPTION="Qt-based console for Jupyter with support for rich media output"
HOMEPAGE="
- https://spyder-ide.org/
+ https://www.spyder-ide.org/
https://github.com/spyder-ide/qtconsole/
https://pypi.org/project/qtconsole/
"
diff --git a/dev-python/qtpy/qtpy-2.4.3-r1.ebuild b/dev-python/qtpy/qtpy-2.4.3-r1.ebuild
new file mode 100644
index 000000000000..415ea2d7a79e
--- /dev/null
+++ b/dev-python/qtpy/qtpy-2.4.3-r1.ebuild
@@ -0,0 +1,190 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=QtPy
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 virtualx pypi
+
+DESCRIPTION="Abstraction layer on top of PyQt and PySide with additional custom QWidgets"
+HOMEPAGE="
+ https://github.com/spyder-ide/qtpy/
+ https://pypi.org/project/QtPy/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+_IUSE_QT_MODULES="
+ bluetooth dbus designer +gui help multimedia +network nfc opengl pdfium
+ positioning printsupport qml quick quick3d remoteobjects scxml sensors
+ serialport spatialaudio speech +sql svg testlib vulkan webchannel
+ webengine websockets +widgets +xml
+"
+IUSE="+pyqt6 pyside6 ${_IUSE_QT_MODULES}"
+unset _IUSE_QT_MODULES
+
+REQUIRED_USE="
+ || ( pyqt6 pyside6 )
+ pyside6? ( $(python_gen_useflags python3_{11..13}) )
+"
+
+# These flags are currently *not* common to the PySide2/6 and PyQt5/6 ebuilds
+# Disable them for now, please check periodically if this is still up to date.
+# 3d? ( pyside6 only )
+# charts? ( pyside6 only )
+# concurrent? ( pyside6 only )
+# httpserver? ( pyside6 only )
+# uitools? ( pyside6 only )
+# location? ( pyside6 only)
+# network-auth? ( pyside6 only )
+
+# WARNING: the obvious solution of using || for PyQt5/pyside2 is not going
+# to work. The package only checks whether PyQt5/pyside2 is installed, it does
+# not verify whether they have the necessary modules (i.e. satisfy the USE dep).
+#
+# Webengine is a special case, because PyQt6 provides this in a separate package
+# while PySide6 ships it in the same package.
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ pyqt6? (
+ dev-python/pyqt6[${PYTHON_USEDEP}]
+ dev-python/pyqt6[bluetooth?,dbus?,designer?,gui?,help?,multimedia?]
+ dev-python/pyqt6[network?,nfc?,opengl?,pdfium?,positioning?]
+ dev-python/pyqt6[printsupport?,qml?,quick?,quick3d?,remoteobjects?]
+ dev-python/pyqt6[scxml(-)?,sensors?,serialport?,spatialaudio?,speech?]
+ dev-python/pyqt6[sql?,svg?,testlib?,vulkan?,webchannel?,websockets?]
+ dev-python/pyqt6[widgets?,xml?]
+ webengine? ( dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets?,quick?] )
+
+ )
+ pyside6? (
+ $(python_gen_cond_dep '
+ dev-python/pyside:6[${PYTHON_USEDEP},core(+)]
+ dev-python/pyside:6[bluetooth?,dbus?,designer?,gui?,help?,multimedia?]
+ dev-python/pyside:6[network?,nfc?,opengl?,pdfium?,positioning?]
+ dev-python/pyside:6[printsupport?,qml?,quick?,quick3d?,remoteobjects(-)?]
+ dev-python/pyside:6[scxml?,sensors?,serialport?,spatialaudio?,speech?]
+ dev-python/pyside:6[sql?,svg?,testlib?,vulkan(+)?,webchannel?,webengine?]
+ dev-python/pyside:6[websockets?,widgets?,xml?]
+ ' python3_{11..13})
+ )
+"
+
+# The QtPy testsuite skips tests for bindings that are not installed, so here we
+# ensure that everything is available and all tests are run. Note that not
+# all flags are available in PyQt5/PySide2, so some tests are still skipped.
+BDEPEND="
+ test? (
+ pyqt6? (
+ dev-python/pyqt6[${PYTHON_USEDEP}]
+ dev-python/pyqt6[bluetooth,dbus,designer,gui,help,multimedia]
+ dev-python/pyqt6[network,nfc,opengl,pdfium,positioning,printsupport]
+ dev-python/pyqt6[qml,quick,quick3d,scxml(-),sensors,serialport]
+ dev-python/pyqt6[spatialaudio,speech,sql,svg,testlib,webchannel]
+ dev-python/pyqt6[vulkan(-),websockets,widgets,xml]
+ dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets,quick]
+ dev-qt/qtbase:6[sqlite]
+ )
+ pyside6? (
+ $(python_gen_cond_dep '
+ dev-python/pyside:6[${PYTHON_USEDEP},core(+)]
+ dev-python/pyside:6[3d,bluetooth,charts,concurrent,dbus,designer,gui]
+ dev-python/pyside:6[help,location,multimedia,network,network-auth]
+ dev-python/pyside:6[nfc,opengl,pdfium,positioning,printsupport,qml]
+ dev-python/pyside:6[quick,quick3d,scxml,sensors,serialport]
+ dev-python/pyside:6[spatialaudio,speech,sql,svg,testlib,vulkan(+)]
+ dev-python/pyside:6[webchannel,webengine,websockets,widgets,xml]
+ dev-qt/qtbase:6[sqlite]
+ ' python3_{11..13})
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-qt )
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # Disable Qt for Python implementations that are not selected
+
+ # Always disable PyQt5
+ sed \
+ -e '/from PyQt5.QtCore import/,/)/c\ \ \ \ \ \ \ \ raise ImportError #/' \
+ -e '/if "PyQt5" in sys.modules:/,/"pyqt5"/c\' \
+ -i qtpy/__init__.py || die
+
+ # We need to ensure the first option is an 'if' not 'elif'
+ sed -e 's/elif "PySide2" in sys.modules:/if "PySide2" in sys.modules:/g' \
+ -i qtpy/__init__.py || die
+
+ # Always disable PySide2
+ sed \
+ -e "s/from PySide2 import/raise ImportError #/" \
+ -e "s/from PySide2.QtCore import/raise ImportError #/" \
+ -e '/if "PySide2" in sys.modules:/,/"pyside2"/c\' \
+ -i qtpy/__init__.py || die
+
+ sed \
+ -e 's/elif "PyQt6" in sys.modules:/if "PyQt6" in sys.modules:/g' \
+ -i qtpy/__init__.py || die
+
+ if ! use pyqt6; then
+ sed \
+ -e '/from PyQt6.QtCore import/,/)/c\ \ \ \ \ \ \ \ raise ImportError #/' \
+ -e '/if "PyQt6" in sys.modules:/,/"pyqt6"/c\' \
+ -i qtpy/__init__.py || die
+
+ sed \
+ -e 's/elif "PySide6" in sys.modules:/if "PySide6" in sys.modules:/g' \
+ -i qtpy/__init__.py || die
+ fi
+ if ! use pyside6; then
+ sed \
+ -e "s/from PySide6 import/raise ImportError #/" \
+ -e "s/from PySide6.QtCore import/raise ImportError #/" \
+ -e '/if "PySide6" in sys.modules:/,/"pyside6"/c\' \
+ -i qtpy/__init__.py || die
+ fi
+}
+
+python_test() {
+ local -x QT_API
+ local -a EPYTEST_DESELECT
+ local other
+
+ # Test for each enabled Qt4Python target.
+ # Deselect the other targets, their test fails if we specify QT_API
+ # or if we have disabled their corresponding inherit in __init__.py above
+ for QT_API in PyQt6 PySide6; do
+ if use "${QT_API,,}"; then
+ EPYTEST_DESELECT=()
+ for other in PyQt{5,6} PySide{2,6}; do
+ if [[ ${QT_API} != ${other} ]]; then
+ EPYTEST_DESELECT+=(
+ "qtpy/tests/test_main.py::test_qt_api_environ[${other}]"
+ )
+ fi
+ done
+
+ einfo "Testing with ${EPYTHON} and QT_API=${QT_API}"
+ nonfatal epytest -o addopts= ||
+ die -n "Tests failed with ${EPYTHON} and QT_API=${QT_API}" ||
+ return 1
+ fi
+ done
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+pkg_postinst() {
+ elog "When multiple Qt4Python targets are enabled QtPy will default to"
+ elog "the first enabled target in this order: PyQt6 PySide6."
+ elog "This can be overridden with the QT_API environment variable."
+}
diff --git a/dev-python/scipy/Manifest b/dev-python/scipy/Manifest
index 10e718aa1503..7474a88874e8 100644
--- a/dev-python/scipy/Manifest
+++ b/dev-python/scipy/Manifest
@@ -1,8 +1,2 @@
-DIST scipy-1.15.3.tar.gz 59419214 BLAKE2B 526e6182e4991e52fea69452b7894b203d31089ee1f8640ef1bff8f1fa57c31a7179a1ab82325689f3b0a7b907c34adb64b80e640780c99e166f6999adbb1524 SHA512 009de94a64c9361b261788ef3577d636a20ca23ff5c8f12f5e19a4ba4d6177ef7ade0cf1a5ee740bd1c6d740193d70b314d1abd83ab65fcb5d5cf2d2ba06bfb1
-DIST scipy-1.16.0.tar.gz 30581216 BLAKE2B faab7755584acfb6f2aa6a9e36a1fef840212d9b2478002313b94fd3762317be3d705e09d10960146bfbed5274cab80bd2170ce5bc3368b5ab860e8b5fe2f346 SHA512 6a88cc1b2f3e4cc7c4d867238965521e41b0394614a5ffcc7179b379dad20c0889a7ce4195ef676e78d7aa8d6f83f88f1380da8b225b59c4b6b87a9e6579efb7
-DIST scipy-1.16.1.tar.gz 30580861 BLAKE2B 1013d6658d060954fe1bcebf418351c447a9edcbf811b0de170870f566ffa0f4f7d40b065cdd74dbaebb8c537e8e0384ab4e8e4638995e4b7652288536e86126 SHA512 979a74b9700de0e9731677c056830b1ad108a7376462e43a2a2523addc88bcd3580b84f73552b581d60a3d8774884545d42551f36111334a40268a41ab2513ba
DIST scipy-1.16.2.tar.gz 30580599 BLAKE2B aec4039fe5798365fbe5147a4d6acea61e408ad0a533da4a3602e3c03a5a495f693b9b998a0417524621e6414e3bc847339364d6536e6b489cff43931253c87d SHA512 6b5c1ab6236af5d40850f8b77f8d47494dda9bccf814908ba306b4b3710359d18eb0dd880c05dc4f334cc298d0a2d54d271d5cd5b519190fcfba58524b1d8dce
-DIST scipy-html-1.15.3.zip 68590525 BLAKE2B f6473e273843e3eb2aa791be1b885a11ac2b77accdf00ea2d7bc78dc59228dede66259ff4d2ac616ceeb3152a80a8036226622240d963a8bce51dc0143b6aea4 SHA512 df59c2a53dc9c8a64631a2c9906762de046b9beefd759e0810afdcbb00e4da8800e83902d49fa81d791bccb0ed190e00f0ea4948b855e97ad9b5d7a0984d4eec
-DIST scipy-html-1.16.0.zip 71540070 BLAKE2B eca4f76e6e3f4747e8e6a1c432c7b9fd52638ae37e00f50733b3eb7bc9f165f507478a8331b3420f158a5f316ba72c0925bf8933b9392638f1d346871fb5dd0a SHA512 839cf7511d7dce320da2966c45ff62056f93b35687e6fd42f2b0725dd4389f50a8ce69d125043de2632861b0bf5187af591558f9019e3543825255edd2372c12
-DIST scipy-html-1.16.1.zip 71509503 BLAKE2B b2500a21a3b52fc0bb2c1ee2dfb085d84fd03537d89f8d65fc8e2ebce88aafb4641fa2edc982e5e665af173687323318df998dd0dae022e99ea5341bf6c57264 SHA512 6477db2dcc485c7798bcdc5f1b8fc617b5981efb3675df40259a99d6fb130b3523eca191fcdd31b31dc58f47d77366ca34d488d77a57648c50acdef80c25b36e
DIST scipy-html-1.16.2.zip 71516578 BLAKE2B 244537f823e39b52e0b00df63f8f36088f5ef17e365f98415d1573883e9c0eee3f4376b149eaea9b70b34b34a294aeafae9f849050ab8161a8ecdb24172c2876 SHA512 15df0c7211cc4d32007b54015efc17edd1c9b23e8892b748ab946c5c1ea3e1840a00d9005b585cc0c6416bcef1e490f54ff919d3c0140ed95d8e469836751d5c
diff --git a/dev-python/scipy/scipy-1.15.3.ebuild b/dev-python/scipy/scipy-1.15.3.ebuild
deleted file mode 100644
index 8e2e9b6710f1..000000000000
--- a/dev-python/scipy/scipy-1.15.3.ebuild
+++ /dev/null
@@ -1,152 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-FORTRAN_NEEDED=fortran
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=meson-python
-PYTHON_COMPAT=( python3_{10..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit flag-o-matic fortran-2 distutils-r1
-
-DESCRIPTION="Scientific algorithms library for Python"
-HOMEPAGE="
- https://scipy.org/
- https://github.com/scipy/scipy/
- https://pypi.org/project/scipy/
-"
-
-if [[ ${PV} == *9999* ]] ; then
- inherit git-r3
-
- # Need submodules, so git for now.
- EGIT_REPO_URI="https://github.com/scipy/scipy"
- EGIT_BRANCH="maintenance/$(ver_cut 1-2).x"
- EGIT_SUBMODULES=( '*' )
-else
- inherit pypi
-
- # Upstream is often behind with doc updates
- DOC_PV=${PV}
-
- SRC_URI+="
- doc? (
- https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip
- )"
-
- if [[ ${PV} != *rc* ]] ; then
- KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
- fi
-fi
-
-LICENSE="BSD LGPL-2"
-SLOT="0"
-IUSE="doc +fortran test-rust"
-
-# pythran is needed in both BDEPEND (for /usr/bin/pythran) and in DEPEND
-# to actually compile code generated by pythran (headers and such needed).
-#
-# umfpack is technically optional but it's preferred to have it available.
-DEPEND="
- >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}]
- sci-libs/arpack:=
- sci-libs/umfpack
- virtual/cblas
- >=virtual/lapack-3.8
-"
-RDEPEND="
- ${DEPEND}
- dev-python/pillow[${PYTHON_USEDEP}]
-"
-DEPEND+="
- fortran? (
- >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
- )
-"
-BDEPEND="
- dev-lang/swig
- >=dev-python/cython-3.0.8[${PYTHON_USEDEP}]
- >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}]
- >=dev-python/pybind11-2.13.2[${PYTHON_USEDEP}]
- >=dev-build/meson-1.5.0
- !kernel_Darwin? ( dev-util/patchelf )
- virtual/pkgconfig
- doc? ( app-arch/unzip )
- fortran? (
- >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
- )
- test? (
- >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}]
- )
- test-rust? (
- dev-python/pooch[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- default
-
- if use doc; then
- unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
- fi
-}
-
-python_configure_all() {
- DISTUTILS_ARGS=(
- -Dblas=blas
- -Dlapack=lapack
- -Duse-pythran=$(usex fortran true false)
- )
-
- # https://bugs.gentoo.org/932721
- has_version '>=dev-python/numpy-2.0.0' && filter-lto
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
-
- local EPYTEST_DESELECT=(
- # Network
- scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all
- scipy/datasets/tests/test_data.py::TestDatasets::test_ascent
- scipy/datasets/tests/test_data.py::TestDatasets::test_face
- scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram
-
- # Crashes with assertion, not a regression
- # https://github.com/scipy/scipy/issues/19321
- scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object
- )
- local EPYTEST_IGNORE=()
-
- if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then
- EPYTEST_IGNORE+=(
- scipy/datasets/tests/test_data.py
- )
- fi
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # TODO
- 'scipy/special/tests/test_data.py::test_boost[<Data for expi: expinti_data_long_ipp-expinti_data_long>]'
- 'scipy/_lib/tests/test_ccallback.py::test_callbacks'
- )
- ;;
- esac
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # avoid other stuff being multithreaded when using xdist
- local -x PYTHON_CPU_COUNT=1
- epytest scipy
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( "${WORKDIR}"/html/. )
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/scipy/scipy-1.16.0.ebuild b/dev-python/scipy/scipy-1.16.0.ebuild
deleted file mode 100644
index 171fc2e8794c..000000000000
--- a/dev-python/scipy/scipy-1.16.0.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-FORTRAN_NEEDED=fortran
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=meson-python
-PYTHON_COMPAT=( python3_{10..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit flag-o-matic fortran-2 distutils-r1
-
-DESCRIPTION="Scientific algorithms library for Python"
-HOMEPAGE="
- https://scipy.org/
- https://github.com/scipy/scipy/
- https://pypi.org/project/scipy/
-"
-
-if [[ ${PV} == *9999* ]] ; then
- inherit git-r3
-
- # Need submodules, so git for now.
- EGIT_REPO_URI="https://github.com/scipy/scipy"
- EGIT_BRANCH="maintenance/$(ver_cut 1-2).x"
- EGIT_SUBMODULES=( '*' )
-else
- inherit pypi
-
- # Upstream is often behind with doc updates
- DOC_PV=${PV}
-
- SRC_URI+="
- doc? (
- https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip
- )"
-
- if [[ ${PV} != *rc* ]] ; then
- KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
- fi
-fi
-
-LICENSE="BSD LGPL-2"
-SLOT="0"
-IUSE="doc +fortran test-rust"
-
-# pythran is needed in both BDEPEND (for /usr/bin/pythran) and in DEPEND
-# to actually compile code generated by pythran (headers and such needed).
-#
-# umfpack is technically optional but it's preferred to have it available.
-COMMON_DEPEND="
- >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}]
- ~media-libs/qhull-2020.2:=
- sci-libs/arpack:=
- sci-libs/umfpack
- virtual/cblas
- >=virtual/lapack-3.8
-"
-# Only boost.math is used, and meson.build doesn't even look up specific boost modules.
-# Exact version is enforced upstream, so building will fail if subslot isn't enforced.
-DEPEND="
- ${COMMON_DEPEND}
- dev-libs/boost:0/1.88.0
-"
-RDEPEND="
- ${COMMON_DEPEND}
- dev-python/pillow[${PYTHON_USEDEP}]
-"
-DEPEND+="
- fortran? (
- >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
- )
-"
-BDEPEND="
- dev-lang/swig
- >=dev-python/cython-3.0.8[${PYTHON_USEDEP}]
- >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}]
- >=dev-python/pybind11-2.13.2[${PYTHON_USEDEP}]
- >=dev-build/meson-1.5.0
- !kernel_Darwin? ( dev-util/patchelf )
- virtual/pkgconfig
- doc? ( app-arch/unzip )
- fortran? (
- >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
- )
- test? (
- >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}]
- )
- test-rust? (
- dev-python/pooch[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- default
-
- if use doc; then
- unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
- fi
-}
-
-python_configure_all() {
- DISTUTILS_ARGS=(
- -Dblas=blas
- -Dlapack=lapack
- -Duse-pythran=$(usex fortran true false)
- # note: recheck on version bumps, upstream is planning
- # to allow more
- '-Duse-system-libraries=boost.math,qhull'
- )
-
- # https://bugs.gentoo.org/932721
- has_version '>=dev-python/numpy-2.0.0' && filter-lto
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
-
- local EPYTEST_DESELECT=(
- # Network
- scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all
- scipy/datasets/tests/test_data.py::TestDatasets::test_ascent
- scipy/datasets/tests/test_data.py::TestDatasets::test_face
- scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram
-
- # Crashes with assertion, not a regression
- # https://github.com/scipy/scipy/issues/19321
- scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object
-
- # Awfully slow tests
- scipy/interpolate/tests/test_bsplines.py::TestBatch::test_batch
- scipy/linalg/tests/test_basic.py::TestLstsq::test_random_complex_exact
- scipy/sparse/linalg/_eigen/tests/test_svds.py::test_small_sigma_sparse
-
- # TODO: minor precision errors
- 'scipy/linalg/tests/test_batch.py::TestBatch::test_solve[float32-bdim2]'
- 'scipy/linalg/tests/test_batch.py::TestBatch::test_lu_solve[float32-bdim2]'
-
- # Crashes, probably too big
- 'scipy/interpolate/tests/test_fitpack2.py::TestRectBivariateSpline::test_spline_large_2d_maxit'
- )
- local EPYTEST_IGNORE=()
-
- if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then
- EPYTEST_IGNORE+=(
- scipy/datasets/tests/test_data.py
- )
- fi
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # TODO
- scipy/special/tests/test_data.py::test_boost
- scipy/_lib/tests/test_ccallback.py::test_callbacks
- )
- ;;
- esac
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # avoid other stuff being multithreaded when using xdist
- local -x PYTHON_CPU_COUNT=1
- epytest scipy
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( "${WORKDIR}"/html/. )
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/scipy/scipy-1.16.1.ebuild b/dev-python/scipy/scipy-1.16.1.ebuild
deleted file mode 100644
index 309de0efc452..000000000000
--- a/dev-python/scipy/scipy-1.16.1.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-FORTRAN_NEEDED=fortran
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=meson-python
-PYTHON_COMPAT=( python3_{10..14} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit flag-o-matic fortran-2 distutils-r1
-
-DESCRIPTION="Scientific algorithms library for Python"
-HOMEPAGE="
- https://scipy.org/
- https://github.com/scipy/scipy/
- https://pypi.org/project/scipy/
-"
-
-if [[ ${PV} == *9999* ]] ; then
- inherit git-r3
-
- # Need submodules, so git for now.
- EGIT_REPO_URI="https://github.com/scipy/scipy"
- EGIT_BRANCH="maintenance/$(ver_cut 1-2).x"
- EGIT_SUBMODULES=( '*' )
-else
- inherit pypi
-
- # Upstream is often behind with doc updates
- DOC_PV=${PV}
-
- SRC_URI+="
- doc? (
- https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip
- )"
-
- if [[ ${PV} != *rc* ]] ; then
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
- fi
-fi
-
-LICENSE="BSD LGPL-2"
-SLOT="0"
-IUSE="doc +fortran test-rust"
-
-# pythran is needed in both BDEPEND (for /usr/bin/pythran) and in DEPEND
-# to actually compile code generated by pythran (headers and such needed).
-#
-# umfpack is technically optional but it's preferred to have it available.
-COMMON_DEPEND="
- >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}]
- ~media-libs/qhull-2020.2:=
- sci-libs/arpack:=
- sci-libs/umfpack
- virtual/cblas
- >=virtual/lapack-3.8
-"
-# Only boost.math is used, and meson.build doesn't even look up specific boost modules.
-# Exact version is enforced upstream, so building will fail if subslot isn't enforced.
-DEPEND="
- ${COMMON_DEPEND}
- dev-libs/boost:0/1.88.0
-"
-RDEPEND="
- ${COMMON_DEPEND}
- dev-python/pillow[${PYTHON_USEDEP}]
-"
-DEPEND+="
- fortran? (
- >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
- )
-"
-BDEPEND="
- dev-lang/swig
- >=dev-python/cython-3.0.8[${PYTHON_USEDEP}]
- >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}]
- >=dev-python/pybind11-2.13.2[${PYTHON_USEDEP}]
- >=dev-build/meson-1.5.0
- !kernel_Darwin? ( dev-util/patchelf )
- virtual/pkgconfig
- doc? ( app-arch/unzip )
- fortran? (
- >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
- )
- test-rust? (
- dev-python/pooch[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- default
-
- if use doc; then
- unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
- fi
-}
-
-python_configure_all() {
- DISTUTILS_ARGS=(
- -Dblas=blas
- -Dlapack=lapack
- -Duse-pythran=$(usex fortran true false)
- # note: recheck on version bumps, upstream is planning
- # to allow more
- '-Duse-system-libraries=boost.math,qhull'
- )
-
- # https://bugs.gentoo.org/932721
- has_version '>=dev-python/numpy-2.0.0' && filter-lto
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
-
- local EPYTEST_DESELECT=(
- # Network
- scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all
- scipy/datasets/tests/test_data.py::TestDatasets::test_ascent
- scipy/datasets/tests/test_data.py::TestDatasets::test_face
- scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram
-
- # Crashes with assertion, not a regression
- # https://github.com/scipy/scipy/issues/19321
- scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object
-
- # Awfully slow tests
- scipy/interpolate/tests/test_bsplines.py::TestBatch::test_batch
- scipy/linalg/tests/test_basic.py::TestLstsq::test_random_complex_exact
- scipy/sparse/linalg/_eigen/tests/test_svds.py::test_small_sigma_sparse
-
- # TODO: minor precision errors
- 'scipy/linalg/tests/test_batch.py::TestBatch::test_solve[float32-bdim2]'
- 'scipy/linalg/tests/test_batch.py::TestBatch::test_lu_solve[float32-bdim2]'
-
- # Crashes, probably too big
- 'scipy/interpolate/tests/test_fitpack2.py::TestRectBivariateSpline::test_spline_large_2d_maxit'
- )
- local EPYTEST_IGNORE=()
-
- if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then
- EPYTEST_IGNORE+=(
- scipy/datasets/tests/test_data.py
- )
- fi
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # TODO
- scipy/special/tests/test_data.py::test_boost
- scipy/_lib/tests/test_ccallback.py::test_callbacks
- )
- ;;
- esac
-
- # avoid other stuff being multithreaded when using xdist
- local -x PYTHON_CPU_COUNT=1
- epytest scipy
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( "${WORKDIR}"/html/. )
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/scipy/scipy-1.16.2-r1.ebuild b/dev-python/scipy/scipy-1.16.2-r1.ebuild
index a367a5c5ee30..f8fa2ef5aded 100644
--- a/dev-python/scipy/scipy-1.16.2-r1.ebuild
+++ b/dev-python/scipy/scipy-1.16.2-r1.ebuild
@@ -38,7 +38,7 @@ else
"
if [[ ${PV} != *rc* ]] ; then
- KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
fi
fi
diff --git a/dev-python/scipy/scipy-1.16.2.ebuild b/dev-python/scipy/scipy-1.16.2-r2.ebuild
index 2ad65282cec1..9421651a02d9 100644
--- a/dev-python/scipy/scipy-1.16.2.ebuild
+++ b/dev-python/scipy/scipy-1.16.2-r2.ebuild
@@ -34,7 +34,8 @@ else
SRC_URI+="
doc? (
https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip
- )"
+ )
+ "
if [[ ${PV} != *rc* ]] ; then
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
@@ -51,17 +52,14 @@ IUSE="doc +fortran test-rust"
# umfpack is technically optional but it's preferred to have it available.
COMMON_DEPEND="
>=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}]
- ~media-libs/qhull-2020.2:=
- sci-libs/arpack:=
- sci-libs/umfpack
+ >=media-libs/qhull-2020.2:=
virtual/cblas
>=virtual/lapack-3.8
"
# Only boost.math is used, and meson.build doesn't even look up specific boost modules.
-# Exact version is enforced upstream, so building will fail if subslot isn't enforced.
DEPEND="
${COMMON_DEPEND}
- dev-libs/boost:0/1.88.0
+ >=dev-libs/boost-1.88.0
"
RDEPEND="
${COMMON_DEPEND}
@@ -102,14 +100,19 @@ src_unpack() {
fi
}
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin system dependencies
+ sed -i -e "s@version : '@&>=@" meson.build || die
+}
+
python_configure_all() {
DISTUTILS_ARGS=(
-Dblas=blas
-Dlapack=lapack
-Duse-pythran=$(usex fortran true false)
- # note: recheck on version bumps, upstream is planning
- # to allow more
- '-Duse-system-libraries=boost.math,qhull'
+ -Duse-system-libraries=all
)
# https://bugs.gentoo.org/932721
diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest
index c79964b53abc..6830e6d7b7b0 100644
--- a/dev-python/selenium/Manifest
+++ b/dev-python/selenium/Manifest
@@ -2,7 +2,9 @@ DIST selenium-4.26.1.tar.gz 967543 BLAKE2B 7e7476338a030083261199b725aaa38d03bb6
DIST selenium-4.34.2.tar.gz 896309 BLAKE2B 094d3596a86e1cd50a6967a65b3e7b9a73300403f5d88163ded8b1d3a62cb09d77057e9b90a35b39f3a6000a8ba604bd71ecb051866cf7ad88c5ab9e21752978 SHA512 f5911f41bc4988e1af26812299cf37aba7e88820cf4e719e0e04a36a5dbdba5420422c52393c8d31c4e0f88efe779e9beec2c490892e4546caa0a920047e01fa
DIST selenium-4.35.0.tar.gz 907991 BLAKE2B e2d0baade499b41cdb23bdbae0059163fb58157dc86c3bcf4d7b9c4d040bcec19aba4000a223a4e7dd0137d4cc321064e95cd12fe22beaa311237c18261518ce SHA512 09f9149b94974c7965d5b81ee1ca65cca7e7a1de775d7323335c21acbbdc21da17f0f6314a8162177c6a22fdbb23b4147c213b2c3a98bfd9a13ac077dc113812
DIST selenium-4.36.0.tar.gz 913613 BLAKE2B cc4354d8c5a85aea2ed8c825b2ed06833db7f85276f99c8294b4dcaa1b58ad48f81549a8aafd4e93143b97eeaafd1c96d162b93c3c7bb7d45df6dbd7e9764f9b SHA512 9ad9a3fbe1234754d7eaac94ad07f876108f390414addb057b50fa3ae46107f40f1cc7b40683064d59b82ce081ca9ca0297be6a55f61e8c19d93a49b91bc6d57
+DIST selenium-4.37.0.tar.gz 918689 BLAKE2B 2ca4067e3e1729345b078515fc362571c73e818f9f71697f96648829d777df50e51d6ef29c1af5082718c5ce127e9bb8af4e3a7e3ed9b3f4f90164334c1693a6 SHA512 0406c57c1bd7614fed716c9fb59be089f63c102e2f7fc06ee38db4a3390bb3bda37f171818a3e6697ebe84f380238cb9d97214dbd5f7a99a2b6038cf6e75d682
DIST selenium-selenium-4.26.1-python.gh.tar.gz 77109265 BLAKE2B c0c5693c64fa65a627e5edf0cbbc051410fcddf59e4fd80c362b9a382c586fc3ad3d574674e5523ab284b40b6639e95e85fd1c8195f2f1a6f35ad6532ed667ce SHA512 7ace69332f17c6f7e28b81223f4c8c62cde1832b5acaf2fd1c777a08a5a9cfebb5d9c83daa10462eeb3acb9c7cb5038711f5acee51f5dad3910d7e29e4387d3f
DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef SHA512 5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba
DIST selenium-selenium-4.35.0.gh.tar.gz 52550104 BLAKE2B b7ed0fb513cfb2ed24aa8393497b349f930739c3d24a330e5942fbaa5505f31d7086396a430776a3a28a5f65927b92bf27c0a32e8c36d893b5d62ef73151d5ef SHA512 dc73829e3b0fcb7fb7ee1cc04574b95b63d23f67974575dbd66338e14a5cb2b06f983145ce874be0d7124e8828b0a41b99c75d3befb19e04cbf8d027d0bb983a
DIST selenium-selenium-4.36.0.gh.tar.gz 52567842 BLAKE2B e5e715ce0d4e491f2551ea13c2b9cd6c1021fafd6b0bf0dacba9b0aa4e3f479816cb910c66e286e8cb7b737063705caa2c843db3ccb83f964b4bd64ff174d935 SHA512 b95037df807c827c8f110d112ec0d062c7bb3c71b9faf31f5bfae59b5bfd1c2e20b035c3c3ab180b2319f8ba952042fb77966eb44db5b803a545fa18e0285bb5
+DIST selenium-selenium-4.37.0.gh.tar.gz 52580241 BLAKE2B 360f0c435cd79c37d65e03a6e049ab75cde20683599965a4ffbd155dd31ca7c8e0c5bbca83f3688d29a2404a51b6c6633581e369bcfb95b7b13b8508b0b65787 SHA512 0389e5dad02719da66689a9509ca95ae009120218f47ffedc1db2bb4063e95d842b527be23828a988c66c8b2ab7452817571aeda14b4f3254c5536d2d4b0f535
diff --git a/dev-python/selenium/selenium-4.37.0.ebuild b/dev-python/selenium/selenium-4.37.0.ebuild
new file mode 100644
index 000000000000..332a0b0b01cc
--- /dev/null
+++ b/dev-python/selenium/selenium-4.37.0.ebuild
@@ -0,0 +1,151 @@
+# 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_{11..14} pypy3_11 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+# base releases are usually ${P}, followups ${P}-python
+TEST_TAG=${P}
+[[ ${PV} != *.0 ]] && TEST_TAG+=-python
+TEST_P=selenium-${TEST_TAG}
+
+DESCRIPTION="Python language binding for Selenium Remote Control"
+HOMEPAGE="
+ https://seleniumhq.org/
+ https://github.com/SeleniumHQ/selenium/tree/trunk/py/
+ https://pypi.org/project/selenium/
+"
+SRC_URI+="
+ test? (
+ https://github.com/SeleniumHQ/selenium/archive/${TEST_TAG}.tar.gz
+ -> ${TEST_P}.gh.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/certifi-2025.10.5[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.31.0[${PYTHON_USEDEP}]
+ >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/filetype[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-util/selenium-manager
+ net-misc/geckodriver
+ || (
+ www-client/firefox
+ www-client/firefox-bin
+ )
+ )
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ distutils-r1_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:,<[0-9.]*::' pyproject.toml || die
+}
+
+python_test() {
+ # NB: xdist is causing random pytest crashes with high job numbers
+
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ local EPYTEST_IGNORE=()
+ local EPYTEST_DESELECT=(
+ # expects vanilla certifi
+ test/unit/selenium/webdriver/remote/remote_connection_tests.py::test_get_connection_manager_for_certs_and_timeout
+ )
+ local pytest_args=(
+ # https://github.com/SeleniumHQ/selenium/blob/selenium-4.8.2-python/py/test/runner/run_pytest.py#L20-L24
+ # seriously?
+ -o "python_files=*_tests.py test_*.py"
+ )
+ if use test-rust; then
+ local -x PATH=${T}/bin:${PATH}
+ local -x SE_MANAGER_PATH="$(type -P selenium-manager)"
+
+ local EPYTEST_RERUNS=5
+ pytest_args+=(
+ --driver=firefox
+ --browser-binary="$(type -P firefox || type -P firefox-bin)"
+ --driver-binary="$(type -P geckodriver)"
+ --headless
+ )
+
+ local EPYTEST_IGNORE+=(
+ # requires some "python.runfiles", also bidi tests generally fail
+ test/selenium/webdriver/common/bidi_webextension_tests.py
+ )
+ EPYTEST_DESELECT+=(
+ # expects prebuilt executables for various systems
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_windows
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_linux
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_mac
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_errors_if_invalid_os
+
+ # TODO: these don't respect --*-binary and try to fetch versions
+ test/selenium/webdriver/firefox
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestIntegration::test_we_can_pass_options
+ test/selenium/webdriver/marionette/mn_set_context_tests.py::test_we_can_switch_context_to_chrome
+
+ # TODO
+ 'test/selenium/webdriver/common/devtools_tests.py::test_check_console_messages[firefox]'
+
+ # TODO
+ test/selenium/webdriver/common/bidi_browser_tests.py
+ test/selenium/webdriver/common/bidi_browsing_context_tests.py
+ test/selenium/webdriver/common/bidi_emulation_tests.py
+ test/selenium/webdriver/common/bidi_input_tests.py
+ test/selenium/webdriver/common/bidi_network_tests.py
+ test/selenium/webdriver/common/bidi_permissions_tests.py
+ test/selenium/webdriver/common/bidi_script_tests.py
+ test/selenium/webdriver/common/bidi_session_tests.py
+ test/selenium/webdriver/common/bidi_storage_tests.py
+ test/selenium/webdriver/common/bidi_tests.py
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_binary
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_ctor
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_prefs
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_to_capabilities
+ )
+ else
+ EPYTEST_IGNORE+=(
+ test/selenium
+ )
+ fi
+
+ cd "${WORKDIR}/${TEST_P}/py" || die
+ rm -rf selenium || die
+ epytest "${pytest_args[@]}"
+}
diff --git a/dev-python/spyder-kernels/Manifest b/dev-python/spyder-kernels/Manifest
index 8bf98233aa5b..0d866e8b4252 100644
--- a/dev-python/spyder-kernels/Manifest
+++ b/dev-python/spyder-kernels/Manifest
@@ -1,2 +1,3 @@
DIST spyder-kernels-3.0.5.gh.tar.gz 240411 BLAKE2B 28600b359fc12f8b3ffe01545a98b2fd3ec7f832e7ca5aa58f809825d7f1060ecc5929a72d615c2543b6b34685ee03b521cd087dd58725315a68e1188b72cd3c SHA512 4aaf57e7e4dc7c985f2c0e64aad6080370f1cf012ef72f49dcaaa5daed4b6b5e0c5cbcde88e127b136c87e3ae17314212dd56f89801edd87382da8d06caa9662
DIST spyder-kernels-3.1.0.gh.tar.gz 245742 BLAKE2B e1a8af48aa7436957cb81a785b0a8f6a67c7edd623a4070371cfbe7a57790e9cebd62fc3cd9d4a0ddb60dcbe3c5fef01df0bad19f48cba9dd2299ef09f46871b SHA512 26b95548c4f6b27e22d9624ea2a9af9a1c3685fea6ca2ee2e88a6f9e0e2c983f3abf1ae649c991d72ad898f87c20ae1b75c5876f2297df41b9c28cfd3f3a03f0
+DIST spyder-kernels-3.1.1.gh.tar.gz 246032 BLAKE2B d48e6eb5ca9268f2a66204c5c50359cea155b3ca3431bb8cecedd2cbffeff33eddc7e1d02be1963986efa2f0944407f8b0246fce953e85bab58bb91a493bc286 SHA512 69cdeb12f1352f782220ebad3f3f9db2386235149c56f646d5668822ee7a3074a9cfe1e27ea7dd1fc18a6ae2f4cf8e648dd3f65006af89ef43f40848bc21199c
diff --git a/dev-python/spyder-kernels/spyder-kernels-3.1.1.ebuild b/dev-python/spyder-kernels/spyder-kernels-3.1.1.ebuild
new file mode 100644
index 000000000000..b9dbf1a20ce0
--- /dev/null
+++ b/dev-python/spyder-kernels/spyder-kernels-3.1.1.ebuild
@@ -0,0 +1,86 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+MY_P=${P/_beta/b}
+DESCRIPTION="Kernels used by spyder on its ipython console"
+HOMEPAGE="
+ https://github.com/spyder-ide/spyder-kernels/
+ https://pypi.org/project/spyder-kernels/
+"
+SRC_URI="https://github.com/spyder-ide/${PN}/archive/refs/tags/v${PV/_beta/b}.tar.gz -> ${MY_P}.gh.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ <dev-python/ipykernel-7[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.29.3[${PYTHON_USEDEP}]
+ <dev-python/ipython-10[${PYTHON_USEDEP}]
+ >=dev-python/ipython-9.5.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-client-9[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.9[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pyxdg-0.26[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24.0.0[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.14.3[${PYTHON_USEDEP}]
+ >=dev-python/wurlitzer-1.0.3[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/xarray[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-rerunfailures )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # pydicom only packaged in ::sci at the moment
+ spyder_kernels/utils/tests/test_iofuncs.py::test_load_dicom_files
+
+ # require polars
+ spyder_kernels/console/tests/test_console_kernel.py::test_get_value_with_polars
+ spyder_kernels/utils/tests/test_nsview.py::test_polars_dataframe
+ )
+ local EPYTEST_IGNORE=()
+
+ if ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ # require pandas
+ spyder_kernels/utils/tests/test_nsview.py
+ )
+ fi
+
+ if ! has_version "dev-python/h5py[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ # require hdf5
+ spyder_kernels/utils/tests/test_iofuncs.py::test_save_load_hdf5_files
+ spyder_kernels/utils/tests/test_dochelpers.py
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/stack-data/stack-data-0.6.3-r1.ebuild b/dev-python/stack-data/stack-data-0.6.3-r1.ebuild
new file mode 100644
index 000000000000..67773cedacbd
--- /dev/null
+++ b/dev-python/stack-data/stack-data-0.6.3-r1.ebuild
@@ -0,0 +1,45 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extract data from Python tracebacks for informative displays"
+HOMEPAGE="
+ https://github.com/alexmojaki/stack_data/
+ https://pypi.org/project/stack-data/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/asttokens-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/executing-1.2.0[${PYTHON_USEDEP}]
+ dev-python/pure-eval[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/typeguard[${PYTHON_USEDEP}]
+ dev-python/littleutils[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Cython looks for the module in the wrong directory, for some reason
+ tests/test_formatter.py::test_example
+ # broken by new pygments
+ tests/test_core.py::test_executing_style_defs
+ tests/test_core.py::test_pygments_example
+ tests/test_serializer.py::test_example
+)
diff --git a/dev-python/whitenoise/Manifest b/dev-python/whitenoise/Manifest
index 2884d21499b9..4417c36e5265 100644
--- a/dev-python/whitenoise/Manifest
+++ b/dev-python/whitenoise/Manifest
@@ -1,5 +1,2 @@
-DIST whitenoise-6.8.2.gh.tar.gz 57336 BLAKE2B e4c04beb057dbdf237da7f0c864d8cf1d077abbcd227d48bcadcabcb51d93c9b97460a167c2a2f8526beee3007b07d34c376518ad956831150730593f5867f7a SHA512 6b162d9147c83d77635f0a254d5462785a3ab21f87ea20db30ff330c5db28d183f8a7ce1eeae6e3b39b4f033cc1d3b1b261a4b5ff7d9bac4826218f59d948d68
+DIST whitenoise-6.11.0.gh.tar.gz 104789 BLAKE2B ee099506e856f7f8a360961073fc0218e1ceadc6c56a4f7783c6048e255f5505f2b466f38719be7ab5df379a7ed51425814a3077e3d83f78224f9a7467c493c9 SHA512 e8871cb298a81c39f4cbc3d8dcbf13675e33e857813d29ce62b44219653e4c8d2d970f21e5aa8fdc9df64bca4d57df9a227251f52a166add0dc81cc59715f99d
DIST whitenoise-6.9.0.gh.tar.gz 57497 BLAKE2B 8badfeeda6da1502bbb5cd170879dbcc266c804aba5dfeeeebb733aed17e4a58ed7987e66c53f1f0bfe31369fbadef8dd1579822d054e7c938d935799584f1fb SHA512 d47d3cdf7357009a78d939af9bee920636030c9b03d56e8b8753ea569c5f1016d8bcbc9277659feefa1192ba7aae3ff7b5782d299e0a9e1f19b8973e127a5822
-EBUILD whitenoise-6.8.2.ebuild 733 BLAKE2B f450e341f864cb4d280505f6d795613d59c73904bfecfe45809e83d4418ac84e521142fb23f866b8748654a01776e961238dc301814668e4918664dc5b69ca8b SHA512 dab68b2d45de0fff1fe2d02f2442ab4c0a5fae94e7a853c4115d9d0da1791af195eb735aec98f3671c043ca952327aabfcec3fc9aba2bdc0618fc9325aef8556
-EBUILD whitenoise-6.9.0.ebuild 738 BLAKE2B ec0df4b103185a783e6e1c40f4df0406a7d5876a93bfef84a05ecb3426de2cd6e4125c02cab1f006d6440f489085714dc4dd10b029711795f4079f9fdde1283a SHA512 39c42a44f4b6016bd7d043648860c18d816b156e04dc28f8a9242007d1ffffee923541823a59c0003c59d2fd88768eaf8e2fa4780f2fdf3f7764db34bd7eb4c7
-MISC metadata.xml 451 BLAKE2B c9483574bd94fee26ed9dc0de6ea3e42b340035c5de0b7d6b37452c7fa2b2317283b7f926f0c8227444c1dd8245246dabea2bc1d7d312aff57133905098344bc SHA512 f3808adacefa3435da5a1e4ce97fa7089baeebb8eaad53a66dbb497b996e7005da3f316d734915ec2284480de2596f7927c34bfbaeb391277de4c9f04d45f743
diff --git a/dev-python/whitenoise/metadata.xml b/dev-python/whitenoise/metadata.xml
index 5a2bbb70b19f..896e2dec0325 100644
--- a/dev-python/whitenoise/metadata.xml
+++ b/dev-python/whitenoise/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="project">
+ <email>dev@liguros.net</email>
+ <name>Development</name>
+ </maintainer>
<maintainer type="person">
<email>marcin.deranek@slonko.net</email>
<name>Marcin Deranek</name>
@@ -8,5 +12,5 @@
<upstream>
<bugs-to>https://github.com/evansd/whitenoise/issues</bugs-to>
</upstream>
- <origin>slonko-overlay</origin>
+ <origin>ports</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/whitenoise/whitenoise-6.8.2.ebuild b/dev-python/whitenoise/whitenoise-6.11.0.ebuild
index 7711bb267021..636caf5e655c 100644
--- a/dev-python/whitenoise/whitenoise-6.8.2.ebuild
+++ b/dev-python/whitenoise/whitenoise-6.11.0.ebuild
@@ -1,6 +1,5 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 2025 Liguros Authors
# Distributed under the terms of the GNU General Public License v2
-
EAPI=8
DISTUTILS_USE_PEP517=setuptools
@@ -17,7 +16,7 @@ SLOT="0"
KEYWORDS="~amd64"
DEPEND="
- dev-python/django[${PYTHON_USEDEP}]
+ <dev-python/django-6.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
diff --git a/dev-python/widgetsnbextension/widgetsnbextension-4.0.14-r1.ebuild b/dev-python/widgetsnbextension/widgetsnbextension-4.0.14-r1.ebuild
new file mode 100644
index 000000000000..1f843c1fdb21
--- /dev/null
+++ b/dev-python/widgetsnbextension/widgetsnbextension-4.0.14-r1.ebuild
@@ -0,0 +1,30 @@
+# 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_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="IPython HTML widgets for Jupyter"
+HOMEPAGE="
+ https://ipython.org/
+ https://pypi.org/project/widgetsnbextension/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+BDEPEND="
+ dev-python/jupyter-packaging[${PYTHON_USEDEP}]
+"
+
+src_install() {
+ distutils-r1_src_install
+
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
index 2772fab62a76..ba85499db918 100644
--- a/dev-python/wrapt/Manifest
+++ b/dev-python/wrapt/Manifest
@@ -1,3 +1,4 @@
DIST wrapt-1.17.3.gh.tar.gz 140900 BLAKE2B 88c4cd718cd98a97c866c4f0b9f7e095347fe6fa5fed60c54e389329c89f9f07099c8fb79561cf5e12c19c44a4067d81e805c55b54a74429e6b75913dedd6b3f SHA512 1a1f7419f20faa461a9e23ad09cc98d381ef2c48b3b24ed1dfe98d42d16857a958252301e78dd41b7fa8ef37eea379f9244cace2b396b49718c44cbc701308a3
DIST wrapt-2.0.0rc4.gh.tar.gz 177839 BLAKE2B cf93d4ef525aa8e323f7fc2b939a63944ae06af0a18c4d01e64b82519bafc6c0b88262ebf239a64c9037627f145ae870b3bad088074aa337edd8179970068568 SHA512 7e2a7376293eefeda1c15a3dd4f2daa2744d6fecef5b1430b1f52c1f04ccc65aaa79e620190aeafb0d24c72fed3393e67d32d55a173a21f8c3e276a5ece7799e
DIST wrapt-2.0.0rc5.gh.tar.gz 183363 BLAKE2B 0f3151f3c8784728cc28711f9a8b7f4be2065638c6508f19249a6f7d223205bfbe4fabe0681676969da292712c4388fbb9617200db77443a707ee96dfd945123 SHA512 b46590ab7bf11647d5447d21235fce52b30c1b433662bcbea0f8477ebe6e930517c0b32c3a8756823f864d136e3c50a2e6fcc09c1d40655b5f85d33eec361662
+DIST wrapt-2.0.0rc6.gh.tar.gz 183458 BLAKE2B dc02fe7b66ee39da73396faf3c37c9ffec0dfe500ed1a8f8ce085b0e9780b90ac5177b7f95ae7c87f4fe1dc4683d74fa3d69ed7a213cfa1f5ec60edfc419cc05 SHA512 cb7b237296008c5652c133e56c33b1c96e3d4cb0a52c91c26955730efaa1de17f0b99b53954f65654993087f52f52d58d6080bd2ef84659aa32a539918fbbb77
diff --git a/dev-python/wrapt/wrapt-2.0.0_rc6.ebuild b/dev-python/wrapt/wrapt-2.0.0_rc6.ebuild
new file mode 100644
index 000000000000..6793b0ad13f4
--- /dev/null
+++ b/dev-python/wrapt/wrapt-2.0.0_rc6.ebuild
@@ -0,0 +1,35 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="Module for decorators, wrappers and monkey patching"
+HOMEPAGE="
+ https://github.com/GrahamDumpleton/wrapt/
+ https://pypi.org/project/wrapt/
+"
+SRC_URI="
+ https://github.com/GrahamDumpleton/wrapt/archive/${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+native-extensions"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+python_compile() {
+ local -x WRAPT_INSTALL_EXTENSIONS=$(usex native-extensions true false)
+ distutils-r1_python_compile
+}