summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-25 06:59:56 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-25 06:59:56 +0000
commit7905b85a5dde08d4760319aa85fa4fa8954e8548 (patch)
treeeb4955d2c950ca4d00b5d51a9a0101975759378f /dev-python
parente7db7379fcca2dcb309c8c5bf5dec5d11a31ae47 (diff)
downloadbaldeagleos-repo-7905b85a5dde08d4760319aa85fa4fa8954e8548.tar.gz
baldeagleos-repo-7905b85a5dde08d4760319aa85fa4fa8954e8548.tar.xz
baldeagleos-repo-7905b85a5dde08d4760319aa85fa4fa8954e8548.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiocache/aiocache-0.12.3-r1.ebuild73
-rw-r--r--dev-python/aiocache/files/aiocache-0.12.3-py313.patch239
-rw-r--r--dev-python/caldav/Manifest1
-rw-r--r--dev-python/caldav/caldav-1.5.0.ebuild34
-rw-r--r--dev-python/cangjie/Manifest1
-rw-r--r--dev-python/cangjie/cangjie-1.3-r2.ebuild (renamed from dev-python/cangjie/cangjie-1.3-r1.ebuild)19
-rw-r--r--dev-python/cangjie/cangjie-1.5.0.ebuild49
-rw-r--r--dev-python/freezegun/Manifest1
-rw-r--r--dev-python/freezegun/freezegun-1.5.2.ebuild47
-rw-r--r--dev-python/fsspec/Manifest1
-rw-r--r--dev-python/fsspec/fsspec-2025.5.1.ebuild72
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.131.27.ebuild126
-rw-r--r--dev-python/mecab-python/Manifest1
-rw-r--r--dev-python/mecab-python/mecab-python-1.0.7.ebuild31
-rw-r--r--dev-python/mkdocstrings-python/Manifest1
-rw-r--r--dev-python/mkdocstrings-python/mkdocstrings-python-1.16.11.ebuild48
-rw-r--r--dev-python/moto/Manifest1
-rw-r--r--dev-python/moto/moto-5.1.5.ebuild115
-rw-r--r--dev-python/pyopencl/Manifest1
-rw-r--r--dev-python/pyopencl/files/pyopencl-2025.1-nanobind-flags.patch21
-rw-r--r--dev-python/pyopencl/pyopencl-2024.2.7.ebuild2
-rw-r--r--dev-python/pyopencl/pyopencl-2025.1.ebuild78
-rw-r--r--dev-python/typing-extensions/Manifest1
-rw-r--r--dev-python/typing-extensions/typing-extensions-4.14.0_rc1.ebuild34
-rw-r--r--dev-python/urwid-readline/urwid-readline-0.15.1.ebuild4
-rw-r--r--dev-python/urwidtrees/urwidtrees-1.0.3-r2.ebuild2
27 files changed, 992 insertions, 12 deletions
diff --git a/dev-python/aiocache/aiocache-0.12.3-r1.ebuild b/dev-python/aiocache/aiocache-0.12.3-r1.ebuild
new file mode 100644
index 000000000000..df22a1e50557
--- /dev/null
+++ b/dev-python/aiocache/aiocache-0.12.3-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Asyncio cache manager"
+HOMEPAGE="
+ https://github.com/aio-libs/aiocache/
+ https://pypi.org/project/aiocache/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/marshmallow[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.5.5[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-py313.patch
+)
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by newer dev-python/redis (?), removed upstream
+ tests/ut/backends/test_redis.py::TestRedisBackend::test_close
+ )
+ local EPYTEST_IGNORE=(
+ # benchmarks
+ tests/performance
+ # requires aiomcache
+ tests/ut/backends/test_memcached.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -m "not memcached" -p asyncio -p pytest_mock
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+
+ # Spawn Redis for testing purposes
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1 ::1
+ EOF
+
+ # Run the tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/aiocache/files/aiocache-0.12.3-py313.patch b/dev-python/aiocache/files/aiocache-0.12.3-py313.patch
new file mode 100644
index 000000000000..5df233144a62
--- /dev/null
+++ b/dev-python/aiocache/files/aiocache-0.12.3-py313.patch
@@ -0,0 +1,239 @@
+https://github.com/aio-libs/aiocache/commit/47ac136b65db9cb4106ed68f764ad257db0277bb
+
+From 47ac136b65db9cb4106ed68f764ad257db0277bb Mon Sep 17 00:00:00 2001
+From: Sam Bull <git@sambull.org>
+Date: Mon, 25 Nov 2024 09:26:30 +0000
+Subject: [PATCH] Update for Python 3.13 (#864)
+
+Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
+---
+ .github/workflows/ci.yml | 8 ++++----
+ .pre-commit-config.yaml | 4 ++--
+ .readthedocs.yml | 24 ++++++++++++++++++++++++
+ aiocache/backends/redis.py | 3 ++-
+ examples/frameworks/aiohttp_example.py | 2 +-
+ requirements-dev.txt | 7 ++++---
+ requirements.txt | 18 +++++++++---------
+ setup.cfg | 2 ++
+ setup.py | 7 ++++---
+ tests/performance/server.py | 11 +++++++----
+ tests/ut/backends/test_redis.py | 2 +-
+ tests/ut/test_decorators.py | 20 ++++++++++----------
+ 12 files changed, 70 insertions(+), 38 deletions(-)
+ create mode 100644 .readthedocs.yml
+
+diff --git a/aiocache/backends/redis.py b/aiocache/backends/redis.py
+index d0e3bd65..ce115516 100644
+--- a/aiocache/backends/redis.py
++++ b/aiocache/backends/redis.py
+@@ -51,6 +51,7 @@ def __init__(
+ warnings.warn(
+ "Parameter 'pool_min_size' is deprecated since aiocache 0.12",
+ DeprecationWarning,
++ stacklevel=2,
+ )
+
+ self.endpoint = endpoint
+@@ -188,7 +189,7 @@ async def _redlock_release(self, key, value):
+ return await self._raw("eval", self.RELEASE_SCRIPT, 1, key, value)
+
+ async def _close(self, *args, _conn=None, **kwargs):
+- await self.client.close()
++ await self.client.aclose()
+
+
+ class RedisCache(RedisBackend):
+diff --git a/examples/frameworks/aiohttp_example.py b/examples/frameworks/aiohttp_example.py
+index e612b30a..7220c711 100644
+--- a/examples/frameworks/aiohttp_example.py
++++ b/examples/frameworks/aiohttp_example.py
+@@ -25,7 +25,7 @@ def __init__(self, *args, **kwargs):
+ async def get_from_cache(self, key):
+ try:
+ value = await self.cache.get(key)
+- if type(value) == web.Response:
++ if type(value) is web.Response:
+ return web.Response(
+ body=value.body,
+ status=value.status,
+diff --git a/requirements-dev.txt b/requirements-dev.txt
+index 82a078fb..a4380ba4 100644
+--- a/requirements-dev.txt
++++ b/requirements-dev.txt
+@@ -1,10 +1,11 @@
+ -r requirements.txt
+
+-flake8==6.0.0
++flake8==7.1.1
+ flake8-bandit==4.1.1
+-flake8-bugbear==22.12.6
++flake8-bugbear==24.10.31
+ flake8-import-order==0.18.2
+-flake8-requirements==1.7.6
++flake8-requirements==2.2.1
+ mypy==0.991; implementation_name=="cpython"
+ types-redis==4.4.0.0
+ types-ujson==5.7.0.0
++sphinx==8.1.3
+diff --git a/requirements.txt b/requirements.txt
+index 31dfe1a2..6a1e5ba4 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,11 +1,11 @@
+ -e .
+
+-aiomcache==0.8.0
+-aiohttp==3.8.3
+-marshmallow==3.19.0
+-msgpack==1.0.4
+-pytest==7.2.0
+-pytest-asyncio==0.20.3
+-pytest-cov==4.0.0
+-pytest-mock==3.10.0
+-redis==4.4.2
++aiomcache==0.8.2
++aiohttp==3.9.5
++marshmallow==3.21.3
++msgpack==1.0.8
++pytest==7.4.4
++pytest-asyncio==0.23.7
++pytest-cov==5.0.0
++pytest-mock==3.14.0
++redis==5.0.5
+diff --git a/setup.py b/setup.py
+index ed54028b..c8bcbada 100644
+--- a/setup.py
++++ b/setup.py
+@@ -22,17 +22,18 @@
+ long_description=readme,
+ classifiers=[
+ "Programming Language :: Python",
+- "Programming Language :: Python :: 3.7",
+- "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
++ "Programming Language :: Python :: 3.12",
++ "Programming Language :: Python :: 3.13",
+ "Framework :: AsyncIO",
+ ],
++ python_requires=">=3.9",
+ packages=("aiocache",),
+ install_requires=None,
+ extras_require={
+- "redis": ["redis>=4.2.0"],
++ "redis": ["redis>=5"],
+ "memcached": ["aiomcache>=0.5.2"],
+ "msgpack": ["msgpack>=0.5.5"],
+ },
+diff --git a/tests/performance/server.py b/tests/performance/server.py
+index 8de8c6b8..7fcfd319 100644
+--- a/tests/performance/server.py
++++ b/tests/performance/server.py
+@@ -28,22 +28,25 @@ async def close(self, *_):
+ await self.cache.close()
+
+
++cache_key = web.AppKey("cache", CacheManager)
++
++
+ async def handler_get(req):
+ try:
+- data = await req.app["cache"].get("testkey")
++ data = await req.app[cache_key].get("testkey")
+ if data:
+ return web.Response(text=data)
+ except asyncio.TimeoutError:
+ return web.Response(status=404)
+
+ data = str(uuid.uuid4())
+- await req.app["cache"].set("testkey", data)
++ await req.app[cache_key].set("testkey", data)
+ return web.Response(text=str(data))
+
+
+ def run_server(backend: str) -> None:
+ app = web.Application()
+- app["cache"] = CacheManager(backend)
+- app.on_shutdown.append(app["cache"].close)
++ app[cache_key] = CacheManager(backend)
++ app.on_shutdown.append(app[cache_key].close)
+ app.router.add_route("GET", "/", handler_get)
+ web.run_app(app)
+diff --git a/tests/ut/backends/test_redis.py b/tests/ut/backends/test_redis.py
+index a26e4086..2837cbcf 100644
+--- a/tests/ut/backends/test_redis.py
++++ b/tests/ut/backends/test_redis.py
+@@ -233,7 +233,7 @@ async def test_redlock_release(self, mocker, redis):
+
+ async def test_close(self, redis):
+ await redis._close()
+- assert redis.client.close.call_count == 1
++ assert redis.client.aclose.call_count == 1
+
+
+ class TestRedisCache:
+diff --git a/tests/ut/test_decorators.py b/tests/ut/test_decorators.py
+index e4a1a07e..a59fb31c 100644
+--- a/tests/ut/test_decorators.py
++++ b/tests/ut/test_decorators.py
+@@ -154,8 +154,8 @@ async def test_calls_fn_set_when_get_none(self, mocker, decorator, decorator_cal
+
+ async def test_calls_fn_raises_exception(self, decorator, decorator_call):
+ decorator.cache.get.return_value = None
+- stub.side_effect = Exception()
+- with pytest.raises(Exception):
++ stub.side_effect = RuntimeError()
++ with pytest.raises(RuntimeError):
+ assert await decorator_call()
+
+ async def test_cache_write_waits_for_future(self, decorator, decorator_call):
+@@ -167,11 +167,10 @@ async def test_cache_write_waits_for_future(self, decorator, decorator_call):
+ async def test_cache_write_doesnt_wait_for_future(self, mocker, decorator, decorator_call):
+ mocker.spy(decorator, "set_in_cache")
+ with patch.object(decorator, "get_from_cache", autospec=True, return_value=None):
+- with patch("aiocache.decorators.asyncio.ensure_future", autospec=True):
+- await decorator_call(aiocache_wait_for_write=False, value="value")
++ await decorator_call(aiocache_wait_for_write=False, value="value")
+
+ decorator.set_in_cache.assert_not_awaited()
+- decorator.set_in_cache.assert_called_once_with("stub()[('value', 'value')]", "value")
++ # decorator.set_in_cache.assert_called_once_with("stub()[('value', 'value')]", "value")
+
+ async def test_set_calls_set(self, decorator, decorator_call):
+ await decorator.set_in_cache("key", "value")
+@@ -287,10 +286,11 @@ async def test_calls_get_and_returns(self, decorator, decorator_call):
+ assert decorator.cache.set.call_count == 0
+ assert stub.call_count == 0
+
++ @pytest.mark.xfail(reason="Mess in stubs")
+ async def test_calls_fn_raises_exception(self, decorator, decorator_call):
+ decorator.cache.get.return_value = None
+- stub.side_effect = Exception()
+- with pytest.raises(Exception):
++ stub.side_effect = RuntimeError()
++ with pytest.raises(RuntimeError):
+ assert await decorator_call()
+
+ async def test_calls_redlock(self, decorator, decorator_call):
+@@ -483,7 +483,7 @@ async def test_cache_write_doesnt_wait_for_future(self, mocker, decorator, decor
+ aiocache_wait_for_write=False)
+
+ decorator.set_in_cache.assert_not_awaited()
+- decorator.set_in_cache.assert_called_once_with({"a": ANY, "b": ANY}, stub_dict, ANY, ANY)
++ # decorator.set_in_cache.assert_called_once_with({"a": ANY, "b": ANY}, stub_dict, ANY, ANY)
+
+ async def test_calls_fn_with_only_missing_keys(self, mocker, decorator, decorator_call):
+ mocker.spy(decorator, "set_in_cache")
+@@ -496,8 +496,8 @@ async def test_calls_fn_with_only_missing_keys(self, mocker, decorator, decorato
+
+ async def test_calls_fn_raises_exception(self, decorator, decorator_call):
+ decorator.cache.multi_get.return_value = [None]
+- stub_dict.side_effect = Exception()
+- with pytest.raises(Exception):
++ stub_dict.side_effect = RuntimeError()
++ with pytest.raises(RuntimeError):
+ assert await decorator_call(keys=[])
+
+ async def test_cache_read_disabled(self, decorator, decorator_call):
+
diff --git a/dev-python/caldav/Manifest b/dev-python/caldav/Manifest
index 234bb2b4f3aa..13ed4bce18d4 100644
--- a/dev-python/caldav/Manifest
+++ b/dev-python/caldav/Manifest
@@ -1 +1,2 @@
DIST caldav-1.4.0.tar.gz 141012 BLAKE2B a7936779571c01935f827d2a1a6bd059354431735b316fdbcf324a8be7ccbf4f4aaa88fac902088b39cc96c7b2d7b85d6a8bf87e06f4d30c95dcd7135535537d SHA512 15684684080bb4de2eefc20babcd75ed2de753fad516f456f3ef93439ef94ed31afcce725cde09b722e52fb1af03631d1489151e31e1be5745dc210ee51dca0f
+DIST caldav-1.5.0.tar.gz 157644 BLAKE2B 731f6eea65d17b4a15d0c22f7fdc3dbfaab0e6ba69f81365b99caad8ad44189493606d7a025c692959d88d65d7b43e6f90f0af71979b467b4eb1ae922fcd9582 SHA512 2c61f5e1ca85b20035e8e033025fbfa782faa7eff3e0ce504a77480a87a62237aeb57b36c2f8821553acf472a9bcda5c5b82a6f6e004aa7c5f961c53a736aa2f
diff --git a/dev-python/caldav/caldav-1.5.0.ebuild b/dev-python/caldav/caldav-1.5.0.ebuild
new file mode 100644
index 000000000000..f92f9dfa20be
--- /dev/null
+++ b/dev-python/caldav/caldav-1.5.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CalDAV (RFC4791) client library for Python"
+HOMEPAGE="
+ https://github.com/python-caldav/caldav/
+ https://pypi.org/project/caldav/
+"
+
+LICENSE="|| ( GPL-3 Apache-2.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/icalendar[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/recurring-ical-events-2.0.0[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/vobject[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/tzlocal[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/cangjie/Manifest b/dev-python/cangjie/Manifest
index 323ea31781e0..8d38919de141 100644
--- a/dev-python/cangjie/Manifest
+++ b/dev-python/cangjie/Manifest
@@ -1 +1,2 @@
DIST cangjie-1.3.tar.xz 237156 BLAKE2B a94f51df82136edddeeeecb729737a7be1cf4677c86df153ba86b436a404615156e6fe43d6efbb6ae602982763a4cd8ea09850882942a70a3a3737075bde0c01 SHA512 633b0040740105573fe72811c2f763756b67784330520ecadd5e0b24fc51e414f54a71f03444940f20c8a4943a14b65e2f1d18339696e2ea5cf659de8592df2a
+DIST pycangjie-1.5.0.tar.xz 26312 BLAKE2B deddb5fbcf9d1538ef77f420ad1f123af713e58fed1629242f8a861c8fd343c564e8e3ca99489d3ffcf0e9ca9cea1ceb78f669d1aa26a432a66a85dde7180495 SHA512 a68fd2cbfcdd6a240a1438e620152a39650580b953a6ffc2070bac02a6d5c0e6082e3c55b005ff2bf976415b4bb96e6ecbad207a91f72ecae7ebebfcddddcb91
diff --git a/dev-python/cangjie/cangjie-1.3-r1.ebuild b/dev-python/cangjie/cangjie-1.3-r2.ebuild
index 11cc430a10a8..41915f9f9bf0 100644
--- a/dev-python/cangjie/cangjie-1.3-r1.ebuild
+++ b/dev-python/cangjie/cangjie-1.3-r2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit autotools python-r1
DESCRIPTION="Python wrapper for libcangjie"
@@ -13,14 +13,17 @@ SRC_URI="https://github.com/Cangjians/py${PN}/releases/download/v${PV}/${P#py}.t
LICENSE="LGPL-3+"
SLOT="0"
KEYWORDS="amd64 x86"
-
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RDEPEND="${PYTHON_DEPS}
- app-i18n/libcangjie"
+RDEPEND="
+ ${PYTHON_DEPS}
+ app-i18n/libcangjie
+"
DEPEND="${RDEPEND}"
-BDEPEND="dev-python/cython[${PYTHON_USEDEP}]
- virtual/pkgconfig"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+"
src_prepare() {
default
diff --git a/dev-python/cangjie/cangjie-1.5.0.ebuild b/dev-python/cangjie/cangjie-1.5.0.ebuild
new file mode 100644
index 000000000000..43c986d0d2cf
--- /dev/null
+++ b/dev-python/cangjie/cangjie-1.5.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit meson python-r1
+
+DESCRIPTION="Python wrapper for libcangjie"
+HOMEPAGE="https://cangjie.pages.freedesktop.org/projects/pycangjie/"
+SRC_URI="https://gitlab.freedesktop.org/cangjie/pycangjie/-/jobs/66354698/artifacts/raw/builddir/meson-dist/py${P}.tar.xz"
+S="${WORKDIR}"/py${P}
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=app-i18n/libcangjie-1.4.0
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-build/meson-1.3.2
+ dev-python/cython[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+"
+
+src_configure() {
+ python_foreach_impl run_in_build_dir meson_src_configure
+}
+
+src_compile() {
+ python_foreach_impl run_in_build_dir meson_src_compile
+}
+
+src_test() {
+ python_foreach_impl run_in_build_dir meson_src_test
+}
+
+src_install() {
+ python_install() {
+ meson_src_install
+ python_optimize
+ }
+ python_foreach_impl run_in_build_dir python_install
+ einstalldocs
+}
diff --git a/dev-python/freezegun/Manifest b/dev-python/freezegun/Manifest
index b570fcc760c3..ffb45f1eb7bb 100644
--- a/dev-python/freezegun/Manifest
+++ b/dev-python/freezegun/Manifest
@@ -1 +1,2 @@
DIST freezegun-1.5.1.tar.gz 33697 BLAKE2B bb08703a7e6f6f4a2145c4dc7b10245af3ced5d1a0a9355df74acd03bfe1687ee22e54ffbbd791204a497b50d4a2c578eb531379dd9e55d274ede72785bb39fa SHA512 384122e31c1db90d4c30cc60ad6d693209c933538e4d507a45c6ff116dcfe2f5f2602116c31aae4576da876ea327d502b01f651414d41b6cb11cc6e98d2aacbc
+DIST freezegun-1.5.2.tar.gz 34855 BLAKE2B e1d3a17bdddccd91fcf99efdf18a6ebbeb7a01f74139c1086f51a149f2704cedc7773c229091d85f13d3c6f306a2813a7a73d5fd59d956c8e48011c9fb092a1c SHA512 63826a9b578dd7f90432c41aeca168a729e5c2fcaf6f8dac84c26d811147678f7416454115aa940e90f6902c6c38984939e28a8bcd04e139c2fc0c2a2d473274
diff --git a/dev-python/freezegun/freezegun-1.5.2.ebuild b/dev-python/freezegun/freezegun-1.5.2.ebuild
new file mode 100644
index 000000000000..ca48a6a3b81e
--- /dev/null
+++ b/dev-python/freezegun/freezegun-1.5.2.ebuild
@@ -0,0 +1,47 @@
+# 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="Let your Python tests travel through time"
+HOMEPAGE="
+ https://github.com/spulec/freezegun/
+ https://pypi.org/project/freezegun/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+RDEPEND="
+ >dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.1[34]*)
+ EPYTEST_DESELECT+=(
+ # https://github.com/spulec/freezegun/issues/547
+ tests/test_datetimes.py::TestUnitTestMethodDecorator::test_method_decorator_works_on_unittest_kwarg_frozen_time
+ tests/test_datetimes.py::TestUnitTestMethodDecorator::test_method_decorator_works_on_unittest_kwarg_frozen_time_with_func
+ tests/test_datetimes.py::TestUnitTestMethodDecorator::test_method_decorator_works_on_unittest_kwarg_hello
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/fsspec/Manifest b/dev-python/fsspec/Manifest
index 2a7e7d5bc5ca..3bf6a4b6b281 100644
--- a/dev-python/fsspec/Manifest
+++ b/dev-python/fsspec/Manifest
@@ -1,2 +1,3 @@
DIST filesystem_spec-2025.3.2.gh.tar.gz 432022 BLAKE2B 7b18b80a1f024832a3a53545764299a2a40785809dc4d63fbe7cd0fff303ebd9382888153c012fe31425c93d67c56be1d117fd314fec149964ac7ee74a4b7464 SHA512 b446f7f09ef34e50cc22a3370b1a9312970b9585ff98ebb5ff02b066bc6a44786cf96cd0d1452753384861b7c61c3e927da009d215466588cf746d894dd430a0
DIST filesystem_spec-2025.5.0.gh.tar.gz 436234 BLAKE2B 11f562d765c814379fcb016d769473fb7bc1a0dc10f81b487a51b37757ad46d244b9945fd162e867402660ba7097931e649e9e44e32805146fa7dfc00bac4851 SHA512 fa9cf2c137cde874edb140ad9673f1bd709cfd46e68fc1e3abc5d4235b841568fac8fb8e41b4873deefa8d18d9d74b0e5d18c7a04e28c4dfd2687624076d3773
+DIST filesystem_spec-2025.5.1.gh.tar.gz 438472 BLAKE2B 798cb0fdea82640e8c1de76ad6cea113cba0999ee907f2ca71602e6fab415f89ec070d3d1059e11858fe985f657092713b2db29382a2933cfbddeb1c1dea55a8 SHA512 fa645f313f0047531ceac77f74a7ba5f2ff4df363403749b629ac12f3ef2e3b42d7fe964c1f974539ed526515b027de4fde6c0366557bfae258e2fa93a8f1495
diff --git a/dev-python/fsspec/fsspec-2025.5.1.ebuild b/dev-python/fsspec/fsspec-2025.5.1.ebuild
new file mode 100644
index 000000000000..7aa7b1ac6a30
--- /dev/null
+++ b/dev-python/fsspec/fsspec-2025.5.1.ebuild
@@ -0,0 +1,72 @@
+# 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_{11..14} )
+
+inherit distutils-r1
+
+MY_P=filesystem_spec-${PV}
+DESCRIPTION="A specification that python filesystems should adhere to"
+HOMEPAGE="
+ https://github.com/fsspec/filesystem_spec/
+ https://pypi.org/project/fsspec/
+"
+# upstream removed tests in 2024.6.0
+SRC_URI="
+ https://github.com/fsspec/filesystem_spec/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+# Note: this package is not xdist-friendly
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+src_test() {
+ git config --global user.email "you@example.com" || die
+ git config --global user.name "Your Name" || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ fsspec/implementations/tests/test_reference.py::test_async_cat_file_ranges
+ fsspec/implementations/tests/test_github.py
+ fsspec/implementations/tests/test_gist.py
+ )
+
+ case ${EPYTHON} in
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ # TODO
+ fsspec/implementations/tests/test_http.py::test_async_other_thread
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p pytest_mock -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index b9dccfdd81b1..b7aef6af8a0e 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,3 +1,4 @@
DIST hypothesis-6.131.15.gh.tar.gz 9553236 BLAKE2B 29473ae79fce7183cbaec2f936824f52a18c02e13e4bd416debadd3c0b7a731d0643373c376b4236a1a857312c995e8822f54d94c1f165e8d77578371886f10d SHA512 ee89bc176230850ef4ecab7a5179f1528c576b21d42af2a76be512df70adb7ddd670a86552e18e5246bfde3184038237d644951149d78f4ca1f8cec77b6a2586
DIST hypothesis-6.131.18.gh.tar.gz 9553394 BLAKE2B f4a880dd4681ca59b39614e70c70ae7b5e02599c84f5eb26638f9e62b176f0ff75bec0489b7ed36e1e07b97703cf1b29d956f2debc32158d803bf442c57ac377 SHA512 ca3185e82c4b4853473d0d87c3723381a49be8dc488d0ac5af223f394af77ed46368b272cb8d991b95cf4f61dc1713109b93cc193fdebf96353e0c0099b15ad3
DIST hypothesis-6.131.24.gh.tar.gz 9554685 BLAKE2B 9f1216facfffb33ac084b036166c595b181eb0fad7f184ac67d3d06069a08339857bb5ec7d1e99922ffab7cf0cf013110ada7207f0ab8ef85e1c0ac61fdf1adb SHA512 54b37c5a3b7559d4709ea498f12a043eeda4151904912329e71fd1e4e69ed3275738eeec1c8272ea9c1fc21bed4345eeffec3d7bfd538d1075c27383c06eba93
+DIST hypothesis-6.131.27.gh.tar.gz 9555908 BLAKE2B 3a5d9c31a6ccd6bab640fcb63412100dfe996ca1f5f645d3cf5c15366dba510f997620ceb942a292f14b93ffa2915d6061f069d9daffe9550aad4b376dfd1e61 SHA512 447520bac874536a35d2107a4c382993a5293840c7adfcac6d177c31401cdaaf2a4159a193e8079726d71c285009649c17c4a3ce05aceea11303b8b8a490dcb2
diff --git a/dev-python/hypothesis/hypothesis-6.131.27.ebuild b/dev-python/hypothesis/hypothesis-6.131.27.ebuild
new file mode 100644
index 000000000000..5fc2ebd650ed
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.131.27.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.13t)
+ EPYTEST_DESELECT+=(
+ # TODO: missing warning
+ 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns'
+ )
+ ;&
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]'
+ hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds
+ hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence
+ hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression
+ hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types
+ hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic
+ hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense
+ hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns
+ hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope
+ hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -p rerunfailures --reruns=5 \
+ tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/mecab-python/Manifest b/dev-python/mecab-python/Manifest
index 04b6bae25710..119471d30c76 100644
--- a/dev-python/mecab-python/Manifest
+++ b/dev-python/mecab-python/Manifest
@@ -1 +1,2 @@
DIST mecab-python-0.996.tar.gz 62338 BLAKE2B d2f8749bf4ea0b30b9f7ee68a4210a3af600803296197f48091d1c9fe90f5baaff3eb94ecb3aa04d994771512c1ef5b68a62e0a045da95992bffd1710725e832 SHA512 08954ed801419fd7f65d055244227364bc37b063f8d21babb6ceeb02ca40e0146fa4401d1426255f3656ac1a5e51439bde981414613153dca5972f624289447e
+DIST mecab-python-1.0.7.gh.tar.gz 74249 BLAKE2B aa97fbd59791ecbcda5e8dd1a1beeec8fd7755f21873a27a816c57d5320bc9013ef029bea62d2f3fbc76645dece38e88dcadd291b109d3cc645e39f82eabe4b9 SHA512 2aba54c7e3c306e7eabe24b6321731b621767a82e8af34ad879a86d1db67a2c94c9793073c758838e83a705cd2423b2e235f0db1b1b61312d1e6790e408d35f4
diff --git a/dev-python/mecab-python/mecab-python-1.0.7.ebuild b/dev-python/mecab-python/mecab-python-1.0.7.ebuild
new file mode 100644
index 000000000000..9f0fb9837b47
--- /dev/null
+++ b/dev-python/mecab-python/mecab-python-1.0.7.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python binding for MeCab"
+HOMEPAGE="
+ https://taku910.github.io/mecab/
+ https://github.com/taku910/mecab/
+ https://pypi.org/project/mecab-python3/
+"
+SRC_URI="https://github.com/SamuraiT/mecab-python3/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}"/${PN}3-${PV}
+
+LICENSE="|| ( BSD LGPL-2.1 GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ppc64 ~x86"
+
+DEPEND=">=app-text/mecab-0.996"
+RDEPEND="${DEPEND}"
+BDEPEND="dev-python/setuptools-scm[${PYTHON_USEDEP}]"
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+distutils_enable_tests pytest
diff --git a/dev-python/mkdocstrings-python/Manifest b/dev-python/mkdocstrings-python/Manifest
index 051c4b0c1570..d9d8b21f9c13 100644
--- a/dev-python/mkdocstrings-python/Manifest
+++ b/dev-python/mkdocstrings-python/Manifest
@@ -1 +1,2 @@
DIST mkdocstrings_python-1.16.10.tar.gz 205771 BLAKE2B 3eca060176ea85e0191ad618ebf274e741a740ebf0da2d1c3b0ef6bcca4129a8f6486fda940ee161cea54f167a26122b55cb1105359dea17508a9c02e4dec638 SHA512 761a616654b3986feaeaa75e3faf5d6cc19786f740086c5c654444679be54fba4ad1a85d227a51e9798030cef889009a4f51d9461ea00c7ffb0e87fba8e1047c
+DIST mkdocstrings_python-1.16.11.tar.gz 205392 BLAKE2B 9442f60570b70912ed9fcb067b8ae507f4c7fe02e209c60e9a9f52171a77552857c01288f1f63f7c48d13857409136ee1c2de70889c7802af6876087eb70a64d SHA512 beb6da8c3fe19b0ffd69cabfb622f03bdc7b5727b628dcb7c7370a24e166fa5e759324585e3b6147521b706d18e2e2037c60ada25bebd7ec2a8ef6fd86978ab7
diff --git a/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.11.ebuild b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.11.ebuild
new file mode 100644
index 000000000000..d185dcc7a6d0
--- /dev/null
+++ b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.11.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python handler for dev-python/mkdocstrings"
+HOMEPAGE="
+ https://mkdocstrings.github.io/python/
+ https://github.com/mkdocstrings/python/
+ https://pypi.org/project/mkdocstrings-python/
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/griffe-1.6.2[${PYTHON_USEDEP}]
+ >=dev-python/mkdocstrings-0.28.3[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-autorefs-1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/beautifulsoup4-4.12.3[${PYTHON_USEDEP}]
+ >=dev-python/inline-snapshot-0.18[${PYTHON_USEDEP}]
+ dev-python/mkdocs-material[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+export PDM_BUILD_SCM_VERSION=${PV}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # "None" meaning particular formatter not installed
+ "tests/test_rendering.py::test_format_code[None-print('Hello')]"
+ "tests/test_rendering.py::test_format_code[None-aaaaa(bbbbb, ccccc=1) + ddddd.eeeee[ffff] or {ggggg: hhhhh, iiiii: jjjjj}]"
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p inline_snapshot
+}
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index 3daee22fd354..77955ae70f44 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -1,3 +1,4 @@
DIST moto-4.2.14.tar.gz 4933741 BLAKE2B 4c50a808dc8f27cfbcd0ba234d268084ee9a32f36cb5d6af61aacc4ee79f7bf5cf1045147c4642472129eee37bef8bc2c1953d140260d39d7f333ae0f5e5cf95 SHA512 d4079118ed1d2eef9134575e33dc0ed749bff0293d753baa63a630dbb987914b9933445027abdc344bb93fa1d6e483baf8a337a444c9dd055dda50b095ff9937
DIST moto-5.1.3.tar.gz 6765413 BLAKE2B 3a56d683b0818d09f98509afb94d4b6fb975f563d7f08ba225cac9f447b710c19a3af66c4c602369392190e2bde5b6970e0b64fd684bf361b7fc6a41b79da6ff SHA512 23e1abe55f9686b2b928886a7d31024fc98b70ffff1680611b3794027e568c1e3349857e1ea42891f3649cb87bf2a2376765ac10e480e29ec6fcf3c4e26f628b
DIST moto-5.1.4.tar.gz 6796440 BLAKE2B 179566c4299e88079a4f0f15ffad32a7d118095c00058e0df5aacf50a84dd0c2b2cb0950b23cb228bff2b197f62f50a8958c5b43a885599e7332f4cad5c94100 SHA512 f16b16580ae8c8d39a755024b8ee507b84b8b3932976d84110c96f646c7b71869a762d2e84c0fd19cfe2443649b83191ba5a03e43b6b3dfb59f5fa127e498ecd
+DIST moto-5.1.5.tar.gz 6893155 BLAKE2B d0ede9c48c356e879ebd78e7bd793a9d8534edc15430e7d1c357f25fd9468d64917fbc51fc501333485cadb61c661d12c36b48bd26bdd06bcb53f45010d072e5 SHA512 45c38c896d11366d887cda75fc20c3b7a5bb511e794e29a904687cfd59b90a30571d21f0c91d3bb90e42275148477056b3fe5a67d75878e40bd26d4fcf94999c
diff --git a/dev-python/moto/moto-5.1.5.ebuild b/dev-python/moto/moto-5.1.5.ebuild
new file mode 100644
index 000000000000..fa22c67103ee
--- /dev/null
+++ b/dev-python/moto/moto-5.1.5.ebuild
@@ -0,0 +1,115 @@
+# 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 toolchain-funcs
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
+ dev-python/jsonpath-ng[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+: "${EPYTEST_TIMEOUT:=180}"
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_dynamodb/test_dynamodb_import_table.py
+ # require joserfc
+ tests/test_apigateway/test_apigateway.py::test_create_authorizer
+ tests/test_apigateway/test_apigateway.py::test_delete_authorizer
+ tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
+ tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
+ tests/test_cognitoidp/test_server.py::test_associate_software_token
+ tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
+ # require py_partiql_parser
+ tests/test_dynamodb/test_dynamodb_statements.py
+ tests/test_s3/test_s3_select.py
+ # require graphql
+ tests/test_appsync/test_appsync_schema.py
+ # Internet
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ )
+ local EPYTEST_IGNORE=(
+ # require joserfc
+ tests/test_cognitoidp/test_cognitoidp.py
+ )
+
+ if ! tc-has-64bit-time_t; then
+ einfo "time_t is smaller than 64 bits, will skip broken tests"
+ EPYTEST_DESELECT+=(
+ tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
+ tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
+ tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
+ )
+ EPYTEST_IGNORE+=(
+ tests/test_route53domains/test_route53domains_domain.py
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+ local -x AWS_DEFAULT_REGION=us-east-1
+
+ rm -rf moto || die
+ epytest -m 'not network and not requires_docker' \
+ -p rerunfailures --reruns=5
+}
diff --git a/dev-python/pyopencl/Manifest b/dev-python/pyopencl/Manifest
index 456e0cba7bba..354ea28a50d8 100644
--- a/dev-python/pyopencl/Manifest
+++ b/dev-python/pyopencl/Manifest
@@ -1 +1,2 @@
DIST pyopencl-2024.2.7.tar.gz 470964 BLAKE2B 6c61d91735667dd63fec0375defe98fb681eb448780f86b0129769d30714adb51832955d8c2e838970f17187e5027f794cd21affc870910d23ec46126049d4ed SHA512 5c9982f5dcaeb3faeb6ac6b88940b5baff43b7580fc5d466a596d9c180e45725cbf9971ba6ae4981202900b06cee3be7fa88fdf7227befee874a8f203a3a3267
+DIST pyopencl-2025.1.tar.gz 422510 BLAKE2B 1da270b4eabd3cf1209c97db6383ccd3450601946181386c139ed76b9cee3cccba06d6836b342b902fb227d1ef43f899633fe2037f5744a38b37677ef70ed00c SHA512 bc281c38b977f207a213763aca3c0086430e5a4d8d9018673fb5648e1afc440758ec7ec219544644d596805beaa448b2fa34cd5b4c109a46b3d6e8b7648a931c
diff --git a/dev-python/pyopencl/files/pyopencl-2025.1-nanobind-flags.patch b/dev-python/pyopencl/files/pyopencl-2025.1-nanobind-flags.patch
new file mode 100644
index 000000000000..6f7c7cff1462
--- /dev/null
+++ b/dev-python/pyopencl/files/pyopencl-2025.1-nanobind-flags.patch
@@ -0,0 +1,21 @@
+nanobind defaults to adding -Os and friends: https://github.com/wjakob/nanobind/blob/b0136fe6ac1967cb2399456adc346a1af06a3b88/docs/api_cmake.rst#L80.
+
+... and LTO should be user defined via cflags.
+
+--- a/CMakeLists.txt
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4557bd8a..0f4a731c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -167,8 +167,9 @@ find_package(OpenCL REQUIRED)
+ nanobind_add_module(
+ _cl
+ NB_STATIC # Build static libnanobind (the extension module itself remains a shared library)
+- LTO
++ PROTECT_STACK
+ NOMINSIZE
++ NOSTRIP
+ src/wrap_constants.cpp
+ src/wrap_cl.cpp
+ src/wrap_cl_part_1.cpp
+
diff --git a/dev-python/pyopencl/pyopencl-2024.2.7.ebuild b/dev-python/pyopencl/pyopencl-2024.2.7.ebuild
index c8a6d4ffe147..6dbeeee75a2b 100644
--- a/dev-python/pyopencl/pyopencl-2024.2.7.ebuild
+++ b/dev-python/pyopencl/pyopencl-2024.2.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pyopencl/pyopencl-2025.1.ebuild b/dev-python/pyopencl/pyopencl-2025.1.ebuild
new file mode 100644
index 000000000000..ddb50025ab5a
--- /dev/null
+++ b/dev-python/pyopencl/pyopencl-2025.1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=scikit-build-core
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Python wrapper for OpenCL"
+HOMEPAGE="
+ https://mathema.tician.de/software/pyopencl/
+ https://pypi.org/project/pyopencl/
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~riscv"
+IUSE="examples opengl"
+
+# Running tests on GPUs requires both appropriate hardware and additional permissions
+# having been granted to the user running them. Testing on CPUs with dev-libs/pocl
+# is in theory possible but has been found to be very fragile, see e.g. Bug #872308.
+RESTRICT="test"
+
+COMMON=">=virtual/opencl-2"
+# libglvnd is only needed for the headers
+DEPEND="
+ ${COMMON}
+ opengl? ( media-libs/libglvnd )
+"
+RDEPEND="
+ ${COMMON}
+ >=dev-python/mako-0.3.6[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytools-2024.1.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/nanobind[${PYTHON_USEDEP}]
+ test? ( dev-libs/pocl )
+"
+
+PATCHES=(
+ "${FILESDIR}"/pyopencl-2025.1-nanobind-flags.patch
+)
+
+distutils_enable_tests pytest
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ -DPYOPENCL_ENABLE_GL=$(usex opengl)
+ )
+}
+
+python_test() {
+ # Use dev-libs/pocl for testing; ignore any other OpenCL devices that might be present
+ local -x PYOPENCL_TEST="portable:cpu"
+ # Set the number of threads to match MAKEOPTS
+ local -x POCL_MAX_PTHREAD_COUNT=$(makeopts_jobs)
+ # Change to the 'test' directory so that python does not try to import pyopencl from the source directory
+ # (Importing from the source directory fails, because the compiled '_cl' module is only in the build directory)
+ pushd test >/dev/null || die
+ epytest
+ popd >/dev/null || die
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/typing-extensions/Manifest b/dev-python/typing-extensions/Manifest
index 0f20cd99fb18..6d69f66d25c8 100644
--- a/dev-python/typing-extensions/Manifest
+++ b/dev-python/typing-extensions/Manifest
@@ -1 +1,2 @@
DIST typing_extensions-4.13.2.tar.gz 106967 BLAKE2B 6a0dfd0cb94f8411342f547f2b209a3c8afd32c818ec837c9ce63191392ba5f89c31279f35d7ca8c0a2f2cda99ea23084c3fad4bc3787f20e31741665e174645 SHA512 2cd798939362ee0d7ddbffe69b1d0fdd72b9574c1bd7300caee73d36c457ea64ea635c87ecc6188db9ffaaca272b1c8dd978a42c591ae0dfdca5632317ddb18c
+DIST typing_extensions-4.14.0rc1.tar.gz 107459 BLAKE2B 5be5ca9f8e29f26f0cf61d7125caaab830d70e13199f1b0407d04eef18587e144737553cf6ed750f31188723821743d80b16b91c93cd4a4714402e1e1ac3df57 SHA512 0c37102ca65695dd71431aac63457f76c09bb974e32fb8e22cc54e386c6307701a3e58fc21cd2883409a2c6ea6eae337c5184030eda7c5f3580c721ac681ad32
diff --git a/dev-python/typing-extensions/typing-extensions-4.14.0_rc1.ebuild b/dev-python/typing-extensions/typing-extensions-4.14.0_rc1.ebuild
new file mode 100644
index 000000000000..a25f13f9c29f
--- /dev/null
+++ b/dev-python/typing-extensions/typing-extensions-4.14.0_rc1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Backported and Experimental Type Hints for Python 3.7+"
+HOMEPAGE="
+ https://pypi.org/project/typing-extensions/
+ https://github.com/python/typing_extensions/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=dev-python/flit-core-3.11[${PYTHON_USEDEP}]
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ cd src || die
+ eunittest
+}
diff --git a/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild b/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild
index 1991fd27d609..e2dee7cc3808 100644
--- a/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild
+++ b/dev-python/urwid-readline/urwid-readline-0.15.1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 2021-2024 Gentoo Authors
+# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1
diff --git a/dev-python/urwidtrees/urwidtrees-1.0.3-r2.ebuild b/dev-python/urwidtrees/urwidtrees-1.0.3-r2.ebuild
index 286ab7299c74..3be31a64fdd1 100644
--- a/dev-python/urwidtrees/urwidtrees-1.0.3-r2.ebuild
+++ b/dev-python/urwidtrees/urwidtrees-1.0.3-r2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1