summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/astroid/Manifest2
-rw-r--r--dev-python/astroid/astroid-4.3.3.ebuild86
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.106.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.106.ebuild80
-rw-r--r--dev-python/charset-normalizer/Manifest2
-rw-r--r--dev-python/charset-normalizer/charset-normalizer-3.5.2.ebuild43
-rw-r--r--dev-python/cryptography/Manifest13
-rw-r--r--dev-python/cryptography/cryptography-50.0.2.ebuild (renamed from dev-python/cryptography/cryptography-50.0.0.ebuild)12
-rw-r--r--dev-python/fastapi/Manifest1
-rw-r--r--dev-python/fastapi/fastapi-0.142.2.ebuild124
-rw-r--r--dev-python/gitpython/Manifest2
-rw-r--r--dev-python/gitpython/gitpython-3.2.0.ebuild74
-rw-r--r--dev-python/google-api-python-client/Manifest4
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.201.0.ebuild (renamed from dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild)3
-rw-r--r--dev-python/google-auth/Manifest2
-rw-r--r--dev-python/google-auth/google-auth-2.59.1.ebuild63
-rw-r--r--dev-python/pdm-backend/Manifest1
-rw-r--r--dev-python/pdm-backend/pdm-backend-2.5.0.ebuild71
-rw-r--r--dev-python/pyflakes/Manifest1
-rw-r--r--dev-python/pyflakes/pyflakes-4.0.1.ebuild22
-rw-r--r--dev-python/pygobject/files/Skip-test-detecting-cycle-among-base-classes-typeerr.patch21
-rw-r--r--dev-python/pygobject/files/Skip-test-using-dbus-in-sandbox.patch21
-rw-r--r--dev-python/pytest-bdd/Manifest1
-rw-r--r--dev-python/pytest-bdd/pytest-bdd-9.0.0.ebuild41
-rw-r--r--dev-python/python-tests/Manifest9
-rw-r--r--dev-python/python-tests/python-tests-0.3.14.8.ebuild75
-rw-r--r--dev-python/python-tests/python-tests-3.12.15.ebuild71
-rw-r--r--dev-python/python-tests/python-tests-3.13.16.ebuild71
-rw-r--r--dev-python/python-tests/python-tests-3.14.8.ebuild74
-rw-r--r--dev-python/sabctools/files/sabctools-8.2.6-py314testfix.patch46
-rw-r--r--dev-python/selenium/Manifest3
-rw-r--r--dev-python/selenium/selenium-4.50.0.ebuild151
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-30.21.0.ebuild (renamed from dev-python/sqlglot/sqlglot-30.19.0.ebuild)0
-rw-r--r--dev-python/stripe/Manifest4
-rw-r--r--dev-python/stripe/stripe-16.0.0.ebuild (renamed from dev-python/stripe/stripe-15.4.0.ebuild)2
-rw-r--r--dev-python/thrift/Manifest2
-rw-r--r--dev-python/thrift/thrift-0.25.0.ebuild (renamed from dev-python/thrift/thrift-0.23.0.ebuild)25
-rw-r--r--dev-python/urwid/Manifest2
-rw-r--r--dev-python/urwid/urwid-4.2.3.ebuild43
42 files changed, 1217 insertions, 108 deletions
diff --git a/dev-python/astroid/Manifest b/dev-python/astroid/Manifest
index e6726a186465..344aae12adf1 100644
--- a/dev-python/astroid/Manifest
+++ b/dev-python/astroid/Manifest
@@ -6,3 +6,5 @@ DIST astroid-4.3.1.tar.gz 439530 BLAKE2B c0225638bf18e097977f8a6e341071c26840f1b
DIST astroid-4.3.1.tar.gz.provenance 9887 BLAKE2B a232ac102e36420e5487b5476428ccd7cfa5bb0d1d877cf4d1f0a0c6f7d2345663df23bbaafd3adab992f8bd941a6b0b3a852d6061264ccdc8db3329f3aa35d3 SHA512 3eb5e5ccb6870f2842990afd85e35df2747aadae3a4434f6483baad560cdc4800a75240d649466c818fc7e7173981ff777055534efc4908c19298f54cb750b2b
DIST astroid-4.3.2.tar.gz 441025 BLAKE2B 0d6cb9e7e6e948b4482741ea979ab57f68f6033e482b029ebaaab9091a57ee9343c2f14709da45ad4ff280420bf71afb4645851c85324b23fbad29c773db78a3 SHA512 3ee04381a84372da64d8d6da430fe388d24d7f14b371bafb4daf0149d6a43b9aded8d005659877bd586d5e84375c444750b20c35c51355379ef4d9b503c8f901
DIST astroid-4.3.2.tar.gz.provenance 9460 BLAKE2B 5d49cbf84588e34e40022b30d7f954f1fd371091a5dea295e29b511da84f61c90867a27d224bea1fa1837f24df8c897a1bac71d73be9daac0c454be3b90972f8 SHA512 fa5f846fcf8edb37d8794ec24f26471c831eba617cc5558942853742bc6e22614cc3ef880ad20aec1aaedc3cd74bbbb1327ea1349d7b499dbda39f3d5d6edf98
+DIST astroid-4.3.3.tar.gz 441522 BLAKE2B 30918e85e936f789605f543076e7bba632914a7f597b671ea4e462ee6dda0f2dee6e8d0ac1708b029ea93101095ea4c95858fb88b08e8e47d170551965d757a1 SHA512 64393221fed99bd2bb23a6efb5db9d3471027b677aa5c5eea2b4d0145acf07b8b29be2b6541b03d5835521e571064b4574d9fe65df163f19cc8bf7882ee60ec3
+DIST astroid-4.3.3.tar.gz.provenance 9809 BLAKE2B 27632f59fb14daf9ecb024764801b96887155a72e0e9811fe6c237a84ab8d8cc17eb80bd6ce257948e4895bd99342cdf32d9bb1e3fa33120de6ffb1e8f153070 SHA512 181be6ddc0aab7cc1612438bd4042dabead8b714c512b1151a6c8a88d653d27222043dd4d41c24e83894cbed663af3970f9ef52ac0aff474b38bc1e89452b511
diff --git a/dev-python/astroid/astroid-4.3.3.ebuild b/dev-python/astroid/astroid-4.3.3.ebuild
new file mode 100644
index 000000000000..a262de696687
--- /dev/null
+++ b/dev-python/astroid/astroid-4.3.3.ebuild
@@ -0,0 +1,86 @@
+# 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/pylint-dev/astroid
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="
+ https://github.com/pylint-dev/astroid/
+ https://pypi.org/project/astroid/
+"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# dev-python/regex isn't available for pypy
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/attrs[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.17.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/regex[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+python_test() {
+ local EPYTEST_IGNORE=()
+ local EPYTEST_DESELECT=(
+ # hangs randomly
+ tests/test_nodes.py::AsStringTest::test_recursion_error_trapped
+ # no clue why they're broken
+ tests/test_modutils.py::GetModulePartTest::test_known_values_get_builtin_module_part
+ # TODO
+ tests/test_builder.py::BuilderTest::test_data_build_error_filename
+ # numpy-2 (https://github.com/pylint-dev/astroid/issues/2442)
+ tests/brain/numpy/test_core_einsumfunc.py::test_numpy_function_calls_inferred_as_ndarray
+ tests/brain/numpy/test_core_fromnumeric.py::BrainNumpyCoreFromNumericTest::test_numpy_function_calls_inferred_as_ndarray
+ tests/brain/numpy/test_core_multiarray.py::BrainNumpyCoreMultiarrayTest::test_numpy_function_calls_inferred_as_ndarray
+ tests/brain/numpy/test_core_numerictypes.py::NumpyBrainCoreNumericTypesTest::test_datetime_astype_return
+ tests/brain/numpy/test_core_numerictypes.py::NumpyBrainCoreNumericTypesTest::test_generic_types_are_subscriptables
+ tests/brain/numpy/test_core_umath.py::NumpyBrainCoreUmathTest::test_numpy_core_umath_functions_return_type
+ tests/brain/numpy/test_core_umath.py::NumpyBrainCoreUmathTest::test_numpy_core_umath_functions_return_type_tuple
+ # old pythons only
+ tests/brain/test_dataclasses.py::test_pydantic_field
+ tests/test_regrtest.py::NonRegressionTests::test_numpy_distutils
+ # -Werror, sigh
+ tests/test_nodes.py::test_deprecated_nodes_import_from_toplevel
+ )
+
+ if ! has_version "dev-python/mypy[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/test_raw_building.py
+ )
+ fi
+
+ case ${EPYTHON} in
+ python3.15)
+ EPYTEST_DESELECT+=(
+ tests/brain/test_brain.py::TypingBrain::test_typing_object_notsubscriptable_3
+ tests/brain/test_dataclasses.py::test_kw_only_sentinel
+ tests/test_regrtest.py::test_regression_parse_deeply_nested_parentheses
+ )
+ ;;
+ esac
+
+ if ! has_version "dev-python/pkg-resources[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ # tests a package using pkg_resources
+ tests/test_manager.py::AstroidManagerTest::test_identify_old_namespace_package_protocol
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index c7239a06bae1..c708a331fa37 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,6 +1,7 @@
DIST boto3-1.43.103.gh.tar.gz 1242075 BLAKE2B 907fe54732510a077b049526c5524b1d774c411656aacf5f8ab26619c449fa81b16502aca7a1e69f22d87d12e1deeef526fb55d07ddec432e743df36a514b6ac SHA512 85156ed2492c4eac9dd9c52e71cf6d33431adeb9969f584cbfb0aab9c15080a34f1561f9077f509811daa6561d3ae869d4518764ce7a7f0b3d1a74c15073bb74
DIST boto3-1.43.104.gh.tar.gz 1244023 BLAKE2B 7534126599f77fcbb7c4223cb961d753491a24b3ad377cf41fc87a844e46f40c7d7e148747a3b60a137b1e768a42ca52500db77be0f30b3501b6da974d95b119 SHA512 8219aa7a87a7840c4b81ff063888b8cf6300e17474aff320e794a7d9128247b167ada9b68811813b355c370398bd7b41b698a4930836da8e29637a4c0a4833eb
DIST boto3-1.43.105.gh.tar.gz 1246106 BLAKE2B db3c814e94337fb5c1606dc2d6b553fdccb4247560887397cda324d0e975156ac56485cb5e96ff4d4a6140c56cb779be3b91920b522084972d68c78e1f89b7a3 SHA512 ae05d2b6510b48bfa8a294c8a077e7a43a7c47c8b7f331ce4db3c53ab79194a008ee15b8a7f1ce2febb0e362ff4afd251b1b40064f6e25ce900b16aa46b8916d
+DIST boto3-1.43.106.gh.tar.gz 1247663 BLAKE2B 94e62a747d2594c2240e8f0e74ca33e11f627c0251fe2bb281811fb02d0780a56099ff1211e55c90802509e488f13ff1b605f4c517ff45267aac2a297197cb58 SHA512 919fd973d279c6620b60262abe3ed13799cd26232a4e0380664c3d0cbca73617a35d00036b7f76887fc22680c1e83e7f84d6ea63ac80843ad83abbcd82697c75
DIST boto3-1.43.78.gh.tar.gz 1213393 BLAKE2B b3e4188ba53609873bf6613d5667792d24634d728dfe0e0588917ade93c4d6c9a5a28d2e46bd5ca314723604a9cab9a4fae7ca1e6f9e496cc29671bc68849d7e SHA512 c98ede06cf4934089ba4a62c4fb03da692a5f9e2a415728e9f51979e33942229d8f4cd6fa02ac229b360b63a930fd91890f2ed645d17011d4a42e236943fd780
DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46bee541110e51fdcd231c60cac0452f4cdfec58ea4041757835c195cd2b8becb3c4e9fd24ad7bc306d90b16af082f63 SHA512 ed110edd551138c5d63ab7ead46a4c9ddb410dea1b5e642045102936af22c4208f357f79fc994434fc6a7df7c16aba99052508103bad7599f8cc558ae1c5f842
DIST boto3-1.43.89.gh.tar.gz 1225424 BLAKE2B 625bb37a542644c8fe37aab42a115bf8be2e36373d7f6149dcc7e150e327c75b334ef480897be1d4954809b233a47e02854d7b28b4a3904f0e5cdcea3f0440d7 SHA512 1c04fd6df819abbe60d551c6d706f7254fe6d6758e95fd53ec70d4dd892b6f7bf69981cb001fc6ca5bc5885f083718b80a4fd045b146e7f4add16a50ac3a9d38
diff --git a/dev-python/boto3/boto3-1.43.106.ebuild b/dev-python/boto3/boto3-1.43.106.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.106.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 5132594a62d4..9d7910cdb987 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,6 +1,7 @@
DIST botocore-1.43.103.gh.tar.gz 17299294 BLAKE2B d589d82cd6d0e1cb53280c606e04159291910f0eb5276d8dc158ae5bdae9e8b866a36f29eb87e7d545c63f73880c4b93edb6690f35c64bdacc48ca8f8825f4e0 SHA512 2d6f2991428ee3d6fd7fd7cc2d1cf28eabcd0732c73d8fda48da8a28c2c2d1a89296800c20ba3769e2b85ad5663484532428d6906eef48f825b8bdcaaababa92
DIST botocore-1.43.104.gh.tar.gz 17309295 BLAKE2B c57dd3732e4970d0071aea6aa2587802ea62570d0ef51a0de450580e5c1bfa2f09597124cf59c342b6b7670c6b74bffa867154e4deed66fb633a18cff9582a00 SHA512 e00fc7568b208a32f8eb0ba301c121ff43eec522d8ee3719c1825d4609dc4f5be5131ad8160e02b908310f6566fa9897f40b70beb99bf9bc4c29a09b893585d5
DIST botocore-1.43.105.gh.tar.gz 17320228 BLAKE2B 1d4dc83a26343af7d5fa75cec3cc18f8a01cf8f7b155a90c02d889082627f71f47af143fdda3fb4b678c0d83d01ed7cd0d66075e873db0ec9f739771a72dc4c3 SHA512 9fdb623d22771689611be50bc40ddaa5ef4c1af0aa3c3cc7a12f98e379fe44077ce470c966e9ea2cb349d4af4ac4b0d4def63b9b1acb7dc20be98476cd32ad22
+DIST botocore-1.43.106.gh.tar.gz 17330996 BLAKE2B 3ffd1037830711e44d5f71bffa40a70263d7b8fbf99865a7dfdeff16fefb179c28e30911ed9f542fc48d40a350912cb741f00f3db3b793431424476bf84aef6a SHA512 06fbfa4afcf52c999c36acd125562fadd821bceecbf65628ef7efb2afaf21c1bea6aa0dfea93c7876bb184e0312b14a752e484237afafcbf5fac8f21a8c83339
DIST botocore-1.43.78.gh.tar.gz 17008224 BLAKE2B 137656d64f62025ca47f03c48ba84aa7eccae9dbc752c81f909c3c3f12dd843bb40173075fc7e255492385d8ea8824da08e5d3155bb5ff1dbfd62c858c0a057f SHA512 bd65c7fe451ef0b3bef21e25e557aa37748ca01f71e567b31b852ac356d323f1cfa6dd0e920eff7c52e0db879a34cf99eed6c1b841dfa6065e139362702f9d13
DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b80cc279627174ac96f9b79d85418ecc0442fbd27d7e79ccdf12526ac02489fde4254e360f216103f3cd5ff050b3cf1a838 SHA512 618c0ef0fc89879ee6900606e3378b2876901c4a63ede52529de12898a65e34fc41a8f0ad8ab682b7788626176f9b86904e257b63d88be9d58c53116918b1d12
DIST botocore-1.43.89.gh.tar.gz 17111395 BLAKE2B 25837125b5d9477b011c065594ffa1b49a2f5d0cf76e1c664aa5401d50dfe8dd9573d0ab3a60f739c796c32965a7dd7608e302a284bfcc97d9f7f4a8a2b698e3 SHA512 c9c0b7636fb7595d4ff3ee2ec7e1ef8ad3000e9e453ce6edb827a1152109fc2fb6b226bd08f27653fc1436444c39be6f160fa4f7c34eb50a7384988686933590
diff --git a/dev-python/botocore/botocore-1.43.106.ebuild b/dev-python/botocore/botocore-1.43.106.ebuild
new file mode 100644
index 000000000000..14ad5b2d1f27
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.106.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ # The test suite can eat up a lot of memory when running via xdist,
+ # and slow down some tiny tests. Let's just run a safe subset
+ # of tests known to be slow-ish in parallel, and the rest in series.
+ local parallel_tests=(
+ tests/functional/*/
+ tests/functional/test_event_alias.py
+ tests/functional/test_[cds-z]*.py
+ tests/unit/
+ )
+
+ epytest "${parallel_tests[@]}"
+
+ local EPYTEST_IGNORE=( "${parallel_tests[@]}" )
+ EPYTEST_XDIST= epytest tests/functional
+}
diff --git a/dev-python/charset-normalizer/Manifest b/dev-python/charset-normalizer/Manifest
index fcc2c48ba441..ead8e04afa9b 100644
--- a/dev-python/charset-normalizer/Manifest
+++ b/dev-python/charset-normalizer/Manifest
@@ -2,3 +2,5 @@ DIST charset_normalizer-3.4.9.tar.gz 152439 BLAKE2B 13aaf1defc6b8f5f03b32726e1e7
DIST charset_normalizer-3.4.9.tar.gz.provenance 9732 BLAKE2B 9c588768b3658889f0bb9bb192718b9a5ecde297cfb46bee07344309921b149f33181f8d81be0f23bf6de7945f9f2331a834058aa0bb90e8ffa9e22b082f6262 SHA512 d1a3171078f5270ea76c48f9cf31eb620b72b2edc921abedbdbaf87e4447fc73ee1884dad99442ad97aeb7402981c447c8ead0cecdb145cf2908ca5e54e4ad34
DIST charset_normalizer-3.5.1.tar.gz 171764 BLAKE2B 5dabe8b2c99f3a1cdb2f355cc6d3236ef0b03e285490fe2309de52a2f989a1d4752a1ed963da78261a0b66d4b4d4e9d0812d2b755f4b40d30e512764708cf2bb SHA512 9f77c6eb941e7b718ccfeefc0febbf964c9b4992fc14c9d64efac1da346f24f1c0b5b82a094512f2ab220232b2b269614ca34e59b93eb05e57e13cd85f7167fb
DIST charset_normalizer-3.5.1.tar.gz.provenance 9922 BLAKE2B 038dec5269349c0a799acc33653b21cfebe738738f45213103c25c656a61b0811f9fb0d58019ab02bf11b5b8833c7cbabaf26428aa5ccd95c1d9118a91571230 SHA512 f479b2bc5996402de02b4d6b69c953d937eb42a1e668da43b6fa352f3270733c12d04a90f2d59c7ae16c8ffaaa3816bbc3021c5d27dc4462ab446e24d7ccc74a
+DIST charset_normalizer-3.5.2.tar.gz 172659 BLAKE2B 9d686211e4d8bd9cad1709a6201d733356222f14ee977c8384305f4931ff369c64f6aaee4e907ca7d0f3af06c819591b7525ba334b863164df7d2e41563c3f9c SHA512 342e94ae5b4a3d378860aab316d76947e67cc26d62529e2a9c0e062766ed2c48e4641497b0277c9e291a7ba40fe6861c5b6d4814f38c0775fad59a3b761468d3
+DIST charset_normalizer-3.5.2.tar.gz.provenance 9836 BLAKE2B 69eda8024fe15619d1b0d46f32a5304018b28c5a74dcde901d9fd1882c39c17acbc2d6a493788d2429d72e05ec0c5e93b23b8624e43da95bcc551f2eb7d68436 SHA512 52624536127c14d1cf3ea4b5928f75cb6edb081b4f9f968dc7254cafebe552d690a3fb887fc3f94188b7d571adc365b8225225a2e57992c8371795560cab5afc
diff --git a/dev-python/charset-normalizer/charset-normalizer-3.5.2.ebuild b/dev-python/charset-normalizer/charset-normalizer-3.5.2.ebuild
new file mode 100644
index 000000000000..93afafb101ea
--- /dev/null
+++ b/dev-python/charset-normalizer/charset-normalizer-3.5.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+DISTUTILS_EXT=1
+PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="The Real First Universal Charset Detector"
+HOMEPAGE="
+ https://pypi.org/project/charset-normalizer/
+ https://github.com/jawah/charset_normalizer/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ dev-python/mypy[${PYTHON_USEDEP}]
+ )
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x CHARSET_NORMALIZER_USE_MYPYC=$(usex native-extensions 1 0)
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/cryptography/Manifest b/dev-python/cryptography/Manifest
index ae21d96b567c..304fcc823b73 100644
--- a/dev-python/cryptography/Manifest
+++ b/dev-python/cryptography/Manifest
@@ -4,14 +4,14 @@ DIST base64-0.23.0.crate 93578 BLAKE2B d452a45a154d73096a495c78b033890aa57028b4e
DIST bitflags-2.13.1.crate 51395 BLAKE2B fdc2047bd877bbff24d9cb98c4fcc96b256f6161f7a2c10e437ea3c05485a1950ff8f1d9bb16a28e92b1755b37244bc3cbf3544688e6b7de147981d641c04319 SHA512 f1f2ac77fe2dcd6bb489a254d0f2e757b188829a7efaeb032acf7bf98a77521cc01f582961c79587ce7e72de706767785eda9bb191bc8b6bfdf294953ab819a8
DIST cc-1.4.0.crate 97878 BLAKE2B 40d5ce221dbe4a877e36a9dab0d1eaa02276a9eee7d919dc509ca3d17e39b7cb3a3c9640434bd91c6ffdc69a2534fdbf44b6b87728134d01bca67ead6fee60bc SHA512 9ad31bcdadbce84e0eac56ee1faf140e8146f43a7f1bf99288ffacd278e3b6d3307fe4b761c744c0ea823c378ec5c18dd02b46b2dcb69f6344c7d3f9df045684
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
-DIST cryptography-50.0.0.tar.gz 880201 BLAKE2B b498408edfc15581a8cc7dabb4050edc4d7a214431f28141a65c6c7876cdf2df11fec298de0b5bb3ed71b19f27fd7385822d16efa50632e5921844de82d2005c SHA512 b473d5625aa0367825fdbe771377056b660dbe0e9d155a769098bfa03d77e0e3d9d11c4c0761c66f45ed93857c1410239c0e8e5f558d1d9d603b4b7502a626a4
-DIST cryptography-50.0.0.tar.gz.provenance 9836 BLAKE2B ccd8a9ae3d4754f1cad8e59e1bc8c62853d370034d3c9f928e83b1966be11c4b0d7feba9997eaed51f2e88d0a325f036805793de7cb58d188a4b48c0e6710d47 SHA512 f98c9cbe8adbe56ef93fb2a3a033ede5fec2c87561ffc808c09155a12e6ecb22735a7e6a2beb8a186f41f3a5b8e58fdd1e66bdee4ab57caf3ac19f0bc051aaa7
DIST cryptography-50.0.1.tar.gz 880381 BLAKE2B 04c189aa1ff88ec2828d1a1579da3ec41056ea5824b14b839b678717fe1cf4c6574f82fb9d60a5eb5949e7d564aef13991d8dc989d067b69316f46ad13657f70 SHA512 0f97d1340706e14875160bc234e745a4950602d5258758b7856cf2cb8ad1bbe5aca6a03ca9a5c3e54160384ba9500ff49bf9baddddc92d469c863301444129d7
DIST cryptography-50.0.1.tar.gz.provenance 9689 BLAKE2B e50d340a5bc687c09f9c999da2ce5773ef06574385f0a6b333104f91e04b1a396d8ad970a781102e30baf9706a71df29cc778a2bd4bf3a469418ee9ad95cd0e9 SHA512 3c22217e69a9203e10d9b6498016248a1ff0724f615aa37c9ca3c313ad669eaef468cdcbf3956043fc3f38790c44f0f9100aa9a69bfe9c351749e73d938b5044
-DIST cryptography_vectors-50.0.0.tar.gz 54914883 BLAKE2B 9b1b740d9dfdf2a80bf072189768a4e823a4f706f6517e7745c4ab609fb2109aab757937d61eb6b7a2f5db9af78c998537411f2068eceac94e989e4a678ad4a4 SHA512 e0969245a61bb84b992ebc8f53b45191f6d78e2cea228b7d7ee35a6658722028956e6c54414811e0c03cbd6232075904edfcaeaefc7d8e61a4981149ac1e28ef
-DIST cryptography_vectors-50.0.0.tar.gz.provenance 9801 BLAKE2B e2ba1e2d8eabdd2dd680d78c6d01926a8ecc429008ce180b210330ba0c354d113f5edb05fc7d09b049d490ab4e04c94c5e5532c7114bbd19cd6b1268de37b727 SHA512 a8c69da79a910d65b14917fd6a143959620edb974b8c7de63200130bb0884c393850a7a914a9c19dad5bbfccaa422029ef9ec8c98b4eb1730e4d1ed7cc55ce6a
+DIST cryptography-50.0.2.tar.gz 880623 BLAKE2B ecb2d2f897a4f2c541eb2986ecbd8add4644520b165450d8e2d6d75e54fa9fbf2d076382a7bad8892038ee4882003ac8ee5dc5e00d79b476a295eb87abbd00fb SHA512 900fc42e4ab1fe5c513dba1093789a570960dfacb5714582eb2ae98db593756f8c1bbfbf5047cdf902a5a07dd52a857ccca44f15a9025fe9568bf4f310c6c203
+DIST cryptography-50.0.2.tar.gz.provenance 9932 BLAKE2B 2cec37da9779cf397a6aef409fb40185520fd80e7662d081e4a942c96f2b185a06707324e32e5d20a21aefa27f2061e13897dda6b4c645b5c5590d5410515203 SHA512 b5a289ffdc544744f3ccce2d39352e9223dce643e1d1c6bbc111b27ddf0d0aef51d68b9dd9bc130c17673934fcae143d19218a31d0c32ef62c244c7eca6ea42b
DIST cryptography_vectors-50.0.1.tar.gz 54914983 BLAKE2B bd361deeaa443897f3da3c80662f66ceaa91ce29bf6856e1584432ef29d5ed7b5fc59f2d75f32a0408dd01a083122feec756142b932a094be872cb5fedd72910 SHA512 7a9dd410e929b8661d56b18edf120b89e004d3305199004d02d9e7f10bf598c3b6ee68dfc99e7ac8a6fceb88df66f8dbfe6a460b79cb6add26042262268fb176
DIST cryptography_vectors-50.0.1.tar.gz.provenance 9654 BLAKE2B f3a9ea12b078e330a5498d0b94a3ec54eaeed6da953351ca9c5bf5c22d2aae20f35bbdc5e6e50c43548bd2365e564c4ca36c9ab7213099f9c09f06c8cfe505da SHA512 95de8004751682e91065b60eb9efce0c07b89e106b4a2a689f5a1b51710e1fa48f3462e07c8430750d76205d316fcb4d0fe2be9b67286b0dda90d283b9923d4e
+DIST cryptography_vectors-50.0.2.tar.gz 54914935 BLAKE2B c0165d4c4e4b143c8fbaa2c0ba50d161a571db241f27c74fd3b3cb555e452d2f38f657c178113da7ad950b029faf52b537c3ac71658dea042444d505bc128739 SHA512 ce9733bac3087b37edb7340c57be3aeebbe2e40a173b1ca4e30bd0240860587eabc9f6643e0415d12e385161c60ccd18ce3aebf6ca0779b6183e9b2f4e1da41d
+DIST cryptography_vectors-50.0.2.tar.gz.provenance 9948 BLAKE2B d23966aefe4e185f704e767e03e4a320ae0b15ee12afbf94dc1ada84fbc285ec485aec59e4a8679edbf98ecf572f585c3735959172a2e903377a1f5a6467cc7f SHA512 9b1edee130298285af0231ec9ffa4bf0465f3e5b1f868f40fb0c6e1d2f9dd7c8c99fa7dd2035f97a0fb9161a61eb104a594daf7cb5f501d06ccbdeca20b35641
DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
@@ -27,10 +27,15 @@ DIST pkg-config-0.3.33.crate 21590 BLAKE2B 576349a975cd4b9ff08c7f797f300cb277442
DIST portable-atomic-1.14.0.crate 200703 BLAKE2B 2aafdf454dd417cf7a3ff7ff72cca1bb1274918b8b15a0b1ebd4feadc4bafd87544938c26e001e1bb417aafa641521dba40a36ec50db59d03bbdc04d855635f0 SHA512 4c306fb2767b1689be65e57552260c2367f37808d0a32affafa21fddacd330c7735b0c3c8fe456fac10c4088ca5e8ede980b6d6da2171fadb682b925ff9a2c63
DIST proc-macro2-1.0.107.crate 59588 BLAKE2B 91df0c573e3e1f09c1aeedcad0381cf18186d72c3d50b077b1d232fbb67d1c87ed09f3c6dc515140041c2dab5ce7706042c8235b93099df7d1c962d4a3a99160 SHA512 c109d5509624a57156e0eae22a3aec89a1a163623e8b4e376a13d872a46e4bf6855ee3cd4428c07cdf5c22f2284b6ce755f9cc7e075480e4587ce4f2d40fa903
DIST pyo3-0.29.0.crate 1241253 BLAKE2B 29deb7fa70010bf3d7e9e93bbcd87c0b56c4ee7ef0c2e5956181d2fb5f06f4c9b3f28bd1ad280126c26c048808b91b847e1fb69ddd617ef9e9e5e004cf4e48ae SHA512 e6822400de53ebcef4a14c899dc065abae621a126483873139f5eb850877c94f4bccee3a183d4e2a69eadcd3c3b82b0a6f3e1053d926b103be572329607f2f67
+DIST pyo3-0.29.2.crate 1255741 BLAKE2B 5187b7dc0f0b2b1441b451850f442a9cf7b8e65baab3c94996be80e39543350ce8739baccb2df0caae1049a4cf744274e4ca9a9d752887d09df5c03e380d42b0 SHA512 85326462a932fd49441f320a879192306a7a6f3a66468ca468fefdb3dff9a530b7895010f156c8c3b125279b94dd304b72825fd4bbdcaeba8e3a58bd8cdcc929
DIST pyo3-build-config-0.29.0.crate 39616 BLAKE2B 7b62a5976b890db84e5256f3136185c2a9c3b7110782b5b0cdc314a5231fde30a853ddcd17af63b53488b3e8d5e310b01002b6f3c32cfeb1e5c3e168cd6460d7 SHA512 df77e8d7d5fe173749437ff6b90fa1703083377d515ab8a85dc77d9cac9c3fc331ede4b040f7e3694311ddb5adff577cf90c181a27c196ab93a4569e918fdea8
+DIST pyo3-build-config-0.29.2.crate 41104 BLAKE2B b4a78b704ae7c6cd8393abd436fc5d4e9f984ad6f4c95f1fd069888865a516f1a65eaebeecc7bb61e6a0d62d637ff4312a8d6a31f2dabb262d0f3c5177abdf39 SHA512 ecae961c373a87eb13ed3881ac4954112bbf54b3e02eb287d818e44e5ab46cd4700220da5072dd1fb22d68435d012a413a3680b54505c700ee059f1472833b6a
DIST pyo3-ffi-0.29.0.crate 88184 BLAKE2B 5891af92a3bcba764c4701dcc0a99edbced010a5ac46df3217d004f5c3a368f18331733c6723bd49e522c6f7105455df13e2be0f07695ed5ce6ae71c15dec438 SHA512 baaf01d13ddc09316ba16b22e9ca15a67e5bda5b861ed7961c3393fd4692fc1c96952f81465d1dcb6531b9083f96c5630981b3d7802cb1ac2af67aafaffbec76
+DIST pyo3-ffi-0.29.2.crate 90029 BLAKE2B f20803f6866a99767ce814984cc624783c2207ab54909deaba0a674c3c8f3e98c56bac80e1ea0e13b295634b0c6a713bd961b6c58aacbbc3be5fa9e224ff86e3 SHA512 a5b1db7e856af10f32ba3ce6a4dddc48a11f48431b82cbc1e40be88370836902afc9ab2918eb953d7fbed1ad7daaebefdf70489c7c798e591782e7dd6e2d0ddd
DIST pyo3-macros-0.29.0.crate 8915 BLAKE2B c12d23753d5aba7333183d4b41f16c8da1d4297a3ff86b3b150e9185c1978fc184ac198e566a41833292a8a78ab59446eafd5ef7169e5cb41493e7cbeaa68280 SHA512 fb6633ac76229d2e0ad88d51136a9318f03823b27c700a62cfbc957b4c834985e2f4c0cdaf5ea5e9993ec9e8ce3d63cd6b3fb823f2a042e65186adbed78da7c2
+DIST pyo3-macros-0.29.2.crate 9044 BLAKE2B f7caebd70dc9f54914d1d87e4c800f7bddc5d1e09835b0afd96e1f98320127660aa38f58b634ca196d823c926e279bf87c17506161a61bbae0908c51fc3b7eef SHA512 32281797e849ccb23c0ba03f8bea13ffcd86acfc3d5df65543c13befc03c142e88bfaf45f0cf5489cfe9e6acf9170ca6c24ced5d3f3f72be37bc7d2ce2bdb935
DIST pyo3-macros-backend-0.29.0.crate 91943 BLAKE2B 7c2977dd9c80f3dd1f5375b0c65492b46048ca02e6355ad746bc8430cf92eaf25c701f416469eb69724fde5220651b1095c09eb9e3ff860176f862d7c7287407 SHA512 13a7af3958c09969637827d97ab9bbc664c407dda9e4283afaf495757798cf6f84932468bc092160fa75211ce0aafe6efc657f3a390234d77a67362cfb31fe0f
+DIST pyo3-macros-backend-0.29.2.crate 93749 BLAKE2B dce6aeef93fc8483dfffd5b514d21530ff499f241ac157e2ea304c8cd050e9fc1343d356a5a85dacb8a73d4d4405b89b4eab128f85fac54aa00f53298ab409a5 SHA512 944b8482e2a6fd0dce82eabe50f915d82b066cf11944e413ab81c01fc917dfe1877748cb8eb92f23d8acee43a9d1fb35f8690203ec440e7db7c66b03c7f27358
DIST quote-1.0.47.crate 31622 BLAKE2B d912f17bdb5f2db29f5349e976e12da52db9d2197dd9900cb00e907d1e9b06ab177e9b020c1d53f6a6cd087e3a973aed5af63eac282da77792b2a6d6e1b35b07 SHA512 544f4324d425ae011905e0d1b52e367d4660bc34457b2f802af94e1def1e6c4e39ffba3beeb40d75753967d15b6dccce18fea273e7f3d46b63d5c89898d19441
DIST self_cell-1.3.0.crate 23869 BLAKE2B ab5a81d1ceac0f7221390fc346376ea764839893baf4af0372b47cb8852b4fcd986fc04c1386068c4f796d6180f70f8def48d7bff4ef057202ded6e2d9adbbfb SHA512 b7a629dafc90702468a9b4d97bab7f222e6f7263b3755709fe8da3311ee50245c304006ee3f12401f0226807ab1f0a44d25759caf2b84a33757fc76f9867036d
DIST shlex-2.0.1.crate 19332 BLAKE2B db2b6c5f7f30ad2f968d2dd386d39b362b8d19d7e17fffbb7407d6f35a4e165432b6607f3897c66cf8d32bf6e795ba7297080608c855b796fcf19842f4c509fa SHA512 d1bf35e2c5a93c718d3cc395fc4b06cc0c42d4891c0f37247de7e179492478020f0c57ae74c461d5bb1f833b071fd5c036d8d6d6ab8b61be6140cb64ae525921
diff --git a/dev-python/cryptography/cryptography-50.0.0.ebuild b/dev-python/cryptography/cryptography-50.0.2.ebuild
index f71113cfaf9e..66724d8cc257 100644
--- a/dev-python/cryptography/cryptography-50.0.0.ebuild
+++ b/dev-python/cryptography/cryptography-50.0.2.ebuild
@@ -32,11 +32,11 @@ CRATES="
pkg-config@0.3.33
portable-atomic@1.14.0
proc-macro2@1.0.107
- pyo3-build-config@0.29.0
- pyo3-ffi@0.29.0
- pyo3-macros-backend@0.29.0
- pyo3-macros@0.29.0
- pyo3@0.29.0
+ pyo3-build-config@0.29.2
+ pyo3-ffi@0.29.2
+ pyo3-macros-backend@0.29.2
+ pyo3-macros@0.29.2
+ pyo3@0.29.2
quote@1.0.47
self_cell@1.3.0
shlex@2.0.1
@@ -69,7 +69,7 @@ LICENSE+="
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0
"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
>=dev-libs/openssl-1.0.2o-r6:0=
diff --git a/dev-python/fastapi/Manifest b/dev-python/fastapi/Manifest
index 3efbf217d9e8..e6d96e2c3487 100644
--- a/dev-python/fastapi/Manifest
+++ b/dev-python/fastapi/Manifest
@@ -1 +1,2 @@
DIST fastapi-0.141.1.tar.gz 425799 BLAKE2B 7012cde65f9749a9a01de5c91a3892550cecd4a7813a70d7ec052efe614c1a64f0d934f07b6b0b06e6cc7c9689f8ab35deddd84b6923aa0cd7f364cce9a122c3 SHA512 6e83e00927ab60332a434cf3fc170a9ec42cd80d0b7254a4f8c83ea8dfcaa9144a39f8df4edd8473588015565f5d7d97dde6a51fbdd4be6bff67c74cabe9c91f
+DIST fastapi-0.142.2.tar.gz 466721 BLAKE2B fa97b6fa9bf188ff11c790e1eafecc0a1bd282c757f51932d98006b19245a7b53828a363064089c663a562e4176af7ab21ebdee171e8db1c9ec14ac98b3dc307 SHA512 bb86af45f0d217988fa2d260e187fb891cc99ecb70bc0d46e93bc77eae23a62398e3b6edd7a4e7c8d6ba88dfb64897fd770d2565856a8f8bd5566f77b54044a7
diff --git a/dev-python/fastapi/fastapi-0.142.2.ebuild b/dev-python/fastapi/fastapi-0.142.2.ebuild
new file mode 100644
index 000000000000..001c647ada47
--- /dev/null
+++ b/dev-python/fastapi/fastapi-0.142.2.ebuild
@@ -0,0 +1,124 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{13..14} )
+#may be not stricly required
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="High performance framework, easy to learn, fast to code, ready for production"
+HOMEPAGE="
+ https://fastapi.tiangolo.com/
+ https://github.com/fastapi/fastapi/
+ https://pypi.org/project/fastapi/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/annotated-doc-0.0.4[${PYTHON_USEDEP}]
+ >=dev-python/opentelemetry-api-1.44.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.9.0[${PYTHON_USEDEP}]
+ >=dev-python/starlette-0.46.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-inspection-0.4.2[${PYTHON_USEDEP}]
+"
+
+#FIXME: add missing deps
+BDEPEND="
+ test? (
+ dev-python/a2wsgi[${PYTHON_USEDEP}]
+ dev-python/dirty-equals[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/httpx2[${PYTHON_USEDEP}]
+ dev-python/pydantic-settings[${PYTHON_USEDEP}]
+ dev-python/python-multipart[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/typer[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio inline-snapshot pytest-timeout )
+# workaround broken toml config
+: ${EPYTEST_TIMEOUT:=30}
+# 3k tests+, so use xdist to speed them up
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+# There are some JSON response tests that will exercise orjson or ujson if they are available.
+# These are properly skipped if the optional dependencies are not installed at the cost of a little spam.
+python_test() {
+ local EPYTEST_IGNORE=(
+ # python/strawberry-graphql (in guru, test dep only)
+ tests/test_tutorial/test_graphql/test_tutorial001.py
+ # dev-python/sqlmodel (in guru, test dep only)
+ tests/test_tutorial/test_sql_databases/test_tutorial001.py
+ tests/test_tutorial/test_sql_databases/test_tutorial002.py
+ # dev-python/fastapi-cli (missing, test and optfeature)
+ tests/test_fastapi_cli.py
+ # dev-python/pwdlib (in guru, test dep only)
+ tests/test_tutorial/test_security/test_tutorial004.py
+ tests/test_tutorial/test_security/test_tutorial005.py
+ # Wants dev-python/multipart _just_ to complain that it's not the right multipart lib.
+ tests/test_multipart_installation.py
+ # scripts/tests use CliRunner.isolated_filesystem() removed in recent typer
+ scripts/tests
+ )
+ local EPYTEST_DESELECT=(
+ # Requires investigation - missing ./image.png test file (?)
+ tests/test_tutorial/test_additional_responses/test_tutorial004.py::test_path_operation_img
+
+ # Broken by brotli being available, also fragile to random ordering
+ tests/test_tutorial/test_header_param_models/test_tutorial001.py::test_header_param_model_invalid
+ tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_invalid
+ tests/test_tutorial/test_header_param_models/test_tutorial003.py::test_header_param_model_no_underscore
+ # opentelemetry-*
+ tests/test_telemetry/test_background.py::test_background_task_integrations
+ tests/test_telemetry/test_data.py::test_request_objects_are_not_exported
+ tests/test_telemetry/test_environment_integrations.py
+ tests/test_telemetry/test_integrations.py::test_current_contrib
+ tests/test_telemetry/test_integrations.py::test_current_logfire
+ tests/test_telemetry/test_integrations.py::test_current_sentry
+ tests/test_telemetry/test_integrations.py::test_inactive_sentry_does_not_disable_native
+ tests/test_telemetry/test_integrations.py::test_logfire_global_provider_without_fastapi_instrumentor
+ tests/test_telemetry/test_native_integrations.py
+ tests/test_telemetry/test_runtime.py::test_concurrent_provider_owner_wins
+ tests/test_telemetry/test_runtime.py::test_environment_export_initializes_after_fork
+ tests/test_telemetry/test_runtime.py::test_failed_registration_closes_new_exporter
+ tests/test_telemetry/test_runtime.py::test_real_otlp_exception_export_without_traces_or_metrics
+ tests/test_telemetry/test_runtime.py::test_real_otlp_export_and_repeated_lifespans
+ tests/test_telemetry/test_runtime.py::test_registration_provider_prefers_public_metric_reader
+ tests/test_telemetry/test_runtime.py::test_unsupported_provider_warns_without_preventing_startup
+ )
+ epytest
+}
+
+pkg_postinst() {
+ # not part of any upstream extra
+ optfeature "alternative JSON library" "dev-python/ujson" # orjson, too but it's deprecated
+
+ # pyproject.toml:project.optional-dependencies.standard
+ # Following optfeatures should be exposed, but missing deps
+ # optfeature "fastAPI CLI" "dev-python/fastapi-cli" - missing - depends on this package!
+ # optfeature "compressed file support" "dev-python/fastar" - missing
+ # optfeature "pydantic extra types support" "dev-python/pydantic-extra-types" - in guru
+ optfeature_header "standard extras"
+ optfeature "ASGI server support" "dev-python/uvicorn"
+ optfeature "email validation support" "dev-python/email-validator"
+ optfeature "TestClient for testing FastAPI applications" "dev-python/httpx"
+ optfeature "templating support" "dev-python/jinja2"
+ optfeature "multipart form data support" "dev-python/python-multipart"
+ optfeature "settings management support" "dev-python/pydantic-settings"
+
+ # pyproject.toml:project.optional-dependencies.all - includes all the above plus:
+ optfeature_header "all extras"
+ optfeature "session middleware support" "dev-python/itsdangerous"
+ optfeature "YAML support" "dev-python/pyyaml"
+}
diff --git a/dev-python/gitpython/Manifest b/dev-python/gitpython/Manifest
index c4bc5e466311..74949600efa1 100644
--- a/dev-python/gitpython/Manifest
+++ b/dev-python/gitpython/Manifest
@@ -3,8 +3,10 @@ DIST GitPython-3.1.59.gitbundle 13085519 BLAKE2B eff2bb6821756a6bad71429568a5ce0
DIST GitPython-3.1.60.gitbundle 13114387 BLAKE2B 6515764c855a8c3207c98fbf7bf1007ff2ed39c749a4e18afe19d73f494b5edf27c57a4b531468c321008b9739cb6b9e7ad747002f23d1dc2ccdf293bd321adf SHA512 20834d0f4d77348e405fd7ab1feaba0e9426ea8d81d1595f5e9e6729144a7ec908639318c1ec8f0837221da2704fcb64a1bf6040390f1c2714ef57d379aafe05
DIST GitPython-3.1.61.gitbundle 13122659 BLAKE2B f520b694d6f796523d20c5fcf80d1b4a8e8ba544f371aeb71edec51302500b1203876bf6faf5fdb1ff24abb3f8b9cd720f9e0d240df79b6d518f53d89dd413c9 SHA512 7b83e5dd1dff9475e7017eb2d82694f7a2f6039780e97e7cc8fbc3682ff7971ab6a03967571b2840ad37ebad988f8ab1db958871adf4fab6610dffe25890a280
DIST GitPython-3.1.62.gitbundle 13146787 BLAKE2B 005cf46eefb07a2d98500cc8566ded068446eb391b80cbc884d60ddd12916c8ae3c5917fbdfd6c05315f0b06f4b078a3c5100e45245d624469b4b98d8cc30c81 SHA512 09a57ac6df48396161df439338b95b86b0d8e36ba04139d9f18624537951e6ecbea466bcd8a4f3549a758f0687044b08ecff202a3da8175c98786c6e39397ca3
+DIST GitPython-3.2.0.gitbundle 13785675 BLAKE2B 170fc7429f6ff18009b9a79edd8bbffff89af9cd996fd989344ef2f40eaa1f2f8f3779755503e46d80e5afaa67f7ddcba4be51557438341b27d1a435d9f9fc26 SHA512 5c8c1d8c87b0e68aa18119a981565504c10b7fa774e26c4665e59a63701b28b06bd1ba2312640ed0ca42e367d356a0e5b63c480ba5b78d8ea1e90673eb7f9d39
DIST gitpython-3.1.58.tar.gz 228498 BLAKE2B fcd5b832587b82e2fb51d1a6087c02f294b84418de0c413d5eaa828aff4d2b87e8ead4486b274352d5c9ca09633e63a1c41a232ebf164c671d45df1bd9dd2bd3 SHA512 779e55e5a977b37f6bf46c5b8358e61e07f590d089b27bb402e37fb0b78d35f4a1fae1199274ecb5f7b057f2707057003d946cdc7557e7d0e574d1adb046cb70
DIST gitpython-3.1.59.tar.gz 230445 BLAKE2B ea1a8488cde9d1136f71f34c23224b5f02a3a5581a89dc1fa3a8355e3147d5ae01d533c1b032404471a691b3b9dba26fc55d7517bbf775b30374398b3a57a87b SHA512 ef810ace84c76200b6820818de0b8b3f3e8070ee48f2444bf60f6b24c7eba7710527e616ee3cc306ccb132db893b704033b238a5e2de9d9d186559ebfffcbfd3
DIST gitpython-3.1.60.tar.gz 230793 BLAKE2B d92475ddcd93bac6625a7c8d57d2cf9a1ecf6dd5285c2907d31fe9b4c7d8a4ed2429828f484f2bff5995aa18a9983fd8469df75583d7ad3c17f396e63adc40c1 SHA512 12350f87bed859bc06d40c8d400e40b814f00a9858a97a9a33d719b414292a55976cf9248ea86bd322bbb9f47a49af76a60c17756aaa932e0f713225363ae16a
DIST gitpython-3.1.61.tar.gz 231680 BLAKE2B ca6fcd928af08eac9ffecca3a718205d43d982950eccf5cf98fdd47a5344b0fb40e3c08a9205b86e330a5b052228c6126e4a0678c6da357e8ea4125ceed27b2b SHA512 0ba61c823382c384a3da0549f0a2a2e06335d91a1204bbe3364508d864dcb6f4ad0194dfe56c9b263ce83c58f8284884558910175b1a8bdc8416c1fda2f01711
DIST gitpython-3.1.62.tar.gz 231728 BLAKE2B 6b7474b32eb6668f068a4c626cb8652d51225eb4780db3346ca01c1bed438428b902feced1fce22d2d5e31f635e39777dcec7b3c9296438cb213b2e50da0f74b SHA512 47545ecf764f16cfc136852f58426c0ee9388fdd831e64b7677a8fdbb1ed2a5fc561f02c0bb6af587d8825b57fc784db6576fc8d26ca2b196d68bf7babb8837b
+DIST gitpython-3.2.0.tar.gz 238091 BLAKE2B 9497f8e2b87992a549ee58647c6238d941803afb05a2651fd3f2179e3d599b4639404dde2ff5264b36b54c39eea1174a0128143e0149d6b0807e3e4df77f57b3 SHA512 83d463de8f22f25d8591e72bc3700a417580fd3016a074d84d2c4e21dd0de91977d9201ff27a6a5eb8bf602388a4eea52e07f4108a01f35f2c60bef4706bda87
diff --git a/dev-python/gitpython/gitpython-3.2.0.ebuild b/dev-python/gitpython/gitpython-3.2.0.ebuild
new file mode 100644
index 000000000000..ebe35bd5a941
--- /dev/null
+++ b/dev-python/gitpython/gitpython-3.2.0.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_PN=GitPython
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+TEST_P=GitPython-${PV}
+GITDB_P=gitdb-4.0.12
+SMMAP_P=smmap-5.0.1
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="
+ https://github.com/gitpython-developers/GitPython/
+ https://pypi.org/project/GitPython/
+"
+SRC_URI+="
+ test? (
+ https://distfiles.gentoo.org/pub/proj/python/GitPython/${TEST_P}.gitbundle
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-4.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.1.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_test() {
+ git config --global user.email "travis@ci.com" || die
+ git config --global user.name "Travis Runner" || die
+
+ git clone "${DISTDIR}/${TEST_P}.gitbundle" "${T}"/test || die
+
+ cd "${T}"/test || die
+ git rev-parse HEAD > .git/refs/remotes/origin/master || die
+ TRAVIS=1 ./init-tests-after-clone.sh || die
+ cat test/fixtures/.gitconfig >> ~/.gitconfig || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # performance tests are unreliable by design
+ test/performance
+ # unimportant and problematic
+ test/test_installation.py
+ # Internet
+ test/test_quick_doc.py::QuickDoc::test_cloned_repo_object
+ # TODO
+ test/test_submodule.py::TestSubmodule::test_base_rw
+ test/test_submodule.py::TestSubmodule::test_root_module
+ test/test_remote.py::TestTimeouts::test_timeout_funcs
+ )
+
+ epytest -o addopts= test
+}
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 4faaf0bf0846..cddd477d8ba3 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,6 +1,6 @@
-DIST google_api_python_client-2.198.0.tar.gz 15060142 BLAKE2B 07d58c36776971c6a6af2fef7da81744b1358a72ef774f0353c296da76059aff3fe48a4f3a5abc1f7517902ee873d6917396776abc0852801b32d9a119409577 SHA512 ffaef84d039d8e2b57e29d599a133c6dfe5d5bc3450a2d940c8a4381f4ca22fb7e6625e9b8521be981f58a59cd1302b714a1df6eea40a49e5f830c01f7f684a9
-DIST google_api_python_client-2.198.0.tar.gz.provenance 6072 BLAKE2B f7957dc0989d77820a9e2d148af898fb042db7fcc32683d9b502068756cb53f4339288246e55822cd5f3bd52c1e7fd227cd2692752899966b1942886079352ed SHA512 d382b0d170c115202e286befada8bbac7f53c4c99cb8705501f3d17ca15e928d7aba184259df70540d2266f0575817ee4dbd9ec462144ba33c14c22a00f891a5
DIST google_api_python_client-2.199.0.tar.gz 15394941 BLAKE2B 72906a036b511014ef0ef165717e6250ac796ebca0077c88340be6eb31cab4e0a0b336c7314e9b3183829d371fc20c36a7e5ef32913eea1a9941dbe1241a970d SHA512 1a143cf36999e91546dc091bc0aa9495be7c23d2384bf24f560dad24cd1268fef86b7305fd98ebb65e48eb6b06728c8a9caef37165c573518cc20bbec601c37d
DIST google_api_python_client-2.199.0.tar.gz.provenance 5937 BLAKE2B f0dec19e2309361a55bb6af142dcd19c807c66d6485f361621f5d8d494b1b06a2873dd88e713177fe3db233921744b23bd0590e3ff5fd97aefbee8b6ada8f945 SHA512 e240668ef1cba9ee8835be95fe183f4a330a526e83fe4c1604ef02dd6c4f390620d37d74c3ecfd4763a20d008239affa87ead00391bcb14e93d5b29940ca6077
DIST google_api_python_client-2.200.0.tar.gz 15488849 BLAKE2B f38e01679acaf337fa8df836c94b1cb455120df6e3591214f9575b10b7e6c8fbe1b15e61ed6ae42723e1918f868d777d990d624a08c70ae6968ad1a44c6f1eee SHA512 f330c036ff112deb968d23c463bc581bd4905c1bb1fa4d62e13db9e1ea2a02c5a7a37e71881abd3cf62af85f7e2a476164a2258ff1a1eb1bbf5cbcb87e5cb555
DIST google_api_python_client-2.200.0.tar.gz.provenance 6109 BLAKE2B 58e6f7e2f3e09fc743969af1449b8df365416dbbd5a086fddddc70b8c75b799f7e88ee12119464a1e6c91712a148e751c31638b53fa6742432fb524a6fc2d8a6 SHA512 7fbdf1a0dece6e49dc6da6b4445cb5e00eb929c61156a13487d8df4dde9d6a7a7524bc72951fd3ef47e89b127e27985f12f08701dd3cf28e7cbcb1b483a211bc
+DIST google_api_python_client-2.201.0.tar.gz 16211808 BLAKE2B b4da3365f5a88135e7d8f9e1f04b252b99a43e0d55fc5540d2703b81004d1c5992dbfbee03be10853a3cc09e95452a75b0292863cd593edb031f2b5c630a5b23 SHA512 37cd01646aa396717c09be5972012eb359ea5974defc9745d500472b2d4f4ad64db7c57881f69ab74456cbad44a8cd421298987809e13e2a3a194fd8bfb060e4
+DIST google_api_python_client-2.201.0.tar.gz.provenance 6121 BLAKE2B 08d0a8486d9f3915374f1c1256fca63dc7112d269d9d8f21afc12c0ec91495ef5a88928e4d7f4009cdc75df5f99a363d57e752cb21bfc303a7dfaf31c73184b1 SHA512 bfbc34b29393fc2d93d4e97c20f2c3009edba68e46d46ba7741ccb895b1496f065402dfe25eb3a0542b88848a8dfc2a4736b9086edf14428030240c66fe189d7
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.201.0.ebuild
index 205f181ae1dc..6dfd752db111 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.201.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
@@ -30,7 +30,6 @@ RDEPEND="
"
BDEPEND="
test? (
- dev-python/mock[${PYTHON_USEDEP}]
dev-python/pandas[${PYTHON_USEDEP}]
dev-python/parameterized[${PYTHON_USEDEP}]
)
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index 637a5470ac77..2fff44eb1c0d 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -8,3 +8,5 @@ DIST google_auth-2.58.1.tar.gz 380459 BLAKE2B 81171f1be6af057391a0922e2f507bbf34
DIST google_auth-2.58.1.tar.gz.provenance 5819 BLAKE2B a2ee8c34de0687e231037f52b705216ab84eb21000d214ccfbdf759307210f4ce2d483d7ca14e8f4cea8678712317bac8c1ffff275df82890db69c53ed02aefc SHA512 51fb242f5e4d425c1bb4c6a8012e8aac456be952c4e20609456ff8198a8761d3006db68f530c7c094f9ceca63d8142aeb46fc6132d03b490f5f2ea9802ea981b
DIST google_auth-2.59.0.tar.gz 381025 BLAKE2B c9d80ed92e21b83fbf04d9c81a705573c1d0e2191f8ebc5b9364b30ee137e65f81adbd0c7b1b576cbd947f3d08cb70379cf0f1d8587bac3e891feb1031d0370f SHA512 f2c9ead8a9f6c398656a4c995a1f1c60a53ee22b19df2fe0da5a0d6e61b7ccadca86576d20e0b7252eecb3b16e3295a57b924df6dfb0b3a397b1a450b274e580
DIST google_auth-2.59.0.tar.gz.provenance 6148 BLAKE2B 0c1ef17d9a22b223293fbdd365cf46fb4a620d3838160ea00213a41b15c958d1a4698d8b4cca45743cab43dcebb896e2cd5baaf1ed032ea56092af4f33c4ee1a SHA512 f9c45a31766e584fba8e3d6d58aa1843150c164749036be7b57b1db074bd1981cbae488583da457d198f7577d89916572431a394f76c1be6cd505f4e01ea64b8
+DIST google_auth-2.59.1.tar.gz 384298 BLAKE2B 84d2ba502c16c48911c41ee0946a738802433935ef4606fc9738b250f6d3aafd0ae35b27e091d76f087598fb734c74d7c89c8c67965c76f0b033ada4d0717e3a SHA512 34ffd976e8d28032db0f79fa9973de24bb270265c4143e7c0e31f2be844d4f98d54376f4a2937089f4a2ce7cb8e1bc1b50b08aa7924b0bd22881cd8ce3408c24
+DIST google_auth-2.59.1.tar.gz.provenance 5964 BLAKE2B 2af87b90da20fb89bcb630b4b6a01e96b53267ea6ad4f8bd9718872749f96aea3e9cc4db835202d9756712f2ef868d780d44929dfc03c4c80358edfa528f4f8b SHA512 efb9780179fb83b3932b5e1a2904950999bc837b4ed91093b071a1e6eda254cfce53a090605dc21039a54b26383890cce0c690a9cb11dd30f0fa3a8b8554abb1
diff --git a/dev-python/google-auth/google-auth-2.59.1.ebuild b/dev-python/google-auth/google-auth-2.59.1.ebuild
new file mode 100644
index 000000000000..e460c792a87a
--- /dev/null
+++ b/dev-python/google-auth/google-auth-2.59.1.ebuild
@@ -0,0 +1,63 @@
+# 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=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google Authentication Library"
+HOMEPAGE="
+ https://github.com/googleapis/google-auth-library-python/
+ https://pypi.org/project/google-auth/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# TODO: rsa is now optional
+RDEPEND="
+ >=dev-python/cryptography-41.0.5[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/aioresponses[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.0[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pyu2f[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,localserver} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # tests are broken with up-to-date pyopenssl
+ tests/transport/test__mtls_helper.py::TestDecryptPrivateKey::test_success
+)
+
+EPYTEST_IGNORE=(
+ # these are compatibility tests with oauth2client
+ # disable them to unblock removal of that package
+ tests/test__oauth2client.py
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' setup.py || die
+}
diff --git a/dev-python/pdm-backend/Manifest b/dev-python/pdm-backend/Manifest
index 3d1c063a9d97..b9ab53d4257c 100644
--- a/dev-python/pdm-backend/Manifest
+++ b/dev-python/pdm-backend/Manifest
@@ -1,2 +1,3 @@
DIST pdm-backend-2.4.10.gh.tar.gz 160294 BLAKE2B 57df4398cdde361ab07086d811a853a9bb5030a1fb9baad7c16c55ace8addc5788d00c83951b047b6b0c151e43ccc971b20ab6d6960439200672fd4288dc12c8 SHA512 09fbfc04d093790f73d4c9898749096a5ce4eef9fb91a0cd5c1de1f23f53d08f2a25a15a07500fed00a08f44e52b71164d526809dba7e774d5dccafbf6971b0e
DIST pdm-backend-2.4.9.gh.tar.gz 159329 BLAKE2B 869796a9f68971c050f93c0fce2dec2f6891d2df198cdfd5be5e514b9929c7ab1271daf1a343225a0de90c346c0d344343b75d9ed1625fecff4e12220c6bcad6 SHA512 69cc6669448dd36cf55bf5260fe9eaf28169b2dc5700648f6992ab29662adf97ba3febf1083aec4d1649fbd973f9c918afd0709784cedecd4b115b947bd7760e
+DIST pdm-backend-2.5.0.gh.tar.gz 246799 BLAKE2B d22700d3167899275e79594d341424c517110969f0d9d348b791cd3918b83d3f410137e7f6f79399a618f4b253b93ae4f9e6c656ba26f87117e10f89557f0a19 SHA512 310bc6966af1665fd5ba228930066c1369ecebf4fa42215655cbc7c182b92b51a4081b8cca4b4f11dbebd2cb444be7f460771873a791cae47f301ce4e5871060
diff --git a/dev-python/pdm-backend/pdm-backend-2.5.0.ebuild b/dev-python/pdm-backend/pdm-backend-2.5.0.ebuild
new file mode 100644
index 000000000000..3140d2589e87
--- /dev/null
+++ b/dev-python/pdm-backend/pdm-backend-2.5.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="A PEP 517 backend for PDM that supports PEP 621 metadata"
+HOMEPAGE="
+ https://pypi.org/project/pdm-backend/
+ https://github.com/pdm-project/pdm-backend/
+"
+SRC_URI="
+ https://github.com/pdm-project/pdm-backend/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# see src/pdm/backend/_vendor/vendor.txt
+RDEPEND="
+ >=dev-python/editables-0.6[${PYTHON_USEDEP}]
+ >=dev-python/packaging-26.3[${PYTHON_USEDEP}]
+ >=dev-python/pyproject-metadata-0.12.1[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+# setuptools are used to build C extensions
+RDEPEND+="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ rm -r src/pdm/backend/_vendor || die
+ find -name '*.py' -exec sed \
+ -e 's:from pdm\.backend\._vendor\.:from :' \
+ -e 's:from pdm\.backend\._vendor ::' \
+ -e 's:import pdm\.backend\._vendor\.:import :' \
+ -i {} + || die
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ # this must not be set during src_test()
+ local -x PDM_BUILD_SCM_VERSION=${PV}
+ distutils-r1_src_compile
+}
+
+src_test() {
+ git config --global user.email "test@example.com" || die
+ git config --global user.name "Test User" || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ epytest -k "not [hg"
+}
diff --git a/dev-python/pyflakes/Manifest b/dev-python/pyflakes/Manifest
index 5c556316ef3b..1d22f887ffe6 100644
--- a/dev-python/pyflakes/Manifest
+++ b/dev-python/pyflakes/Manifest
@@ -1,2 +1,3 @@
DIST pyflakes-3.4.0.tar.gz 64669 BLAKE2B 693708f575b7d98a3042845682b29fef1e077fe904c650c57c0c7af756471a3a36875bfcdb9d6d304415e772d5771591a6508bcef14d0e19cfe821ac3de7e0c4 SHA512 d2c48d2b3a1024af27f8fa1b304b9839d65d63d4a5d1db408e8546396b5150627dc9d84189716624f228a70ab0b2343d8c66b2ab154d4c6042362c9f6ed1b8c7
DIST pyflakes-4.0.0.tar.gz 66927 BLAKE2B 0b88ddad56e2ef228afd1e320ca0ca48afd4d627e0d256d91a0ed41ef3f09b1ccc083d34ab80aa768a2965b86bd8b19c33711187c70a0861200fdf7169791c68 SHA512 e7fece830ce8f781f2acc0be52ff27a38941c1723aa3fe51a412e4175000e0aafe4864586cffc90a30d76eaed82a7d17efca6e5b7df030394268d91a95c4ee73
+DIST pyflakes-4.0.1.tar.gz 67099 BLAKE2B 1884edf25534f2204e56e814abd417d6ea382f34690ec55798dc8cec227205caa75778eec007839d5248ba617933c5bcde6eb3b3296dec35a35d0658d7108f88 SHA512 cae5791e5c23b8a6466383c5963b668934a17e83f6c271b08ca8d780f10fb620c93bf429b46266d1eefdda7fce3a381c719a721e770ad65739595a165a6ea1de
diff --git a/dev-python/pyflakes/pyflakes-4.0.1.ebuild b/dev-python/pyflakes/pyflakes-4.0.1.ebuild
new file mode 100644
index 000000000000..0634180e5f65
--- /dev/null
+++ b/dev-python/pyflakes/pyflakes-4.0.1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Passive checker for Python programs"
+HOMEPAGE="
+ https://github.com/PyCQA/pyflakes/
+ https://pypi.org/project/pyflakes/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pygobject/files/Skip-test-detecting-cycle-among-base-classes-typeerr.patch b/dev-python/pygobject/files/Skip-test-detecting-cycle-among-base-classes-typeerr.patch
deleted file mode 100644
index cbadef48300d..000000000000
--- a/dev-python/pygobject/files/Skip-test-detecting-cycle-among-base-classes-typeerr.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 26aa63716d32f90bd67250df4a1234237d18bbad Mon Sep 17 00:00:00 2001
-From: Lukas Schmelting <lschmelting@posteo.com>
-Date: Tue, 27 May 2025 23:47:39 +0200
-Subject: [PATCH 2/2] Skip test detecting cycle among base classes typeerror
-
-Signed-off-by: Lukas Schmelting <lschmelting@posteo.com>
----
- tests/test_gi.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/test_gi.py b/tests/test_gi.py
-index 9ab4882..8aeb609 100644
---- a/tests/test_gi.py
-+++ b/tests/test_gi.py
-@@ -2860,2 +2860,3 @@ class TestMRO(unittest.TestCase):
-
-+ @pytest.mark.skip(reason="TypeError: Cycle among base classes")
- def test_interface_collision(self):
---
-2.49.0
-
diff --git a/dev-python/pygobject/files/Skip-test-using-dbus-in-sandbox.patch b/dev-python/pygobject/files/Skip-test-using-dbus-in-sandbox.patch
deleted file mode 100644
index 405b3f6a9acb..000000000000
--- a/dev-python/pygobject/files/Skip-test-using-dbus-in-sandbox.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 5f57664aca65b5bd433b0a016da92bb74ca378d1 Mon Sep 17 00:00:00 2001
-From: Lukas Schmelting <lschmelting@posteo.com>
-Date: Tue, 27 May 2025 23:46:51 +0200
-Subject: [PATCH 1/2] Skip test using dbus in sandbox
-
-Signed-off-by: Lukas Schmelting <lschmelting@posteo.com>
----
- tests/test_gdbus.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/test_gdbus.py b/tests/test_gdbus.py
-index 8fe3952..d5e9d79 100644
---- a/tests/test_gdbus.py
-+++ b/tests/test_gdbus.py
-@@ -138,2 +138,3 @@ class TestGDBusClient(unittest.TestCase):
-
-+ @pytest.mark.skip(reason="Use of dbus in sandbox")
- def test_python_calls_sync(self):
---
-2.49.0
-
diff --git a/dev-python/pytest-bdd/Manifest b/dev-python/pytest-bdd/Manifest
index ed6d832096fb..c2ec46e66421 100644
--- a/dev-python/pytest-bdd/Manifest
+++ b/dev-python/pytest-bdd/Manifest
@@ -1 +1,2 @@
DIST pytest-bdd-8.1.0.gh.tar.gz 116529 BLAKE2B b282f42dbde9394f37e41682d44352d5895a30e2b88c20c46f8d9344f8069e25e2a7a2b6225ebd34a43b60d2392c7bc515f2ebd94bb26a0d350b7d188dd4d77e SHA512 6b03a509a8026ac242a4446caffc019b264f3528322eab8aa0ca2ce4c099bbc45640d63087a756d0d1d0daacdd2f396f121823ca500cef38391e9313a0f898ab
+DIST pytest-bdd-9.0.0.gh.tar.gz 218894 BLAKE2B f27c2c67c7046d9cb26d12f894216d3ebd189b75f9fd79b26731f20d4ae838991f646e1c05774f9ed9bee508216ea69423de4b1b501055fc4968451c55759d2b SHA512 bf7c533a903f8ac903b4727da89ce490ce33f8e1cd0da52af03735e89c4fc0520c21a4c2eceb54c757d38db9cae459b0f7474246757390d4bf0693954430faaf
diff --git a/dev-python/pytest-bdd/pytest-bdd-9.0.0.ebuild b/dev-python/pytest-bdd/pytest-bdd-9.0.0.ebuild
new file mode 100644
index 000000000000..c6441efd8947
--- /dev/null
+++ b/dev-python/pytest-bdd/pytest-bdd-9.0.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="BDD library for the pytest runner"
+HOMEPAGE="https://pytest-bdd.readthedocs.io/"
+SRC_URI="
+ https://github.com/pytest-dev/pytest-bdd/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/gherkin-official-33[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/parse[${PYTHON_USEDEP}]
+ dev-python/parse-type[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( ${PN} )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+distutils_enable_tests pytest
+
+DOCS=( AUTHORS.rst CHANGES.rst README.rst )
+
+python_test() {
+ local -x COLUMNS=80
+ epytest
+}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 34081ddc58b1..45b7f44037ca 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -2,14 +2,20 @@ DIST Python-3.12.13.tar.xz 20801708 BLAKE2B 94b99c75e3aba1d1a953b5447f8ad6b7ebec
DIST Python-3.12.13.tar.xz.asc 963 BLAKE2B e6bc572fd207fe203cf8018bca89777c7033e46d25cc598b5715658f556d26b6f3b1652f13518850ad62a37254ab4ecf5f770197cb847306ffef96b747840e88 SHA512 903fd3baa7e29891bb00fb159ec9c43804a71002c4cd38902d25bf4e5167f856b37d211a5b1098ee60e1ea41f8a10a1596dd2382edc6d7367d55dd4154807fc7
DIST Python-3.12.14.tar.xz 20820300 BLAKE2B 3ef16b62edfe1aca66180a31eaa8b05059563acf9e83669b705dc7ce58417d72e04a156d6cc6130127fb54bfdf4a390d6a2f2961f228ba3d3a5de1a2340bab7e SHA512 9007399ffdd3a493c91a98cd7a6cb93acfb8de80f3be2f5480cda36f134d49b5043a60bc6b5c62ed18cc6a2e4e3c81cb7556ac5f337e2cd58ff3449a8099ed22
DIST Python-3.12.14.tar.xz.asc 833 BLAKE2B 5531fd3eff81a3177b70659c8853330d6e613c0ce8888b24666367d6c25a22aaf59b3ae375b199b1d4ef76933842e602b74daabb001e0fc9516768d2c59c78dc SHA512 69cc4757f5d79ea46f9b632d5b34f9f16855cb1f767f77c827ad65546ba8f77b68e75a661ebc4e4f453edd7a98a73d916491597f67d4fed9c891aa599a869324
+DIST Python-3.12.15.tar.xz 20829824 BLAKE2B 9bdc03059b0f0de6691a0ab250279f9dac30cfa4e6d9ad81826ceec26218fd21048ba4a26a83175beece3d5754ff972ee065570244786c129c160df6ac8c3ca3 SHA512 def68bdc3e3aba4d285ae8b305c90f2319297b5a7b1888f582b3cef979bf7f43db0d3047b23312935904576982336f9f78506183b109f388905bf4db33e6abea
+DIST Python-3.12.15.tar.xz.asc 833 BLAKE2B f59a0f7098cf83a35e22a96fd6f980266c29f0ee27c0408f3dc6616af6bede3941a398b0f055928edcd8a1396dc31fee865e136c93eb7a21e69ab2d740f9f595 SHA512 c985540a712f6bb1ea1bd74a68fe020735f57b74e14404dda0d30a16146c27464c828c356f9e6593d25e1dc142aa73cbb44bcd6bdc201791dcf46ba2593e2408
DIST Python-3.13.14.tar.xz 23021880 BLAKE2B 8f60f704c06fbfc2ee8ae3b2aa5c74cb5941f609baf74b3625eb37929933d2a3c806e9257c7d7f860d775a94454ed3ad90f50402ddd110b8bb32c40879bf66ec SHA512 0790da65f8ce88a13b06d3b287ace5a1f36b0a8f630a3af00fbbdf93b6ef0944dea05173a20c9e1336d280ef9a97ae2b95a44a4b487a7bbb71fda53b6331c0eb
DIST Python-3.13.14.tar.xz.asc 963 BLAKE2B d500bc16d5a1a1fb999b6c98ed076077a7fa8ab55b437a676c5f20f4665d27ee4644653e55a82ab78f2be18bb38b2cfa95efe5f39d7d39db3fe6c4b227c5d6ad SHA512 a5cfab862ac03447838d13c4d1a9b085a8c8a947c958fd42cecb42929817b1448c1b23a124c87456abd43a1cadfcfb427f394eead9eaf0b84f3296fa263dba6c
DIST Python-3.13.15.tar.xz 23160540 BLAKE2B 919260666d5e641fa174de3f9ce4dace7bc2944446d11bf2a954a77acfc8f8b18ce2517b805887d78ed970486e5c893715f4252c96bf09943044d773a05d7279 SHA512 b0ab766a3de0b4cfdbf0b93300d7330c734d3f7057577bb03e95e39da4cdade81993e769c7fa6dfdcc13b9d43a3b399d9cd89b5477b413662e9e691c1b7886b8
DIST Python-3.13.15.tar.xz.asc 833 BLAKE2B daba95f5977f80a155effdfba3e1a8a744a739f0aa0d1f4f7d2e410cd91833c1faad1186ef50d1979ec061e4a9f0c71444955612a75b4874898c9cf571019a01 SHA512 662c00be95f62e80db43cf42099fef91f764ff7a4433cadf7eb19dedb5e4775adb12878d5ed2295fcea187731de186163ad9672ab72cde62a2335ca58ec1ad86
+DIST Python-3.13.16.tar.xz 23225704 BLAKE2B 1a3912f93d51e86ae7c2ab6478a7286121a0e3410e2f6b67028aafb3e5bf49289e2c79d0f7af9264ee09374fdcfec136554f15e979330904a37b57c37f60a618 SHA512 7283884583b181161aff5ce523c0cdf03904a1d7a172db2727f7d3f42ae6e4d44f1ac86f7960df4a0203740cc04ab5adba3f404aafd562afe761d9052cc4f32c
+DIST Python-3.13.16.tar.xz.asc 833 BLAKE2B efa3967a6164038003e30f9c6300a2a72fa0a2b65227064df8d9bd93ac84b84730f29c3a5ea10ac0385188ca22fa3b12cd2bdec19876ec75b49ca0033c397b27 SHA512 14f2ff2a5820d9e4410d4ac5a56aafa2a7e2b2ca8a9f5f6517bc839d61837a27522950999de4a422de4f6499fcec91015f27d940d88b3766bd0ad5d90d46ee92
DIST Python-3.14.6.tar.xz 23921184 BLAKE2B d3038309c02fb260ee54a4151c67999930099455a993e8b712ec5d7cac97fcd8fc847288b0c93ca8c30d5acbf79325e6d54d16019b7daf51ade982208548386e SHA512 90a82f46c28f0fca613b67358fdc57c145ab05d20fb56bf3bc0c9e4e54947c7d30fbaa6856c41a41909237a9e601d1a7d19579d4b25c7a784ebcfe9012defc41
DIST Python-3.14.6.tar.xz.sigstore 5539 BLAKE2B f48bd02fb1588306063d2a05b905bb640b23d73a404f39c6b1100b457d71bac296aaf753f24eb25c7bf060cf73972179d6e8b123f6931e69067480ded50e5d01 SHA512 461b8b4b8af0af507681fd1dd684c3559edfcc6cd79454ee0635f8e2d1606e87528ad24c9142bca2eb1ba4a70aeb123750cb9e6c181de6675205849d8cb58a48
DIST Python-3.14.7.tar.xz 24053924 BLAKE2B 7d6988f906a402dbfc87b690f228b5fc53de024602bb459360e0482c1e323e212c71ff389b2c37bcc35248df9d9aa3bf710d3745484048cce7d4a41e5b3ea937 SHA512 3d4e2e2f983b320dec47005c408d7178d3656a6de0c4430ce21514797174b972f461200898b25d3dfac2a455019ef87e45d0fb2bb6ec2ca887124d10037a2a07
DIST Python-3.14.7.tar.xz.sigstore 7101 BLAKE2B 9c016780aad594596b5f4782e755f211bf6c635026c2c854d6594aba2254c84eeb78f0e90eae4b0ba218168c2162999b2e9327184031c43d8b111fb72e95f888 SHA512 6e56084d4c45712d2ce21c4f16008513e4daa22f2a6174b4d715c2bcf80a2fa9a1356ea6c4ecb8470ab2f08117ef79301da666b53b264bac53ae0801e410d189
+DIST Python-3.14.8.tar.xz 24130644 BLAKE2B c357ff7ad35ed9daac86cf8b9ba05c2735104aaedd3b4e942e16f4f76ea4990d678f932da11b7d3e8677df5e3e848ed28d89b172844c53675cf09c86b2289903 SHA512 f9e6809b0c45d90fcc174b8051e15058a3037981c9136c598d110a118a22cbbb8263fbd677e07b2b9d93e1aa83cd9cb835b61b6af898fd301d1080a29c2156fe
+DIST Python-3.14.8.tar.xz.sigstore 7489 BLAKE2B 9815b29e63c481ecb5bdd37f2f8da2d1a363adb1fc138ac00fec37732ecd5dcb34e010c2aaed4dea3aa688543768870aad17cd7999006b8b7974ed05e125e4e2 SHA512 cc030677f2b22287ed42974cd5d2654d1eadec38d66080b04b4a5bf468e9055aeff127dbd5cce508d31c977a38d84a0e87eb3c6375b2b924e03f7883e1d602a9
DIST Python-3.15.0b2.tar.xz 35381676 BLAKE2B 59834dc8301dcc9d7e25fd3faf6060a6755443f3782fd3f035d82896468013d01be1b558f7d5c7099b32d49256b09055fde324660d66a52900f519f75acb5556 SHA512 fae17efc3bd2604fdff2d63e0afeac47562165a5da2e1e027f4126b4f8bbb4957f3a2f406d6db23a20c8881fad108385b4b2afb53482075dbe16a690778ccd4a
DIST Python-3.15.0b2.tar.xz.sigstore 5583 BLAKE2B a766583eb8340ac3bef93ac0bde0ffa66f4680361bb369b3baccd715eb24a8a1f2e5f1ba049e1e8d3c7c53f41a2fe4b0402104156f7c0609355a18dbb24c99e2 SHA512 78f437419f67b10d556ec2304e9f46af4ee0114434e1c51594ccf202aa98ae3b733f4022aeac8fc1afdeeb29fda9328f855dd4914d38318c9ec965b45358153c
DIST Python-3.15.0b3.tar.xz 35459584 BLAKE2B 613f3609775df8b899603363a5e6cce39d3e1e56451c626cf87adc6149d9bbe5d1cddce86e3d86eb521747f4f0ada226322d0d737f881d107adccfd7b8533098 SHA512 a8c73a8e373ca921c87778d011072c1a0602cc203c65acda69117189cf5bd6c277c54044af381f27c243b187bbbb7b3ef47b9318bc89e2c044de9723175d7dca
@@ -22,11 +28,14 @@ DIST Python-3.15.0rc2.tar.xz 35544464 BLAKE2B bd5e1203f2c65bd6cb20f822927b77b65b
DIST Python-3.15.0rc2.tar.xz.sigstore 7011 BLAKE2B 1a48036e37fc1cc218e9be491303239953b83259947a6ca76241f1a16af3626edefdec270666c0ba6f7835578486872b171e75fbedc24171188609e1b8caa230 SHA512 dcec0764b89abc84e3220448b17d3612c4ddf2ab8dddd282860faf8159cda1b4fae2e7583f4936ed3c62e752289f561efd9cbef9c3f42df71fddfbe17fa9e8a9
DIST python-gentoo-patches-3.12.13_p1.tar.xz 12408 BLAKE2B 2b232c2742eafcb803713c837b4ddaa38f45c88e707ec272571739570f9e2e5c94644681369d887992eadf5f0c1178489f1aa3a7d8163a2aa4ce6a86732e73da SHA512 e06d78ad24c9fbc3fa9c47b25ba722342ddd140aa30f624b41d605dae40d00ab956d879a247db2d7980c063a1472de40587a0d3cd6947e560aa7e8d0e4f89309
DIST python-gentoo-patches-3.12.14.tar.xz 14296 BLAKE2B aa38928fedcdca5b681f5b1d7cb227038a60202c91c561f2dd3dd40e80167e683676670b7a3fb791ad37f92801d23a429b5adc869eb5566f4223057e932d2f2f SHA512 aafa1c59b54c131efa7fc7db5e64ab01f6c15b4d9d6bedf44bed747b3b06610dc731c4d527b91b321205e83eba944da4b687f23628155468cfc4c8b531a822c0
+DIST python-gentoo-patches-3.12.15.tar.xz 14288 BLAKE2B 7542fe0812f67d5b77e22c8af05468960695d1581469d3aee8a8aa569b0a56f75dc264242c8e90f4be5c47488389263f4a61a847448862e253926744055101c3 SHA512 f8e78c98ce383045aedf4d637fb4ae0c435db115c30eb96dafc0150a813e6849ca23b0fc5cb04f9530d92dafd604ee41b50e1edae228f7ed32c8b62ce623e252
DIST python-gentoo-patches-3.13.14.tar.xz 9360 BLAKE2B 257a43992b857d44881174b36b0940fab3f879060938fe6e6464ae671832a3af624a0cc6f012e44ee344a34d0a8da0c898a29176029bfab70086434fbd3c3b99 SHA512 0084ffc35ff81a7056dd7a3624083ed957fbe482b1cbca9e401ef5851e0046b82b9102f4cf358f2974d7a7dfb3e21e96dcafe6c207417fa01834b9d10a2ee8d6
DIST python-gentoo-patches-3.13.15.tar.xz 9364 BLAKE2B 03cc93d5d89db0fedf92dc80e1a758b408fea4d718c7ef653b5068b791327a0d416870a362a652f21066abf17b15f682850f71473adf8e2bfc86ede4677738e5 SHA512 319805f8dad220b89c6d52bd76ba031f1c8c780c7338fdbe7fd35af685a8ee75ca2568d77863a67de64398e92c4b73beb581481846f81c24eb9f0317b81a848a
+DIST python-gentoo-patches-3.13.16.tar.xz 9364 BLAKE2B 7eb7072f782955041d5d1284a66312269671a4ef38b38d4b9e3e9fe65f6f4ae2fc1aaa3dae623743903acf38b99b6e15c3a11dd1a7892d6f1d34c3f33c81b7de SHA512 2ba2b6bb9c785ea78a88326ca4185d171a8f5c209a41269e0a70c244d037cae871be60a76c237d54f78720882cefe9fee8f8d3b132fed725b2beaf18765d3ed4
DIST python-gentoo-patches-3.14.6.tar.xz 10312 BLAKE2B 3415bb7859cdd8754987afdc7d0c793833755698a9a6b7e7b7c75d2c203109640cf5c1aff49ea38419273959479fb745cf956cae263515d82c0e7e67155be5c2 SHA512 19cb6f1424165153d2834b310ef6f8a0ac047351126191457fc0ce49238a6b21fe8a427897a5ce19bdd20076abc2189c71175981a67ab07dcbdec759b80005ab
DIST python-gentoo-patches-3.14.6_p1.tar.xz 12032 BLAKE2B 315de6cb5f346c6406e12d4cb6ccbc986e6a39dc334e5ceb4d1ba4922a336d77f0bd0167fb7ef4d1c40ce0829e03248e838dbfbd0a46c0e4e0f6cf9e999e09e8 SHA512 2ac689aa6cff138782440ce1104bf21eace756fd1a72e22590c14157390937f7f50cd1e1ca774bb5a1ff08404b74901fb55d703c39a6ff9c9165e420d1b045e9
DIST python-gentoo-patches-3.14.7.tar.xz 10304 BLAKE2B df9214b27caaef53da93e5468faae24186d5f37b675a86289ae0161539935a509d60635cde4569efd03769e228fb7d450e396bf731db2b49d4a46e0f70df4a87 SHA512 d8313edbf5126df6ed59d4e06fb813574e4dd672ccd433e6de776a06757deda0e0495bb92e59508d86bb5ee84d2fab8141c5446f6541104b1bd80c8647a1f705
+DIST python-gentoo-patches-3.14.8.tar.xz 10300 BLAKE2B d03992cf3aa224c03bdff6bb837879fac6c935265a384170c4139d09a9e3fb246cd7822ae171ed88999d6120512e7f49bd04c1d3f7ccee1967e194e1186ce7b3 SHA512 9d05432b04718ddaa5d09a0fc99d2498078398e94f00470b48f19c1779cc86997917825a1d2ac539e2170d8f0a9ade82a9b8909ae221db395a6f9fdbde3a24f6
DIST python-gentoo-patches-3.15.0b2.tar.xz 3436 BLAKE2B fa2128b899f2d93078058ccd3e47b780bd092a841b07add94da61a55bb1f9846ec1fa5e00bcd78fcdd1d7da80fdf1dbabcc5d644a70cebce2018c457b186c74a SHA512 e92e87c027c8d777faae20b264cd83353dbb23d15679e99465f014277d02078b8c68fce3723e176cbebd94ac2057e5a9703f0ae5f5691e934b74947735ec3a86
DIST python-gentoo-patches-3.15.0b3.tar.xz 3432 BLAKE2B 994e9339e00dfa4b40395e763f25dde4813d791151787028dafcf2e5159c38bbe88d4b56d07fc4c7454a09bd55edfda94b9cb8cf5c0ff0ffe7db4bb1a8eea8b6 SHA512 8c3a8dea43fc42179679b1f6811979dabb4e1c34821b4aecd894d661842df26e7592f5c74787157f36ccddf9ce233994c774fbe8381dc0ccaff3dfcff0c6c572
DIST python-gentoo-patches-3.15.0b4.tar.xz 3436 BLAKE2B 82a8b6a3467613229b938313f69dca219793fe5e4a16266483705f00062eec30f775bbaf4b50aa38062a96377a44071f2d29b5ae7926a003d3b70094ddc0db5e SHA512 0858432978d85453ca136c4b54737c6df8ca536852723f0625984ca7cb4aef623286d94e34b8ac80f2f7547a8fe95390972e569bdcdb30c93f4466eab586022b
diff --git a/dev-python/python-tests/python-tests-0.3.14.8.ebuild b/dev-python/python-tests/python-tests-0.3.14.8.ebuild
new file mode 100644
index 000000000000..5eb635e5eab7
--- /dev/null
+++ b/dev-python/python-tests/python-tests-0.3.14.8.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+REAL_PV=${PV#0.}
+MY_PV=${REAL_PV/_/}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 2-3)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.12.15.ebuild b/dev-python/python-tests/python-tests-3.12.15.ebuild
new file mode 100644
index 000000000000..d0041a04db11
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.12.15.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.12.5_p1-r1:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.13.16.ebuild b/dev-python/python-tests/python-tests-3.13.16.ebuild
new file mode 100644
index 000000000000..4f374a4aed58
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.13.16.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.13.0_rc1_p3-r1:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20260805 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.14.8.ebuild b/dev-python/python-tests/python-tests-3.14.8.ebuild
new file mode 100644
index 000000000000..9f9623be450f
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.14.8.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_/}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/sabctools/files/sabctools-8.2.6-py314testfix.patch b/dev-python/sabctools/files/sabctools-8.2.6-py314testfix.patch
deleted file mode 100644
index 50b26be43caf..000000000000
--- a/dev-python/sabctools/files/sabctools-8.2.6-py314testfix.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/tests/test_decoder.py b/tests/test_decoder.py
-index 9503923..d45e607 100644
---- a/tests/test_decoder.py
-+++ b/tests/test_decoder.py
-@@ -76,29 +76,32 @@ def test_empty():
-
- def test_ref_counts():
- """Note that sys.getrefcount itself adds another reference!"""
-+ # In Python 3.14+, getrefcount returns 1, in earlier versions it returns 2
-+ expected_refcount = 1 if sys.version_info >= (3, 14) else 2
-+
- # Test regular case
- data_plain = read_plain_yenc_file("test_regular.yenc")
- data_out, filename, filesize, begin, end, crc_correct = sabctools_yenc_wrapper(data_plain)
-
-- assert sys.getrefcount(data_plain) == 2
-- assert sys.getrefcount(data_out) == 2
-- assert sys.getrefcount(filename) == 2
-- assert sys.getrefcount(begin) == 2
-- assert sys.getrefcount(end) == 2
-- assert sys.getrefcount(crc_correct) == 2
-+ assert sys.getrefcount(data_plain) == expected_refcount
-+ assert sys.getrefcount(data_out) == expected_refcount
-+ assert sys.getrefcount(filename) == expected_refcount
-+ assert sys.getrefcount(begin) == expected_refcount
-+ assert sys.getrefcount(end) == expected_refcount
-+ assert sys.getrefcount(crc_correct) == expected_refcount
-
- # Test simple error case
- fake_inp = memoryview(bytearray(b"1234"))
-- assert sys.getrefcount(fake_inp) == 2
-+ assert sys.getrefcount(fake_inp) == expected_refcount
- with pytest.raises(ValueError):
- sabctools.yenc_decode(fake_inp)
-- assert sys.getrefcount(fake_inp) == 2
-+ assert sys.getrefcount(fake_inp) == expected_refcount
-
- # Test further processing
- data_plain = read_plain_yenc_file("test_bad_crc_end.yenc")
- with pytest.raises(ValueError):
- sabctools_yenc_wrapper(data_plain)
-- assert sys.getrefcount(data_plain) == 2
-+ assert sys.getrefcount(data_plain) == expected_refcount
-
-
- def test_crc_pickles():
diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest
index 8846676a36d9..c45fadbd594d 100644
--- a/dev-python/selenium/Manifest
+++ b/dev-python/selenium/Manifest
@@ -6,8 +6,11 @@ DIST selenium-4.48.0.tar.gz 1055269 BLAKE2B b32ee5a3173349ea84a1e02a0597c97b16ba
DIST selenium-4.48.0.tar.gz.provenance 9510 BLAKE2B 64930b11f482d836deb355698076bc7b6d69503cc71210ac287d6b666d7ba7af2a489732fbd05ecb745b4ae6d4427f10ab5417f160f9ad5bcdbaf576026620fe SHA512 39b4104f5e9bc8df64e100a20113558496913a344c27610fa558507d97c17cba78c76e181eacdcd7317c1473d09eed5946a85479fbe48402e13a923c906d5886
DIST selenium-4.49.0.tar.gz 1059027 BLAKE2B 9e35fb89dc9966c22ea1577ce7bc0aa3911528cb303255320e757ab6a4d8be66212616aa0ce8cea75441fc11efdf3cb5afa93f4b1a12d6c610c4bd18dbbf6c1c SHA512 c570250edd551bfb1629543c53c360619e6ed214dcb31f9abab43d5ff34f6b52909ac72d362fa9d7fec078df0bf7f73ae193acdd2016e1a42655c2f300c4053b
DIST selenium-4.49.0.tar.gz.provenance 9690 BLAKE2B bbaccc4cba8a4da1c8c5278eb5e4ff2e765920721530eaf041d6b834d14fc60911db530fa93d0b9f9048381627e34e0ca9bf590527354b3a7af233e67095bf49 SHA512 0544fd467dc562e65ffb0125df2d424047890dcae01cd28639c2eabea73be7892d05be6095f4cb739d1f1a239f1d187c0afc0b083bfebbce9ed877660ab7a890
+DIST selenium-4.50.0.tar.gz 1051762 BLAKE2B 6b8854841d8738b8ad36d3654f8a80f8a34b612755380f194cbc3ef4eb83c45d4491cbbf37fd5f4be49a4e431f16f68c0a2b3a24c92bdef961eb2b61b01c91b1 SHA512 59c5f16fb34cd4fa18e6c4d0fd3e8d0cd30ebcaa3e4e255be26ecbc83094da49634ef63be8ced154b0de357d11d2f8f7c4652d4a85b7b2e6385d68ef79f8efd2
+DIST selenium-4.50.0.tar.gz.provenance 9600 BLAKE2B 3e6faa407fd5dac2057d3bb86f18767ff1cc2308cc46a3712c4b9eee5af2abcbd6ce517d9b7182a759d6a832d2d892b5e593c3ccf21da6b4d23765a862591a51 SHA512 f3b9dc689bc5884fc959dda9dece84eb3fbc28f837a579220ffcddf44489a4360cad1649619ab06d75a0dce29a49ec4fc042d353d5934d60cf746739a38bf236
DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef SHA512 5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba
DIST selenium-selenium-4.35.0.gh.tar.gz 52550104 BLAKE2B b7ed0fb513cfb2ed24aa8393497b349f930739c3d24a330e5942fbaa5505f31d7086396a430776a3a28a5f65927b92bf27c0a32e8c36d893b5d62ef73151d5ef SHA512 dc73829e3b0fcb7fb7ee1cc04574b95b63d23f67974575dbd66338e14a5cb2b06f983145ce874be0d7124e8828b0a41b99c75d3befb19e04cbf8d027d0bb983a
DIST selenium-selenium-4.47.0.gh.tar.gz 44062095 BLAKE2B d6ce15ce857d3dd0e796935981e419be5357d49921ff76d5bcdf508408022234a2f96859e961b29e62666d3f28875910384900701629a4646b809f1b9c0e8617 SHA512 bb8dc827715fcb276211dd9800e8a375fa2b59b4e42a2952091946c7df2dabe226517633191da3b134d7fdd1554b0643added277be577fe4985dc54d141fad5d
DIST selenium-selenium-4.48.0.gh.tar.gz 44169864 BLAKE2B 6c3073b38b660f73fbfd1b683403d851c62ef1fd13a8d6f4e2df60e562e895ea323cdd999686e70d22b3a40e2cd0194b27cd88a4b4bbbe2dd4795ece30496659 SHA512 f1e5a02d9b2946586263b50be33aea75c3cc98013bafcbe52f8c787f497011528c25d392c0af3af0b3a0023ddfe1a87ab10eb3e813eef6feff3bd9bbe285cd77
DIST selenium-selenium-4.49.0.gh.tar.gz 44228222 BLAKE2B 3efebe68d3b3b70e5089225d86b693357154d8c66d0ec6545d77012edc54edcc1ecde69b92f4e7bb110ce734c49a1766cb8d8fcb13814bac9d0b7dbd49a41567 SHA512 f5aba633816adf0d57814ce62832d3d0ec70ad75c466af4696c47b904f69411afc7a23464544d699b6b1f7d5b927c18e817c45e993c57c98b9f37299949bf625
+DIST selenium-selenium-4.50.0.gh.tar.gz 44272291 BLAKE2B 01dbb95665649c693909f8ebeec0de60f7b219eedbfa320e509689e1bf03d6468a07811e4d68b083af12b79e74f2d60a47e018337952ffead96005c632e09c22 SHA512 34a17233ad4e8caf156993efb9d3860468ed96b71c319735019cfec3461938b035555136a7ed6ae3c529260e59b08c00d5522991391da2fd474bc33413814cea
diff --git a/dev-python/selenium/selenium-4.50.0.ebuild b/dev-python/selenium/selenium-4.50.0.ebuild
new file mode 100644
index 000000000000..6bc9836d962e
--- /dev/null
+++ b/dev-python/selenium/selenium-4.50.0.ebuild
@@ -0,0 +1,151 @@
+# 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/SeleniumHQ/selenium
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+# base releases are usually ${P}, followups ${P}-python
+TEST_TAG=${P}
+[[ ${PV} != *.0 ]] && TEST_TAG+=-python
+TEST_P=selenium-${TEST_TAG}
+
+DESCRIPTION="Python language binding for Selenium Remote Control"
+HOMEPAGE="
+ https://seleniumhq.org/
+ https://github.com/SeleniumHQ/selenium/tree/trunk/py/
+ https://pypi.org/project/selenium/
+"
+SRC_URI+="
+ test? (
+ https://github.com/SeleniumHQ/selenium/archive/${TEST_TAG}.tar.gz
+ -> ${TEST_P}.gh.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/certifi-2026.1.4[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.31.0[${PYTHON_USEDEP}]
+ >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep "
+ dev-python/filetype[\${PYTHON_USEDEP}]
+ dev-python/pytest-mock[\${PYTHON_USEDEP}]
+ dev-python/rich[\${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}]
+ >=dev-util/selenium-manager-${PV}
+ net-misc/geckodriver
+ || (
+ www-client/firefox
+ www-client/firefox-bin
+ )
+ )
+ " "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not build selenium-manager implicitly
+ sed -e 's:\[tool\.setuptools-rust:[tool.ignore-me:' \
+ -i pyproject.toml || die
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+ # remove nonsense typing deps
+ sed -i -e '/types/d' -e '/typing/d' pyproject.toml || die
+}
+
+python_test() {
+ # NB: xdist is causing random pytest crashes with high job numbers
+
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ local EPYTEST_IGNORE=()
+ local EPYTEST_DESELECT=(
+ # expects vanilla certifi
+ test/unit/selenium/webdriver/remote/remote_connection_tests.py::test_get_connection_manager_for_certs_and_timeout
+ )
+ local pytest_args=(
+ # https://github.com/SeleniumHQ/selenium/blob/selenium-4.8.2-python/py/test/runner/run_pytest.py#L20-L24
+ # seriously?
+ -o "python_files=*_tests.py test_*.py"
+ )
+ if use test-rust; then
+ local -x PATH=${T}/bin:${PATH}
+ local -x SE_MANAGER_PATH="$(type -P selenium-manager)"
+
+ local EPYTEST_RERUNS=5
+ pytest_args+=(
+ --driver=firefox
+ --browser-binary="$(type -P firefox || type -P firefox-bin)"
+ --driver-binary="$(type -P geckodriver)"
+ --headless
+ )
+
+ EPYTEST_IGNORE+=(
+ # throws some error that pytest doesn't even show
+ test/selenium/webdriver/firefox/ff_installs_addons_tests.py
+ test/selenium/webdriver/common/bidi/
+ )
+ EPYTEST_DESELECT+=(
+ # expects prebuilt executables for various systems
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_windows
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_linux
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_mac
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_errors_if_invalid_os
+
+ # TODO: these don't respect --*-binary and try to fetch versions
+ test/selenium/webdriver/firefox/
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestIntegration::test_we_can_pass_options
+ test/selenium/webdriver/marionette/mn_set_context_tests.py::test_we_can_switch_context_to_chrome
+
+ # TODO
+ 'test/selenium/webdriver/common/devtools_tests.py::test_check_console_messages[firefox]'
+ test/selenium/webdriver/common/_bidi/
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_binary
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_ctor
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_prefs
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_to_capabilities
+ test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_element_with_custom_locator
+ test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_elements_with_custom_locator
+
+ # Internet
+ test/selenium/webdriver/remote/remote_server_tests.py::test_download_latest_server
+ test/selenium/webdriver/remote/remote_hub_connection_tests.py::test_command_executor_ssl_certificate_is_verified
+ )
+ else
+ EPYTEST_IGNORE+=(
+ test/selenium
+ )
+ fi
+
+ cd "${WORKDIR}/${TEST_P}/py" || die
+ rm -rf selenium || die
+ epytest "${pytest_args[@]}"
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 7e5b67673dec..bfe6512d0ee4 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,2 +1,2 @@
-DIST sqlglot-30.19.0.tar.gz 6042945 BLAKE2B 588d583bcf1deee2a778bb2d0bc2f46b73ba3367a1f69615275412ab7cf720b1b20ab019ea1840c889c6f071b2afa2d28aeed32d7bf866ef167e086c02cfb919 SHA512 70b599c739093cf9c79926ff5d4ca3c3a2211f554d54ce25097115de40ef8e40cd2a8ba377d42ff0301f3ac50025539df35c796dde1cef8efa50c6c1947c0b3b
DIST sqlglot-30.20.0.tar.gz 6051245 BLAKE2B e0345dcae023a8e750095fda5d39d6f480d0c3ebfc2812f7eb68760759324575fdba51d5c7895cf31b985f248219850205892018ed8bc2c236e164c312f10a22 SHA512 8ad562c3c2895416ac604892386d1fa453a04de05553003d1cf94eba99b6dc5d739e5f0d7724bc6a0d72120a7ed1e0382bc6597e4ada5077048ecfae02d6d8dd
+DIST sqlglot-30.21.0.tar.gz 6064227 BLAKE2B f68dfa2c03ed44f3cf12d5654ab9ba95ccc7ca188018ded9e1e2edbc1e73c4eb3a37041dd2bf35269e8f4127093ad26e31936423c75eb147de5e03fde60137af SHA512 3ec6790fed025087b14c885a29a5e84c998a33fcbe4676592ec920cac69d07e72ae3e0edf2c54405eb097a1569dbb70bf8ea068e9e680054d70622e782b97356
diff --git a/dev-python/sqlglot/sqlglot-30.19.0.ebuild b/dev-python/sqlglot/sqlglot-30.21.0.ebuild
index 063fa5096326..063fa5096326 100644
--- a/dev-python/sqlglot/sqlglot-30.19.0.ebuild
+++ b/dev-python/sqlglot/sqlglot-30.21.0.ebuild
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index e02e985a0214..a55a6cdafb06 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,6 +1,6 @@
-DIST stripe-15.4.0.tar.gz 1538270 BLAKE2B e2fed8eb46ec91a8f27ca3408b6b32a0c3b365059a92d6997c5d266c11bb0b11d101f9198ca48c0dfd43e3b6d746eaf26996a6b4d21cc432fe020d3e6dd8caf8 SHA512 544d6c8c2dc47d7f68c097f2eac5cb3075397742031b59fde01d2141e15655feb879b9a9c575dbf65ed5c9d37e4c75adcb53291f9b7e072af625ede33eb3cc2c
-DIST stripe-15.4.0.tar.gz.provenance 9618 BLAKE2B 7772df6031e1cebb15bbbfff575dc6e7a0b86477dbc6c261221aab1398da0f35c3524f925e92f6931c5fd30195a054421d7241644ed32452af2f0c06f288682d SHA512 c05853f5a4841b2f6e9a1bba6c27eab320f10392b2c922e1bacaaac0fbd3bbd21e6eae7375dc50ea4c9e2dbab1a5a1f5536d88f14d628bead3477968daa93cfb
DIST stripe-15.5.1.tar.gz 1544797 BLAKE2B d2af1a485a4ace353c35240c3daa4cc15b6e557a16f510633a56849c885db09007a67034965271a184a5f0089abfbd058995e40c7fa44ed7fbefa565e89de382 SHA512 3c31ff744972622323faa84598b75718bcda8a5dac4e2e510ff1c5265af2306f2ef7fbd005aa6ad48659102c5b60d8c84dd4666ba1631096260b7f68c291a63c
DIST stripe-15.5.1.tar.gz.provenance 9722 BLAKE2B 3b89619847e7ed07348ce8b386063da97d635d4a246e224a16371d1ef4a737d29286e68207da4d3ff045f37d24fdfe9192e7d830780a9dd972ef56fa50c53940 SHA512 27fd6ebf1e35c2057a36a2e930a63b5f88f6ca9371e1c1f3b51e3d181f401ceb0d0068962f3bdd9c197dc3d7c2cb557f2b3c9c955fd39238c54d88ff14ac446a
DIST stripe-15.6.1.tar.gz 1569005 BLAKE2B fd6fd2143291040140eb0172cbc6b04a0ddfc5fa8536d537e074f994d51f00ec8f323eef6361f3d385f9b93a0b7405f3046ed51c5e4f09467e0e7d4c10f79984 SHA512 f46566430302ac8fff22121ee560253a68d909f1fb0d3c27adad4c5f07b9c1d201bf64413ada517748b518c65d5c62a5f158e208370aade1b073634ac6e8b826
DIST stripe-15.6.1.tar.gz.provenance 9757 BLAKE2B 94e375fa32980d5462775d78e7b386e7409e65182d627c5242c78fd4b87461ffc8187a94e7ec8ced22eb7f4cba2ed6748b9f49b45dc49d4b584c654ef4479721 SHA512 4e1f1623c50897edc33fef0f89801f30f18eb89b874446620a3a620977257cf8a25938023038d15dd210ba09daadca59778454bcde3fc419a870371fb1bb1cc3
+DIST stripe-16.0.0.tar.gz 1665584 BLAKE2B 6a41f06fc8187e5ae23687dc50a509f7ffd23041869ed66e33ce32143fb6e6778f859e7cdd2d2db175ebfd2a76daba5e279b7a265fbfa873b18efb44b65c5a55 SHA512 c6261f3b04b9a7ce86c2d02526626f4ce8a808ce7f6ad3830c6a737f0a872bfb1e14ca8ed603f09d0840526e624fbfbef57fd5672c66e9c3fc3cba56410a374c
+DIST stripe-16.0.0.tar.gz.provenance 9769 BLAKE2B eeaab3bc0f207641b9a11c32345a76f7ce2115011e53eda5389d0fa5a233a73d2caffcd159822e4a51d37aa3f0454500937af1d557c31eadc8bd94f9eb4a0edf SHA512 be63e4c682e6b30648cd3e762583d16d330380db2632a1ad49d9d356967ce161f5d47b8efa915c52c90925f6ddb59c4553ddb0374453398c657ab9ec66dd992f
diff --git a/dev-python/stripe/stripe-15.4.0.ebuild b/dev-python/stripe/stripe-16.0.0.ebuild
index 4087375d52b2..d87b66115eea 100644
--- a/dev-python/stripe/stripe-15.4.0.ebuild
+++ b/dev-python/stripe/stripe-16.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="telemetry"
RDEPEND="
diff --git a/dev-python/thrift/Manifest b/dev-python/thrift/Manifest
index 7ec466d88568..9e7d73bbdecc 100644
--- a/dev-python/thrift/Manifest
+++ b/dev-python/thrift/Manifest
@@ -1,2 +1,2 @@
-DIST thrift-0.23.0.tar.gz 4608023 BLAKE2B 6780b4afa3d85e106f81458a8d11f823233baa890df1ddc17b059c9394bfb7e13ef6699697b8c3ef991e24f74611c3040490175be90fa0cd46b12d8c4f44ddc3 SHA512 a57c6fa645852f22ca10380621facc193393b19d1d760e113baa0f964365839043f2b527bd8cd3c03808380e9f09e9a8f707f8abbd931c51632e9d5181a459cf
DIST thrift-0.24.0.tar.gz 4640299 BLAKE2B b10dda5740ccd4d5969621d90ff17db03a8d410eef7ce344bc59188022ca4de6912027e06074f50c3be5ccd64170d6410a1166512d24aa18135aad1e1e1d68ac SHA512 843ae8358b76eab1c37996e9693040115c26a0fdb1e6f8f6ade190d2f431ac5554492b0a5c7dc66c9ce6eb7c5db086d6e260e191a39b2706fe736d9e1f09cdbe
+DIST thrift-0.25.0.tar.gz 5068440 BLAKE2B 54fe9c1131097f088fb95e7f7b7019f61b3f74498eff03d782bdcedd2451cd42ec1fc2f2cfba56712691de63f3bb28fe456b0264d56805b07a69aaccb039d912 SHA512 0570486bd6e4aa95a2eb329ad01a867a7999f7a936248e8fa3312a2dd20e247b7677d58f84a8e05e82de6bbb09647da2fe0e6aa720e825468e9f9b479831e76a
diff --git a/dev-python/thrift/thrift-0.23.0.ebuild b/dev-python/thrift/thrift-0.25.0.ebuild
index 096d1b9dc415..54e7fcf4ad70 100644
--- a/dev-python/thrift/thrift-0.23.0.ebuild
+++ b/dev-python/thrift/thrift-0.25.0.ebuild
@@ -22,11 +22,34 @@ S="${WORKDIR}/${P}/lib/py"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~riscv x86"
+KEYWORDS="~amd64 ~riscv ~x86"
+IUSE="+native-extensions test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ >=dev-libs/thrift-0.24.0
+ )
+"
distutils_enable_tests unittest
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # upstream tries True, and if it fails, tries False
+ # just subtitute both to get what we want
+ local build_ext=$(usex native-extensions True False)
+ sed -e "/with_binary=/s:False\|True:${build_ext}:" \
+ -i setup.py || die
+}
+
python_test() {
+ # upstream generates more files, but only these seem to affect
+ # test results
+ thrift --gen py ../../test/Recursive.thrift || die
+ thrift --gen py:dynamic test/test_thrift_file/RecursiveDynamic.thrift || die
+
eunittest test
}
diff --git a/dev-python/urwid/Manifest b/dev-python/urwid/Manifest
index d85cf727f5df..ca716cc2ec2a 100644
--- a/dev-python/urwid/Manifest
+++ b/dev-python/urwid/Manifest
@@ -16,3 +16,5 @@ DIST urwid-4.1.7.tar.gz 333293 BLAKE2B 79833c7902c0f0b9ccba01e927f86e4ea1d9c6489
DIST urwid-4.1.7.tar.gz.provenance 9632 BLAKE2B f5eb1def154fadc6d75cbfea3df07b072d848196f2eea524d9ddbedcd4a60c605878ece7f96b6243efadda906d4c225da205db339788459722bc8bdb0f3a52fa SHA512 278782867fdf4a712a86005b20615effe394118eab8fd560d53c8aa9e497dcb7c215faaa560e1dc4866256f195136766f97e27faa076f99b4499ff00ec589319
DIST urwid-4.2.1.tar.gz 345151 BLAKE2B eda9c52f585ee6653e920b10a73be85450583d402fa2f1fb8c4f9b830662e32594bf4dbe144d61df06122682bea9e34ac029a6e420ad7795263e0d87c37b4bb2 SHA512 6ef31be02f758e72e84b393e92e416ec04ac3c8f7bf15791248d1292a436698f7f3907311c9793a517ef92935ee86a97a320b3ddca2dc61993ae0bab979d2b81
DIST urwid-4.2.1.tar.gz.provenance 9573 BLAKE2B 3f84c403f58a15dca5b36fee0e838a2cb345380e156cc8314d1fa585783d240c3d559f4529e0ca6667c687f3895c7291de38131900b3690c23cb13069170f208 SHA512 9df5ae21b1a803bd3d765c9adab946721431072d18d75b7190620efe4904f73d1b6d6c340aa631cb3f9c14724c01e4d5f500a4ced68997cd4a2208d7c68ad0e2
+DIST urwid-4.2.3.tar.gz 346125 BLAKE2B 61535dd9f35753cbf2342806ef5151afa61b971bc4071aa1a20253156d523b139960ac1dca40394535c3815af3989310de256eb96fbc1da2411df44d19d122b5 SHA512 132adcdbccbfe1699a60ca9ef9218c1776926b6da2004863e73c29a6173f41fa3322ad74b29bf49b97a0edb3db52e81ee5ba2d2ee8b97d3276e8f78f39b4b2d5
+DIST urwid-4.2.3.tar.gz.provenance 9530 BLAKE2B 2b6b607f9bdaecf66a6ab2c575fbacbe2bb8f81f4bddc3dbc54dad236ee27384d98befb6d04fb474f40279a632cec1c3fbf57d9c3a9b0a1ad9bf7e957d954abd SHA512 a786d80207f7f80dd36cc4417479e51dacbcc4f97ed0e6377e885b1cc6e30ed7d5001bf9d6a1f94771851bfaf16c323c484736110cd86145d39d9716ded5521a
diff --git a/dev-python/urwid/urwid-4.2.3.ebuild b/dev-python/urwid/urwid-4.2.3.ebuild
new file mode 100644
index 000000000000..5b61181891fe
--- /dev/null
+++ b/dev-python/urwid/urwid-4.2.3.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/urwid/urwid
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Curses-based user interface library for Python"
+HOMEPAGE="
+ https://urwid.org/
+ https://pypi.org/project/urwid/
+ https://github.com/urwid/urwid/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:--cov --cov-report=term::' pyproject.toml || die
+}
+
+pkg_postinst() {
+ optfeature "Trio event loop" "dev-python/trio"
+}