summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/ansible-compat/Manifest1
-rw-r--r--dev-python/ansible-compat/ansible-compat-25.1.1.ebuild61
-rw-r--r--dev-python/black/Manifest1
-rw-r--r--dev-python/black/black-25.1.0.ebuild57
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.36.8.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.36.8.ebuild67
-rw-r--r--dev-python/dogpile-cache/Manifest1
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-1.3.4.ebuild35
-rw-r--r--dev-python/fonttools/Manifest1
-rw-r--r--dev-python/fonttools/fonttools-4.55.7.ebuild99
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/mistune/Manifest1
-rw-r--r--dev-python/mistune/mistune-3.1.1.ebuild27
-rw-r--r--dev-python/nbconvert/Manifest1
-rw-r--r--dev-python/nbconvert/nbconvert-7.16.6.ebuild80
-rw-r--r--dev-python/pylint/Manifest1
-rw-r--r--dev-python/pylint/pylint-3.3.4.ebuild92
-rw-r--r--dev-python/pymdown-extensions/Manifest1
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-10.14.2.ebuild37
-rw-r--r--dev-python/pymongo/Manifest1
-rw-r--r--dev-python/pymongo/pymongo-4.11.ebuild237
-rw-r--r--dev-python/pytest-asyncio/Manifest1
-rw-r--r--dev-python/pytest-asyncio/pytest-asyncio-0.25.3.ebuild49
-rw-r--r--dev-python/python-socks/Manifest1
-rw-r--r--dev-python/python-socks/python-socks-2.7.0.ebuild48
-rw-r--r--dev-python/sphinx-notfound-page/Manifest1
-rw-r--r--dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild46
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.5.25.ebuild170
-rw-r--r--dev-python/xlsxwriter/Manifest1
-rw-r--r--dev-python/xlsxwriter/xlsxwriter-3.2.2.ebuild33
36 files changed, 1228 insertions, 9 deletions
diff --git a/dev-python/ansible-compat/Manifest b/dev-python/ansible-compat/Manifest
index c7b1fbb0ae29..88d1b9bbe9ba 100644
--- a/dev-python/ansible-compat/Manifest
+++ b/dev-python/ansible-compat/Manifest
@@ -1,3 +1,4 @@
DIST ansible-compat-24.9.1.gh.tar.gz 76018 BLAKE2B 581199ab65ccc884a3eeef246a8dbe527cac91fc3b588edaf1ad45e7aa83a2e77d44eab8e9dc5d7f2598b02a22fb724ccf235d25592ff8c9de0b7718b9ad5507 SHA512 d5da3cbd29bfb49b9ac68f004eb957edbfdfa303ce204e230117e9964df36c6bcbf3b47ef343d6a77b4f24c390266aebd649a8036cf9e7f29dc350d207ab7409
DIST ansible_compat-24.10.0.tar.gz 81818 BLAKE2B 78afad41dbe2172cb485186d78a488343391b5feb39f233f8584dc65ece8f290b43c8a6b0112db4606329bc5f38a9e44c6e39fd48efcb5562292152d44276539 SHA512 636ccb66be3570bf7ab0a51f991fefe3b4754db3fddb4d45ebd116de2721082e8ad4049e0cdd975431f01daaa4cb9d24ca57a97913fa66ce1f1f47780734ab14
DIST ansible_compat-25.1.0.tar.gz 87512 BLAKE2B 3547a26cd24656e6b7efc1d5250c3b224d539f08bd4fe1569aa3b2a84123baa0969cf1631d004eaab853b19ecf75a525a2baa6fd179a3737c503734459e78b2d SHA512 81b610f997b5d0fcd348a701e94bf7300175851f8c020af4129d3a95996ae61614004c8286af35f0d64887cdd6ae29ecad4aa22ddca4a9802f85178ebc21830b
+DIST ansible_compat-25.1.1.tar.gz 87846 BLAKE2B b38b5dc14a085470f0fccb4c6514fdeff70229606bceec6cf334947c9e4238c42de5afeb357c386df8aab6d671e14d164c38b2d1dfda5a669cb10780c5154cdf SHA512 0132d21993dac321d73148e732e3313fe1f27b30f65a011068956d788cce862344d86094ad55a79e9be10fd8127a8b729bed8a4cc67afde7f9b73dc9306161b9
diff --git a/dev-python/ansible-compat/ansible-compat-25.1.1.ebuild b/dev-python/ansible-compat/ansible-compat-25.1.1.ebuild
new file mode 100644
index 000000000000..e48a25f5e348
--- /dev/null
+++ b/dev-python/ansible-compat/ansible-compat-25.1.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517="setuptools"
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Contains functions that facilitate working with various versions of Ansible"
+HOMEPAGE="
+ https://pypi.org/project/ansible-compat/
+ https://github.com/ansible/ansible-compat/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=app-admin/ansible-core-2.18.1[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/subprocess-tee-0.4.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-plus[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # All these tests attempt to connect to galaxy.ansible.com
+ test/test_runtime.py::test_install_collection
+ test/test_runtime.py::test_install_collection_dest
+ test/test_runtime.py::test_prepare_environment_with_collections
+ test/test_runtime.py::test_prerun_reqs_v1
+ test/test_runtime.py::test_prerun_reqs_v2
+ test/test_runtime.py::test_require_collection_no_cache_dir
+ test/test_runtime.py::test_require_collection_wrong_version
+ test/test_runtime.py::test_require_collection
+ test/test_runtime.py::test_upgrade_collection
+ test/test_runtime_example.py::test_runtime
+ 'test/test_runtime.py::test_load_plugins[modules]'
+ # pip, failing due to internets
+ test/test_runtime_scan_path.py::test_scan_sys_path
+ # internets?
+ test/test_runtime.py::test_runtime_has_playbook
+ # TODO
+ test/test_prerun.py::test_get_cache_dir_relative
+ )
+
+ epytest -o addopts=
+}
diff --git a/dev-python/black/Manifest b/dev-python/black/Manifest
index 5a8447e09ab4..43f7751cd56c 100644
--- a/dev-python/black/Manifest
+++ b/dev-python/black/Manifest
@@ -1 +1,2 @@
DIST black-24.10.0.tar.gz 645813 BLAKE2B ba53b3d38d982c81d66291318ba6ab7df75779207fea77af3a4554cebaa23061d9d22f97613faa38b869694edcf56ae0001ff27eb34fba1e1bc8732dbf0a0796 SHA512 36285528b2a3ca9b68b806cf43cf04061f80e0ad5e693c70d2dc254b59d15f41ec5c2a4328d4cda42abe005def2d86d8fc501c1649b223a225c8bddddf82589a
+DIST black-25.1.0.tar.gz 649449 BLAKE2B 28045d73259780c38430838ad245a3a6545f6c55890ee5105f15121659e28dc3d3b332ddd08b7f196afcabc04d3d423b0ccf61e2a467f9ac131b9d7480e86415 SHA512 57281a678d322aaf0f2b7059aa59ad65055cb6999b8fc22ead115011d1b2e607d5cc91880369ee93a438bc266d7ebd371cd046f12d41a83383577f36a6211844
diff --git a/dev-python/black/black-25.1.0.ebuild b/dev-python/black/black-25.1.0.ebuild
new file mode 100644
index 000000000000..41da304f80fc
--- /dev/null
+++ b/dev-python/black/black-25.1.0.ebuild
@@ -0,0 +1,57 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="The uncompromising Python code formatter"
+HOMEPAGE="
+ https://black.readthedocs.io/en/stable/
+ https://github.com/psf/black/
+ https://pypi.org/project/black/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/click-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/mypy-extensions-0.4.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-22.0[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.0.1[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/aiohttp-3.10[${PYTHON_USEDEP}]
+ dev-python/aiohttp-cors[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ dev-python/pytest-forked[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # pytest-forked to workaround fd leakage in blackd
+ # https://github.com/psf/black/issues/4504
+ epytest -p pytest_forked --forked
+}
+
+pkg_postinst() {
+ optfeature "blackd - HTTP API for black" \
+ "dev-python/aiohttp dev-python/aiohttp-cors"
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 82940bfc82b1..03d7278cdb9a 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,3 +2,4 @@ DIST boto3-1.35.97.gh.tar.gz 920994 BLAKE2B e333a53118122ddd70e77e3f158171507e64
DIST boto3-1.36.2.gh.tar.gz 923432 BLAKE2B 91f19eb6e1451923adbf323688d89cfadd384009fbc3fdcae688b48dee54d9a3f14956cedaed07b15f2cdc3badaf0533a6ec1e1baf5cedc88e91580104834eb2 SHA512 e9e14f4aacd0814952198d5446050f0cf822baac0b3ce3604c40dbb6b122c431624b46b144ea4699be7328f6236e099981905a4be6a9de3400750800d8d40e60
DIST boto3-1.36.6.gh.tar.gz 925646 BLAKE2B 71db3ff552033c187e19b699d193e4834649b80d2c0dd2ed35496bfef798371f7794e58d445aeeafcc3e4aef50d4dc6e17347b04ae82b4f3b7778a1a5e419daf SHA512 c638903cb3afff4867dbee7295e387f5ce91d9d3d9f37b28c103ead87883377a69fbccfce34850da5c77186ced0bb56f5dc5f4549e84871d10a9134c731d4c36
DIST boto3-1.36.7.gh.tar.gz 894133 BLAKE2B b4e8e52e02528d0268b40d430ff32068a74764bfb3028e7c533a28e51ed7c5f1bad6742b5bbb07caf20d3a3daaf58647ca6ee4557f8d55b562604ee47c9aa9f0 SHA512 2b525e9b73b9b7b4934383ebeb4aef629eeef546637b0bf69b5c4a0c8ed0c70241e0df799105952e51fe28880ee9a035f57dcd0b6445775bdc36283f076bfa9b
+DIST boto3-1.36.8.gh.tar.gz 894929 BLAKE2B 7c848e09f550c7268303f48537079d8b557c5b685c1fd4097605ef039686f1191dcc253eb442d6f9dc77b623bfe402e7dc81906b9f46004dadea99ba9f326afe SHA512 e3d2fc7e3003ba7107b5430ae61962d61d8c0c7957f2654212683af39970b489cf57121392d1ffac4d44672818884e9fe01a077296586d64cafe2d18b2b96ae4
diff --git a/dev-python/boto3/boto3-1.36.8.ebuild b/dev-python/boto3/boto3-1.36.8.ebuild
new file mode 100644
index 000000000000..dfe05b3d9a81
--- /dev/null
+++ b/dev-python/boto3/boto3-1.36.8.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 92a6e987f992..f868fd81d8c5 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,3 +2,4 @@ DIST botocore-1.35.97.gh.tar.gz 14178448 BLAKE2B dd5f48480abe1495925215a77ca29a4
DIST botocore-1.36.2.gh.tar.gz 14197789 BLAKE2B 21441cd52052d117ce05e425c13f34941dcc1ca26a03e2e7eefb6c82584d7faffb548435ebb6b716b72db8149cfe6a3378b79f9174c676fd193c194501b0c844 SHA512 45d9515c493b238a003e5ad264b152b68a62e7ca140ea13111865a4b7c674a7b309a0f550f9782c37966b95c114136b8788f00ba0c83ed4bc61521b593376594
DIST botocore-1.36.6.gh.tar.gz 14173329 BLAKE2B 1eea293adad312439f2c60e0f73f721fa207439af2918fb5db98304a565e44d33f953f517e5526e865cbf58751892be4a6cc275545f295638109ee4051d2a276 SHA512 bcd1077bfeb5709e8c6224560f7974d70a884310539b531f520b20446aeaf3aa5d9aba6cbd19d75526d34dd7ab68be578f5ece7bddf7986997f9f5bbd5cee905
DIST botocore-1.36.7.gh.tar.gz 14176309 BLAKE2B 5ec7df33c49242dd2b1069261db0090703689c7b8be613225fae4cee2e1046d8d6884842c53482d31915c00f59323414d3e09cc7cc1b9e0e0a898c9a8c1a52ff SHA512 7de8921b70e9b068f087c7bd3b31b6c246a044a0389d1ba727ab423a2406f756fd42209f4403a79d381a5fcbc90737f91bf936386136ddaea6fb6730ef08b993
+DIST botocore-1.36.8.gh.tar.gz 14184344 BLAKE2B 6df84c80521d047d560b462a2d85b5111c20c07432f21080aebc46f4c836852825d199d442f61e497e4503f9527bde74850987b5c04102d13225f31521a206c7 SHA512 d206c1ff90b7a4dde2e23de7b4f2764991375b48c81344119d24f045cbfde6bcded3cd5c7853139b40584fafbb3a3936f79a2728efbfab79dc6b8783bfe07669
diff --git a/dev-python/botocore/botocore-1.36.8.ebuild b/dev-python/botocore/botocore-1.36.8.ebuild
new file mode 100644
index 000000000000..df85ee0d220c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.36.8.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/dogpile-cache/Manifest b/dev-python/dogpile-cache/Manifest
index 3b0990ddaa89..603929e2017d 100644
--- a/dev-python/dogpile-cache/Manifest
+++ b/dev-python/dogpile-cache/Manifest
@@ -1 +1,2 @@
DIST dogpile.cache-1.3.3.tar.gz 272404 BLAKE2B 1d28bf4293d4cbf8c5a97926458f92dc619a010f0f2fbb8242a2a6daff4ac09ec2f76faca7ee3e622d30a9b1adc7ca01d14cab0ebd5f05e0e35c5df32646be21 SHA512 80809d072167c62dcc731ab5b265c54bcc6f6a1dc09e3ea88959a34823dc0bb776b61166b8e60812dd47c38e8f23ba55c2be173d600a10c4c400c1334d0339fb
+DIST dogpile_cache-1.3.4.tar.gz 933234 BLAKE2B da5de35a87dc7b308326616378f1153f46da79c28bf89fbe488b74f08604a4fab52c0720b6ba016217ae054413fbe9696c3523c3e6387bb55800c401e482454a SHA512 3b22a640b53002697ba5b0bc0cde21cd44c707a51a86cf56b4538b6913b47d73c7d5a50f6f93d80b9e90bbc28be52db746da6f4e9becf0f4415da1ddbf20f9ff
diff --git a/dev-python/dogpile-cache/dogpile-cache-1.3.4.ebuild b/dev-python/dogpile-cache/dogpile-cache-1.3.4.ebuild
new file mode 100644
index 000000000000..a25e2d9a3d78
--- /dev/null
+++ b/dev-python/dogpile-cache/dogpile-cache-1.3.4.ebuild
@@ -0,0 +1,35 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A locking API for expiring values while a single thread generates a new value"
+HOMEPAGE="
+ https://github.com/sqlalchemy/dogpile.cache/
+ https://pypi.org/project/dogpile.cache/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/decorator-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-3.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0.1[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
index b78adb43bfcd..8e75bcf0db81 100644
--- a/dev-python/fonttools/Manifest
+++ b/dev-python/fonttools/Manifest
@@ -3,3 +3,4 @@ DIST fonttools-4.55.3.gh.tar.gz 3894793 BLAKE2B 0b02f5d5cac5b7cdd97d4c32310d0250
DIST fonttools-4.55.4.gh.tar.gz 3895558 BLAKE2B 9769f07c110f774bc597b6c4d63b502ff3d762136cb17ae8c3a97dc9826691944db88d62f858229cac827c9c76690a504c3f53416eecfb260b76dcf2c4dded40 SHA512 dd7aa3dc6650edcae4d72472f2530bea75a8e3f11b882712c241738f7f467346a1035dda73672cc82710fc09a40fc3ad1073238b9b1ef84bcaa6fa79a44ce468
DIST fonttools-4.55.5.gh.tar.gz 3897134 BLAKE2B 7e7cd6f172e34488a095ff55341a9f6a075ad5ccd4f375d052ab3a586244923464d21a93c75af985ae81cc85bb897f8a1731fe7eabcfdf0b1f2c6bb9eed9e36f SHA512 fb2d4fb67c7778ebcb166f39651e3fceb8986844dee2ce711554e7bf0d160c458110352e922c8faf85a5514f6fc56762f82d037b0df44c3cb8b17191b827a6d9
DIST fonttools-4.55.6.gh.tar.gz 3897113 BLAKE2B f2ea39291ed57add406df285be0e3590b8a9d404049f38ad79869a7ea2d3f0e97135e5e4d93835a91825b126cb81383fa1dce9fc75db98be33704c3d36ea4530 SHA512 b14d12b21988bfbcda8b2532c9fd0072344452ebbd9ced2197fef8b0c8037fad6acb8d969473443e2d9c02df0f68eed45326179d6d0385d4921c8b95a1f7a42a
+DIST fonttools-4.55.7.gh.tar.gz 3897996 BLAKE2B a34b1144133b69cbc057f3aea8f4a99290a8b5c33490008d29ee3546da975e690b959042f44117bd4496f5e523bb24b0671a415a59e741207efd19c25fd46ef9 SHA512 2c60bed9173b656e7b9f2cf3c0604b334b3e07b4d5e1f7d2bc2ec8a8e764095877e225b8801649df3551a1db3c7c9f4f65df1b5bbfdb4bf1221af122e04fe195
diff --git a/dev-python/fonttools/fonttools-4.55.7.ebuild b/dev-python/fonttools/fonttools-4.55.7.ebuild
new file mode 100644
index 000000000000..3653213263ff
--- /dev/null
+++ b/dev-python/fonttools/fonttools-4.55.7.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
+HOMEPAGE="
+ https://github.com/fonttools/fonttools/
+ https://pypi.org/project/fonttools/
+"
+SRC_URI="
+ https://github.com/fonttools/fonttools/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+RDEPEND="
+ >=dev-python/fs-2.4.9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+ test? (
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ dev-python/munkres[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ app-arch/zopfli
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # When dev-python/pytest-shutil is installed, we get weird import errors.
+ # This is due to incomplete nesting in the Tests/ tree:
+ #
+ # Tests/feaLib/__init__.py
+ # Tests/ufoLib/__init__.py
+ # Tests/svgLib/path/__init__.py
+ # Tests/otlLib/__init__.py
+ # Tests/varLib/__init__.py
+ #
+ # This tree requires an __init__.py in Tests/svgLib/ too, bug #701148.
+ touch Tests/svgLib/__init__.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
+ [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # virtualx used when matplotlib is installed causing plot module tests to run
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # flaky test
+ Tests/ttLib/woff2_test.py::WOFF2ReaderTest::test_get_normal_tables
+ )
+
+ if [[ ${EPYTHON} == pypy3 ]] &&
+ has_version "dev-python/pyxattr[${PYTHON_USEDEP}]" &&
+ {
+ has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
+ has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
+ }
+ then
+ EPYTEST_DESELECT+=(
+ # affected by a bug in PyPy/pyxattr
+ # https://github.com/iustin/pyxattr/issues/41
+ Tests/t1Lib/t1Lib_test.py::ReadWriteTest::test_read_with_path
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ nonfatal epytest \
+ -p rerunfailures --reruns=5 \
+ Tests fontTools || die -n "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index 37a64204a00a..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 56733bbffc48..eb2586280d80 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/mistune/Manifest b/dev-python/mistune/Manifest
index f6884f8965ae..a3670f20d0a4 100644
--- a/dev-python/mistune/Manifest
+++ b/dev-python/mistune/Manifest
@@ -1 +1,2 @@
DIST mistune-3.1.0.tar.gz 94401 BLAKE2B e1e6f17c5aa378998bec8a8480c8b311243e067f52a9da6b451db33c639ec5a69f6d8b3c815bf9582b0b9c9a7aff3d197ab9bf477c634805eb704c0bbdaebe67 SHA512 2532565f15c1563547db131e28ea373a76dc5ab96b98a0f2f156709e625953f6f52a9e7b216e235b17ab09b282dfea8ee82c3975d9a08a0f52463b235e5589d8
+DIST mistune-3.1.1.tar.gz 94645 BLAKE2B a2b00aa0ba5df2e74817407c15f5f3c01feb2fecbcc2ddead0891a9b244f71bff5e73df2adcf80875d3d88cb23301c42307cbc269ced7e1cd2aaee67339e05b2 SHA512 2920ec4a491ea9dcfa47bc5b368f8ce267d02bc312a5c21b97c52f3d9b59e2eccf5da564c6c126b2bfc7ec6070dc3a59f5506a549e6259c9c9b08f100298c2d0
diff --git a/dev-python/mistune/mistune-3.1.1.ebuild b/dev-python/mistune/mistune-3.1.1.ebuild
new file mode 100644
index 000000000000..0707bb168a76
--- /dev/null
+++ b/dev-python/mistune/mistune-3.1.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="The fastest markdown parser in pure Python"
+HOMEPAGE="
+ https://github.com/lepture/mistune/
+ https://pypi.org/project/mistune/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+distutils_enable_tests pytest
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.10)
+"
diff --git a/dev-python/nbconvert/Manifest b/dev-python/nbconvert/Manifest
index 9dbdd85b043e..9383f5c5dda9 100644
--- a/dev-python/nbconvert/Manifest
+++ b/dev-python/nbconvert/Manifest
@@ -1 +1,2 @@
DIST nbconvert-7.16.5.tar.gz 856367 BLAKE2B d1b44e2665a4a96c2d7a78c986b93c5e9e5e12bc984f20735a03e1fb28d81b43cc7b1d6ebf0a8dad56b470e5e683c672f096c9fd98d22852f5c8fe94a9c2ce44 SHA512 703ed3e33efc2a42c8bde84829b82a8e9ef2313c1766bfc0ab642743173ade642d4a796afa9ef489ba2f58bd75fc0ce6e50009676e2ef1d3848967ddf775f861
+DIST nbconvert-7.16.6.tar.gz 857715 BLAKE2B 1fdd6397c92f281554fb528a82926e1cf03cf0d5c6c50b4bcc6d4e3ee62c54917d08cfdf879ee6053bb096cb0de4109187ec2abfc14cf628e605bf6bca01bd5b SHA512 527536700e870d0352feb070b1d4cff6fbad11503bdeff860a1fdd6e142b776dc260a60d6c3e887c52ebc83c9465df569b9d27aead53c02a42a0adb60733371d
diff --git a/dev-python/nbconvert/nbconvert-7.16.6.ebuild b/dev-python/nbconvert/nbconvert-7.16.6.ebuild
new file mode 100644
index 000000000000..d66830d0e044
--- /dev/null
+++ b/dev-python/nbconvert/nbconvert-7.16.6.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_{9,10,11,12,13} pypy3 )
+
+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}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+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
+ # tests/preprocessors/test_execute.py are extremely flaky over output
+ # buffering
+ nonfatal epytest --reruns=10 || 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/pylint/Manifest b/dev-python/pylint/Manifest
index 5496197ad008..afdfa746edf2 100644
--- a/dev-python/pylint/Manifest
+++ b/dev-python/pylint/Manifest
@@ -1 +1,2 @@
DIST pylint-3.3.3.gh.tar.gz 1454469 BLAKE2B e44ee31359421c560f89eee04215c222ce6b9f1fdce97750fe118cdb011f69c2a44a0a5a870787f4cd0c647650a78bc5a01dc327d8aaa8976f89e298f26596a1 SHA512 2267e7684b464255d03366bfd7988ac74222c08903a8b93bd5bc64181b12d1386c56ebb6dd79eb5b3f6c1a71bbc60282bf388fafc37a3e2c271286bc07ff2ac7
+DIST pylint-3.3.4.gh.tar.gz 1455691 BLAKE2B 294cedc1d0ff5cf907ed847958d3067d526d7709df0ca9db2885fbd292b73d08d6b36708b1309a995790045d1eb5c55fe6d73f2bedaa6698d7fbd131dd010479 SHA512 cd99d69e3689986177320369a0b738054f92b194ff4a3f469d006de92181db1c88a068a9955dafc4df297256740f212f608b6c4bb050d25d0dbeb4c6d5466d44
diff --git a/dev-python/pylint/pylint-3.3.4.ebuild b/dev-python/pylint/pylint-3.3.4.ebuild
new file mode 100644
index 000000000000..d5f9bf84abe2
--- /dev/null
+++ b/dev-python/pylint/pylint-3.3.4.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+MY_P=${P/_beta/b}
+DESCRIPTION="Python code static checker"
+HOMEPAGE="
+ https://pypi.org/project/pylint/
+ https://github.com/pylint-dev/pylint/
+"
+SRC_URI="
+ https://github.com/pylint-dev/pylint/archive/v${PV/_beta/b}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ <dev-python/astroid-3.4[${PYTHON_USEDEP}]
+ >=dev-python/astroid-3.3.8[${PYTHON_USEDEP}]
+ >=dev-python/dill-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/isort-4.2.5[${PYTHON_USEDEP}]
+ <dev-python/isort-7[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.6[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.8[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.10.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.1.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/gitpython-3[${PYTHON_USEDEP}]
+ ' 'python*' )
+ >=dev-python/pytest-8.3[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ 'tests/test_functional.py::test_functional[dataclass_with_field]'
+ 'tests/test_functional.py::test_functional[no_name_in_module]'
+ 'tests/test_functional.py::test_functional[shadowed_import]'
+ 'tests/test_functional.py::test_functional[use_yield_from]'
+ 'tests/test_functional.py::test_functional[wrong_import_order]'
+ )
+ local EPYTEST_IGNORE=(
+ # No need to run the benchmarks
+ tests/benchmark/test_baseline_benchmarks.py
+ )
+
+ if ! has_version "dev-python/gitpython[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/profile/test_profile_against_externals.py
+ tests/testutils/_primer/test_package_to_lint.py
+ tests/testutils/_primer/test_primer.py
+ )
+ fi
+
+ rm -rf pylint || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p timeout
+}
+
+python_install_all() {
+ if use examples ; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest
index 5f6a855e33a2..aebd83ebb31f 100644
--- a/dev-python/pymdown-extensions/Manifest
+++ b/dev-python/pymdown-extensions/Manifest
@@ -1,3 +1,4 @@
DIST pymdown_extensions-10.13.tar.gz 843302 BLAKE2B 7d4196d32abaa16b6f21ae8a5c4a651d8cc59f0eaa94f9822d0d8344b1b032cc43933ed47ec8cec05f1cb8bdfdacbeb4efb33fdb0a4215688a4fef11b5804dcb SHA512 663c22e11d06411de597febb8eb97291182f86c343e791993bbd26be475c4812b497af896620765f6af7759048e6c502420de8e79ce761deb8ad058bcd9dc830
DIST pymdown_extensions-10.14.1.tar.gz 845243 BLAKE2B f8b737229703d1cc4307c9d86ce89b0a48c206d1ae003f1ff74e11e5e607b516eee2e9ae74813a06c3b97fc2d80bda788ed092f8de4e02763ac9327e96dca83a SHA512 3c4ca5085d1d5122970d74cc79758963217f6f2ae3214112047a471acb439419b8ed10ecff150f929a091d5ee714a88a27fd476f788f8b3499a3dacab5c3d266
+DIST pymdown_extensions-10.14.2.tar.gz 846777 BLAKE2B 042f58bb2cea45e2eda604336e6a135db6b770c4acdf6f6223097ff1b9936b166889ba243169f731da52112550fac7e042f88fe981480bc61a2f9a3fbbb3f3ba SHA512 c2df8977bdcc85ae118e5dc3127d97bcca376a8d575b6f588be4e3d8a10f5090fddef3ab5bcc4fbe58dc4729b76375231ef112fad39564ec89d542c08842f52f
DIST pymdown_extensions-10.14.tar.gz 844927 BLAKE2B 1b0531ad7be052a220a5d713acbfbd88f1b891f8313b8aac8ab5e44628a312622df50ccb6441508213b5b03314dfcedfdd901c4ef40b95df81f8e2294b87652c SHA512 39eec56073954a1a26d34e39169fd3e8cedb070796b6ffc682eacf4da75b4dfa308e8e30068de38f940ea7143d2c71240ea82a66cec7c8add2643312da6499fc
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-10.14.2.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-10.14.2.ebuild
new file mode 100644
index 000000000000..026c59c7ba0f
--- /dev/null
+++ b/dev-python/pymdown-extensions/pymdown-extensions-10.14.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extensions for Python Markdown"
+HOMEPAGE="
+ https://github.com/facelessuser/pymdown-extensions/
+ https://pypi.org/project/pymdown-extensions/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/pygments-2.19.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index 9506be2c368a..bea14ac5c26b 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1,5 +1,6 @@
DIST mongo-python-driver-4.10.0.gh.tar.gz 1948389 BLAKE2B 19429aad69baa013226a4b36de5c654fe074bdb39a462d588a1a4298a35fd8bbf941d8189dbe632e25619fb691a960c98988e205e82796ec1572d2dc63379b2d SHA512 3153e97ad6e749a35d071ef91eb870be76d75f404526e5275cc5ab19470f09a8450debba519cb10bd79191d1b1dd8cfc04882b1d7ef4898471b14bf131fa8c83
DIST mongo-python-driver-4.10.1.gh.tar.gz 1957402 BLAKE2B 66f7c166af7c7467ca7cb20266d313e453ab485516c17e8eda5a4771b4818778c00ad314e7bd5868a95f2045f879a73617f64549db634257f1abbc7a9a095181 SHA512 200bda479cd951beef6234a15120a043b4399cadd8ef2fda69bfcd6904e1e0e43d179626092dc81d89f48806768bf8147c55108c91620920f5544f712bf3be51
+DIST mongo-python-driver-4.11.gh.tar.gz 2111008 BLAKE2B 0f65410b5eead108dec0016c23c3e004251ab2db04f3a7b2a31a8757abdddf526cea695400c8cdf2bb4f7fc8c711ee4d2e5f883d0db8b309843a71e194e75016 SHA512 454109e9c9da8fec6785f50e34dfe253f9fd1a82d69cadd5c0366590c6ca6aeac180f16a0e011f855e72c6a949a0cf06f477c7396d4c9f4da6f936646a5d8c20
DIST mongo-python-driver-4.7.2.gh.tar.gz 1548375 BLAKE2B a40dbe153f36cdf2836583aa0116f447d08376ce7980a09d0f21cea37a34ab318e5ff0b34b7fe1721cf7fc5d5443a1dbe0982d59cb941b0da8a4a99abdc7b19d SHA512 1de8bd14301e365eb53252dedaaaf8c9056dd534662543e2a500511e5f5f67a69e1f11a8a8575efdbd8852bb47b632d59762f66024d32973d20dc17c4448b9be
DIST mongo-python-driver-4.8.0.gh.tar.gz 1550149 BLAKE2B 9462480b17f3da54918883fbcb28a4324e6a00a9c2c34b16267ebcd378170f7fd34ec7290f7a0e3c4c38a5f1f803428cb6a0c64a562d956b3a19c37130697012 SHA512 17513a278187424fea1876d288651e385be759f23eebceca8d04a15182b15ffd64956193bb53e4a90e8b2197c2ebbade274737091f5d2e5fb4398539674c41df
DIST mongo-python-driver-4.9.1.gh.tar.gz 1937311 BLAKE2B 9312c7df50f86dad7dd713b34aba0a87dd9f878b115b3c00ae9e0825c883c869f57e0d55d552b1b4bf9715930840a540572b451d296e185085c4c0c707855811 SHA512 e616418c90088bfc328505dea315a225bfcc942fa29dcc348d3b80d0fb329b7e8fe9d6164c0e13a0562e6126535cc7d04c2cf497a39a04071f6db8af3c8ed1f1
diff --git a/dev-python/pymongo/pymongo-4.11.ebuild b/dev-python/pymongo/pymongo-4.11.ebuild
new file mode 100644
index 000000000000..3423f94e4005
--- /dev/null
+++ b/dev-python/pymongo/pymongo-4.11.ebuild
@@ -0,0 +1,237 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit check-reqs distutils-r1
+
+MY_P=mongo-python-driver-${PV}
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="
+ https://github.com/mongodb/mongo-python-driver/
+ https://pypi.org/project/pymongo/
+"
+SRC_URI="
+ https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc kerberos +native-extensions +test-full"
+
+RDEPEND="
+ <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
+ kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ test-full? (
+ >=dev-db/mongodb-2.6.0
+ )
+ )
+"
+
+distutils_enable_sphinx doc
+distutils_enable_tests pytest
+
+reqcheck() {
+ if use test && use test-full; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # we do not want hatch-requirements-txt and its ton of NIH deps
+ sed -i -e '/requirements/d' pyproject.toml || die
+}
+
+python_compile() {
+ # causes build errors to be fatal
+ local -x TOX_ENV_NAME=whatever
+ local DISTUTILS_ARGS=()
+ # unconditionally implicitly disabled on pypy3
+ if ! use native-extensions; then
+ export NO_EXT=1
+ else
+ export PYMONGO_C_EXT_MUST_BUILD=1
+ unset NO_EXT
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ rm -rf bson pymongo || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local EPYTEST_DESELECT=(
+ # network-sandbox
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
+ test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
+ test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/test_client.py::ClientUnitTest::test_detected_environment_logging
+ test/test_client.py::ClientUnitTest::test_detected_environment_warning
+ test/test_client.py::TestClient::test_service_name_from_kwargs
+ test/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
+ test/test_srv_polling.py
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
+
+ # broken regularly by changes in mypy
+ test/test_typing.py::TestMypyFails::test_mypy_failures
+
+ # fragile to timing? fails because we're getting too many logs
+ test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
+
+ # hangs?
+ test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
+
+ # broken async tests?
+ test/asynchronous/test_encryption.py
+ )
+
+ local run_separately=(
+ # need to run some tests separately and then restart mongodb
+ # to prevent it from crashing
+ # https://bugs.gentoo.org/934389
+ # note that this list must not overlap with EPYTEST_DESELECT
+ test/test_bulk.py
+ test/test_change_stream.py
+ test/test_collection.py
+ test/test_crud_unified.py
+ test/test_gridfs.py
+ )
+ local run_separately2=(
+ test/test_command_monitoring.py
+ test/test_connection_monitoring.py
+ test/test_cursor.py
+ test/test_database.py
+ test/test_grid_file.py
+ )
+ local run_separately3=(
+ test/test_gridfs_bucket.py
+ test/test_monitoring.py
+ )
+ local run_separately_async=(
+ test/asynchronous/test_database.py
+ test/asynchronous/test_grid_file.py
+ )
+
+ if ! use test-full; then
+ # .invalid is guaranteed to return NXDOMAIN per RFC 6761
+ local -x DB_IP=mongodb.invalid
+ epytest -p asyncio
+ return
+ fi
+
+ # Yes, we need TCP/IP for that...
+ local -x DB_IP=127.0.0.1
+ local -x DB_PORT=27000
+
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ local stage failed=
+ for stage in {1..6}; do
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local async=( -p asyncio -m default_async )
+ local def=( -p asyncio -m "default or encryption" )
+ case ${stage} in
+ 1)
+ nonfatal epytest "${def[@]}" "${run_separately[@]}" || failed=1
+ ;;
+ 2)
+ nonfatal epytest "${def[@]}" "${run_separately2[@]}" || failed=1
+ ;;
+ 3)
+ nonfatal epytest "${def[@]}" "${run_separately3[@]}" || failed=1
+ ;;
+ 4)
+ EPYTEST_DESELECT+=(
+ "${run_separately[@]}"
+ "${run_separately2[@]}"
+ "${run_separately3[@]}"
+ )
+ nonfatal epytest "${def[@]}" || failed=1
+ ;;
+ 5)
+ nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1
+ ;;
+ 6)
+ EPYTEST_DESELECT+=(
+ "${run_separately_async[@]}"
+ )
+ nonfatal epytest "${async[@]}" || failed=1
+ ;;
+ esac
+
+ mongod --dbpath "${dbpath}" --shutdown || die
+ done
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}" || die
+}
diff --git a/dev-python/pytest-asyncio/Manifest b/dev-python/pytest-asyncio/Manifest
index 34b6567efef8..6f4fd3d23e60 100644
--- a/dev-python/pytest-asyncio/Manifest
+++ b/dev-python/pytest-asyncio/Manifest
@@ -1 +1,2 @@
DIST pytest_asyncio-0.25.2.tar.gz 53950 BLAKE2B 950cbaa50e2bb8a66cd2396e7e6b5c0c97e2cd0272381b0de23f3668dea2f663f9eaf0c92ec91c474cd1dc44f3aeae77dac1e347ee86cefb518850d9985d2e7a SHA512 d19e2de9ae27cfedc06580ffea21b8894054c35e62601a01487d485ece906f765640dcd9fb633059925701f082644c424b7b532a91e978b8c099192e9a324f6e
+DIST pytest_asyncio-0.25.3.tar.gz 54239 BLAKE2B 212df50fea5830e9c6f67389cb3108e0dacfc31ac692dc136e9d5d87f5bc8a350ad9c1f3d5becd724ba5d8f4c8ebbdeac7e385c0a2b098b54090029dbff863cc SHA512 8144b636ad77af0ecadf81ff5be396e6706d8c206772953ffd2a62c9889094ff55e3f14c9bbd615a9d58cb192e61385d0ffcb1b56524422376d214154536b532
diff --git a/dev-python/pytest-asyncio/pytest-asyncio-0.25.3.ebuild b/dev-python/pytest-asyncio/pytest-asyncio-0.25.3.ebuild
new file mode 100644
index 000000000000..662df986e12c
--- /dev/null
+++ b/dev-python/pytest-asyncio/pytest-asyncio-0.25.3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2019-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Library for testing asyncio code with pytest"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-asyncio/
+ https://pypi.org/project/pytest-asyncio/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/pytest-8.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hypothesis-5.7.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on precise warning counts
+ tests/hypothesis/test_base.py::test_can_use_explicit_event_loop_fixture
+ tests/modes/test_strict_mode.py::test_strict_mode_ignores_unmarked_fixture
+ tests/test_event_loop_fixture.py::test_event_loop_already_closed
+ tests/test_event_loop_fixture.py::test_event_loop_fixture_asyncgen_error
+ tests/test_event_loop_fixture.py::test_event_loop_fixture_handles_unclosed_async_gen
+ tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_raises_warning_when_fixture_leaves_loop_unclosed
+ tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_raises_warning_when_test_leaves_loop_unclosed
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_asyncio.plugin,_hypothesis_pytestplugin
+ epytest
+}
diff --git a/dev-python/python-socks/Manifest b/dev-python/python-socks/Manifest
index 4ff60428697c..1387ac995cc0 100644
--- a/dev-python/python-socks/Manifest
+++ b/dev-python/python-socks/Manifest
@@ -1 +1,2 @@
DIST python-socks-2.6.1.gh.tar.gz 32352 BLAKE2B 0bfc85bdeb6aefab34d307a6956171fad8b0876f49959bfc91193c864ba8ed7d05a1efb4f052202d99984aad7bb9bfc8472e2853d57b5812156dec6ee791a04e SHA512 2e046849a66125ddb14f887f84354e56f689034695a48532cbd4d4a1ef9508212c30e34faeb3b318ceede32a0604d62f92ca92cfe14b63c54a42fd5c1cfafbc0
+DIST python-socks-2.7.0.gh.tar.gz 32361 BLAKE2B 603e9782ee2998825bbcff012e1eeba7e404f13112544c6db97e5baf31ac79cb9339d98642c20a56fc5a1ef7da4a60687e663770ec0c145015648c07f99c341d SHA512 0244a6111ba37341e06210422af1df5946edd0e87616647aa2bbaf0cb82c363db3489eeddbd2111cbb76a126b5d629a2426776316b7ea68a17d3aa4fea2901f1
diff --git a/dev-python/python-socks/python-socks-2.7.0.ebuild b/dev-python/python-socks/python-socks-2.7.0.ebuild
new file mode 100644
index 000000000000..e36054ed6825
--- /dev/null
+++ b/dev-python/python-socks/python-socks-2.7.0.ebuild
@@ -0,0 +1,48 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="SOCKS4, SOCKS5, HTTP tunneling functionality for Python"
+HOMEPAGE="
+ https://github.com/romis2012/python-socks/
+ https://pypi.org/project/python-socks/
+"
+SRC_URI="
+ https://github.com/romis2012/python-socks/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# curio is not packaged
+# asyncio is the only backend we have, so dep on its deps unconditionally
+# TODO: revisit
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ >=dev-python/anyio-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/async-timeout-3.0.1[${PYTHON_USEDEP}]
+ >=dev-python/flask-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-asyncio-0.18.3[${PYTHON_USEDEP}]
+ >=dev-python/pytest-trio-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/tiny-proxy-0.1.1[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.24[${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.4.2[${PYTHON_USEDEP}]
+ )
+"
+
+# Test markers exist to exclude trio etc if needed
+distutils_enable_tests pytest
diff --git a/dev-python/sphinx-notfound-page/Manifest b/dev-python/sphinx-notfound-page/Manifest
index de6abc7b82d4..47574f4a2ca1 100644
--- a/dev-python/sphinx-notfound-page/Manifest
+++ b/dev-python/sphinx-notfound-page/Manifest
@@ -1 +1,2 @@
DIST sphinx-notfound-page-1.0.4.gh.tar.gz 544117 BLAKE2B f8155167183fa3d6487cfd9f93eff8a99dd3253ed7f44632ca822b9da3d0b409a6897edd4f972fc9535b4759c2ef976c5f66daf85249ba9de4c83ae96ff65d7a SHA512 d6643e29768b31834c73302f8995cd92c052b2a51a4ecffc997f4ea4d15cf830c17a2f538fec637b1a3a7e187fa787252652b5ab8ce0ab92f44996a63669b504
+DIST sphinx-notfound-page-1.1.0.gh.tar.gz 544169 BLAKE2B 4a5aa18f0b566e43f2e9a5c0a25e8a19487a626430bfa53df75a573db09e943edd8b33d9948d983a7e6e07807e9e4257c241a6b63818d7d35a93aa4620c29e4c SHA512 4f6868e68e821f02020104aadc38c3b8d4e4f16eec8fc696e076ef13a49a3675560a8c90f2d0a1d5daf8ef4bee85ecfb61b2c03882c7be3aca000d34e13d5e68
diff --git a/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild b/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild
new file mode 100644
index 000000000000..282f2fc069a9
--- /dev/null
+++ b/dev-python/sphinx-notfound-page/sphinx-notfound-page-1.1.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2019-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Create a custom 404 page with absolute URLs hardcoded"
+HOMEPAGE="
+ https://sphinx-notfound-page.readthedocs.io/
+ https://github.com/readthedocs/sphinx-notfound-page/
+ https://pypi.org/project/sphinx-notfound-page/
+"
+SRC_URI="
+ https://github.com/readthedocs/sphinx-notfound-page/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/sphinx-5[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # calls sphinx-build directly, works around venv
+ tests/test_urls.py::test_parallel_build
+
+ # broken upstream (mismatch with new dev-python/sphinx?)
+ # https://github.com/readthedocs/sphinx-notfound-page/issues/249
+ tests/test_urls.py::test_default_settings
+ tests/test_urls.py::test_urls_prefix_setting
+ tests/test_urls.py::test_urls_prefix_setting_none
+ tests/test_urls.py::test_custom_404_rst_source
+ tests/test_urls.py::test_urls_for_dirhtml_builder
+ tests/test_urls.py::test_toctree_urls_notfound_default
+ tests/test_urls.py::test_toctree_links
+ tests/test_urls.py::test_toctree_links_custom_settings
+)
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index 51d512c029c5..2295d5de88f1 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -12,5 +12,7 @@ DIST uv-0.5.22-crates.tar.xz 53858800 BLAKE2B c5b6ee71e1e8dfbfa053f6c0d29515c8a1
DIST uv-0.5.22.gh.tar.gz 3302316 BLAKE2B 13cb21c5c1b3961bb5d34e744e17580ec45a9dc22f22d1d589109d9fb3378aafe882f551855bde8050778e49784e3748ebf9f90eaafc3d64571974d34d235a68 SHA512 57b84f8da8867e013d3bffd581f3d2b7bc730ab9dcccc2020e00a4f4c8c5848546461a8c15ec06581115aabc0b765db2ff2ab7048aa15bf485d0fff2c130d546
DIST uv-0.5.23.gh.tar.gz 3311484 BLAKE2B bf7feb6d34a39358326a7a13053139179ca1d636b414286204180e1d0d314d6a38dc823e1d29321f815886155c6ee5c207402f2a77984573ca0ce32670370951 SHA512 483be9e257169a3818a3a6e923601c9ff50654e23d30968253229cb11aed12f1d553e33133d1e58d77e6ce7cb7d5909dac61601d978199e2ba0879bf2e4aa658
DIST uv-0.5.24.gh.tar.gz 3319136 BLAKE2B a75ca99fcd1f5ccefc0e22e421b1f9da0e01a394a5a9015a364dfdf775240210e58098fa3996ba1c190550f2ce33aadcbe2395b689cb2b77726b9af3125ac7c7 SHA512 9cb55bdb163c491b0fd1fe9d9a2f41d8e64b5b93e4458a4fd703191e19b8babf03196a544266c72fff2a7af1805a60cc6fa405d0397fb9a1a51c71efd75df85a
+DIST uv-0.5.25-crates.tar.xz 53882356 BLAKE2B b0762449534ccf0be33d2c4d50fd9bc01823c6aeef7b82a84e4dc49e3ce92272f62632608664614d62dc5e0f40c500e3b3ca3ca0388761f3c3b50b89d0f83a42 SHA512 ec7b64d5b40d20d1d5081819b895cc18a69d008e6b27f40cc147573b99f8fabf11ee83c60a389791ad8a844a8c0965da2dd1be500f4c2ce8860724a41c37ece5
+DIST uv-0.5.25.gh.tar.gz 3329902 BLAKE2B a097fe18caf664a0b8bb7298027e36bfea01b81cde62be0b54a8668b6e97213dd725206f61d3005b3499a47e321dd1173f786730597104e0563b31903a1ae22d SHA512 e215726e647bb205b61ca206a951e9cd8013ba5e33e2e59eb3f2fdfac8de0321e9e1fc1e045eaa9f3069a255631dc93be3ae2f641268a30b2ce040b0c951eb7d
DIST uv-0.5.6-crates.tar.xz 46263172 BLAKE2B 73b1d2dc957f89f923dda09a8c038426041292c442ce253ff9110f996cd1e1f892a5a438d8e1c894fc0d823401cced0ddc8ad88b5e6a83199af7055a04ce85dc SHA512 c9d4f8085416bffb1e1872fd907d15a50cae0c0c5fba994d27b3acdc3c836dffd771558246573af4bb7467353a031ea56018d5ae1fbdffa4f63988462de00343
DIST uv-0.5.6.gh.tar.gz 2952255 BLAKE2B b815b60b99f959751f5839365b8b210919247ad99bff93ee4d202bc152bd06b83a62914cfbf341bfddb5b2c87d9e546c5e2a6d1baff1599d0218160ee89de504 SHA512 fc8c7f4f60a3d2ce997341450daf20ad039ef379ac5dd4575f8db0327284bd8278419b66f8f9695f2701a9579ab004b5b60476bd8dc4c27314211f795118bc5a
diff --git a/dev-python/uv/uv-0.5.25.ebuild b/dev-python/uv/uv-0.5.25.ebuild
new file mode 100644
index 000000000000..2baf935b5931
--- /dev/null
+++ b/dev-python/uv/uv-0.5.25.ebuild
@@ -0,0 +1,170 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;648aa343486e5529953153781fc86025c73c4a61;pubgrub-%commit%'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;648aa343486e5529953153781fc86025c73c4a61;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.83.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=0.5.25
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/xlsxwriter/Manifest b/dev-python/xlsxwriter/Manifest
index b7343deae351..31798217a120 100644
--- a/dev-python/xlsxwriter/Manifest
+++ b/dev-python/xlsxwriter/Manifest
@@ -1,2 +1,3 @@
DIST XlsxWriter-RELEASE_3.2.0.gh.tar.gz 24079667 BLAKE2B ee6f35d2df8edef3a1282bd821b1eaa3d3a79bb9d962df9d50394519905a0344e0b747a58d3bf5fc1323baefde3b9e11a2c5e7e77be2cc02bab716b0a3cf3226 SHA512 b36ee896d01e5a6369f4f42e69338b69b9ea5ee4919eea9361c0f5f6ff012ca153c708ff1c719b82ce067c5d57392e3b72c47e828a7e832953d0c06de9f65962
DIST XlsxWriter-RELEASE_3.2.1.gh.tar.gz 24307679 BLAKE2B 8e547b21c04c46159de9cb4f2bb75139b372287264714114b01d649ab290a9595ee8f36b82f976d4ec015cccd23cff4e57ac04c611b8553c0d1963d98886ed6b SHA512 510195ce7b008fa341a2fee5e0bb71cd150f853dddd6f5af6b5fd3a1090d64c9b14fbd4eb05c55a32a6a451fa0fa9471f15ee14a7d808d948479106510ae43d3
+DIST XlsxWriter-RELEASE_3.2.2.gh.tar.gz 24656384 BLAKE2B b1b7313d0b486ff1e612102a67530ac96ae672a577b2c2cf23be65e1a0d8a0698ba6060c127b3d45afaa7691a8f03f82352ada9cf3aff98771bc7537622c6d69 SHA512 21fa5e550123506e0777dd849aacfd0c2177a4b0f79c675a55361693c286d03a100cf09c29c4a434a7d9e43825d90506ed6a4f3beef36c054cd0fd805a7a9446
diff --git a/dev-python/xlsxwriter/xlsxwriter-3.2.2.ebuild b/dev-python/xlsxwriter/xlsxwriter-3.2.2.ebuild
new file mode 100644
index 000000000000..7484d434bdee
--- /dev/null
+++ b/dev-python/xlsxwriter/xlsxwriter-3.2.2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+TAG=RELEASE_${PV}
+MY_P=XlsxWriter-${TAG}
+DESCRIPTION="Python module for creating Excel XLSX files"
+HOMEPAGE="
+ https://github.com/jmcnamara/XlsxWriter/
+ https://pypi.org/project/XlsxWriter/
+"
+SRC_URI="
+ https://github.com/jmcnamara/XlsxWriter/archive/${TAG}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}