summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-18 15:41:29 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-18 15:41:29 -0500
commit201b1a5f202628742bb2b602acc1147303f503ab (patch)
tree48d6c9d5754ae1d1a7078e37bc40e108cecf4fbf /dev-python
parent4f24a5a81ceb5b88ec46c27b34f371d5a8e30152 (diff)
downloadbaldeagleos-repo-201b1a5f202628742bb2b602acc1147303f503ab.tar.gz
baldeagleos-repo-201b1a5f202628742bb2b602acc1147303f503ab.tar.xz
baldeagleos-repo-201b1a5f202628742bb2b602acc1147303f503ab.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/blockbuster/Manifest1
-rw-r--r--dev-python/blockbuster/blockbuster-1.5.28.ebuild40
-rw-r--r--dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild52
-rw-r--r--dev-python/hatch-jupyter-builder/Manifest1
-rw-r--r--dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild37
-rw-r--r--dev-python/imapclient/Manifest1
-rw-r--r--dev-python/imapclient/imapclient-4.1.0.ebuild32
-rw-r--r--dev-python/multidict/Manifest1
-rw-r--r--dev-python/multidict/multidict-6.9.0.ebuild67
-rw-r--r--dev-python/pandas/Manifest2
-rw-r--r--dev-python/pandas/pandas-3.0.6.ebuild191
-rw-r--r--dev-python/parse/Manifest2
-rw-r--r--dev-python/parse/parse-1.22.2.ebuild (renamed from dev-python/parse/parse-1.22.0.ebuild)4
-rw-r--r--dev-python/platformdirs/Manifest2
-rw-r--r--dev-python/platformdirs/platformdirs-4.11.10.ebuild50
-rw-r--r--dev-python/python-discovery/Manifest2
-rw-r--r--dev-python/python-discovery/python-discovery-1.6.1.ebuild55
-rw-r--r--dev-python/sphinx-autodoc-typehints/Manifest2
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild44
-rw-r--r--dev-python/tree-sitter/tree-sitter-0.26.0_p20260816-r1.ebuild (renamed from dev-python/tree-sitter/tree-sitter-0.26.0_p20260816.ebuild)10
-rw-r--r--dev-python/urwid/Manifest2
-rw-r--r--dev-python/urwid/urwid-4.1.5.ebuild49
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/virtualenv-21.7.14.ebuild117
24 files changed, 706 insertions, 60 deletions
diff --git a/dev-python/blockbuster/Manifest b/dev-python/blockbuster/Manifest
index 18d9e5c5a8ba..e79c59205bb0 100644
--- a/dev-python/blockbuster/Manifest
+++ b/dev-python/blockbuster/Manifest
@@ -1,2 +1,3 @@
DIST blockbuster-1.5.26.tar.gz 36085 BLAKE2B 856a57dae55251771cd3340b1b6cad84fa168d7ca63630401fbbd8acf27b99d77759e3161b77f94abf7085035ef9303bf7b693561fad4cf8796009a2297bee5d SHA512 d12263e81c2acc97a537b3067632a6fc41af214125bd4c4c16f12079531fe4d6addc48091942fa5311dec6024113492ee585a185127c0cf69abfde4e3c1a8ce0
DIST blockbuster-1.5.27.tar.gz 96732 BLAKE2B 70aa3b65a1ca31fd0acecd9d2973b07af968ca5dee27deaf6d6c975790d11f0b0f15ed5c83a3afb3d706703de082222619fef86f9e56af78b94cf985e8623c8a SHA512 6344bbca0c9a926fa7e5b80d0a48689144a71dce6dfb0f8c5f4b263431abab10e01705cc93bfc93d6e3f55e37203e50019b50a1088e5b5b774729a640e23e53f
+DIST blockbuster-1.5.28.tar.gz 98235 BLAKE2B f7307610dc2991a5d276070c26a2be03e06b6bb2ac717623a2131f187f10d6fbdf934d8cc115f8077a8d5e1b34e93236598929219f2786694c77562176ec8665 SHA512 f21b9e9f939acff62cadc859ad2ba9c854c23df7f4da72fdf6a17e0a929796a94431437eb00a688091367b85edbd70c3360a57629db42c209cf616e1406638e7
diff --git a/dev-python/blockbuster/blockbuster-1.5.28.ebuild b/dev-python/blockbuster/blockbuster-1.5.28.ebuild
new file mode 100644
index 000000000000..b20940e8ee85
--- /dev/null
+++ b/dev-python/blockbuster/blockbuster-1.5.28.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Utility to detect blocking calls in the async event loop"
+HOMEPAGE="
+ https://github.com/cbornet/blockbuster/
+ https://pypi.org/project/blockbuster/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/forbiddenfruit-0.1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aiofiles[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ benchmarks/
+)
+EPYTEST_DESELECT=(
+ # Internet
+ tests/test_blockbuster.py::test_ssl_socket
+)
diff --git a/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild b/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
deleted file mode 100644
index 3cefd61682c4..000000000000
--- a/dev-python/forbiddenfruit/forbiddenfruit-0.1.4.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_TESTED=( python3_{13..14} )
-# tests crash on 3.13+
-# https://github.com/clarete/forbiddenfruit/issues/78
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Patch built-in Python objects"
-HOMEPAGE="
- https://github.com/clarete/forbiddenfruit/
- https://pypi.org/project/forbiddenfruit/
-"
-
-LICENSE="|| ( GPL-3 MIT )"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- test? (
- $(python_gen_cond_dep '
- dev-python/pytest[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-PATCHES=(
- # https://github.com/clarete/forbiddenfruit/pull/79
- # + test case fix from
- # https://github.com/clarete/forbiddenfruit/commit/6eb07cb77bcd3d54c7f09f23f176706d7dfccdef
- "${FILESDIR}/${P}-pytest.patch"
-)
-
-python_test() {
- if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
- einfo "Skipping tests on ${EPYTHON}, as they are broken"
- return
- fi
-
- local -x FFRUIT_EXTENSION=true
- esetup.py build_ext -b tests/unit
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/hatch-jupyter-builder/Manifest b/dev-python/hatch-jupyter-builder/Manifest
index 2f96d02f6119..7cc5b4d411c4 100644
--- a/dev-python/hatch-jupyter-builder/Manifest
+++ b/dev-python/hatch-jupyter-builder/Manifest
@@ -1 +1,2 @@
+DIST hatch_jupyter_builder-0.10.0.tar.gz 56316 BLAKE2B e6e884236fbcbd448c610dc2f67b3c6911044fba4b86ac88bf331b607671f07b8b962bea97b46340d531a879502dba7723ea4f4d749809ada60a41068396ee1a SHA512 9f5021cc788603cca23b615159f6ec819f59694659d17a416689a10534e66cd9804f02cf310adc03a277fa4a8a3d1c8d43119b2c7b2fd41224b94ebe949cb121
DIST hatch_jupyter_builder-0.9.1.tar.gz 55953 BLAKE2B 3239511a86465cb7a199b4e3cd3fa85d9d5501f564f666f296b6358eb766af13635abb47a2354e31788e6c78c5a74174f9844432264da1a9c2f544ac2d7a9ff0 SHA512 705b4e9c1d73f81f7a6962070d9893c32ce61ee49d658ac053f508125b21e425a21732cd9ea8d1e9e1f8c62c2a14c0e7507418c8f2a4f77a5951ee03bbed171d
diff --git a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild
new file mode 100644
index 000000000000..524722cd68b8
--- /dev/null
+++ b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.10.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..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? (
+ 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/imapclient/Manifest b/dev-python/imapclient/Manifest
index 701389703906..7d5d8ed3c44d 100644
--- a/dev-python/imapclient/Manifest
+++ b/dev-python/imapclient/Manifest
@@ -1,2 +1,3 @@
DIST imapclient-3.1.0.gh.tar.gz 93612 BLAKE2B a8c929affe8572f65bb6dafefc48ba064f1bb12230da7ada9d7af338ecc3834a6216509c59aeccad7faf47dd167dfc0b383b81988091b6578580a2fa8e3d5b15 SHA512 39e065a1a7df22ce80dfed47ab41e9702d3da4976f23f630e4c7b084c33b0007a24f9120b217478e6cebaa7f482921f2d1284bf3740597efe6db97b709ee6dd8
DIST imapclient-4.0.1.gh.tar.gz 161264 BLAKE2B f177a0b59fcd5eb3f133d4c80dffbd1fed1c0a01973ca3a435c4b5484e7d5f8d00c2def3d2684cc6621b3512d31d481a221e6d8ae723363b37cc82e034f07710 SHA512 8fa536bd7ccb9bd0ea06694bad5ac01fdd27a6c01f0848b004e3cca8f8f94a0ff017f1ddd163dcc8a3e23ce509f96a01b3cf24a3cf9950b70b5f66876b122e2c
+DIST imapclient-4.1.0.gh.tar.gz 166198 BLAKE2B f3497880c3b814aea88c1d16fc72e08aa6aad486ba95038c17112da5936205fa6d23da794865212ca88d8d02f6ff54710b38c37f7228173ee2fb7dc90044d894 SHA512 fd71811b1ec6fb30c9aacc29e0896c47dbffa359d78cbef9810800109ccfa612364dc4186b74a7b97925544fee31b4ecddaf8f27fbd0a8cb15c32b501710900c
diff --git a/dev-python/imapclient/imapclient-4.1.0.ebuild b/dev-python/imapclient/imapclient-4.1.0.ebuild
new file mode 100644
index 000000000000..81769ed2c35e
--- /dev/null
+++ b/dev-python/imapclient/imapclient-4.1.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="easy-to-use, pythonic, and complete IMAP client library"
+HOMEPAGE="
+ https://github.com/mjs/imapclient/
+ https://pypi.org/project/IMAPClient/
+"
+SRC_URI="
+ https://github.com/mjs/imapclient/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc examples"
+
+distutils_enable_sphinx doc/src
+distutils_enable_tests unittest
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use examples && dodoc -r examples
+}
diff --git a/dev-python/multidict/Manifest b/dev-python/multidict/Manifest
index d2677fbb79e0..aadecdbcf49a 100644
--- a/dev-python/multidict/Manifest
+++ b/dev-python/multidict/Manifest
@@ -1,2 +1,3 @@
DIST multidict-6.7.1.gh.tar.gz 120010 BLAKE2B db03d9be850b3d2b042ecaa5484fd692fdb47a626862b57e2b218beeba90ae7b12a5e204bd3fdf20a4a125abf1dffb88c52cfc449c0daa31cfed585a74782a3f SHA512 4009a310dac4732c48cc9654fbd55468dda5a6d18a05ef013ff90b030d3124459620d6d6ae4f85e88ef6cefa0b9bccea1b745f3acbfa0b351eb2c92cc8812b89
DIST multidict-6.8.0.gh.tar.gz 149210 BLAKE2B b8ef7da3fb565110418796c01258a71ba1ae2d8309868193ae6d73cf2c768f759578583c2d4436ca2127618e6a0f45815be259720f5a9f5d732c1968aff3df0b SHA512 1a978331fd0d7deabae84db7710258f5d7956197a2f1b97933fba523631077d732ab42f65e4f43477cc07e60ddd180807b73326ad660e2ba6fd8e9ba5b7f196b
+DIST multidict-6.9.0.gh.tar.gz 204284 BLAKE2B 797706fffd07a9486d354bf5c51e5e62df511517cf8b979148af2f3f55fc5fc400f800013f0c77a5ea1fc35ce6b24c69b95531d2ffecadecbe3376311a90e81f SHA512 b6d4a7ba2308c1726cde04213fdbd4b7528de2dcbcffe377660a72bed409d6c9321db99983f8ad717eeaa4ba2b1fcd16f5b0bbe038ed8e6b28c42fb971c2a7ff
diff --git a/dev-python/multidict/multidict-6.9.0.ebuild b/dev-python/multidict/multidict-6.9.0.ebuild
new file mode 100644
index 000000000000..de57559badd8
--- /dev/null
+++ b/dev-python/multidict/multidict-6.9.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 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_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="multidict implementation"
+HOMEPAGE="
+ https://github.com/aio-libs/multidict/
+ https://pypi.org/project/multidict/
+"
+SRC_URI="
+ https://github.com/aio-libs/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+ test? (
+ dev-python/objgraph[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't enable coverage or other pytest settings
+ sed -i -e '/cov/d' pytest.ini || die
+ # don't mangle CFLAGS
+ sed -i -e 's/^CFLAGS = .*/CFLAGS = []/' setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
+ local -x MULTIDICT_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ tests/isolated
+ tests/test_multidict_benchmarks.py
+ tests/test_views_benchmarks.py
+ )
+
+ rm -rf multidict || die
+
+ local cext=--c-extensions
+ if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
+ cext=--no-c-extensions
+ fi
+ epytest "${cext}"
+}
diff --git a/dev-python/pandas/Manifest b/dev-python/pandas/Manifest
index 343979fcee66..a06af96ba267 100644
--- a/dev-python/pandas/Manifest
+++ b/dev-python/pandas/Manifest
@@ -1,3 +1,5 @@
DIST pandas-2.3.3.tar.gz 4495223 BLAKE2B c31604617900d439020dcdd66fcbca1cf3b720b6f4dd8ea51891946ad04774754cf7636a2ffb9fe746d15911a88153d36d4033b6a0207e9c7a1653a0f677570d SHA512 4179acb9fd9d1c5d543bb19b22483b4c2b17a36d5b10270a02ff4d8370b43c16a93673bf5509a5b1d1c960c0fde9238bbbf5b309c6745d2abf3d934535f3fd85
DIST pandas-3.0.5.tar.gz 4658219 BLAKE2B caf76801d7cac5441f7170140ccca57e3bfb808a2c361673e50c36afaf4bf4fbce1269417d80942ae1c04f3dce5b53d66d8655362ab48f10ba52b7058365bdf4 SHA512 d082483edff92dbe61143681d270cc2ae7031ed59f8851e90e69a0139f988d57dfe0ae5b32ca829cb5912fd202db7c8a3dfe59b986068a983779184b454bc5ce
DIST pandas-3.0.5.tar.gz.provenance 9718 BLAKE2B bf91942df1291d46668b5a816fadd82ac32cc6c3e2158234cea1b694c569c3d873514c77c4e43fd06ff22e2c2a60c77f6e38ab327ee798899dfa45807ebc6836 SHA512 ef940be2eba603efa97f90aefa32056a7b17fe5b572a7bccb42e553a0233afcb4b171772844ae5cef6cb5fcab28847dbf1a8360b2df8555866b7b384f9e27289
+DIST pandas-3.0.6.tar.gz 4667686 BLAKE2B fa795b568ffbbe9658d5cec86a486e305b55f441acb1f4072a30a8a3f7d89f70911446a464b843311a363528893d0ef47c33045a1ce08e76cdcf3c298d32bbe8 SHA512 c32db3156140e18fdb341a8e52acca4582e00affc9bfe0adce8804327b32b7107be0ad1905d4cf4184b02fec9eae5f6fee4d2082e0b032e42686b4bae388823a
+DIST pandas-3.0.6.tar.gz.provenance 9861 BLAKE2B 70208ea798012370a177fd9372a9ebc67ecaa54548c588a46233f75d11ee3644bf41990277af8c450a3dadf13ed3ea2c3720fa1959cbc8639d1b9ab47737f9aa SHA512 7bb9e31bbb603029677c354d1b5b241cc5510539485aef733f8564f87c4ec6f5ea844dde2a00a85ed43e852518fb486094f353190d06a82ce5b50a6d0f6b0642
diff --git a/dev-python/pandas/pandas-3.0.6.ebuild b/dev-python/pandas/pandas-3.0.6.ebuild
new file mode 100644
index 000000000000..328b2ad1be21
--- /dev/null
+++ b/dev-python/pandas/pandas-3.0.6.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/pandas-dev/pandas
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+VIRTUALX_REQUIRED="manual"
+
+inherit distutils-r1 optfeature pypi toolchain-funcs virtualx
+
+DESCRIPTION="Powerful data structures for data analysis and statistics"
+HOMEPAGE="
+ https://pandas.pydata.org/
+ https://github.com/pandas-dev/pandas/
+ https://pypi.org/project/pandas/
+"
+
+LICENSE="BSD"
+SLOT="0"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+fi
+IUSE="big-endian full-support minimal test X"
+RESTRICT="!test? ( test )"
+
+RECOMMENDED_DEPEND="
+ >=dev-python/bottleneck-1.3.4[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-2.8.0[${PYTHON_USEDEP}]
+"
+
+# TODO: add pandas-gbq to the tree
+# TODO: Re-add dev-python/statsmodel[python3_11] dep once it supports python3_11
+# https://github.com/statsmodels/statsmodels/issues/8287
+OPTIONAL_DEPEND="
+ >=dev-python/beautifulsoup4-4.14.2[${PYTHON_USEDEP}]
+ dev-python/blosc[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-1.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.1.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-3.6.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.4.36[${PYTHON_USEDEP}]
+ >=dev-python/tabulate-0.8.10[${PYTHON_USEDEP}]
+ >=dev-python/xarray-2022.3.0[${PYTHON_USEDEP}]
+ >=dev-python/xlrd-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/xlwt-1.3.0[${PYTHON_USEDEP}]
+ !arm? ( !hppa? ( !ppc? ( !x86? (
+ >=dev-python/scipy-1.8.1[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ ) ) ) )
+ !big-endian? (
+ >=dev-python/tables-3.7.0[${PYTHON_USEDEP}]
+ )
+ X? (
+ || (
+ >=dev-python/qtpy-2.2.0[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+ )
+"
+DEPEND="
+ >=dev-python/numpy-2.3.3:=[${PYTHON_USEDEP}]
+"
+COMMON_DEPEND="
+ ${DEPEND}
+ >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${COMMON_DEPEND}
+ >=dev-build/meson-1.2.1
+ >=dev-python/cython-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/versioneer-0.28[${PYTHON_USEDEP}]
+ test? (
+ ${VIRTUALX_DEPEND}
+ ${RECOMMENDED_DEPEND}
+ ${OPTIONAL_DEPEND}
+ dev-libs/apache-arrow[brotli,parquet,snappy]
+ >=dev-python/beautifulsoup4-4.14.2[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.46.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-3.0.10[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-10.0.1[parquet,${PYTHON_USEDEP}]
+ >=dev-python/pymysql-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !minimal? ( ${RECOMMENDED_DEPEND} )
+ full-support? ( ${OPTIONAL_DEPEND} )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # missing test data
+ pandas/tests/io/pytables/test_compat.py
+ )
+ # Note; deselects relative to pandas/
+ local EPYTEST_DESELECT=(
+ # require -Werror
+ # https://github.com/pandas-dev/pandas/pull/63436
+ tests/config/test_config.py::TestConfig::test_case_insensitive
+
+ # deprecation warning
+ 'tests/computation/test_eval.py::TestEval::test_scalar_unary[numexpr-pandas]'
+ )
+
+ if ! tc-has-64bit-time_t; then
+ EPYTEST_DESELECT+=(
+ # Needs 64-bit time_t (TODO: split into 32-bit arch only section)
+ tests/tseries/offsets/test_year.py::test_add_out_of_pydatetime_range
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessDay]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessHour]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessDay]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessHour]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-QuarterEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-LastWeekOfMonth]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-WeekOfMonth]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-Week]'
+ )
+ fi
+
+ if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/plotting/test_misc.py::test_savefig
+ )
+ fi
+
+ case ${EPYTHON} in
+ python3.14)
+ EPYTEST_DESELECT+=(
+ # crashing
+ tests/resample/test_resampler_grouper.py::test_tab_complete_ipython6_warning
+ )
+ ;;
+ esac
+
+ local -x LC_ALL=C.UTF-8
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
+ # nonfatal from virtx
+ # --no-strict-data-files is necessary since upstream prevents data
+ # files from even being included in GitHub archives, sigh
+ # https://github.com/pandas-dev/pandas/issues/54907
+ nonfatal epytest pandas/tests \
+ --no-strict-data-files -o xfail_strict=false \
+ -m "not single_cpu and not slow and not network and not db" ||
+ die "Tests failed with ${EPYTHON}"
+}
+
+pkg_postinst() {
+ optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
+ optfeature "accelerating certain numerical operations, using multiple cores as well as smart chunking and caching to achieve large speedups" ">=dev-python/numexpr-2.1"
+ optfeature "needed for pandas.io.html.read_html" dev-python/beautifulsoup4 dev-python/html5lib dev-python/lxml
+ optfeature "for msgpack compression using blosc" dev-python/blosc
+ optfeature "Template engine for conditional HTML formatting" dev-python/jinja2
+ optfeature "Plotting support" dev-python/matplotlib
+ optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-3.0.10" dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt
+ optfeature "necessary for HDF5-based storage" ">=dev-python/tables-3.7.0"
+ optfeature "R I/O support" dev-python/rpy2
+ optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
+ optfeature "SQL database support" ">=dev-python/sqlalchemy-1.4.36"
+ optfeature "miscellaneous statistical functions" dev-python/scipy
+ optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/qtpy x11-misc/xclip x11-misc/xsel
+}
diff --git a/dev-python/parse/Manifest b/dev-python/parse/Manifest
index f041eee3f613..770812f25990 100644
--- a/dev-python/parse/Manifest
+++ b/dev-python/parse/Manifest
@@ -1,2 +1,2 @@
-DIST parse-1.22.0.tar.gz 36767 BLAKE2B 794637c9a4cc4db921389bd039cf5635589ea96c7ccc2e5466de768a5fe6b7f98f3acc0111d546f86d5683993dd615a9e2efa275084498330d4fde2b38e1a92d SHA512 3be4c327e7f5fa0964de1ef457a614a39a57e65d934cf8fb3cb08814c8840cd52cd3186b68b6989744f3558726a78a39b0d22d228e0194317aca67bbea1d4a6e
DIST parse-1.22.1.tar.gz 36970 BLAKE2B 8d8b47d00f944bd3dd4957b9d4b3de376d35b51dc331105a81841260a74107b0958d31b8793e692e52ce4c2465c434cff47486fe00d143b39ff92d3bc05df899 SHA512 42aac258a9de08fc91816a97af04c378e3e1f9bcee554fb421185e799e2c4b1e2cd0cad5602ffb3043bb347851f0b2c1571a11c4a9cd82d3d0011d12cbbc0496
+DIST parse-1.22.2.tar.gz 37675 BLAKE2B 5db3a9da69016fe6db06473c2301b690f7520babe22baedfe7957cb881e155cdf22321143dcb3742852afaac57556e6202a75d81d2d76e974632455162a3830f SHA512 6370c28c90cd452d094be43f5e745c474d700f069bcf631d4dcc77d9861633e6916e9699bfb00988a15221388c7a21a9c967f47de964567c8f7c09edd5958dc3
diff --git a/dev-python/parse/parse-1.22.0.ebuild b/dev-python/parse/parse-1.22.2.ebuild
index 588f129b67be..f71c3f8e2a4b 100644
--- a/dev-python/parse/parse-1.22.0.ebuild
+++ b/dev-python/parse/parse-1.22.2.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://github.com/r1chardj0n3s/parse/"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
@@ -20,6 +20,6 @@ distutils_enable_tests pytest
src_prepare() {
distutils-r1_src_prepare
- # drop unnecssary pytest extra requirements
+ # drop unnecssary extra pytest requirements
sed -i '/tool.pytest.ini_options/,/^$/d' pyproject.toml || die
}
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index f4d8cd846a3c..1e3213877501 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1,3 +1,5 @@
+DIST platformdirs-4.11.10.tar.gz 39389 BLAKE2B a9c3e5329d40d215d12c6895c5384ba0194ca5a870afa964ca659b00a71b8f12a8bff5aceddedd5c31cffbd0825da4ac8b3d0ed96ad4abb549ebe593e3137427 SHA512 189bda44a41e0f727dabce31b94eaa3a6ac1db214784d33ec133810e2e38b347f39efd849c8a0112c1b101d52e06c37e63912577ed3bb13aa07d5e8c939c1522
+DIST platformdirs-4.11.10.tar.gz.provenance 9727 BLAKE2B 68b894e86840f698e0b4fcc0c8738dc49419d4a7412841f56f2f6170071287b8e89add4e7c8e45d4d2a92d4695f07f0bbf7be8f398c7e0abe2322ab3a4d13ee6 SHA512 b807a7850cf218f5fd159f50811b54f745d5739cf2ffe5d9073853023c9a0b1eb8db902e943b68b623538a8debdad2739d5be55ce68d4ee9804275b77f5ad336
DIST platformdirs-4.11.3.tar.gz 33050 BLAKE2B c838822e0d5a9391d13fbf240c3006ade7094c2a2ad7c5b9904fce23c48ea9db6e851d04c887a80f37fee3bd0612e010ae58516751c050fb881c8ec6da1ab22e SHA512 0d90ccbb4f75bc2c0eda42223d475c688c59214fd696ff4690abd022322d9883816bc7c33765da8c9a792afc04ab21faa08c69dcbe027f7cbdcb4087e5baa2a1
DIST platformdirs-4.11.3.tar.gz.provenance 9777 BLAKE2B 9b4f683aaab5b99f085f560e4ff21e3a9533b892e974e8e39aef047ee2021ff416ff88af6db98c6fd284ef592a926b425c8b7c05f5cb0f4b8d5c23bb59ac8229 SHA512 97833d43052e8b2c303f204f8291cfb39bc1b399c2ecfbeabe18b54e5d20bb8920c802013fc43060c9e4f2ed7f359c5a5c763dc8cb14e9ba8bc52f328a64fa34
DIST platformdirs-4.11.4.tar.gz 34079 BLAKE2B daf5b088aa61382c1cbcbda0eebb23b9b4e7071472589ee1cc61c04f5386952d1be1b3090198104c4749c09c0fe5fcf8677ddfd31c1f8efe34219ef1a9708b3d SHA512 557782bd9f2af016372e9406a05a55194259303ae63ee90f684595f9a5dfbe0cc8ba11252135ebf31cb5a93bef740487581b4ca852f467ef781287cda15e4a0c
diff --git a/dev-python/platformdirs/platformdirs-4.11.10.ebuild b/dev-python/platformdirs/platformdirs-4.11.10.ebuild
new file mode 100644
index 000000000000..97987e113428
--- /dev/null
+++ b/dev-python/platformdirs/platformdirs-4.11.10.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE="
+ https://pypi.org/project/platformdirs/
+ https://github.com/tox-dev/platformdirs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? (
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "hatchling' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "${PN}"
+ version = "${PV}"
+ description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
+ EOF
+ # sigh
+ cat > src/platformdirs/version.py <<-EOF || die
+ __version__ = version = '${PV}'
+ __version_tuple__ = version_tuple = (${PV//./, })
+ EOF
+}
diff --git a/dev-python/python-discovery/Manifest b/dev-python/python-discovery/Manifest
index 44ae84a77af6..4d9e561d66e8 100644
--- a/dev-python/python-discovery/Manifest
+++ b/dev-python/python-discovery/Manifest
@@ -4,3 +4,5 @@ DIST python_discovery-1.5.3.tar.gz 82477 BLAKE2B 9c4fb00eaed1f285fbc11f17329b2b1
DIST python_discovery-1.5.3.tar.gz.provenance 9705 BLAKE2B 3b868680b81b7b357f6b1a746c1c3f9dd3647d661357aecf2d56b29c020775878ab1e99702ca1cdb543329eec78b2f178d063d3aeb69aa114336f74b0e1c2809 SHA512 6d4308a4cd90f1eb880f9a787bb43e1f96c169304009efd7fff673df6816e02adbe6124d8c52eff2be5a03e2a1892f3ffdef35ddf3cd788c5c78eaf04ea11de0
DIST python_discovery-1.6.0.tar.gz 82849 BLAKE2B f4eb680ebac443ef96d3b02c38c084077daa63125c78f1528414e316ccaafa15e33fec2e247c62faed19be9884ebb1f5b91f3ee24b343b8a6531f39f68ee4056 SHA512 dbf16e32b74aa5d02c07219688d1bddab550321cd1bd6e2d424cdf4970c2a80973d0f1b3348a41974fa86dd3d283641f19fe6b8434aee1b35c2ce70102f7562d
DIST python_discovery-1.6.0.tar.gz.provenance 9936 BLAKE2B 293c80437cec2b33211ef2b28d4021f01cfbed0f769adcef52f090f40300fabb437cb544516c4ad2aa5d4e4646b4384877a56dd12f369a5085c82a7b06962e7b SHA512 f2e2911814b42b44fb5616450e6264787f2bfae71385f7258ab29428ee3fe3b07e6952f4c0c2fda50796b3be531e04429cfca6433d9ba7091801a8f50279609a
+DIST python_discovery-1.6.1.tar.gz 84338 BLAKE2B 817e18c8706a1d582c928b65b7252c04f8b312b4a301ffe1cbdfb20328edc2705c49d1a8a705736150113d4f08c3bf4f70cc9b89b32fd732ab0b93f74aee83cb SHA512 c65201e066c2debf3e8457befab259fa807621cd2dbc46fad5188234a16ea32207c868aad66d913f8dd6e58dc084054ac18ada4ea7e3820a8fe10fab5f1b9dda
+DIST python_discovery-1.6.1.tar.gz.provenance 9713 BLAKE2B 07cd6ce6319c44ed3f41fb53a481bb142a6c6c3c095d0254eb3933227e2ecb1baad428c1b6d011c0581fa4ab97d1465219044741002dfc2a25ff24363381f9e4 SHA512 6b177195e35a8bfb438c98f3f048f5d0179003b247033dc099ae2673c68d32f30e16d2eb3e5a3252c199c5365e015e906e73b242f49c1eaf9b67abb44a12ef69
diff --git a/dev-python/python-discovery/python-discovery-1.6.1.ebuild b/dev-python/python-discovery/python-discovery-1.6.1.ebuild
new file mode 100644
index 000000000000..f3847b5c8f20
--- /dev/null
+++ b/dev-python/python-discovery/python-discovery-1.6.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/python-discovery
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python interpreter discovery"
+HOMEPAGE="
+ https://github.com/tox-dev/python-discovery/
+ https://pypi.org/project/python-discovery/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/filelock-3.15.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/setuptools-75.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # TODO: package vermin?
+ tests/test_py_info_collect.py
+ )
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ python3.*t)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/test_py_info_extra.py::test_satisfies_path_not_abs_basename_match
+ tests/test_iter_interpreters.py::test_iter_interpreters_dedups_symlinks
+ tests/test_iter_interpreters.py::test_iter_interpreters_no_key_includes_running_interpreter
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/sphinx-autodoc-typehints/Manifest b/dev-python/sphinx-autodoc-typehints/Manifest
index 78bcaee49a74..3ad59bcc8b23 100644
--- a/dev-python/sphinx-autodoc-typehints/Manifest
+++ b/dev-python/sphinx-autodoc-typehints/Manifest
@@ -6,3 +6,5 @@ DIST sphinx_autodoc_typehints-3.13.5.tar.gz 92932 BLAKE2B 20c8d262aa0458f2e15331
DIST sphinx_autodoc_typehints-3.13.5.tar.gz.provenance 10227 BLAKE2B 8bc6b35c9f3ff8c4e5087b346524371aa8a6511da7d3ad776f5fb89f1c529695beea84d845ed246816a871b6f48c46d7423f7330b62c93de88f0cdc9b51fd1d2 SHA512 05b8a43e687bdd9fb6011bd556744bf2c69719c00ca3453882108c298637a0a4b7b4390217fdbb62fe13ee1cf60b862018e311d09bedc51a92c3e9f7e4ff3c5e
DIST sphinx_autodoc_typehints-3.13.6.tar.gz 95235 BLAKE2B e9574881509897dd4822ac70612ef46fb6203812bf1508c0a3939874ecab4e538b5960b58ecc4922f8d23bf4a409453acf826f15cf63de8f048d06afdf6004d2 SHA512 2f3d314a6bb69271468b45ce4e12aef4f888c37d416dfa09e2539d73d016766a7af128f40cb1a747c41085fbd9f8d40e6775bd7f011084b5c66f7b86742681e9
DIST sphinx_autodoc_typehints-3.13.6.tar.gz.provenance 10227 BLAKE2B c5e584dfa6b6dc7045aa791af8dcc0340713e818bf519f897db85cb46910c580d69415a869f3d32762809fb92ee51303dfc3e87e72c6d071d7bbb62b196e3145 SHA512 235d2185f022e080d47e938fefd8f4f962c48fa6e5582219ca65f43a0a30e757b5b4b1d661f0a1a2867519ec0b9bf0984b4a0eb1d861333728b0ccfcdd502c52
+DIST sphinx_autodoc_typehints-3.13.7.tar.gz 96990 BLAKE2B 3f81fd81ce6e041e68d0e8bc9a7d65eaba70aa63b84513033845a3453345a1d495207663639e591c543ad9b343c9105c153c2b864e7d1a3fdca3025da6ac1360 SHA512 01f069cb1a005037621299983d1c4b2cff62cec5d7e7726e50713797535dc4dd1d64cde8ff40acae312a458a61bf4f7793a771a8102f7ca79e40f82a617380a9
+DIST sphinx_autodoc_typehints-3.13.7.tar.gz.provenance 9945 BLAKE2B e3d9e37540f0f57e0c99b5e9ec8c7753eaf9025e4c40f7e14d32c7653c2ea90fb334ef64fe0d47e5696cdc16a8d7f90908403bfd972c28da1656e6d9fd1cdd14 SHA512 fbc546cd985536f36f911d24ccc2cad6ab953080d6f1ce470c6587fb5a7c9c692c7fc793cf49f1bdddb0348b7465c855794ff697b96be16baa6e5569b6711ce3
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild
new file mode 100644
index 000000000000..238733c448a1
--- /dev/null
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.13.7.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/sphinx-autodoc-typehints
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Type hints support for the Sphinx autodoc extension"
+HOMEPAGE="
+ https://github.com/tox-dev/sphinx-autodoc-typehints/
+ https://pypi.org/project/sphinx-autodoc-typehints/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
+"
+# skipping optional test dep on dev-python/nptyping as that package
+# is horribly broken and on its way out
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-25.4[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
+ >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Internet
+ tests/test_annotations.py::test_format_annotation
+ tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
+)
diff --git a/dev-python/tree-sitter/tree-sitter-0.26.0_p20260816.ebuild b/dev-python/tree-sitter/tree-sitter-0.26.0_p20260816-r1.ebuild
index 272df44146e2..ef32f428f500 100644
--- a/dev-python/tree-sitter/tree-sitter-0.26.0_p20260816.ebuild
+++ b/dev-python/tree-sitter/tree-sitter-0.26.0_p20260816-r1.ebuild
@@ -24,14 +24,14 @@ S=${WORKDIR}/py-${PN}-${COMMIT}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# setuptools is needed for distutils import
-DEPEND="=dev-libs/tree-sitter-0.26*:="
-RDEPEND="
- ${DEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]
+DEPEND="
+ >=dev-libs/tree-sitter-0.26:=
+ <dev-libs/tree-sitter-0.28
"
+RDEPEND="${DEPEND}"
BDEPEND="
test? (
>=dev-libs/tree-sitter-html-0.23.2[python,${PYTHON_USEDEP}]
diff --git a/dev-python/urwid/Manifest b/dev-python/urwid/Manifest
index e77c9e98f41b..2a16dbbcf679 100644
--- a/dev-python/urwid/Manifest
+++ b/dev-python/urwid/Manifest
@@ -14,3 +14,5 @@ DIST urwid-4.1.3.tar.gz 944854 BLAKE2B c683dcec93c42e838665f98d7cfe5190b700b1a1a
DIST urwid-4.1.3.tar.gz.provenance 9538 BLAKE2B b2c79aee2754a26f15bd49d773a2ad8ff58949a236a5179a405b7dfd388b69807298993d63987b015483a062cf6023d2b9a703993f0949409743096f99017906 SHA512 a2ade6d50b29215aefd54300131adf9fafd88c26425ef08579715720ae0154c9a1f0c5f18ba7f3b931a4a4692c5f82a0b3dcdf422fbe0cbc0c8b05981fae1580
DIST urwid-4.1.4.tar.gz 976991 BLAKE2B a563b91ae1dfbce32a9c4aaf0d9daa1ec2985bfb1b15fec496cfa959232355eda6b9ecd908ad437b6cce355d6b3b8044046a39c9a2317a4f6272202f21a2f61b SHA512 996bf1a6f7aec55442af55c36df14d52bb5e76efe4259cb372fdcc1bce00547838248b8f15266b2ff026490840f9dcb550733f70a716f9b644d5bbc0643190b5
DIST urwid-4.1.4.tar.gz.provenance 9479 BLAKE2B fe15009278cd363fac26714e8ce4e46beb04107bafb1c629633047f4011a6231cb4eb5d18615072c80b90ad234191b700d3243b1fa765772de54458e3dae9df9 SHA512 f1e7b557470adb3b08b5730e9afa3b0edf71a548df33514c1cecb86915144980259de1632f6ef7ee83b9c2f7e9d880c13f517a7ec2ef11ddc943c3ff8502ab2e
+DIST urwid-4.1.5.tar.gz 1007991 BLAKE2B 73f54b540249360f2a565061e055c04097a433efa91ee5a45166854c2979ec6106473d81ce9dabffb66c8cf77dd6316dedd8ff9cbd1586e172776ad87c4c5758 SHA512 4a2e5c43ccdb172103a943225c5f48773538d3cddc9ecf60e2e30cfacd531577304971255951024f2a4a9ebd5502d3fca9406badfc788ab52c3d0552f68b1169
+DIST urwid-4.1.5.tar.gz.provenance 9542 BLAKE2B 3f2607295bc7c2507667e5092237163c423530c93a49e23db66de51f28c5d7a9ea7eba17f35c1981f551b3b9577745d9efcd7e1373a52fef940a1b84858b97ef SHA512 0f0dff16d8919c868edd7c50e78b61a9d23b0271ae31b4092785da10702da292e7830b0331a882a568b20fda5df076dd67abff51b536441e3141a158ef9356d1
diff --git a/dev-python/urwid/urwid-4.1.5.ebuild b/dev-python/urwid/urwid-4.1.5.ebuild
new file mode 100644
index 000000000000..aba0d14bbb3d
--- /dev/null
+++ b/dev-python/urwid/urwid-4.1.5.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 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/urwid/urwid
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Curses-based user interface library for Python"
+HOMEPAGE="
+ https://urwid.org/
+ https://pypi.org/project/urwid/
+ https://github.com/urwid/urwid/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:--cov --cov-report=term::' pyproject.toml || die
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Trio event loop" "dev-python/trio"
+}
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index a69430242733..6e0f2cb9e52a 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -2,6 +2,8 @@ DIST virtualenv-21.7.10.tar.gz 5350247 BLAKE2B 9d9b5f419c4ac1225ed4435a9f5a2e337
DIST virtualenv-21.7.10.tar.gz.provenance 9440 BLAKE2B 6f75442780a0ce863a63316b4c43c92c5464ca27065f1d31e410a8cdadbf716fd3b8c07dcb22e2c855b2a745d9dcdcab1249ee20457e413b25b611a08f86e18a SHA512 f4386b408b460bbd0921d48e1f0751dc93b253dd4f3a1adfbb565263fd63488f6fd64d68ef52b0a60651a256c7714a687fe5cb6c23126446a6def5578f2dc5ed
DIST virtualenv-21.7.11.tar.gz 5354008 BLAKE2B 166651d9ced8ac3b6bffb0330e23e140fe0a8861487ab50f2c6ebaded9b98c57103eb8a3d3f2526300f3bc1037fbea4178debc1486312daf4a90c60a7abff950 SHA512 f7befbd3c9c3b7347ca4e1ce9319854f9ad4c84b3d670415594a0c16f2c29210913751ae4e86e50c25cbc369020b1a14ac947b0595b752890a505e14024b4274
DIST virtualenv-21.7.11.tar.gz.provenance 9765 BLAKE2B 37f1def545140512831ccddb7bd20499c4d58c5776ecc9490e898f45f5b0c44955a1c604e7be85abdb41a91955c93226bf9a8c812503906de8f03715b9fa07e9 SHA512 8b809ef182e3fd27cfeddef6e0634c15f348f034fd1693dd4660ee91af1243088f4113fe2bfe2e13194f5a5e87974ac88e74206976f05038fa98d97494e7f12b
+DIST virtualenv-21.7.14.tar.gz 5360773 BLAKE2B 84b540a539d21e95f3e736735827c9b8c3680ef715ca2c2508724cbc57caf8b42c18944c771f4d5a7e027f1081b541e703daf73e2ca3a8dc5f968277ba4f2bb8 SHA512 2b6de45165c3fef5e9db1b9805eaefed378b2809f4ec5246e576f0ff5f9fbd8763835a9555b9a8c5f3154e83df02ebacc874dde2cb42808e3d7d8c9ef09f9e32
+DIST virtualenv-21.7.14.tar.gz.provenance 9773 BLAKE2B b3c84aa1cec8ff729b369feb648fe998b3340bed9de1a5df03e8fe0378925a21504b696dbfdcecd04d7b359564bfe951a94abd27351cb27c98aff1bd4501d6f0 SHA512 fae4af40567ba76b6ceeb0fba0499e8ce27c90c426fd110316198b75fbaecff380a9fda4bee9b088a6c70a446bf546b8973cf422aea34c8371fb3a7d7fbf85fa
DIST virtualenv-21.7.4.tar.gz 5345511 BLAKE2B 30c7b5e782e4867e5d2a1726ab564af6d106280a909666a4dbee0a42d0cf9bde932681eb442cecb186d3a04bea329ebce458e45ecc5b745bfcc8a8fcc1e85997 SHA512 52db3945bf8c3c8f87db9b2e9df3ff22ab45b4ce3f0ffdbb9a7b3678df4cde0b0980dd9040adf478a6909d0650ff6f873a2db2d022e402e8d46edc8b67cf5c97
DIST virtualenv-21.7.4.tar.gz.provenance 9618 BLAKE2B 5cf72407fb515710895b6534a32c0b7b96329c3c8387aae5a1552e7d43a5447bb2d10c2198b61bd0150cf3cf719d54d5e3329a5a7230abb470e3805f87031a6b SHA512 a7280f39dfeb05379b7c9ba5dd3b9fdb8e7fda8a9496805795f53407fc175b308309640e77dfadec21806e2fb07c545ccb95c7e7b87fee68fa63fdf1fb30f58e
DIST virtualenv-21.7.5.tar.gz 5346743 BLAKE2B 52c54885686970e47eb44c6271515164929382f7ab8f514c1cd4861fb9145354d4b299e1d2d5eb658504713545dc9d481db8dec8541235983f9f68d795b68d52 SHA512 708068427c768f6469ffc49afa9738ef7d7b1f3edd1809ed2e8267878eae7f5729ad0992fc9acefbda6059c4c42a78a6cba31af0c6dbf4de7414b6c12da924de
diff --git a/dev-python/virtualenv/virtualenv-21.7.14.ebuild b/dev-python/virtualenv/virtualenv-21.7.14.ebuild
new file mode 100644
index 000000000000..b2791558c0f7
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.7.14.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.6[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ >=dev-python/ensurepip-setuptools-70.1
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-21.5.1-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ tests/unit/seed/wheels/test_wheels_util.py::test_embed_wheel_below_oldest_supported_is_missing
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ # Internet
+ tests/unit/create/test_creator.py::test_create_distutils_cfg
+ # we do not use bundled wheels
+ tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
+ )
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} time-machine )
+ local EPYTEST_RERUNS=5
+ local EPYTEST_TIMEOUT=180
+ local EPYTEST_XDIST=1
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}