summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/anyio/Manifest2
-rw-r--r--dev-python/anyio/anyio-4.14.1.ebuild74
-rw-r--r--dev-python/cftime/cftime-1.6.5.ebuild2
-rw-r--r--dev-python/click/Manifest2
-rw-r--r--dev-python/click/click-8.4.2.ebuild40
-rw-r--r--dev-python/cython/Manifest1
-rw-r--r--dev-python/cython/cython-3.2.6.ebuild128
-rw-r--r--dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild3
-rw-r--r--dev-python/discid/Manifest2
-rw-r--r--dev-python/discid/discid-1.4.1.ebuild37
-rw-r--r--dev-python/indexed-gzip/indexed-gzip-1.10.3.ebuild2
-rw-r--r--dev-python/jwcrypto/Manifest1
-rw-r--r--dev-python/jwcrypto/jwcrypto-1.5.8.ebuild32
-rw-r--r--dev-python/mmtf-python/mmtf-python-1.1.3.ebuild2
-rw-r--r--dev-python/numexpr/numexpr-2.14.1.ebuild2
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.17.0.ebuild94
-rw-r--r--dev-python/opentelemetry-api/Manifest1
-rw-r--r--dev-python/opentelemetry-api/opentelemetry-api-1.43.0.ebuild53
-rw-r--r--dev-python/opentelemetry-sdk/Manifest1
-rw-r--r--dev-python/opentelemetry-sdk/opentelemetry-sdk-1.43.0.ebuild56
-rw-r--r--dev-python/opentelemetry-semantic-conventions/Manifest1
-rw-r--r--dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.43.0.ebuild52
-rw-r--r--dev-python/opt-einsum/opt-einsum-3.4.0.ebuild3
-rw-r--r--dev-python/pulsectl-asyncio/Manifest1
-rw-r--r--dev-python/pulsectl-asyncio/pulsectl-asyncio-1.3.1.ebuild42
-rw-r--r--dev-python/python-snappy/python-snappy-0.7.3.ebuild2
-rw-r--r--dev-python/sabctools/Manifest1
-rw-r--r--dev-python/sabctools/sabctools-9.5.0.ebuild40
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-15.3.0.ebuild91
-rw-r--r--dev-python/textdistance/textdistance-4.6.3.ebuild4
-rw-r--r--dev-python/uncertainties/uncertainties-3.2.4.ebuild11
-rw-r--r--dev-python/xxhash/Manifest2
-rw-r--r--dev-python/xxhash/xxhash-3.7.1.ebuild39
35 files changed, 817 insertions, 9 deletions
diff --git a/dev-python/anyio/Manifest b/dev-python/anyio/Manifest
index ddbc12a4e64f..cf41c93d5760 100644
--- a/dev-python/anyio/Manifest
+++ b/dev-python/anyio/Manifest
@@ -2,3 +2,5 @@ DIST anyio-4.13.0.tar.gz 231622 BLAKE2B 8224445390cb5a061c9065952ad7a5461aae80ce
DIST anyio-4.13.0.tar.gz.provenance 9508 BLAKE2B 7f835c0a3a8cc67e258115c3a128f952d649b699fc3fd859150685b6eabdbd0057c033000978c3ea25ebcd67749d4ebd6feefef3809556ff139c62e2f0ea7f4e SHA512 0fd3276663517fbbed2e4fea21a1eb14efa96290f07c509ea28a035d293af4f27d842f5b07b4305b267f0887c9c476ef23e07c0eee4ea75ab55692f252109327
DIST anyio-4.14.0.tar.gz 253586 BLAKE2B 742b3d27dfc41983e39b61fa19daaa014d3cbba555744f0fe00b466d04da5c429940c98690858d66a3c354a21dded0b64dfeea1140c938fc5d8d70dc3c564612 SHA512 9d0e786c3bfe61f9001d3eac8e53a7efbc74dac0a61e3c07ce64bd7d090966a960f9f0967a41442b7cf99aa5ff1525d6ad2b73c9bf75da6295c44316f882ce47
DIST anyio-4.14.0.tar.gz.provenance 9955 BLAKE2B 707a0f47ac4a65d6b766b4de926ea3721addfe80a0ece1d30857e3558c3cdeb909860d24b3bf35201e086f80fe2ab428daa295b8efa8e0b3cd2cc5cf953f616d SHA512 1cc0c4db2eacdff59331146831285f7580ef2f4d4d5fc9e49f903d2e876a8464e18ac3d2f6d54eef7c6feaca1273e2c151faad9cc4720401d8c436fdfa3221af
+DIST anyio-4.14.1.tar.gz 254831 BLAKE2B f28882aba2e169e4815785d7e943c9d3b1564a17db0ce9c1cdfa57d39c0ee804b6f1d4fda7c99ba87e78dce12211614d845405b8a19483f655810e3c8e6d6255 SHA512 46561cd8e551953237ad079fc0669fbf21fc9f8bcf5e1a3dbd44f52248a9dbcb54a34a801d094994b4a22fb5470439be681f6c743b02f73dbdc27ebb1de911ce
+DIST anyio-4.14.1.tar.gz.provenance 9673 BLAKE2B f1ae1a8ca9467acf52eb91113143975a20bf5f10dba68d4d9ccffe27feaad68a5825757b4563d2c2f640fa7566fe2158eafdf01902ef91445ca9dd60d30f7dc9 SHA512 6caff3807431390ce4b358a8677e22cc5636231608344d93b9d3960afdb90fa4d125078ce44fb31d79abb2e091d853c628a22c724df13000918945fbce875b87
diff --git a/dev-python/anyio/anyio-4.14.1.ebuild b/dev-python/anyio/anyio-4.14.1.ebuild
new file mode 100644
index 000000000000..cbf4f7c1ccce
--- /dev/null
+++ b/dev-python/anyio/anyio-4.14.1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/agronholm/anyio
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Compatibility layer for multiple asynchronous event loop implementations"
+HOMEPAGE="
+ https://github.com/agronholm/anyio/
+ https://pypi.org/project/anyio/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/idna-2.8[${PYTHON_USEDEP}]
+ >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+ ' 3.{11..12})
+"
+# On amd64, let's get more test coverage by dragging in uvloop, but let's
+# not bother on other arches where uvloop may not be supported.
+BDEPEND="
+ >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/blockbuster-1.5.23[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
+ >=dev-python/trustme-1.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/trio-0.32.0[${PYTHON_USEDEP}]
+ ' 3.{11..14})
+ amd64? (
+ $(python_gen_cond_dep '
+ >=dev-python/uvloop-0.22.1[${PYTHON_USEDEP}]
+ ' python3_{11..14})
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-{mock,timeout} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ '>=dev-python/sphinx-rtd-theme-1.2.2' \
+ dev-python/sphinxcontrib-jquery \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-tabs
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires link-local IPv6 interface
+ tests/test_sockets.py::TestTCPListener::test_bind_link_local
+ )
+
+ local filter=()
+ if ! has_version ">=dev-python/trio-0.26.1[${PYTHON_USEDEP}]"; then
+ filter+=( -k "not trio" )
+ EPYTEST_DESELECT+=(
+ tests/test_pytest_plugin.py::test_plugin
+ tests/test_pytest_plugin.py::test_autouse_async_fixture
+ tests/test_pytest_plugin.py::test_cancel_scope_in_asyncgen_fixture
+ )
+ fi
+
+ epytest -m 'not network' "${filter[@]}"
+}
diff --git a/dev-python/cftime/cftime-1.6.5.ebuild b/dev-python/cftime/cftime-1.6.5.ebuild
index a21773b26124..77a58c954b56 100644
--- a/dev-python/cftime/cftime-1.6.5.ebuild
+++ b/dev-python/cftime/cftime-1.6.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2025 Gentoo Authors
+# Copyright 2020-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/click/Manifest b/dev-python/click/Manifest
index 146b3168b7af..40ae94008482 100644
--- a/dev-python/click/Manifest
+++ b/dev-python/click/Manifest
@@ -2,3 +2,5 @@ DIST click-8.3.3.tar.gz 328061 BLAKE2B e089d4f6597b339b259c31423d925fb987c42f63f
DIST click-8.3.3.tar.gz.provenance 9524 BLAKE2B 59936593b12a2ee3818f37ec57a5da822f7766bda13052e69234b1d94f838ff316050f02701561a5a0133d76b615f2810c61d7fe0dd6048389a156e8d0a5f63a SHA512 bff0af4270b9587bc7e596946bc1326c4b7e2b6392320d56f9a97bd56b6d2c40637e85a147a3b1c941bf35b5c48465ef75588e5bc5e452c990311f4501e48d61
DIST click-8.4.1.tar.gz 353007 BLAKE2B 7de8fdf4bfc9ae65c31a0fed199f3fc5269d0d44ec56acd8288048d4f6ad45dce9563c968b8dd4cd6aef34c1366c53ce0480345640929b2664757c113e603017 SHA512 f759377dfa249e912dc0aa04cf826fd4f6da7a0459e2a076f3f2fd67c22e784d4c03dcf4b91d1763021e9c4d44a198f78050678023106f838d1fa5c6374ec918
DIST click-8.4.1.tar.gz.provenance 9148 BLAKE2B f1b7e7ae1f69f10be9aa2bdba5689388df731de425ccd43baa2b1007ad82584ff7eaeb52f28642f568f55740d49fd25c085a52677c63ffc0050e92e60a22924a SHA512 fee27ae0a5d9de9a278c87797c8e694a604b87eef8f5ffc548f2fc984da4fd7580d2b88f31da1fbb04367a78e090714ad5a84e914a65216c5ef01667fad696a8
+DIST click-8.4.2.tar.gz 338000 BLAKE2B f988ab9299b12e9942e6e6a2b284394a1a90496f3005abf5b57b64b970803051ff8254204021dcb682c75a839a823f7cab2e820d0cf661bc3d1d72a69746b085 SHA512 7df2cdd4c86e54c2e2e00c7425e484becb65a20c7dc38f0624c8ebe61aa701bc8cd1bc6de12367ff40e12ec0c16e06190f7a47e2f8c9849d7a431cecf8b42d87
+DIST click-8.4.2.tar.gz.provenance 9489 BLAKE2B e96daf05f275be0fda8f89a62ba4e889da50eb77ade45822d77a5e57ba9e0acedfa92f580a6721d160c28420b6bde50279b189a32f00505b9a1c44bc09f647d7 SHA512 18645341f0a511bddfaad486b376806ddb2a80723f43f26cebfbeacd8ccc7d7b465e079afab12c1bfa3908da1bf8097bc246732f25d5a8626709b7b16db7cce3
diff --git a/dev-python/click/click-8.4.2.ebuild b/dev-python/click/click-8.4.2.ebuild
new file mode 100644
index 000000000000..00fb274b7419
--- /dev/null
+++ b/dev-python/click/click-8.4.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/pallets/click
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python package for creating beautiful command line interfaces"
+HOMEPAGE="
+ https://palletsprojects.com/p/click/
+ https://github.com/pallets/click/
+ https://pypi.org/project/click/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+# this is causing major peformance problems for pkgcheck
+# https://github.com/pkgcore/pkgcheck/issues/782
+#distutils_enable_sphinx docs \
+# '>=dev-python/docutils-0.14' \
+# dev-python/myst-parser \
+# dev-python/pallets-sphinx-themes \
+# dev-python/sphinxcontrib-log-cabinet \
+# dev-python/sphinx-tabs
+
+EPYTEST_PLUGINS=()
+# tests/test_utils.py::test_echo_via_pager is flaky
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # -Wdefault, https://github.com/pallets/click/issues/3476
+ tests/test_options.py::test_flag_group_competition_duplicate_option_name
+)
diff --git a/dev-python/cython/Manifest b/dev-python/cython/Manifest
index 33395c6df4fe..2bf692bd2572 100644
--- a/dev-python/cython/Manifest
+++ b/dev-python/cython/Manifest
@@ -1,2 +1,3 @@
DIST cython-3.2.4.tar.gz 3280291 BLAKE2B f6f4baf07426ba46757a7b12ec05dd6781088e30d402d39dbe7e7e43b711ec11b9ecefd8bdca8e4c6a2920bc1c670e348328dc53ea074879b5e4e87159905d65 SHA512 bea1b21227632aa6d01239779e584e06d462ef76ae284abb36c0a70074260bd4909ee69d94db4e8c8fc9416d6949c3b53411844531a86cdbca75881b97f5d84b
DIST cython-3.2.5.tar.gz 3286381 BLAKE2B c3627213a2e62838b3aae120e0ab9cc33bb8f95a6c4ec9e10c6dc3e3ed00626b93bf3df3265ca601c4379c50598bec14b72de9bee9f8e8c96d125a175775086f SHA512 d11feb71bf2dbbbdffcac3e71e28eaa4d2583431f24e1722df4c0ab3fc33afc763ba4468e3bc7b8620b6d486357b8aa85dee248a195570329648c6b84312657a
+DIST cython-3.2.6.tar.gz 3286970 BLAKE2B 6f18f448b3bec5a73f7bb29ef10bf546f887e477e1269431b3b0b73d8c7a160dece08d9ae947f6fbbb94c14cc1c652ca10b2487d55ee7716983e45c6eb0a62be SHA512 85940b6313ceb83c06f2ddb67bfc5dfd7dc7957503cea2b68362eb71a0e594976bf86032b24a4db713c991bb7eae7cd31f6bb90b58449b0b36cff2423f954931
diff --git a/dev-python/cython/cython-3.2.6.ebuild b/dev-python/cython/cython-3.2.6.ebuild
new file mode 100644
index 000000000000..f6543dcd036f
--- /dev/null
+++ b/dev-python/cython/cython-3.2.6.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_FULLY_TESTED=( python3_{12..14} )
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 flag-o-matic multiprocessing pypi toolchain-funcs
+
+DESCRIPTION="A Python to C compiler"
+HOMEPAGE="
+ https://cython.org/
+ https://github.com/cython/cython/
+ https://pypi.org/project/Cython/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test test-full"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ test-full? (
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ ' "${PYTHON_FULLY_TESTED[@]}")
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch"
+)
+
+# disabled to workaround pkgcheck performance issue
+# https://github.com/pkgcore/pkgcheck/issues/782
+#distutils_enable_sphinx docs \
+# dev-python/jinja2 \
+# dev-python/sphinx-issues \
+# dev-python/sphinx-tabs
+
+python_configure_all() {
+ # https://gcc.gnu.org/PR125730 (bug #976797)
+ tc-is-gcc && [[ $(gcc-major-version) -ge 16 ]] && append-cflags -fno-ivopts
+}
+
+python_compile() {
+ # Python gets confused when it is in sys.path before build.
+ local -x PYTHONPATH=
+
+ if use elibc_musl ; then
+ # Workaround for bug #925318
+ local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152"
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # PYTHON_TESTED controls whether we expect the testsuite to
+ # pass at all, while PYTHON_FULLY_TESTED allows skipping before
+ # numpy is ported (and possibly other deps in future).
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON} (xfail)"
+ return
+ fi
+
+ # Needed to avoid confusing cache tests
+ unset CYTHON_FORCE_REGEN
+
+ # uses $(nproc) to additionally parallelize many OpenMP-based jobs,
+ # leading to overcommitting
+ local -x OMP_NUM_THREADS=1
+
+ tc-export CC
+
+ local testargs=(
+ -vv
+ -j "$(makeopts_jobs)"
+ --work-dir "${BUILD_DIR}"/tests
+
+ --no-examples
+ --no-code-style
+
+ # Fails to find embedded.c
+ --exclude 'embedded'
+ # coverage_installed_pkg needs dev-python/pip and doesn't like
+ # 'externally-managed' (bug #927995), but we don't really
+ # want automagic test dependencies at all, so just skip
+ # unimportant-for-us coverage tests entirely.
+ --exclude 'run.coverage*'
+ --exclude 'Cython.Coverage'
+ # Automagic on dev-python/python-tests, could add this in future
+ --exclude 'run.test_exceptions'
+ # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport)
+ # This only shows up as a failure with >=3.13.
+ --exclude 'subinterpreters_threading_stress_test'
+
+ # The fix for https://github.com/cython/cython/issues/6938
+ # changes these tests s.t. they break with our build layout.
+ --exclude 'build.depfile*'
+ )
+
+ # Keep test-full for numpy as it's large and doesn't pass tests itself
+ # on niche arches.
+ if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then
+ testargs+=(
+ --exclude 'run.numpy*'
+ --exclude 'run.ufunc'
+ --exclude 'numpy*'
+ )
+ fi
+
+ "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild b/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild
index 710b632eb55f..417eb3b9c867 100644
--- a/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild
+++ b/dev-python/dictdiffer/dictdiffer-0.9.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,6 +25,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
# Requires self to be already installed
#distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
diff --git a/dev-python/discid/Manifest b/dev-python/discid/Manifest
index 83dde3060e86..c7acbd698bab 100644
--- a/dev-python/discid/Manifest
+++ b/dev-python/discid/Manifest
@@ -1,2 +1,4 @@
DIST discid-1.4.0.tar.gz 36594 BLAKE2B 3b15f6c5f1ccf275a3fe6532d464340b013e64b49042ca0da50afb1c3f34e0908f376a9d6e43c3ec7b60680c7f1df298ec066c846d4ef27498af0f1a5c51a425 SHA512 1b43e298ddd1a91bde46394a02df31b5ef64fa6cd8896e35e3df30c7ef2cf24c5123cda4e1248d85ba85f311c90d0b8295c3e4ce1e80ee6ef3f1efec99053d74
DIST discid-1.4.0.tar.gz.provenance 9574 BLAKE2B 998f8056979fd56fa6d1c11adc46f11cea283ad2d4ae7fb7b303db3811356a1c55da8c45f6247df18e46ed3a2abad0d4ab273f35546576bcdfbb70b731aafa79 SHA512 8dd243bec966b3962e4cd2ef849bc80c189a2f4ed42a095903b1e2eda53cc0a33412ceddf221120ebad0cf1acfcf6147edd9a8fbd1b03eb09835ae75c09fab8f
+DIST discid-1.4.1.tar.gz 36750 BLAKE2B 7e2a0537947ab23ba95738322699874cf7dbfa0050f2663072891a8523215afd3575feb270f194d6f3a1568a532879bb57b0e28f916f875341ab4daddd47d85e SHA512 3485472a0c5ffaa5bc999414f2e5c28e7467ae7de867911a9be34c05d81bc9049a1b0d9659e7118d57143857b9abc078dc932c3cb6edee54ee071f8dd802b18a
+DIST discid-1.4.1.tar.gz.provenance 9775 BLAKE2B c73c9eee475de50ad5a54859cb560b5a3a3e8aadbd7389234ee353959090c76cc071b4735e295e84b73402ae4a98efea2f2a79a41c82c69bc0e671730e8c4100 SHA512 1e8f8a93b472156cc6199bb1645627a976f8e462a0687579c3b1283f5db5294fb95f42301df461df5e301e977b8e5a6faac91a64cd20cb495c321abf7307a581
diff --git a/dev-python/discid/discid-1.4.1.ebuild b/dev-python/discid/discid-1.4.1.ebuild
new file mode 100644
index 000000000000..0614c03c9821
--- /dev/null
+++ b/dev-python/discid/discid-1.4.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/metabrainz/python-discid
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for libdiscid"
+HOMEPAGE="
+ https://python-discid.readthedocs.io/en/latest/
+ https://github.com/metabrainz/python-discid/
+ https://pypi.org/project/discid/
+"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc ~x86"
+
+DEPEND="
+ >=media-libs/libdiscid-0.2.2
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+distutils_enable_sphinx doc \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-rtd-theme
+
+python_test() {
+ "${EPYTHON}" -m unittest -v test_discid.TestModule{Private,} ||
+ die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/indexed-gzip/indexed-gzip-1.10.3.ebuild b/dev-python/indexed-gzip/indexed-gzip-1.10.3.ebuild
index 1f2b4e4abdc9..28c6e7a6f32b 100644
--- a/dev-python/indexed-gzip/indexed-gzip-1.10.3.ebuild
+++ b/dev-python/indexed-gzip/indexed-gzip-1.10.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/jwcrypto/Manifest b/dev-python/jwcrypto/Manifest
index 109b2e40fa9d..e8c483c08cd5 100644
--- a/dev-python/jwcrypto/Manifest
+++ b/dev-python/jwcrypto/Manifest
@@ -1 +1,2 @@
DIST jwcrypto-1.5.7.tar.gz 89535 BLAKE2B 39348317a4ee0884928f24e8d11737739c4e77cb165e644897c0a68515f13acde3826b4b54e06e2db68b2b60cf01d406a5a7c969d9dcd8fc828d9a82cb123247 SHA512 35ef99ea1b4e009d82dc260bf1bde215165e7e27c6c0352b1be2b7db2200962433665622c6b775cc99d4b01bf47743755308fe90daf00f8567f994776b50bb76
+DIST jwcrypto-1.5.8.tar.gz 90772 BLAKE2B b91b810466e527d5a121b021f5cb8c4f952b88aebe6a0c3e8cff4afd285c135b71c45254dd2d821f2fe645f02f3a78763c819f84c53033f9100bc8969c37970d SHA512 b7f63049583e6d468952d46f41ce80258868a0bd74b7123bbfe02b44f01668be550247b67374db42b24bc2d25af5f71abe97b857fb2842d877cc6217a888f869
diff --git a/dev-python/jwcrypto/jwcrypto-1.5.8.ebuild b/dev-python/jwcrypto/jwcrypto-1.5.8.ebuild
new file mode 100644
index 000000000000..f68fc14e4136
--- /dev/null
+++ b/dev-python/jwcrypto/jwcrypto-1.5.8.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Implements JWK,JWS,JWE specifications using python-cryptography"
+HOMEPAGE="
+ https://github.com/latchset/jwcrypto/
+ https://pypi.org/project/jwcrypto/
+"
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-39.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_install() {
+ distutils-r1_src_install
+ rm -r "${ED}/usr/share/doc/jwcrypto" || die
+}
diff --git a/dev-python/mmtf-python/mmtf-python-1.1.3.ebuild b/dev-python/mmtf-python/mmtf-python-1.1.3.ebuild
index 8893cb1bb3c6..eb308f01bfc7 100644
--- a/dev-python/mmtf-python/mmtf-python-1.1.3.ebuild
+++ b/dev-python/mmtf-python/mmtf-python-1.1.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/numexpr/numexpr-2.14.1.ebuild b/dev-python/numexpr/numexpr-2.14.1.ebuild
index 87df94d6f16f..399435a5c0d7 100644
--- a/dev-python/numexpr/numexpr-2.14.1.ebuild
+++ b/dev-python/numexpr/numexpr-2.14.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 3665f932974b..68146daa7765 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -2,3 +2,4 @@ DIST openstacksdk-4.13.0.tar.gz 1341338 BLAKE2B 2b7b74c7fa3f94aecf67b68ff48b24f8
DIST openstacksdk-4.14.0.tar.gz 1357501 BLAKE2B 574036f4827e045dae7da7058e86ab384614b03a669f25e8bdafc05d5f773265bb9282ddc764851d7391fd442f5b8c0f94c0e19ddc963c4baea13acd3c47fd3f SHA512 baf6234a52ddd1cffe1126f59fbc2daae014667fbbdd0dd8d65866e3f89da2372de00b7b6d54d486cd2a47d28d23c0e3ae9affcb79b4bc124270179eb67b7afc
DIST openstacksdk-4.15.0.tar.gz 1379204 BLAKE2B 2a1405af243909af4f7bfe356b42976a5ac2e21d9962da133971cfed087bfb8d387ae800ff420154bd189b97f148c7b0d517f1083e32da8a2ff3fe59315aad37 SHA512 ec4b16322db900c83a37a98a2ce59396dc82d69a5f6552a852422a4ceb9d333efe67c215290d051c8c0fcc14dec652f9db50930676101653d431e91f89a444dd
DIST openstacksdk-4.16.0.tar.gz 1397114 BLAKE2B 3194184d19b96171f7c83fb5065d11d175b216c0fbc4f5286290dd5b680de4dd68b9e836bd3c12f519625dd2fa56d1a02a383539e6e9390eb63cd39eb0658d83 SHA512 669751049e7737a350c95fde28f3f1d78223bebf131ac7d9986a3530f4a92c5fbf71c5c713a45df4f70225fefbed98f4f233a584b6b285d57cd74e264b31cbb5
+DIST openstacksdk-4.17.0.tar.gz 1399124 BLAKE2B 0dc91a7afc378edf6e13e658832bba5ce7359fc32d13c1d7f106557b1ec5e63908b1dcf9c5bde6378c3f9f49f1f0aecee4b1a2e0538e6bf09fd0c58b865e3340 SHA512 053a9bd603d9b2aa936d00233af6467337514d614b7c0aa5d16adeac530f3aca142636ff87745a6fee033c89909eaa77bf961e007d4c3319ebe38468b25c1d1a
diff --git a/dev-python/openstacksdk/openstacksdk-4.17.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.17.0.ebuild
new file mode 100644
index 000000000000..fc37787b90c1
--- /dev/null
+++ b/dev-python/openstacksdk/openstacksdk-4.17.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A collection of libraries for building applications to work with OpenStack"
+HOMEPAGE="
+ https://opendev.org/openstack/openstacksdk/
+ https://github.com/openstack/openstacksdk/
+ https://pypi.org/project/openstacksdk/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
+ >=dev-python/decorator-4.4.1[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-1.21[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-5.10.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.8.1[${PYTHON_USEDEP}]
+ >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3[${PYTHON_USEDEP}]
+ >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus-client-0.4.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Internet?
+ sed -e 's:test_create_dynamic_large_object:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+
+ # TODO
+ sed -e 's:test_generate_form:_&:' \
+ -e 's:test_create_static_large_object:_&:' \
+ -e 's:test_object_segment_retries:_&:' \
+ -e 's:test_object_segment_retry_failure:_&:' \
+ -e 's:test_slo_manifest_retry:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+ sed -e 's:test_servers:_&:' \
+ -i openstack/tests/unit/test_stats.py || die
+
+ # unhappy about paths due to test runner
+ sed -e 's:test_method_not_supported:_&:' \
+ -i openstack/tests/unit/test_exceptions.py || die
+ sed -e 's:test_repr:_&:' \
+ -i openstack/tests/unit/test_resource.py || die
+
+ # requires hacking
+ rm openstack/tests/unit/test_hacking.py || die
+
+ # fragile warning-based tests
+ sed -e 's:test_unsupported_version_override:_&:' \
+ -i openstack/tests/unit/test_missing_version.py || die
+ sed -e 's:test_create_unknown_proxy:_&:' \
+ -i openstack/tests/unit/test_connection.py || die
+
+ # stupid test checking if they pin to the newest os-service-types,
+ # except they don't actually do
+ sed -e 's:test_ost_version:_&:' \
+ -i openstack/tests/unit/test_utils.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstack/tests/unit
+}
diff --git a/dev-python/opentelemetry-api/Manifest b/dev-python/opentelemetry-api/Manifest
index 68ba9ab6af7b..003bbedfd577 100644
--- a/dev-python/opentelemetry-api/Manifest
+++ b/dev-python/opentelemetry-api/Manifest
@@ -1 +1,2 @@
DIST opentelemetry-python-1.42.1.gh.tar.gz 1552607 BLAKE2B 52882e5f620dee666845d0b7f1205edad87e08a6a8f6c6695d7719beb9948da46aed3207b4cbf5ffbc2af2461b19e504b14772e027aca2ca6eeb2252c63b1a35 SHA512 35322b852f29c9cda8180e1959121aa07b48ea67f0173bd1ef49834de1fa6cb0c2ce9275d5578a57c3aa1523fc1daa96bf84f7c720a64d1db43513c9d9b8744e
+DIST opentelemetry-python-1.43.0.gh.tar.gz 1601072 BLAKE2B 9ea017308ecc0e3d4b00b86bf384c8737341babe5690defd33f0455af248052a4492bcaa793ea5a2bdc7a2d1cc27a708631651b232bda788fb535a7581bf844a SHA512 ec8b5862f9bc8aaa60ff765cbdf72ce488ea8b04efa49549901d73b909f5f66a187e8e345ac8b085fdff03207787539ff6a6f75ceb8fdbc056a5de5c3c3619ab
diff --git a/dev-python/opentelemetry-api/opentelemetry-api-1.43.0.ebuild b/dev-python/opentelemetry-api/opentelemetry-api-1.43.0.ebuild
new file mode 100644
index 000000000000..3ddcf7f2567a
--- /dev/null
+++ b/dev-python/opentelemetry-api/opentelemetry-api-1.43.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P="opentelemetry-python-${PV}"
+DESCRIPTION="OpenTelemetry Python API"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-api/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in opentelemetry-semantic-conventions opentelemetry-sdk \
+ tests/opentelemetry-test-utils
+ do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest
+}
diff --git a/dev-python/opentelemetry-sdk/Manifest b/dev-python/opentelemetry-sdk/Manifest
index 68ba9ab6af7b..003bbedfd577 100644
--- a/dev-python/opentelemetry-sdk/Manifest
+++ b/dev-python/opentelemetry-sdk/Manifest
@@ -1 +1,2 @@
DIST opentelemetry-python-1.42.1.gh.tar.gz 1552607 BLAKE2B 52882e5f620dee666845d0b7f1205edad87e08a6a8f6c6695d7719beb9948da46aed3207b4cbf5ffbc2af2461b19e504b14772e027aca2ca6eeb2252c63b1a35 SHA512 35322b852f29c9cda8180e1959121aa07b48ea67f0173bd1ef49834de1fa6cb0c2ce9275d5578a57c3aa1523fc1daa96bf84f7c720a64d1db43513c9d9b8744e
+DIST opentelemetry-python-1.43.0.gh.tar.gz 1601072 BLAKE2B 9ea017308ecc0e3d4b00b86bf384c8737341babe5690defd33f0455af248052a4492bcaa793ea5a2bdc7a2d1cc27a708631651b232bda788fb535a7581bf844a SHA512 ec8b5862f9bc8aaa60ff765cbdf72ce488ea8b04efa49549901d73b909f5f66a187e8e345ac8b085fdff03207787539ff6a6f75ceb8fdbc056a5de5c3c3619ab
diff --git a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.43.0.ebuild b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.43.0.ebuild
new file mode 100644
index 000000000000..9b5d6e0bef64
--- /dev/null
+++ b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.43.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P="opentelemetry-python-${PV}"
+DESCRIPTION="OpenTelemetry Python SDK"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-sdk/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ ~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
+ ~dev-python/opentelemetry-semantic-conventions-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-rerunfailures )
+# Tests cannot handle xdist with high makeopts
+# https://bugs.gentoo.org/928132
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # TODO
+ tests/metrics/test_measurement_consumer.py::TestSynchronousMeasurementConsumer::test_collect_deadline
+)
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in tests/opentelemetry-test-utils; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest tests
+}
diff --git a/dev-python/opentelemetry-semantic-conventions/Manifest b/dev-python/opentelemetry-semantic-conventions/Manifest
index 68ba9ab6af7b..003bbedfd577 100644
--- a/dev-python/opentelemetry-semantic-conventions/Manifest
+++ b/dev-python/opentelemetry-semantic-conventions/Manifest
@@ -1 +1,2 @@
DIST opentelemetry-python-1.42.1.gh.tar.gz 1552607 BLAKE2B 52882e5f620dee666845d0b7f1205edad87e08a6a8f6c6695d7719beb9948da46aed3207b4cbf5ffbc2af2461b19e504b14772e027aca2ca6eeb2252c63b1a35 SHA512 35322b852f29c9cda8180e1959121aa07b48ea67f0173bd1ef49834de1fa6cb0c2ce9275d5578a57c3aa1523fc1daa96bf84f7c720a64d1db43513c9d9b8744e
+DIST opentelemetry-python-1.43.0.gh.tar.gz 1601072 BLAKE2B 9ea017308ecc0e3d4b00b86bf384c8737341babe5690defd33f0455af248052a4492bcaa793ea5a2bdc7a2d1cc27a708631651b232bda788fb535a7581bf844a SHA512 ec8b5862f9bc8aaa60ff765cbdf72ce488ea8b04efa49549901d73b909f5f66a187e8e345ac8b085fdff03207787539ff6a6f75ceb8fdbc056a5de5c3c3619ab
diff --git a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.43.0.ebuild b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.43.0.ebuild
new file mode 100644
index 000000000000..7b7a57f46e61
--- /dev/null
+++ b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.43.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+MY_P="opentelemetry-python-${PV}"
+DESCRIPTION="OpenTelemetry Semantic Conventions"
+HOMEPAGE="
+ https://opentelemetry.io/
+ https://pypi.org/project/opentelemetry-sdk/
+ https://github.com/open-telemetry/opentelemetry-python/
+"
+SRC_URI="
+ https://github.com/open-telemetry/opentelemetry-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/${PN}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ ~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ for dep in opentelemetry-sdk tests/opentelemetry-test-utils; do
+ pushd "${WORKDIR}/${MY_P}/${dep}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ epytest
+}
diff --git a/dev-python/opt-einsum/opt-einsum-3.4.0.ebuild b/dev-python/opt-einsum/opt-einsum-3.4.0.ebuild
index 31cd96eebb3a..551d889a3ccb 100644
--- a/dev-python/opt-einsum/opt-einsum-3.4.0.ebuild
+++ b/dev-python/opt-einsum/opt-einsum-3.4.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -26,4 +26,5 @@ BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/pulsectl-asyncio/Manifest b/dev-python/pulsectl-asyncio/Manifest
index c59d17efb319..de243e8dc60f 100644
--- a/dev-python/pulsectl-asyncio/Manifest
+++ b/dev-python/pulsectl-asyncio/Manifest
@@ -1,2 +1,3 @@
DIST pulsectl-asyncio-1.2.2.gh.tar.gz 19528 BLAKE2B 8b4ccf8a1509fddff19cf201dc9ff4cbf03aedc2ab47c6f4920f95072706051a0a9ab3704e4a4650be8ebce67682bff28d8dacdfac272c36019810eea358f01f SHA512 ccaa7ae14fd2ca7e9d6483efcb3d48f8364ed87ab99c700323c2f2d803986408394ae0fe83880d4d77b77daf17dfb58c6e9f94043a9b03ad643bff2e909a673a
DIST pulsectl-asyncio-1.3.0.gh.tar.gz 19393 BLAKE2B ebd07bb9335f3eb15a4dbe86f1c7cf5a357fd1354145a955adc1f74ebc813b697fd1033da3332b91d52ac4409dc3cdaf62ad2655e3c654fd639cf4f75eefbae6 SHA512 7f8997c855ca7f9b011950d471d37c3e45c011902c38bb094045e30056f5e21a19a1f423d8d3a3682e03dbb20318c877be6973ac7edeb35f8aed6fe7e49047df
+DIST pulsectl-asyncio-1.3.1.gh.tar.gz 19460 BLAKE2B f0b9f91da906a61ee6bb4f90afbd20cee4ca35330ce73d0787861dee7041ad0e27ef29a324e2dab2f1de9e5918eb81c7898b1cf319eb378d77cbd5c516026994 SHA512 9cb05612f150f6b041d41c0e9deb8d97680fbf2bc2fadc790d670b3801b23cc3f556fd73d5d62c0f9071a1d3cfdafe6a505301171dda512e7ba2162a52b96045
diff --git a/dev-python/pulsectl-asyncio/pulsectl-asyncio-1.3.1.ebuild b/dev-python/pulsectl-asyncio/pulsectl-asyncio-1.3.1.ebuild
new file mode 100644
index 000000000000..860363af38fa
--- /dev/null
+++ b/dev-python/pulsectl-asyncio/pulsectl-asyncio-1.3.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Asyncio frontend for pulsectl, Python bindings of libpulse"
+HOMEPAGE="
+ https://github.com/mhthies/pulsectl-asyncio/
+ https://pypi.org/project/pulsectl-asyncio/
+"
+# sdist is missing examples that are used in tests
+SRC_URI="
+ https://github.com/mhthies/pulsectl-asyncio/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pulsectl-23.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ media-sound/pulseaudio-daemon
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e 's:,<=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/python-snappy/python-snappy-0.7.3.ebuild b/dev-python/python-snappy/python-snappy-0.7.3.ebuild
index 51037c5c1382..ae70686b6bb4 100644
--- a/dev-python/python-snappy/python-snappy-0.7.3.ebuild
+++ b/dev-python/python-snappy/python-snappy-0.7.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/sabctools/Manifest b/dev-python/sabctools/Manifest
index 69bcfef4ea84..ee0c5db2f59f 100644
--- a/dev-python/sabctools/Manifest
+++ b/dev-python/sabctools/Manifest
@@ -1,3 +1,4 @@
DIST sabctools-8.2.6.gh.tar.gz 8974199 BLAKE2B cefafb57802e7d9b32b99de16b7df2745276c4602c7aa2f9f750bf2c741224b3a9180c2a9dd6d0e807c5297e2a70dbfb3784e546618536e7fa8d6273bc5d3684 SHA512 230a3c78a11d459703bb79d765ac5bf3e21ae239731ada73103e641af64c0cccd6f8e82d4a8a6016585c9935c93f9535cb5a0ead951f4f536a038fc2ebf056db
DIST sabctools-9.4.0.gh.tar.gz 9732762 BLAKE2B 1c54ffd605ed5f3839d697a6c8a372f2800e758b6d3f12e462b97ad2c19fd7643a9923cf8f4cc4766dc18f9993366fb2b0fd4ec2c9c423190dd73622276ccc7e SHA512 fc22a3f6bc195b4a4ec2c2ab24cab71dd5b3935f4825de7b35c4ae1cf3ac0a7236a9230f9a412ac18dddbf49f38afe6b81c47570a7a99292010d954a4b298ac3
DIST sabctools-9.4.1.gh.tar.gz 9732977 BLAKE2B bafe308baa5057c10237015f84630d9e628699aef1e9632d29b610e1be4fe65e4ce4050a251c5e4738bbb3c5e6aff034d550586dbbb47b29c203ffcbed057087 SHA512 336bb80c48421cb18589ad12447e8a2a9c8cf1d0fa0854a503019bcdf34b18d4631d0745da6b8f9ea03aa3b5bf8deb92348d3eb41ac8496ce8a71d4a227cae11
+DIST sabctools-9.5.0.gh.tar.gz 9734930 BLAKE2B a559bf35f73bf5811754e2280d6d5fa8f2914d1b22bc726b3adfb73c5c2cd29df2b777ee3a3295f86f5d7e828b491ab49136a62d191553fcb43cdf7b213661de SHA512 15d164dd8f4883e2d6132398b5cf5f01570a5271c1437b335bdf5beb664a928068b18c0345698b7a4eb6addec902dbc4a2d1bffaac4b431d449ffe9d415bc3c6
diff --git a/dev-python/sabctools/sabctools-9.5.0.ebuild b/dev-python/sabctools/sabctools-9.5.0.ebuild
new file mode 100644
index 000000000000..ec27e59ca3a8
--- /dev/null
+++ b/dev-python/sabctools/sabctools-9.5.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_PN="sabctools"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Module providing raw yEnc encoding/decoding for SABnzbd"
+HOMEPAGE="
+ https://github.com/sabnzbd/sabctools/
+ https://pypi.org/project/sabctools/
+"
+SRC_URI="
+ https://github.com/sabnzbd/${MY_PN}/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/portend[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( README.md doc/yenc-draft.1.3.txt )
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index 77553566b020..179cb0a49864 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,3 +1,4 @@
DIST stripe-15.1.0.tar.gz 1501673 BLAKE2B d494b52288d89a2ec4f42603a4502ae40391c1101a13f4bbd74f6a40e84885c2fdf519f2c41026ae7ac7bb609c446aca50e1ae65ab1661f9ad4538bd4ada6a2d SHA512 1e050e5c66ba4144adf9f07199987ed89c3618599b2cf03234e43df4dd95885089289ded57ed9e204403c84d13fe6242a7bfe7023e220afb206f9b6e6df9fe32
DIST stripe-15.2.0.tar.gz 1520207 BLAKE2B 90e810fea547afdf5db9c00bd1a522e02caac9bf9dde3f3e83f8143ada87bdeb4db3d5a6c774bbd956db230e46089a5754dd414deb02a244c2c4f7c96d2d3cdf SHA512 1959725b10e4068525bc31f1c0bbea9480ebb6ec59487cf0aec63c5aceeb24d3453a8a2d364300f55c7976655184f3b3d6cfb6d4adbcbfff7838ecdb5d54512c
DIST stripe-15.2.1.tar.gz 1520402 BLAKE2B 92d8aae6f9911db5c9e47512c37d0ea13819c5976e0c6e34a13469a1bd8182ebe8afe251ae191d5029cfd03b731ae9d8c37640d9cec088cdd19b85da05942246 SHA512 0712b879ebf9d12ecda58264d787986c2552a7158c2ffe2755962095a2df27d1b07629af417370356c7af3453a433e54b4a36c92e7a9a716af9fd6f3684bd4f9
+DIST stripe-15.3.0.tar.gz 1514134 BLAKE2B 14b8f2e09097c7e1495ca2d22de6a6f00f058ae93cd6c0f4b8d7860569dbfeb3bd0e1cc707282435efdc90fc923db7ec4ef697cf4ed5a3147fdc3119bbd26078 SHA512 0dcfe61ccc9ea56b8cf4da326a3e831f545533dd4858e7cdfcc2d789a44597a010e321df0e601aecd3cd2feb0986380fbda0a67ba10173e7de7f184546524d71
diff --git a/dev-python/stripe/stripe-15.3.0.ebuild b/dev-python/stripe/stripe-15.3.0.ebuild
new file mode 100644
index 000000000000..74c9bc04779f
--- /dev/null
+++ b/dev-python/stripe/stripe-15.3.0.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Stripe Python bindings"
+HOMEPAGE="
+ https://github.com/stripe/stripe-python/
+ https://pypi.org/project/stripe/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="telemetry"
+
+RDEPEND="
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.7.0[${PYTHON_USEDEP}]
+"
+# please bump dev-util/stripe-mock dep to the latest version on every bump
+BDEPEND="
+ test? (
+ >=dev-util/stripe-mock-0.201.0
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ net-misc/curl
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-mock )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ if ! use telemetry; then
+ sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_http_client.py::TestLiveHTTPClients::test_httpx_request_async_https
+ 'tests/test_integration.py::TestIntegration::test_async_raw_request_timeout[asyncio-aiohttp]'
+ # timing
+ tests/test_integration.py::TestIntegration::test_passes_client_telemetry_when_enabled
+ )
+
+ epytest tests
+}
+
+src_test() {
+ local stripe_mock_port=12111
+ local stripe_mock_max_port=12121
+ local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log"
+ # Try to start stripe-mock until we find a free port
+ while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do
+ ebegin "Trying to start stripe-mock on port ${stripe_mock_port}"
+ stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" &
+ local stripe_mock_pid=${!}
+ sleep 2
+ # Did stripe-mock start?
+ curl --fail -u "sk_test_123:" \
+ "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null
+ eend ${?} "Port ${stripe_mock_port} unavailable"
+ if [[ ${?} -eq 0 ]]; then
+ einfo "stripe-mock running on port ${stripe_mock_port}"
+ break
+ fi
+ (( stripe_mock_port++ ))
+ done
+ if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then
+ eerror "Unable to start stripe-mock for tests"
+ die "Please see the logfile located at: ${stripe_mock_logfile}"
+ fi
+
+ local -x STRIPE_MOCK_PORT=${stripe_mock_port}
+ distutils-r1_src_test
+
+ # Tear down stripe-mock
+ kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock"
+}
diff --git a/dev-python/textdistance/textdistance-4.6.3.ebuild b/dev-python/textdistance/textdistance-4.6.3.ebuild
index 794ae8db5306..e6fadda90726 100644
--- a/dev-python/textdistance/textdistance-4.6.3.ebuild
+++ b/dev-python/textdistance/textdistance-4.6.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -24,11 +24,11 @@ KEYWORDS="amd64 arm64 ~ppc64 ~riscv x86"
BDEPEND="
test? (
- dev-python/hypothesis[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( hypothesis )
distutils_enable_tests pytest
EPYTEST_IGNORE=(
diff --git a/dev-python/uncertainties/uncertainties-3.2.4.ebuild b/dev-python/uncertainties/uncertainties-3.2.4.ebuild
index ff561b914c28..46558f4c7f4f 100644
--- a/dev-python/uncertainties/uncertainties-3.2.4.ebuild
+++ b/dev-python/uncertainties/uncertainties-3.2.4.ebuild
@@ -29,6 +29,17 @@ BDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
+python_test() {
+ local EPYTEST_DESELECT=()
+ if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ doc/user_guide.rst::user_guide.rst
+ )
+ fi
+
+ epytest
+}
+
pkg_postinst() {
optfeature "numpy support" dev-python/numpy
}
diff --git a/dev-python/xxhash/Manifest b/dev-python/xxhash/Manifest
index 1562f33b237a..9feb08cf58b5 100644
--- a/dev-python/xxhash/Manifest
+++ b/dev-python/xxhash/Manifest
@@ -1,2 +1,4 @@
DIST xxhash-3.7.0.tar.gz 82022 BLAKE2B 31baab7dd95534b2848b86a4b580d13a3511b8511c048997bd590809fb544f31618f000a024e6a4e055e890e59d832b96cfa59ab77969d6ff26f2cfb34569477 SHA512 e98b32376c85d474465d2a2685f4837e03d53e000f911b1e2fb1eeaa69512242abce1b8db475a8bf0c79d4ecb1c640b2394c1fbd3e119221c556385c495be2d8
DIST xxhash-3.7.0.tar.gz.provenance 9474 BLAKE2B 1f78c242759aa4255d1d4f243a1eaa3c4ef1e8b0ee4c85d2ccad6775d5c6199edd915d0b5679d54c904c72eaa4a93e7df167433778f47983946a90b03b491123 SHA512 793f12343967fc81e259d98ac6c73cce9fd72e8318e21714e14e34935198aa9394fa1e36a9c6ca3ee9a525d5fd8eea50404989ffdc268897698da8893b874fc0
+DIST xxhash-3.7.1.tar.gz 82993 BLAKE2B e90059f39f7a23d65f3f52b6b381a5e2d6e55e37fc95fb94f06d7ae5bc3d43ae8a56b70e674391f058bf426e7a46e9cfaaf7aed55486fe264f67c9462ebb24da SHA512 605688402db33aa98f45a3d8b7c2fcd24514f39327aa524fb305a086badd35f83a3f533e20d77157ccbb0f484b8c08dc10784b4b0ad100eb1e450f05ce3473c9
+DIST xxhash-3.7.1.tar.gz.provenance 9804 BLAKE2B 7f779e0d5f36853f40373749fe9a1bdfea7a4545af365350d26db1562149c80d4a6ba68b40baa30e0e7d3e58276cd949745e1ffbcbb140fade41123f3fb27ae2 SHA512 a85dbf40d1511eb0905d7d0ce791dab6e129540f1fa11a28017cbc96f45be5327a63597cea1ff9771d497b86de81ea8274826e2d65cca605021b26b39eb2ddfb
diff --git a/dev-python/xxhash/xxhash-3.7.1.ebuild b/dev-python/xxhash/xxhash-3.7.1.ebuild
new file mode 100644
index 000000000000..06f0885ea97d
--- /dev/null
+++ b/dev-python/xxhash/xxhash-3.7.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/ifduyue/python-xxhash
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python binding for the xxHash library"
+HOMEPAGE="
+ https://github.com/ifduyue/python-xxhash/
+ https://pypi.org/project/xxhash/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+
+DEPEND="
+ >=dev-libs/xxhash-0.8.0
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+distutils_enable_tests unittest
+
+python_configure_all() {
+ export XXHASH_LINK_SO=1
+}
+
+python_test() {
+ cd tests || die
+ eunittest
+}