summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-12 07:00:13 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-12 07:00:13 +0000
commiteb4946f2b11f28f62389754fd8a9ae346f5d5af6 (patch)
treee8ed6f62eaa293e9ba13b69c27e9bfa36e95b95f /dev-python
parent0175b1322595fb641282477da1302ac249c58a26 (diff)
downloadbaldeagleos-repo-eb4946f2b11f28f62389754fd8a9ae346f5d5af6.tar.gz
baldeagleos-repo-eb4946f2b11f28f62389754fd8a9ae346f5d5af6.tar.xz
baldeagleos-repo-eb4946f2b11f28f62389754fd8a9ae346f5d5af6.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/adblock/adblock-0.6.0-r1.ebuild4
-rw-r--r--dev-python/babelfish/babelfish-9999.ebuild21
-rw-r--r--dev-python/cffi/cffi-1.17.1.ebuild4
-rw-r--r--dev-python/django-allauth/Manifest2
-rw-r--r--dev-python/django-allauth/django-allauth-65.8.0.ebuild (renamed from dev-python/django-allauth/django-allauth-65.6.0.ebuild)0
-rw-r--r--dev-python/elementpath/Manifest1
-rw-r--r--dev-python/elementpath/elementpath-5.0.1.ebuild33
-rw-r--r--dev-python/fullmoon/fullmoon-1.0.2.ebuild2
-rw-r--r--dev-python/gherkin-official/gherkin-official-32.1.1.ebuild2
-rw-r--r--dev-python/lark/files/lark-1.2.2-py314.patch38
-rw-r--r--dev-python/lark/lark-1.2.2.ebuild5
-rw-r--r--dev-python/libarchive-c/libarchive-c-5.2.ebuild2
-rw-r--r--dev-python/multidict/multidict-6.4.3.ebuild5
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-2.7.2.ebuild55
-rw-r--r--dev-python/parse-type/parse-type-0.6.4.ebuild4
-rw-r--r--dev-python/pillow/files/pillow-11.2.1-py314.patch49
-rw-r--r--dev-python/pillow/pillow-11.2.1.ebuild2
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-3.2.8.ebuild120
-rw-r--r--dev-python/pygments/pygments-2.19.1.ebuild12
-rw-r--r--dev-python/pylsqpack/Manifest1
-rw-r--r--dev-python/pylsqpack/pylsqpack-0.3.22.ebuild38
-rw-r--r--dev-python/pypdf/Manifest1
-rw-r--r--dev-python/pypdf/pypdf-5.5.0.ebuild51
-rw-r--r--dev-python/pytest-regressions/pytest-regressions-2.7.0.ebuild7
-rw-r--r--dev-python/python-engineio/Manifest1
-rw-r--r--dev-python/python-engineio/python-engineio-4.12.1.ebuild60
-rw-r--r--dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild2
-rw-r--r--dev-python/regex/regex-2024.11.6.ebuild2
-rw-r--r--dev-python/rencode/files/rencode-1.0.6-cython-3.1.0.patch26
-rw-r--r--dev-python/rencode/rencode-1.0.6-r4.ebuild44
-rw-r--r--dev-python/rich/files/rich-14.0.0-py314.patch84
-rw-r--r--dev-python/rich/rich-14.0.0.ebuild13
-rw-r--r--dev-python/rq/Manifest1
-rw-r--r--dev-python/rq/rq-2.3.3.ebuild79
-rw-r--r--dev-python/textx/Manifest1
-rw-r--r--dev-python/textx/textx-4.2.2.ebuild59
-rw-r--r--dev-python/types-setuptools/Manifest1
-rw-r--r--dev-python/types-setuptools/types-setuptools-80.4.0.20250511.ebuild16
-rw-r--r--dev-python/zstandard/files/zstandard-0.23.0-py314.patch17
-rw-r--r--dev-python/zstandard/zstandard-0.23.0-r3.ebuild83
42 files changed, 909 insertions, 41 deletions
diff --git a/dev-python/adblock/adblock-0.6.0-r1.ebuild b/dev-python/adblock/adblock-0.6.0-r1.ebuild
index e14bf9f83ead..e6ca84282459 100644
--- a/dev-python/adblock/adblock-0.6.0-r1.ebuild
+++ b/dev-python/adblock/adblock-0.6.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Gentoo Authors
+# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -71,7 +71,7 @@ CRATES="
"
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit cargo distutils-r1
DESCRIPTION="Python wrapper for Brave's adblocking library, which is written in Rust"
diff --git a/dev-python/babelfish/babelfish-9999.ebuild b/dev-python/babelfish/babelfish-9999.ebuild
deleted file mode 100644
index 152ce20901c0..000000000000
--- a/dev-python/babelfish/babelfish-9999.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=poetry
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 git-r3
-
-DESCRIPTION="Python library to work with countries and languages"
-HOMEPAGE="
- https://github.com/Diaoul/babelfish/
- https://pypi.org/project/babelfish/
-"
-EGIT_REPO_URI="https://github.com/Diaoul/babelfish.git"
-
-LICENSE="BSD"
-SLOT="0"
-
-distutils_enable_tests pytest
diff --git a/dev-python/cffi/cffi-1.17.1.ebuild b/dev-python/cffi/cffi-1.17.1.ebuild
index 579a1136bf21..b0724e385a48 100644
--- a/dev-python/cffi/cffi-1.17.1.ebuild
+++ b/dev-python/cffi/cffi-1.17.1.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
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
@@ -8,7 +8,7 @@ DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
# DO NOT ADD pypy to PYTHON_COMPAT
# pypy bundles a modified version of cffi. Use python_gen_cond_dep instead.
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 toolchain-funcs pypi
diff --git a/dev-python/django-allauth/Manifest b/dev-python/django-allauth/Manifest
index b4c705778ae0..4c6521b54f63 100644
--- a/dev-python/django-allauth/Manifest
+++ b/dev-python/django-allauth/Manifest
@@ -1,2 +1,2 @@
-DIST django-allauth-65.6.0.gh.tar.gz 1393137 BLAKE2B bd05d4181f3f8cadd02d475a23000b76bd934d986c29cf8e65e7e2ee23acb808a69f1e1848e75a4f92ba0aebae8298b61cc362037082d41060aa024e435d25f5 SHA512 e4276c72d4d5b1ae8892046eaa662a74822ad6e48f2d7c1ebcfc426c529948c785dc23779ef6d15bd9911b9c6cd3bd41ef291b25b816944851d3a52eb38d828d
DIST django-allauth-65.7.0.gh.tar.gz 1394096 BLAKE2B 0b6a0dbb8ea534f9ff27188a39a4d2a5bffd8897df1a3a69bd8c2ef9328f2fb04a8b8c288d99b0573be36e7e445609fdc6fb69e508be79ff97996b92ede5ac17 SHA512 7c1b4dadd72017b173b898e50c4c1d3365ef433facdd8b92281d158b594c51b63a406a41b0669c93daf22b65a9a7903946f179c1f56010051186aa54d338163e
+DIST django-allauth-65.8.0.gh.tar.gz 1416160 BLAKE2B b3cbc949513185ac35e7a0018920b318c5216cad6cb1ddd385444b4502329548c129e0b2974dd3e07fc35497c13c788523e18841aa2e68ed8c04060e213fe7f1 SHA512 0c5cdf126fe9eda940058582c838cbe4de5d85d76bdb16399d0d5fc76b21df082ddc0aebc9f53cb59186e5434bb32b4978b18d7bd043f4fe61f49635fc0ed1aa
diff --git a/dev-python/django-allauth/django-allauth-65.6.0.ebuild b/dev-python/django-allauth/django-allauth-65.8.0.ebuild
index 107063d2408a..107063d2408a 100644
--- a/dev-python/django-allauth/django-allauth-65.6.0.ebuild
+++ b/dev-python/django-allauth/django-allauth-65.8.0.ebuild
diff --git a/dev-python/elementpath/Manifest b/dev-python/elementpath/Manifest
index b098fc2be6c5..b19bc31cfbf5 100644
--- a/dev-python/elementpath/Manifest
+++ b/dev-python/elementpath/Manifest
@@ -1,2 +1,3 @@
DIST elementpath-4.8.0.tar.gz 358528 BLAKE2B 95fae0de70c310b68a9ddd8843926abdbddcaa5d54e5e3d7bd3dcba104321ba421d8ef2ab4c16a1d5db3973232d8999e10249c3e8871af42c4b3690f1306396a SHA512 2ff23d7d0dfedc02cb8cb4d8f8151e4b4a4976cbf8ba2fc41f67e1d89778efab20b09ba6fed116f9a10a64dcde3c185e7ee6ffc696e750d37d5bac0695d37396
DIST elementpath-5.0.0.tar.gz 361913 BLAKE2B 5fa969b66dba6d2ed9f8b385c21866c0f852b8c697b869d1ec8f7334c7d1895bafb18f2e9f84ae8e492e08f4fac737d672dc2bc0dbdce70f2471bd7dc9cc5f7e SHA512 16011451a32f24ac3c104896d4b23fe569835cf40df87bcb9254239a32ec094f3faa1889a39b26e4a48774185201156e8c3b38a09f180e979911b5b637c3a760
+DIST elementpath-5.0.1.tar.gz 363233 BLAKE2B 16b8a5179f3ec5a1037395bbf63e39169616186f7e004c41bad449bccaa487f8f8c8c257fd18a70cb7d92720c4baed4a4cf79b723ec0c19dca619f7b846400dd SHA512 a7ba1d6e5cc22244660f0ac57d8644e8222fcc234cb24377cb2cad233e7d8abd5f0616f544eb70e5fa24e7a35dcecb2ea434b5b1d5ddc9f9fad9777125bd906a
diff --git a/dev-python/elementpath/elementpath-5.0.1.ebuild b/dev-python/elementpath/elementpath-5.0.1.ebuild
new file mode 100644
index 000000000000..74ce4278ffde
--- /dev/null
+++ b/dev-python/elementpath/elementpath-5.0.1.ebuild
@@ -0,0 +1,33 @@
+# 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="XPath 1.0/2.0 parsers and selectors for ElementTree and lxml"
+HOMEPAGE="
+ https://github.com/sissaschool/elementpath/
+ https://pypi.org/project/elementpath/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/xmlschema-4.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # fails for some reason, more fit for upstream testing anyway
+ tests/test_typing.py
+)
diff --git a/dev-python/fullmoon/fullmoon-1.0.2.ebuild b/dev-python/fullmoon/fullmoon-1.0.2.ebuild
index 0f5650468da5..f7c66908bb98 100644
--- a/dev-python/fullmoon/fullmoon-1.0.2.ebuild
+++ b/dev-python/fullmoon/fullmoon-1.0.2.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 pypi
DESCRIPTION="Determine full moon occurences"
diff --git a/dev-python/gherkin-official/gherkin-official-32.1.1.ebuild b/dev-python/gherkin-official/gherkin-official-32.1.1.ebuild
index 0dee292386e2..1a767a76b2ae 100644
--- a/dev-python/gherkin-official/gherkin-official-32.1.1.ebuild
+++ b/dev-python/gherkin-official/gherkin-official-32.1.1.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
DESCRIPTION="Gherkin parser/compiler for Python"
diff --git a/dev-python/lark/files/lark-1.2.2-py314.patch b/dev-python/lark/files/lark-1.2.2-py314.patch
new file mode 100644
index 000000000000..aade3ae30229
--- /dev/null
+++ b/dev-python/lark/files/lark-1.2.2-py314.patch
@@ -0,0 +1,38 @@
+https://github.com/lark-parser/lark/issues/1480
+https://github.com/lark-parser/lark/pull/1483
+
+From 4809ce89ca005b71f6db930c4aabf6496a502795 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <thrnciar@redhat.com>
+Date: Wed, 6 Nov 2024 16:47:11 +0100
+Subject: [PATCH] Wrap functools.partial in staticmethod() to add compatibility
+ with Python 3.14
+
+Fixes: #1480
+---
+ tests/test_trees.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/test_trees.py b/tests/test_trees.py
+index 1f69869e..07687ac0 100644
+--- a/tests/test_trees.py
++++ b/tests/test_trees.py
+@@ -254,7 +254,7 @@ def ab_method(self, a, b):
+ ab_partialmethod = partialmethod(ab_for_partialmethod, 1)
+ set_union = set(["a"]).union
+ static_add = staticmethod(add)
+- partial_reduce_mul = partial(reduce, mul)
++ partial_reduce_mul = staticmethod(partial(reduce, mul))
+
+ custom_callable = CustomCallable()
+
+@@ -355,8 +355,8 @@ def test(prefix, s, postfix):
+
+ @v_args(inline=True)
+ class T(Transformer):
+- a = functools.partial(test, "@", postfix="!")
+- b = functools.partial(lambda s: s + "!")
++ a = staticmethod(functools.partial(test, "@", postfix="!"))
++ b = staticmethod(functools.partial(lambda s: s + "!"))
+
+ res = T().transform(tree)
+ assert res.children == ["@TEST1!", "test2!"]
diff --git a/dev-python/lark/lark-1.2.2.ebuild b/dev-python/lark/lark-1.2.2.ebuild
index 469af8d10e69..ed8430b1143c 100644
--- a/dev-python/lark/lark-1.2.2.ebuild
+++ b/dev-python/lark/lark-1.2.2.ebuild
@@ -28,6 +28,11 @@ BDEPEND="
)
"
+PATCHES=(
+ # https://github.com/lark-parser/lark/pull/1483
+ "${FILESDIR}"/${P}-py314.patch
+)
+
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/libarchive-c/libarchive-c-5.2.ebuild b/dev-python/libarchive-c/libarchive-c-5.2.ebuild
index 0e83ad26f8cd..6db6ee05c0a4 100644
--- a/dev-python/libarchive-c/libarchive-c-5.2.ebuild
+++ b/dev-python/libarchive-c/libarchive-c-5.2.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
diff --git a/dev-python/multidict/multidict-6.4.3.ebuild b/dev-python/multidict/multidict-6.4.3.ebuild
index d36789b94915..1041d0b99acd 100644
--- a/dev-python/multidict/multidict-6.4.3.ebuild
+++ b/dev-python/multidict/multidict-6.4.3.ebuild
@@ -24,11 +24,6 @@ SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.1.0[${PYTHON_USEDEP}]
- ' 3.10)
-"
BDEPEND="
test? (
dev-python/objgraph[${PYTHON_USEDEP}]
diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest
index 11913728f5c8..91f8cb6516e4 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1,2 +1,3 @@
DIST Nuitka-2.7.1.tar.gz 3882402 BLAKE2B 0772125d02af375ae6fc2ee03451dcd781cbe51b388f28cd02809394487edba8d50f18f72a71cfc169017dc141b1c4cdf31a159a93f114dd5d53ccbc6a69a32f SHA512 0ac4fa937120d82186fc233eb37b8707c553fab0c0e51cd2249961efe60d5b5eb0fbe2569ca608e89a15acdc2107102cc62b84719eb22aa63d23a90ce8c575c4
+DIST Nuitka-2.7.2.tar.gz 3883274 BLAKE2B 6f7d35bbe85aee77419a4ebcd28bcc255220c33e091f0c8a7474330551fea476ae1fe3a42f33432aa335b40e7ebb252bad185b7cac2df4ddf7c5cf0c59259adf SHA512 c66d6afe8b05b9d74c1d66b394196a005913d7d3fb0ad0efe8ec9a4256e671cf19ffff19b56c2597cca8ef8e61e484c697a3181590b7c8589b56af3cbbee5944
DIST Nuitka-2.7.tar.gz 3885354 BLAKE2B 71fb24778148b384193e63846f1c01c1725688be25ea700c1a7810dbc4248ea6417d7227ac38862ce68d848b3ce097cee220435958ae8688b21076f77eefb240 SHA512 cc2a1bc8c6a47e60f1e527316f522d34d5e89019660e44e84736d91cc80a00babf95cebfc682374e82adf1b7c1a0536c6505a74d9903ecbbc85442575841710c
diff --git a/dev-python/nuitka/nuitka-2.7.2.ebuild b/dev-python/nuitka/nuitka-2.7.2.ebuild
new file mode 100644
index 000000000000..c97d7f3c6ae8
--- /dev/null
+++ b/dev-python/nuitka/nuitka-2.7.2.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 flag-o-matic optfeature pypi
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="
+ https://nuitka.net/
+ https://github.com/Nuitka/Nuitka/
+ https://pypi.org/project/Nuitka/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-build/scons[${PYTHON_USEDEP}]
+ >=dev-python/ordered-set-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.15[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+distutils-r1_src_prepare() {
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka.1 doc/nuitka-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" dev-util/patchelf
+}
diff --git a/dev-python/parse-type/parse-type-0.6.4.ebuild b/dev-python/parse-type/parse-type-0.6.4.ebuild
index da2a23b911a5..b3be110dc449 100644
--- a/dev-python/parse-type/parse-type-0.6.4.ebuild
+++ b/dev-python/parse-type/parse-type-0.6.4.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 pypi
DESCRIPTION="Extension to the parse module"
diff --git a/dev-python/pillow/files/pillow-11.2.1-py314.patch b/dev-python/pillow/files/pillow-11.2.1-py314.patch
new file mode 100644
index 000000000000..b9fe40d47046
--- /dev/null
+++ b/dev-python/pillow/files/pillow-11.2.1-py314.patch
@@ -0,0 +1,49 @@
+https://github.com/python-pillow/Pillow/pull/8948
+https://github.com/python-pillow/Pillow/commit/3c71559804e661a5f727e2007a5be51f26d9af27
+
+From c7193f74fc5ce1a0fe1742a0845165024be45ef5 Mon Sep 17 00:00:00 2001
+From: Andrew Murray <radarhere@users.noreply.github.com>
+Date: Thu, 8 May 2025 20:10:34 +1000
+Subject: [PATCH 1/3] Updated error message
+
+---
+ Tests/test_image_resample.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Tests/test_image_resample.py b/Tests/test_image_resample.py
+index ce6209c0da4..73b25ed51b2 100644
+--- a/Tests/test_image_resample.py
++++ b/Tests/test_image_resample.py
+@@ -462,7 +462,7 @@ def test_wrong_arguments(self, resample: Image.Resampling) -> None:
+ im.resize((32, 32), resample, (20, 20, 20, 100))
+ im.resize((32, 32), resample, (20, 20, 100, 20))
+
+- with pytest.raises(TypeError, match="must be sequence of length 4"):
++ with pytest.raises(TypeError, match="must be (sequence|tuple) of length 4"):
+ im.resize((32, 32), resample, (im.width, im.height)) # type: ignore[arg-type]
+
+ with pytest.raises(ValueError, match="can't be negative"):
+
+From 215069af5ddec6f4d3b92b8bc7554a10e2efb669 Mon Sep 17 00:00:00 2001
+From: Andrew Murray <radarhere@users.noreply.github.com>
+Date: Thu, 8 May 2025 22:13:13 +1000
+Subject: [PATCH 3/3] Added support for Python 3.14
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 5ecd6b8160a..5d41e27d981 100644
+--- a/setup.py
++++ b/setup.py
+@@ -46,7 +46,7 @@ def get_version() -> str:
+ ZLIB_ROOT = None
+ FUZZING_BUILD = "LIB_FUZZING_ENGINE" in os.environ
+
+-if sys.platform == "win32" and sys.version_info >= (3, 14):
++if sys.platform == "win32" and sys.version_info >= (3, 15):
+ import atexit
+
+ atexit.register(
+
diff --git a/dev-python/pillow/pillow-11.2.1.ebuild b/dev-python/pillow/pillow-11.2.1.ebuild
index da3acbbff932..e7a87802abd5 100644
--- a/dev-python/pillow/pillow-11.2.1.ebuild
+++ b/dev-python/pillow/pillow-11.2.1.ebuild
@@ -81,6 +81,8 @@ src_prepare() {
local PATCHES=(
# https://github.com/python-pillow/pillow/pull/7634
"${FILESDIR}/${PN}-10.2.0-cross.patch"
+ # https://github.com/python-pillow/Pillow/pull/8948
+ "${FILESDIR}/${PN}-11.2.1-py314.patch"
)
distutils-r1_src_prepare
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index 53c1f61689fd..f0bc0ed331c0 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -1,3 +1,4 @@
DIST psycopg-3.2.6.gh.tar.gz 558574 BLAKE2B a994f6fb3ee85c42371b848d0947858897a9a1f7256486aa964c8c7634b198b9229a53626c526cb85218a8468308dd9e7e605c1fc1058a08c7fb7183aed83b8d SHA512 99472813c9b6542611b15f0dd52d418a7e3f01cf0447a9a58c1d4135249fb526ca25f7569cc5d7d8a2a99184dccca52f485ee9cc9514e6ada1ebd526f8d62305
DIST psycopg-3.2.7.gh.tar.gz 562235 BLAKE2B 26f661b9072e2db610ee237dc4a794636ba44a17de3248f018787ed46c34b8087115a91bf2fd06c817c15ba1e2d3da93120f6fd23fcc164d90154928e7d2f1cc SHA512 76f7e8a515b6a7925811a5451eea2fa827b7ba52976faff0dd67c79e8354e83969176a504c1b34993c8a81f0b5ee9cdaf2461acbfc6a047884d47480b08dfc77
+DIST psycopg-3.2.8.gh.tar.gz 564688 BLAKE2B 846845d05e4646cc900e4797babaf3cb941094d295b83d5c57aada071eed9a0367e36d8fbd4f43cc7a3f1f84ccc2a4a277fede244177abe53191baaea5603c28 SHA512 b705eca31d1ca63cb44e1e029a7bacb3dfa8de8639dd9e99bda4ed86bfa8f02d08e01ec716fa51fbad04ccb16683f3c3db10ee82fcb0804f09b67e3fe2a9118c
DIST psycopg2-2.9.10.tar.gz 385672 BLAKE2B 4a3ad64f406c427b785ffeb85f6520aa67ed04de2d1749eb22d8275146b71ba451f7c04c9ead401d6f7a273781492cd6a5a36beba68b36b1e5203ee75f7df503 SHA512 d0916f6a645b5e87f89f2463dc22fad78340a85fbff320d099bf429a42557f40d3a4eebdc670768469aef1e9fcee60123767bfe49e1186e8574f95bfd6f46900
diff --git a/dev-python/psycopg/psycopg-3.2.8.ebuild b/dev-python/psycopg/psycopg-3.2.8.ebuild
new file mode 100644
index 000000000000..93518ee84ce8
--- /dev/null
+++ b/dev-python/psycopg/psycopg-3.2.8.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="
+ https://www.psycopg.org/psycopg3/
+ https://github.com/psycopg/psycopg/
+ https://pypi.org/project/psycopg/
+"
+SRC_URI="
+ https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="+native-extensions"
+
+DEPEND="
+ native-extensions? (
+ >=dev-db/postgresql-8.1:=
+ )
+ !native-extensions? (
+ >=dev-db/postgresql-8.1:*
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ )
+ test? (
+ >=dev-db/postgresql-8.1[server]
+ >=dev-python/anyio-4.0[${PYTHON_USEDEP}]
+ >=dev-python/dnspython-2.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_compile() {
+ # Python code + ctypes backend
+ cd psycopg || die
+ distutils-r1_python_compile
+
+ # optional C backend
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ local DISTUTILS_USE_PEP517=standalone
+ cd ../psycopg_c || die
+ distutils-r1_python_compile
+ fi
+ cd .. || die
+}
+
+src_test() {
+ rm -r psycopg{,_c} || die
+
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" test || die
+
+ local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for the psycopg_pool package
+ tests/pool
+ # some broken mypy magic
+ tests/test_module.py::test_version
+ tests/test_module.py::test_version_c
+ tests/test_typing.py
+ tests/crdb/test_typing.py
+ # TODO, relying on undefined ordering in Python?
+ tests/test_dns_srv.py::test_srv
+ )
+
+ case ${ARCH} in
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/types/test_numpy.py::test_classes_identities
+ )
+ ;;
+ esac
+
+ local impls=( python )
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ impls+=( c )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PSYCOPG_IMPL
+ for PSYCOPG_IMPL in "${impls[@]}"; do
+ einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
+ # leak and timing tests are fragile whereas slow tests are slow
+ epytest -p anyio -k "not leak" \
+ -m "not timing and not slow and not flakey"
+ done
+}
diff --git a/dev-python/pygments/pygments-2.19.1.ebuild b/dev-python/pygments/pygments-2.19.1.ebuild
index 75c01ab49409..0aa196b19267 100644
--- a/dev-python/pygments/pygments-2.19.1.ebuild
+++ b/dev-python/pygments/pygments-2.19.1.ebuild
@@ -40,6 +40,18 @@ EPYTEST_DESELECT=(
EPYTEST_XDIST=1
distutils_enable_tests pytest
+python_test() {
+ if [[ ${EPYTHON} == python3.14* ]] ; then
+ EPYTEST_IGNORE+=(
+ # https://github.com/python/cpython/issues/133653
+ # https://github.com/python/cpython/pull/133813
+ tests/test_cmdline.py
+ )
+ fi
+
+ epytest
+}
+
src_install() {
distutils-r1_src_install
newbashcomp external/pygments.bashcomp pygmentize
diff --git a/dev-python/pylsqpack/Manifest b/dev-python/pylsqpack/Manifest
index 25577cb2adc8..62e28b515605 100644
--- a/dev-python/pylsqpack/Manifest
+++ b/dev-python/pylsqpack/Manifest
@@ -1,2 +1,3 @@
DIST pylsqpack-0.3.19.tar.gz 660771 BLAKE2B b4b8ded7022eadf581270465446a6e0df2d241d18cacdc4fcfd725c865c02f17b5af5cbfd8eba65217ef9db1f24babe06faebc16c6cce68042d452dce03ffb1f SHA512 7ed2c24dcacb099d00100c33ae4ede3bf19488d17920267cfe934eb069f3fc3d3a62b275c2a9d3a23ece42f1c09df6cf736cea47b798959a2a09d27dd8eda97d
DIST pylsqpack-0.3.20.tar.gz 676273 BLAKE2B ee031fdc56f8193b9f0b13c806f88d76d1e1bc2c8d6b1a5530a9630c07912251e9f9010d958c1f7a5c86aca895533768ead907573723544d0a662482051d131a SHA512 42cb9276ba4a2ffdbd1dd96813c4ab27881c2fe35616fa32e760d2341c71f1065db4959bde1a444df61ca85399870b9a736ed16e8a2768c96edee2df11bdb063
+DIST pylsqpack-0.3.22.tar.gz 676356 BLAKE2B 1ad8283b00273f4a60a3edd7d125d3b9a3efc61deff209f709908ad16ed68c658158247443e643ef38b53e118076e23d651134dc91974bd79fa94d7d1496d328 SHA512 16b6abee85c9d2b02b50d9edd047018439cfb64e65ee0c065f070ddd673235fef99795c31a7fe8fe48b242071c20cbdf0ba5d76d59838cec593e57c3a99ee01e
diff --git a/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild b/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
new file mode 100644
index 000000000000..d23897dbc387
--- /dev/null
+++ b/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python wrapper for the ls-qpack QPACK library"
+HOMEPAGE="
+ https://github.com/aiortc/pylsqpack/
+ https://pypi.org/project/pylsqpack/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+distutils_enable_tests pytest
+
+DEPEND="
+ dev-libs/ls-qpack:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-0.3.20-unbundle.patch"
+ )
+
+ distutils-r1_src_prepare
+ rm -r vendor || die
+}
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index e5452f5b4e70..f10751f56670 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -1,2 +1,3 @@
DIST pypdf-5.4.0.gh.tar.gz 8046505 BLAKE2B 8816362edd28d0c0dc0ed2abbec56f0adfdf9377fe3770f494cf1dc301a2636a4ca579c86a6fa8ee65532965f347cc2b8c08df074131f7373d1ef6f9ab5125e6 SHA512 530853e2839164c3159c5d6b466ddd95859af2ed5473d7d1c1fbf8350d2860685439565cc50bf093fa4c662a04775660fd3e6e70f5fd134fcb9cdea93c88eac2
+DIST pypdf-5.5.0.gh.tar.gz 8057519 BLAKE2B 4088f1332e7f34d796db899e500729ccabc427e4bbd3fb1d7dd75d3883c546cc2b5facb95e6e54bd9f62367e1fc2a0e208d97bf6e3abc3f3ff2d64a5fe8435b0 SHA512 7e0592395ea673429fadf8308f26209408e1a4931d2544a4497e02e2b222635eb97dd11f0696021e776d0c481d0febd2f9186e0812f70f248e657d4aa1bfc0e7
DIST pypdf-sample-files-8c405ece5eff12396a34a1fae3276132002e1753.gh.tar.gz 11748093 BLAKE2B c5989200893b28a3c2062bb024a5cfc6f3389dc259ec129857979fa43469e1274559612b4d555499e2c7e16cf34be07825229932bf4d147fa6d7324d043e97d5 SHA512 c9771129b7668a2fd1fa79bb859ae9213f3d60341cf1b9937ff0eaab0de9bf4c35adcb7b896e93329038dc0f3809a0c697c523f8fe41b43030b0b029a88058e3
diff --git a/dev-python/pypdf/pypdf-5.5.0.ebuild b/dev-python/pypdf/pypdf-5.5.0.ebuild
new file mode 100644
index 000000000000..2bb6f986c245
--- /dev/null
+++ b/dev-python/pypdf/pypdf-5.5.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+SAMPLE_COMMIT=8c405ece5eff12396a34a1fae3276132002e1753
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI="
+ https://github.com/py-pdf/pypdf/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${S}"/sample-files/ || die
+ fi
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pytest-regressions/pytest-regressions-2.7.0.ebuild b/dev-python/pytest-regressions/pytest-regressions-2.7.0.ebuild
index 707eead5bf11..50134c4144a3 100644
--- a/dev-python/pytest-regressions/pytest-regressions-2.7.0.ebuild
+++ b/dev-python/pytest-regressions/pytest-regressions-2.7.0.ebuild
@@ -57,5 +57,12 @@ python_test() {
)
fi
+ if [[ ${EPYTHON} == python3.14* ]] ; then
+ EPYTEST_DESELECT+=(
+ # Sensitive to warnings
+ tests/test_data_regression.py::test_regen_all
+ )
+ fi
+
epytest
}
diff --git a/dev-python/python-engineio/Manifest b/dev-python/python-engineio/Manifest
index 02343cc92769..bd4bcecb366e 100644
--- a/dev-python/python-engineio/Manifest
+++ b/dev-python/python-engineio/Manifest
@@ -1 +1,2 @@
DIST python-engineio-4.12.0.gh.tar.gz 319601 BLAKE2B 3da3382dd568f74ed5a0362b36641cd9cbe60fd0370e4e4172455251250ad6470662e1bfdb1903eb7b2dd934cbb895994e407ab8487a80a9dd2f629c87a55f89 SHA512 4d4996183b837b656566bc94f17f8bed7551a18d46985cb83aca44f040a1c9031ad48abac8f33ec63826cff506bb015826a4c080d3d42d47ee684d67948d0708
+DIST python-engineio-4.12.1.gh.tar.gz 319719 BLAKE2B 830fbd7f707aa8929ecd0c945d4d642b0780d812fb5033c0a2e632389cfba6ce0b1f186efef6358187eaf5d0cdec849ceeed9811c5b151f5d071be8d8c48a1df SHA512 025a85412c2fa706b3b660885f75b44d61dfdc9ad214346dd0fb7e739b7984488ba43140fc8836abf2b2339e5d9b5975bfc7ca26b8676522992a4bcb2c4439b6
diff --git a/dev-python/python-engineio/python-engineio-4.12.1.ebuild b/dev-python/python-engineio/python-engineio-4.12.1.ebuild
new file mode 100644
index 000000000000..af34606f1566
--- /dev/null
+++ b/dev-python/python-engineio/python-engineio-4.12.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of the Engine.IO realtime server"
+HOMEPAGE="
+ https://python-engineio.readthedocs.io/
+ https://github.com/miguelgrinberg/python-engineio/
+ https://pypi.org/project/python-engineio/"
+SRC_URI="
+ https://github.com/miguelgrinberg/python-engineio/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ >=dev-python/simple-websocket-0.10.0[${PYTHON_USEDEP}]
+ dev-python/websocket-client[${PYTHON_USEDEP}]
+"
+# Can use eventlet, werkzeug, or gevent, but no tests for werkzeug
+BDEPEND="
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/tornado[${PYTHON_USEDEP}]
+ dev-python/websockets[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/alabaster
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # eventlet is masked for removal
+ tests/common/test_async_eventlet.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # also eventlet
+ tests/common/test_server.py::TestServer::test_async_mode_eventlet
+ tests/common/test_server.py::TestServer::test_connect
+ tests/common/test_server.py::TestServer::test_service_task_started
+ tests/common/test_server.py::TestServer::test_upgrades
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio
+}
diff --git a/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild b/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild
index 5cef11a1f636..2d5ddd716d94 100644
--- a/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild
+++ b/dev-python/python-tlsh/python-tlsh-4.8.2-r1.ebuild
@@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
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/regex/regex-2024.11.6.ebuild b/dev-python/regex/regex-2024.11.6.ebuild
index 13ac2526d34b..c620c5aaf5ed 100644
--- a/dev-python/regex/regex-2024.11.6.ebuild
+++ b/dev-python/regex/regex-2024.11.6.ebuild
@@ -7,7 +7,7 @@ DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
# pypy isn't supported upstream because of its UTF8 representation for strings
# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/rencode/files/rencode-1.0.6-cython-3.1.0.patch b/dev-python/rencode/files/rencode-1.0.6-cython-3.1.0.patch
new file mode 100644
index 000000000000..f77b9174dcf6
--- /dev/null
+++ b/dev-python/rencode/files/rencode-1.0.6-cython-3.1.0.patch
@@ -0,0 +1,26 @@
+From db3ad169c16e00e39ebc72dc2938828f24299d56 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 11 May 2025 22:17:27 +0200
+Subject: [PATCH] rencode/rencode.pyx: Fix compilation for Cython 3.1.0
+
+https://github.com/aresch/rencode/issues/31
+---
+ rencode/rencode.pyx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rencode/rencode.pyx b/rencode/rencode.pyx
+index 3db1180..494919b 100644
+--- a/rencode/rencode.pyx
++++ b/rencode/rencode.pyx
+@@ -275,7 +275,7 @@ cdef object MIN_SIGNED_LONGLONG = -MAX_SIGNED_LONGLONG
+
+ cdef encode(char **buf, unsigned int *pos, data):
+ t = type(data)
+- if t == int or t == long:
++ if t == int:
+ if -128 <= data < 128:
+ encode_char(buf, pos, data)
+ elif -32768 <= data < 32768:
+--
+2.49.0
+
diff --git a/dev-python/rencode/rencode-1.0.6-r4.ebuild b/dev-python/rencode/rencode-1.0.6-r4.ebuild
new file mode 100644
index 000000000000..5186ca79d9c4
--- /dev/null
+++ b/dev-python/rencode/rencode-1.0.6-r4.ebuild
@@ -0,0 +1,44 @@
+# 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="similar to bencode from the BitTorrent project"
+HOMEPAGE="
+ https://github.com/aresch/rencode/
+ https://pypi.org/project/rencode/
+"
+SRC_URI="
+ https://github.com/aresch/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/aresch/rencode/commit/16e61e1ff4294bddb7c881536d3d454355c78969
+ "${FILESDIR}/${P}-drop-wheel-dependency.patch"
+ # bug #812437
+ "${FILESDIR}/${P}-fix-CVE-2021-40839.patch"
+ # bug #955434
+ "${FILESDIR}"/${P}-cython-3.1.0.patch
+)
+
+python_test() {
+ rm -rf rencode || die
+ epytest
+}
diff --git a/dev-python/rich/files/rich-14.0.0-py314.patch b/dev-python/rich/files/rich-14.0.0-py314.patch
new file mode 100644
index 000000000000..4684f2b469e4
--- /dev/null
+++ b/dev-python/rich/files/rich-14.0.0-py314.patch
@@ -0,0 +1,84 @@
+https://github.com/Textualize/rich/pull/3622
+
+From 91bbeac3ec8b87790865be974260d44adc8def61 Mon Sep 17 00:00:00 2001
+From: Karolina Surma <ksurma@redhat.com>
+Date: Tue, 28 Jan 2025 10:03:26 +0100
+Subject: [PATCH] Skip tests which are expected to fail with Python 3.14
+
+---
+ tests/test_inspect.py | 9 +++++++++
+ tests/test_pretty.py | 5 +++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/tests/test_inspect.py b/tests/test_inspect.py
+index 130e8df12..fd1d26e2c 100644
+--- a/tests/test_inspect.py
++++ b/tests/test_inspect.py
+@@ -43,6 +43,11 @@
+ reason="rendered differently on py3.13",
+ )
+
++skip_py314 = pytest.mark.skipif(
++ sys.version_info.minor == 14 and sys.version_info.major == 3,
++ reason="rendered differently on py3.14",
++)
++
+ skip_pypy3 = pytest.mark.skipif(
+ hasattr(sys, "pypy_version_info"),
+ reason="rendered differently on pypy3",
+@@ -139,6 +144,7 @@ def test_inspect_empty_dict():
+ assert render({}).startswith(expected)
+
+
++@skip_py314
+ @skip_py313
+ @skip_py312
+ @skip_py311
+@@ -219,6 +225,7 @@ def test_inspect_integer_with_value():
+ @skip_py311
+ @skip_py312
+ @skip_py313
++@skip_py314
+ def test_inspect_integer_with_methods_python38_and_python39():
+ expected = (
+ "╭──────────────── <class 'int'> ─────────────────╮\n"
+@@ -257,6 +264,7 @@ def test_inspect_integer_with_methods_python38_and_python39():
+ @skip_py311
+ @skip_py312
+ @skip_py313
++@skip_py314
+ def test_inspect_integer_with_methods_python310only():
+ expected = (
+ "╭──────────────── <class 'int'> ─────────────────╮\n"
+@@ -299,6 +307,7 @@ def test_inspect_integer_with_methods_python310only():
+ @skip_py310
+ @skip_py312
+ @skip_py313
++@skip_py314
+ def test_inspect_integer_with_methods_python311():
+ # to_bytes and from_bytes methods on int had minor signature change -
+ # they now, as of 3.11, have default values for all of their parameters
+diff --git a/tests/test_pretty.py b/tests/test_pretty.py
+index 90be42f87..29331d9d5 100644
+--- a/tests/test_pretty.py
++++ b/tests/test_pretty.py
+@@ -38,6 +38,10 @@
+ sys.version_info.minor == 13 and sys.version_info.major == 3,
+ reason="rendered differently on py3.13",
+ )
++skip_py314 = pytest.mark.skipif(
++ sys.version_info.minor == 14 and sys.version_info.major == 3,
++ reason="rendered differently on py3.14",
++)
+
+
+ def test_install() -> None:
+@@ -639,6 +643,7 @@ class Nada:
+ @skip_py311
+ @skip_py312
+ @skip_py313
++@skip_py314
+ def test_attrs_broken() -> None:
+ @attr.define
+ class Foo:
+
diff --git a/dev-python/rich/rich-14.0.0.ebuild b/dev-python/rich/rich-14.0.0.ebuild
index 27a6cedb99af..b5290f5d4e26 100644
--- a/dev-python/rich/rich-14.0.0.ebuild
+++ b/dev-python/rich/rich-14.0.0.ebuild
@@ -26,9 +26,6 @@ RDEPEND="
dev-python/colorama[${PYTHON_USEDEP}]
>=dev-python/markdown-it-py-2.2.0[${PYTHON_USEDEP}]
>=dev-python/pygments-2.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
- ' 3.10)
"
BDEPEND="
test? (
@@ -36,6 +33,11 @@ BDEPEND="
)
"
+PATCHES=(
+ # https://github.com/Textualize/rich/pull/3622
+ "${FILESDIR}"/${PN}-14.0.0-py314.patch
+)
+
distutils_enable_tests pytest
python_test() {
@@ -62,6 +64,11 @@ python_test() {
tests/test_inspect.py::test_inspect_integer_with_methods_python311
)
;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ # Span vs Style
+ tests/test_text.py::test_assemble_meta
+ )
esac
local -x COLUMNS=80
diff --git a/dev-python/rq/Manifest b/dev-python/rq/Manifest
index 83fb33c2beb1..a9145e0be00d 100644
--- a/dev-python/rq/Manifest
+++ b/dev-python/rq/Manifest
@@ -1 +1,2 @@
DIST rq-2.3.2.tar.gz 649216 BLAKE2B 8fca0c9008717353b99d7fba502554cd85378e69bef3f5b78acfdc168ecfc95f1644e3ae30a6ace7958a9ad8cc982b155a606b1ae745fabd0caecd1ae353d374 SHA512 b218a6ed7129cab4c148712d2f7ac889ba09d635684c7176ec196338316a2d8bb675a375a93c7ddf672b6834d08ac59106bbc83222efe1d76e677075cd3bab51
+DIST rq-2.3.3.tar.gz 649348 BLAKE2B cf69810289c32e1d363617aecc9ef45ed5b85bb47938b51ceb0e7ae61c186de2b84eea82ac96ca9ece80118de1b77eb8cd4a879ea7fd73e5606e49b68b547cee SHA512 974bbb952c36cbc538ef5cd6a1a426de79f359da431165724d9aed0beeefc9b1d6abd664ca7641997ee0b5d153d760cf631ee6dabfbd06f9a414bbc79867853c
diff --git a/dev-python/rq/rq-2.3.3.ebuild b/dev-python/rq/rq-2.3.3.ebuild
new file mode 100644
index 000000000000..3003d2989434
--- /dev/null
+++ b/dev-python/rq/rq-2.3.3.ebuild
@@ -0,0 +1,79 @@
+# 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} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple, lightweight library for creating and processing background jobs"
+HOMEPAGE="
+ https://python-rq.org/
+ https://github.com/rq/rq/
+ https://pypi.org/project/rq/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/click-5.0[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unnecessary typechecking deps
+ sed -i -e '/types-/d' pyproject.toml || die
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+ local redis_test_config="daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1
+ "
+
+ # Spawn Redis itself for testing purposes
+ # NOTE: On sam@'s machine, spawning Redis can hang in the sandbox.
+ # I'm not restricting tests yet because this doesn't happen for anyone else AFAICT.
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ /usr/sbin/redis-server - <<< "${redis_test_config}" || die
+
+ # Run the actual tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires <sentry-sdk-2
+ tests/test_sentry.py::TestSentry::test_failure_capture
+ # hang
+ tests/test_commands.py::TestCommands::test_shutdown_command
+ tests/test_worker_pool.py::TestWorkerPool::test_check_workers
+ tests/test_dependencies.py::TestDependencies
+ # already present in older versions
+ tests/test_spawn_worker.py::TestWorker::test_work_and_quit
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/textx/Manifest b/dev-python/textx/Manifest
index 65af8be048ed..2cda5ff374e9 100644
--- a/dev-python/textx/Manifest
+++ b/dev-python/textx/Manifest
@@ -1,2 +1,3 @@
DIST textX-4.1.0.gh.tar.gz 2136599 BLAKE2B d6c7d4d741b4e526d0a71743387ee8455cc861bc4b356c605b6d174adb870bd178fd557a804f170f3d411b3ae70845771f7ffa7bbe9c4d1053c3d87e062deddb SHA512 313fea5b6d9e94e280a0614d4130872229536fe39d5af6e440a08babe6c4e5a5c23b53827713d577cc9af32a55a6beeaeddce59dbceb5f53a3f87cb910609599
DIST textX-4.2.0.gh.tar.gz 2136704 BLAKE2B c851a74deb7f79719549181b1e49201e60422007d600ff058b8c513d3cfbcfaad6d42a719425d16a7810662fe190ddbd65a23e75c8f8fca59b109c6be9046306 SHA512 d2342e7408dd51b5960e868d278ee5f4f656b4befad7f67ecac15e1c587d65b1894ecfadb7219c8c1a33c0945ba37eff638458b69f3dfa01626ab363eee99540
+DIST textX-4.2.2.gh.tar.gz 2136825 BLAKE2B 6d48f7255ca6d87ff018814757be7787f59f0b7a2a587493407da92840c052b770a2a607acac42ddfdc85470f9dfba47abe9abc06c47075f9a399f99c69420bf SHA512 20b4f6abfbe51e52d53bba243b3a4272df93feb6885c9c2f7bfc614534510d211053ea06b2672ef2e720630485ca304fe2e1c21e47bc0ccaaf97eb012fb8ffcd
diff --git a/dev-python/textx/textx-4.2.2.ebuild b/dev-python/textx/textx-4.2.2.ebuild
new file mode 100644
index 000000000000..58d83cece042
--- /dev/null
+++ b/dev-python/textx/textx-4.2.2.ebuild
@@ -0,0 +1,59 @@
+# 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} )
+
+inherit distutils-r1
+
+MY_P=textX-${PV}
+DESCRIPTION="Meta-language for DSL implementation inspired by Xtext"
+HOMEPAGE="
+ https://pypi.org/project/textX/
+ https://github.com/textX/textX/
+"
+SRC_URI="
+ https://github.com/textX/textX/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/arpeggio-2.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/html5lib[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ # Update the shebang
+ sed -e "s:install/usr/bin/${EPYTHON}:test/usr/bin/${EPYTHON}:" \
+ -i "${BUILD_DIR}"/test/usr/bin/textx || die
+
+ # Install necessary plugins
+ local plugins=(
+ tests/functional/subcommands/example_project
+ tests/functional/registration/projects/*
+ )
+ local p
+ for p in "${plugins[@]}"; do
+ pushd "${p}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest tests/functional
+}
diff --git a/dev-python/types-setuptools/Manifest b/dev-python/types-setuptools/Manifest
index d5a4bcfbc201..2f069a8e801c 100644
--- a/dev-python/types-setuptools/Manifest
+++ b/dev-python/types-setuptools/Manifest
@@ -1,2 +1,3 @@
DIST types_setuptools-79.0.0.20250422.tar.gz 43865 BLAKE2B 3ef152fbaa27057b0279bfd5ef6e6104a04eaa55d9594e1cd5867bbaea4cd105ab7da94aad0f5e84382c566deec572d203b68feab06ece61982823eeb55d0806 SHA512 841a4d5332f0c8ed27333330cf5e78f21b1d033e3202d733f44234d234fca7db0bd0205520287d5cc0e69bb9befe79bff72e80fde593e70821692c3a8be29352
DIST types_setuptools-80.3.0.20250505.tar.gz 41205 BLAKE2B 9678f681ea420290c55d7e1a20e8cea7f90d9c4c9a8dcb327056c6044f1a84a57e6e03d0cf20afe456f1f1f209f2e66461574dd27c5f63fa5d208b528d98bdfd SHA512 a5c186d246eb42764d90db0409c8fcdc8bb41aa6116c1705b0c32561db3d0bd28cdd6c14e4d0c2d9c4a29ba802231f809f46fd12d753f2d0719e6f0ddb6a1421
+DIST types_setuptools-80.4.0.20250511.tar.gz 41205 BLAKE2B 54ec7947f50ffa1507e3bc53098a3079edef8044739e307afd47675638d2930d9cbe1a8535858e1a538bed65d00616b489ca5e7ed4cf795ddcd2f7987bdf793a SHA512 ec2d12032367cdc956df2e3cff082b5e15f0a76a28c1a85bc9cabe1dc81c704fcaea64637c477ec5440f83eea3ba0125f2bad62721f1528c14e07f89e5819b49
diff --git a/dev-python/types-setuptools/types-setuptools-80.4.0.20250511.ebuild b/dev-python/types-setuptools/types-setuptools-80.4.0.20250511.ebuild
new file mode 100644
index 000000000000..078677754317
--- /dev/null
+++ b/dev-python/types-setuptools/types-setuptools-80.4.0.20250511.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typing stubs for setuptools"
+HOMEPAGE="https://pypi.org/project/types-setuptools/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
diff --git a/dev-python/zstandard/files/zstandard-0.23.0-py314.patch b/dev-python/zstandard/files/zstandard-0.23.0-py314.patch
new file mode 100644
index 000000000000..a2eb41c74060
--- /dev/null
+++ b/dev-python/zstandard/files/zstandard-0.23.0-py314.patch
@@ -0,0 +1,17 @@
+https://github.com/indygreg/python-zstandard/issues/238
+https://github.com/indygreg/python-zstandard/pull/262
+https://src.fedoraproject.org/rpms/python-zstandard/blob/rawhide/f/python-zstandard-py314.patch
+--- a/zstandard/__init__.py
++++ b/zstandard/__init__.py
+@@ -18,7 +18,10 @@ import io
+ import os
+ import platform
+
+-from typing import ByteString
++try:
++ from typing import ByteString
++except ImportError:
++ from collections.abc import Buffer as ByteString
+
+ # Some Python implementations don't support C extensions. That's why we have
+ # a CFFI implementation in the first place. The code here import one of our
diff --git a/dev-python/zstandard/zstandard-0.23.0-r3.ebuild b/dev-python/zstandard/zstandard-0.23.0-r3.ebuild
new file mode 100644
index 000000000000..7fffcd262574
--- /dev/null
+++ b/dev-python/zstandard/zstandard-0.23.0-r3.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+MY_P=python-zstandard-${PV}
+DESCRIPTION="Zstandard Bindings for Python"
+HOMEPAGE="
+ https://github.com/indygreg/python-zstandard/
+ https://pypi.org/project/zstandard/
+"
+SRC_URI="
+ https://github.com/indygreg/python-zstandard/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+
+DEPEND="
+ >=app-arch/zstd-1.5.7:=
+"
+RDEPEND="
+ ${DEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.14.0-r2:=[${PYTHON_USEDEP}]
+ ' 'python*')
+"
+BDEPEND="
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ # https://github.com/indygreg/python-zstandard/pull/255
+ "${FILESDIR}/${P}-zstd-1.5.7.patch"
+ # https://github.com/indygreg/python-zstandard/pull/262
+ "${FILESDIR}/${P}-py314.patch"
+ )
+
+ # the C backend is repeatedly broken, so force CFFI instead
+ sed -e '/PYTHON_ZSTANDARD_IMPORT_POLICY/s:default:cffi:' \
+ -i zstandard/__init__.py || die
+ # unbundle zstd
+ rm zstd/* || die
+ > zstd/zstd.c || die
+ # it does random preprocessing on that, so we can't use #include
+ local f
+ for f in zdict.h zstd.h; do
+ cp "${ESYSROOT}/usr/include/${f}" "zstd/${f}" || die
+ done
+ sed -i -e '/include_dirs/a libraries=["zstd"],' make_cffi.py || die
+
+ distutils-r1_src_prepare
+
+ DISTUTILS_ARGS=(
+ --no-c-backend
+ )
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # unreliable, fails on x86
+ tests/test_data_structures.py::TestCompressionParameters::test_estimated_compression_context_size
+ # check for bundled zstd version, fails on other system zstd
+ tests/test_module_attributes.py::TestModuleAttributes::test_version
+ )
+
+ rm -rf zstandard || die
+ epytest
+}