summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-01-29 07:21:11 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-01-29 07:21:11 +0000
commit86b397d8d184bd2836f67ab24caee5732d4fad58 (patch)
treeaef4377a9cd8ff06dd1a7255f56019fb9a9aada9 /dev-python
parentc36b4c6718275efcbf97d77f23efb41f6b04418c (diff)
downloadbaldeagleos-repo-86b397d8d184bd2836f67ab24caee5732d4fad58.tar.gz
baldeagleos-repo-86b397d8d184bd2836f67ab24caee5732d4fad58.tar.xz
baldeagleos-repo-86b397d8d184bd2836f67ab24caee5732d4fad58.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/absl-py/Manifest1
-rw-r--r--dev-python/absl-py/absl-py-2.4.0.ebuild85
-rw-r--r--dev-python/alembic/Manifest1
-rw-r--r--dev-python/alembic/alembic-1.18.2.ebuild57
-rw-r--r--dev-python/bareos/Manifest1
-rw-r--r--dev-python/bareos/bareos-25.0.1.ebuild18
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.42.37.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.42.37.ebuild67
-rw-r--r--dev-python/confuse/Manifest1
-rw-r--r--dev-python/confuse/confuse-2.2.0.ebuild29
-rw-r--r--dev-python/hypothesis/Manifest2
-rw-r--r--dev-python/hypothesis/hypothesis-6.151.3.ebuild100
-rw-r--r--dev-python/hypothesis/hypothesis-6.151.4.ebuild100
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/pbs-installer/Manifest6
-rw-r--r--dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild31
-rw-r--r--dev-python/pbs-installer/pbs-installer-2026.1.27.ebuild (renamed from dev-python/pbs-installer/pbs-installer-2026.1.13.ebuild)0
-rw-r--r--dev-python/psutil/Manifest1
-rw-r--r--dev-python/psutil/psutil-7.2.2.ebuild101
-rw-r--r--dev-python/pykeepass/Manifest1
-rw-r--r--dev-python/pykeepass/metadata.xml19
-rw-r--r--dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild44
-rw-r--r--dev-python/stripe/Manifest2
-rw-r--r--dev-python/stripe/stripe-14.3.0.ebuild (renamed from dev-python/stripe/stripe-14.0.1.ebuild)4
-rw-r--r--dev-python/xarray/Manifest2
-rw-r--r--dev-python/xarray/xarray-2026.1.0.ebuild139
-rw-r--r--dev-python/zxcvbn/Manifest1
-rw-r--r--dev-python/zxcvbn/metadata.xml19
-rw-r--r--dev-python/zxcvbn/zxcvbn-4.5.0.ebuild28
34 files changed, 897 insertions, 47 deletions
diff --git a/dev-python/absl-py/Manifest b/dev-python/absl-py/Manifest
index 727d3c5648b9..bede6b627273 100644
--- a/dev-python/absl-py/Manifest
+++ b/dev-python/absl-py/Manifest
@@ -1 +1,2 @@
DIST abseil-py-2.3.1.gh.tar.gz 239285 BLAKE2B 5b9a0449bf07b3d46a3f8e0c2ce1deefd076bf373d0b2d07c1f35dfae73e2fe34d5436b7c63e4122f09f86df75c4d0cfbfd3339c7dae4798a39dc462b8a48516 SHA512 926b9ddb17342f74e05142fa353331c6cc1699302dadad5b7ec8c68813f2b65becb0743b299f26cc1899fc688e9f70f1d2ed4919a76539c940e963a38feba3ba
+DIST abseil-py-2.4.0.gh.tar.gz 241073 BLAKE2B bd1d2d0771f64be4eedfa8475dae16cb4590cda5fe66edc8ccfcb395b93cc9f95a561538d1002eccf5fb764c4c4e902ddfa5bf736a31cbaec1450f89105ba225 SHA512 26278e1b64e803f3a171cb7cbe4e188df0d1e27c69042b932a97160b77778e72af518b62564f5682b0a6d506ec74f8491015e37dcd1b1e1a305ac19b1505a935
diff --git a/dev-python/absl-py/absl-py-2.4.0.ebuild b/dev-python/absl-py/absl-py-2.4.0.ebuild
new file mode 100644
index 000000000000..f126fd6084cd
--- /dev/null
+++ b/dev-python/absl-py/absl-py-2.4.0.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P=abseil-py-${PV}
+DESCRIPTION="Abseil Python Common Libraries"
+HOMEPAGE="
+ https://github.com/abseil/abseil-py/
+ https://pypi.org/project/absl-py/
+"
+SRC_URI="
+ https://github.com/abseil/abseil-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # what a nightmare... well, we could have called bazel but that would
+ # even worse
+ local helpers=(
+ absl/flags/tests/argparse_flags_test_helper.py:absl/flags/tests/argparse_flags_test_helper
+ absl/logging/tests/logging_functional_test_helper.py:absl/logging/tests/logging_functional_test_helper
+ absl/testing/tests/absltest_fail_fast_test_helper.py:absl/testing/tests/absltest_fail_fast_test_helper
+ absl/testing/tests/absltest_filtering_test_helper.py:absl/testing/tests/absltest_filtering_test_helper
+ absl/testing/tests/absltest_randomization_testcase.py:absl/testing/tests/absltest_randomization_testcase
+ absl/testing/tests/absltest_sharding_test_helper.py:absl/testing/tests/absltest_sharding_test_helper
+ absl/testing/tests/absltest_sharding_test_helper_no_tests.py:absl/testing/tests/absltest_sharding_test_helper_no_tests
+ absl/testing/tests/absltest_test_helper.py:absl/testing/tests/absltest_test_helper
+ absl/testing/tests/absltest_test_helper_skipped.py:absl/testing/tests/absltest_test_helper_skipped
+ absl/testing/tests/xml_reporter_helper_test.py:absl/testing/tests/xml_reporter_helper_test
+ absl/tests/app_test_helper.py:absl/tests/app_test_helper_pure_python
+ )
+
+ local x
+ for x in "${helpers[@]}"; do
+ local script=${x%:*}
+ local sym=${x#*:}
+ sed -i -e "1i#!/usr/bin/env python" "${script}" || die
+ chmod +x "${script}" || die
+ ln -s "${script##*/}" "${sym}" || die
+ done
+
+ # i don't wanna know how these pass for upstream with wrong helper names
+ sed -e 's:\(app_test_helper\)\.py:\1_pure_python:' \
+ -i absl/tests/app_test.py || die
+ sed -e 's:\(logging_functional_test_helper\)\.py:\1:' \
+ -i absl/logging/tests/logging_functional_test.py || die
+}
+
+python_test() {
+ local -x PYTHONPATH=.
+ local -x COLUMNS=80
+ local fails=0
+ while read -r -d '' x; do
+ # This test is plain broken, as it assumes shutil.get_terminal_size()
+ # will fail and a broken mock will take over.
+ [[ ${x} == *flags_formatting_test* ]] && continue
+ ebegin "${x}"
+ "${EPYTHON}" "${x}"
+ eend ${?} || : "$(( fails += 1 ))"
+ done < <(find -name '*_test.py' -print0)
+
+ [[ ${fails} -ne 0 ]] && die "${fails} tests failed on ${EPYTHON}"
+
+ # we actually need to clean this up manually before running the test
+ # suite again...
+ chmod -R u+rwX "${T}"/absl_testing || die
+ rm -rf "${T}"/absl_testing || die
+}
diff --git a/dev-python/alembic/Manifest b/dev-python/alembic/Manifest
index 60a80ac68778..cda3dc1ad3dd 100644
--- a/dev-python/alembic/Manifest
+++ b/dev-python/alembic/Manifest
@@ -1,3 +1,4 @@
DIST alembic-1.17.2.tar.gz 1988064 BLAKE2B 7ad3212322d900b464de8fb7c2fd341dacbb73698fbc471d99f353ebca0da98035c7032a550b7c78dcbdfb85058d456791602a05ac1caa3f34b201e319b8d9a2 SHA512 39ac83508b505fb81c26afdbe28edc3b9aeffd536d63f0ba8e8015fde4a815b899d269417a18aa4325a08a97cb74b6c52057960ecec6839fe3dc070a6752b9c5
DIST alembic-1.18.0.tar.gz 2043788 BLAKE2B 1e32e82be3d148b437d2648368e1d4f918a50201516939f1c6d3a2d9f283b6df1e331c43661c4783ba15b9acd11684b075b869af138600a247e3ad49783a4f46 SHA512 77f9d9e3a1c7179e655176ffb630e8f6c90fc646e6d74172f52e41858ba7ca150eb088e54a57fbe08bcec9109ed61e3bfe10b017ecc42cde9a9adbd82c273d45
DIST alembic-1.18.1.tar.gz 2044319 BLAKE2B cae1cfba98c726dbb62a0118f078775251e3cd36fcafb2a31915273d3ac80642975ba22ec26ec30603f17f29a428e9a8f9055cfdc83c01eb2cd3d3932ac44111 SHA512 61badced91f07e0179dd034792133557b6adcc406a478b78960cf59f0a34a409372b7f482de29b581fccc314a8cfd3e493755c716c593d40303d8099646699aa
+DIST alembic-1.18.2.tar.gz 2048272 BLAKE2B abbf8db02bf33954506c4abc2b12b8460bebd916413e6a5059893e8903128f2ae863150931e795b18e2a84d63019cfc22f9f48778a5490aab8ae93a521a109cc SHA512 3e9e9a9ca03a3cb93ba127a9566892430eb5619270d6e40ec6a753a9ce77b505b8cc6020f6ea52288ed5347da1fe5c8603dc3b14d4acf23c9947735abcdb43a8
diff --git a/dev-python/alembic/alembic-1.18.2.ebuild b/dev-python/alembic/alembic-1.18.2.ebuild
new file mode 100644
index 000000000000..5f0d2e92631e
--- /dev/null
+++ b/dev-python/alembic/alembic-1.18.2.ebuild
@@ -0,0 +1,57 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Database migrations tool, written by the author of SQLAlchemy"
+HOMEPAGE="
+ https://github.com/sqlalchemy/alembic/
+ https://pypi.org/project/alembic/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-python/sqlalchemy-1.4.0[${PYTHON_USEDEP}]
+ dev-python/mako[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ sys-libs/timezone-data
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ if ! has_version "dev-python/black[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_post_write.py::RunHookTest::test_module
+ tests/test_post_write.py::RunHookTest::test_module_black_with_cwd
+ tests/test_post_write.py::RunHookTest::test_module_filename_interpolation
+ tests/test_post_write.py::RunHookTest::test_module_path_in_config
+ )
+ fi
+
+ # setup.cfg contains -p no:warnings in addopts which triggers
+ # datetime.utcfromtimestamp() deprecation warning as an error in py3.12
+ epytest -o addopts=
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/bareos/Manifest b/dev-python/bareos/Manifest
index fc7ff8f389fd..4cf76fab1caf 100644
--- a/dev-python/bareos/Manifest
+++ b/dev-python/bareos/Manifest
@@ -1 +1,2 @@
DIST bareos-24.0.3.tar.gz 13377716 BLAKE2B d44b6f5d742ddd43029eea0599cf5746b9f348d3fbdb106afd2a55c35cfb1d12a05fd16fac2f3246e284317ab1577569f38ff8908855900d8480d6834c692c62 SHA512 7d30fa23499f9a0ebcd66688416c1ec63d8ae9a507ba18d4c37dc6ded8bd709e6c232ee8bb1d5736972c7f279b6ba9b9c0a8bf1b3cb06460ecd38158bddf3b43
+DIST bareos-25.0.1.tar.gz 12308189 BLAKE2B e2926ca032e3d0c688e75af7cc5ed379072197481fff7b493fd2bc9eba7d53600ccbfc4cb3069295e0dcdf7ad64f8a102a92a5e766a8a77d452620eba02a3b6f SHA512 ed11fd117124ac135d84fc93957654ef9234706998a3ccf3b105b24c71cefc845c7e6a6ca1d42a192850c4f5ecd0ebfb5c3afa38ed9b7014da0c1413648dec86
diff --git a/dev-python/bareos/bareos-25.0.1.ebuild b/dev-python/bareos/bareos-25.0.1.ebuild
new file mode 100644
index 000000000000..c424c153bae5
--- /dev/null
+++ b/dev-python/bareos/bareos-25.0.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+DESCRIPTION="python bindings for bareos network backup suite"
+HOMEPAGE="https://www.bareos.com/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/Release/${PV}.tar.gz -> ${P}.tar.gz"
+S=${WORKDIR}/${PN}-Release-${PV}/python-bareos
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+RESTRICT="mirror test"
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index c10f25d82169..0dcce7e0fc35 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,3 +4,4 @@ DIST boto3-1.42.25.gh.tar.gz 1069210 BLAKE2B 33aff7204332da82b7b5df93b74a2b17538
DIST boto3-1.42.30.gh.tar.gz 1072966 BLAKE2B c770c5027e9791a2b5cf0a77c907c260c3fd41b2bce68fa9da1f6bd6afe850a0c6c1d438adce8b07294057e2fb86929e713ba23564ffd3e6d1dd8584e6a34bba SHA512 fc5d4ddcf1e4428cfdb851af21ee5b0cb4eeb7a050288fb3b74001a8ca4cfbdad36d837fab1b4836b551e277e381b692fdc24df5de6c65a217cb5ca38a28979c
DIST boto3-1.42.34.gh.tar.gz 1075720 BLAKE2B 52881dd1683dc36c7f3360113d5418fd0e133d61954f16ca6703bb811b49fa5a9f22889383c3ab44a6a6b5a98aef047e605dc970148e9911c84a3720ef244d94 SHA512 f07639b74736c16c7b57d00dea4c9b961ef97db1ab808c238e966728f70a4b655beb2c6b2081f08c3fca39724b68f0aa353328e52dec89273b9988397b72bd6b
DIST boto3-1.42.36.gh.tar.gz 1077182 BLAKE2B 9d0acfb4dfb5f24ff1a132e5c01fa5fff70224aff6800aaf0511d93f02bf90f0d04fb0bf9d1c2eaf541d149e08df1a930c878730b168ff506642930b0d36d2aa SHA512 a51d8565071bf86b87b7dbc220c70edb1cc6e866c0a4305143af76334177df82c128061676f1e400ced03ec37675a8955df02296824b6deb758cdfe54623a7b6
+DIST boto3-1.42.37.gh.tar.gz 1078283 BLAKE2B 0feeb879ee4a7d5ac012a9511ef4447344573b333859f6c43b1972f39f076041404541b9023f2b52c063027f9cd961f06da4831448590490b8b24196998e6f22 SHA512 f11b858b1286a3f5202f9c3afabdb6f1ecbc5d6a831b9ad2d93d081291a6701511e0e105a908047496bb144b29ee2394a9b64e5eaa533be5ec3b8907318ca1b6
diff --git a/dev-python/boto3/boto3-1.42.37.ebuild b/dev-python/boto3/boto3-1.42.37.ebuild
new file mode 100644
index 000000000000..6e5f06a012ad
--- /dev/null
+++ b/dev-python/boto3/boto3-1.42.37.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_{10..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.16.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 7aa163aa798d..40abb00c4467 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,3 +4,4 @@ DIST botocore-1.42.25.gh.tar.gz 15746961 BLAKE2B ba4474223e49f36be485d147d54fa5e
DIST botocore-1.42.30.gh.tar.gz 15764580 BLAKE2B 001377314a8c2231b838b48192498c4d4873de90017eb0c82c7409db210f1dbd09db30925d0b4ae7feb9e270ff947b16308a625fdb5910ca95220e443d104461 SHA512 9ab375ba9284780d347eac25b5446b0571991496897732e0dac457d2d8e7b12aa6b5b417478ed02516a407fa689953a715877590a9b16b3c17c584810cc6a8c9
DIST botocore-1.42.34.gh.tar.gz 15781471 BLAKE2B 694d24a74d14db50f6532c92032e3f0e213b777f701938ce3a8eb0f2120d43f41e5e1197c3d6ce6e1578ca731d6f56d39423b838f49cb28cd04924e268f0d986 SHA512 9f9d9f07badaec82c33c3d0d90cee0a54d8ace7bc54e4ca32716ca21498c600d8f0a321f9aaebb2fe4d4721819b62fca4e47daa1b35d09f8496f30055e66f257
DIST botocore-1.42.36.gh.tar.gz 15785362 BLAKE2B 2671eb300bc99285ffe42c07179df5324a824a306179c6c9d136791deecbebb2b9905b8c2c3c4bc8b0460c4f76d6824df7e3c82d672207210432828754138652 SHA512 7563c3346a6ee337984873602d303d84b4bd9ca5f707b86dba80898d50020ecbe0e6a8ffacb1d29505492ddff403daf63dd91e3c3018b5b180d464753b101b1f
+DIST botocore-1.42.37.gh.tar.gz 15791303 BLAKE2B 03061062ead9b8c2170c897a0d17c96c1186d12783754ce4610d32578179b6ec773960f7b2f1b68bec83807219fee86fea6c3a9f8ecf47daf7ebf9cd89bdb962 SHA512 3b5fd451daeb6537efd10340c2edb35319cb7c5970c21dc7d6231fc726ec168a2aad2776e0fec9f21440498955e34aca2d2d022b3e5e98e94f7f49a8a95a33aa
diff --git a/dev-python/botocore/botocore-1.42.37.ebuild b/dev-python/botocore/botocore-1.42.37.ebuild
new file mode 100644
index 000000000000..f6ce0d9ed8d5
--- /dev/null
+++ b/dev-python/botocore/botocore-1.42.37.ebuild
@@ -0,0 +1,67 @@
+# 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_{10..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
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/confuse/Manifest b/dev-python/confuse/Manifest
index a23401f3d38b..1841da38621c 100644
--- a/dev-python/confuse/Manifest
+++ b/dev-python/confuse/Manifest
@@ -1,2 +1,3 @@
DIST confuse-2.0.1.tar.gz 50872 BLAKE2B fc28d6109abec7a233ade85de35ba10264261eb37367fbfa7b6719399cedffc87da3c0bb563b8d9524551cf11ff679896e0a8cc123e08f5291c40d04ffcfe314 SHA512 fe9e17d3b321079290fa2c7db64cd5664db11f1277fe608cf5a1419254b83eee9bc169e34631a429ab1bf47779ea709156b8310a97e65fae32a20802b379fa76
DIST confuse-2.1.0.gh.tar.gz 78608 BLAKE2B c828cbb16ebd7b2a03de39ce0690d442de0844cdf73be294dc338a2883f6a497cd7e2f1800d157a4bb35d75046e7f02658523a1f298257bdc4c7aaa39e55b0bb SHA512 132d27682666b61dbdb8682334f757689f60dc03abf26b3a8356da1fd29d3056de0df253fdb0b8ec82fb8c1ed24c10529760c1d8f7f3b3144c77cd3ca89f1315
+DIST confuse-2.2.0.gh.tar.gz 106359 BLAKE2B b5f9f7dd34366e3e00a4e1b0536fbc1bb5faa9f784645236edf7c1d1e6e4954bfdd3972506b87f2e04087e8aa9fa3b32a19bd9eeb7f38e2b49d261323fe76de5 SHA512 965dcaea51bcbf91360ac94b39cf38ff7f08772484e063b72758c8096f0bd20455fb3359ae5ca6263a3322e258712be0bcc1a7421b99441829caa88982b55751
diff --git a/dev-python/confuse/confuse-2.2.0.ebuild b/dev-python/confuse/confuse-2.2.0.ebuild
new file mode 100644
index 000000000000..13c31a059680
--- /dev/null
+++ b/dev-python/confuse/confuse-2.2.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+DISTUTILS_USE_PEP517=poetry
+
+inherit distutils-r1
+
+DESCRIPTION="Confuse is a configuration library for Python that uses YAML"
+HOMEPAGE="
+ https://github.com/beetbox/confuse/
+ https://pypi.org/project/confuse/
+"
+SRC_URI="https://github.com/beetbox/confuse/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ 'dev-python/sphinx-rtd-theme'
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 68a9a20c0f97..0803b3212bf0 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -5,3 +5,5 @@ DIST hypothesis-6.150.2.gh.tar.gz 9878291 BLAKE2B b9ae21ff95afe8bd4918d7298b7f1f
DIST hypothesis-6.150.3.gh.tar.gz 9878751 BLAKE2B 4b1995a52a8d195e5cc04eba89093458ca0244e1c20c5c8ce4cd13473598eb7d652c04656bd5df264ae766262fba4e084b61269df4bc77a2537a8177964fa4d3 SHA512 317235eacafaa415683cb7b1a50738655ab6704f4ba529657f5496625c5542812eb44a5cde999c4805ad5a74232edde0c8fc2e81aef3be367374a6302d3f3fa2
DIST hypothesis-6.151.0.gh.tar.gz 9878804 BLAKE2B 42ef6bf0c5bb8346b38a647804aecfcad20991c6ae70a48838050d424377f1e9256fb36df3e440250f3fb8f7fed6fd80cfd1288c38c446ffed62f3166aa571e2 SHA512 418af03dc2eaf456c96c0395c32fdcfc018e8543ed5029f7c6058e9e5d1368afbb04cdfc6a21bd44f87a0c064680927d75284eb5670f6f28b1b3ac2aee90823b
DIST hypothesis-6.151.2.gh.tar.gz 9878376 BLAKE2B 11f6da8ede480bffb503e67d6ed943eb1497686ef61a401f6fa7d6d819ab293f1595284205f5a7c9b534076d607a5d6c7a9a5eea2a89be2375f658d4b6a93924 SHA512 6f8f73a740e046f4e96e7c1f5d6ececd75a2d9a12e52b94fcf2419cfe2cb02807a16e030a0ce0335793c12beb07f07423cdc13a61d432a3836d9fc767c3e912e
+DIST hypothesis-6.151.3.gh.tar.gz 9879536 BLAKE2B 339bb7cc1f45403c97626b4ca0df33e9378ef301efcc7949aca0750fe08425af3e71703a5c0743feb731d62e6d5cc44c2f41fe84544aa8d9d199b004d567f8ab SHA512 f7b3d4859b2d43c3be8c36c610ca16a3ae8dd36dbb14a5e029b4046467fb061ec70f4e53e88ecdb7c85a1364e556955b83cc8d511d1962dcf34dae047ace6f3d
+DIST hypothesis-6.151.4.gh.tar.gz 9879516 BLAKE2B b53dc0691cdbbfad47dd4de9712cecc7fddd9c59b626d22250d367a71dd58c43c22c173380d120f56d7b9f17c03df076ea7963c8c435fb9b187b3baffeb2d44e SHA512 fef3fe9f7b10204c37a4d7767ab0fd9e4a74e3d69de55700cfd34ef86dd2af980131411f3728462d28670836cf9adfc53d87b24bd85a6d19bce562471290dfe3
diff --git a/dev-python/hypothesis/hypothesis-6.151.3.ebuild b/dev-python/hypothesis/hypothesis-6.151.3.ebuild
new file mode 100644
index 000000000000..79b828d4dffe
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.151.3.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.14t)
+ EPYTEST_DESELECT+=(
+ # TODO
+ 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/hypothesis/hypothesis-6.151.4.ebuild b/dev-python/hypothesis/hypothesis-6.151.4.ebuild
new file mode 100644
index 000000000000..79b828d4dffe
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.151.4.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.14t)
+ EPYTEST_DESELECT+=(
+ # TODO
+ 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index d12ab8aeaca8..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 271137de443d..7100f5f39dd8 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index 9de86c0359ea..3d44f210d0b7 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -1,8 +1,6 @@
DIST pbs_installer-2025.12.17.tar.gz 66998 BLAKE2B 9a06df4fc535ee719dc489197d109abccb73c728b4cea1e4407829a9e5631db86397116545b10ecb4e578cbe51864528d7b33dfb953fe7b014fca3e1ac37e6b9 SHA512 ce5c1a55ccf0c86cd7b7996b9c6085277f37b961afa8412d27a3f2092a216c80a8664c2a9c0692a498292e485298ff7801928f744f2347c0f704c3655fd0f1d7
DIST pbs_installer-2025.12.17.tar.gz.provenance 9709 BLAKE2B 44a04c68ac5e6a9fe9e7301f6e96875d3bca8fbf2d9ebc08ce53a5cb7c706b3e1f9c88e20c70b2d9a18d3ffbee570fad4f5c841e451831503ba6282d3005e1ac SHA512 8e2c86f181008088c292e605132a37857f95481de13115a928da1c92b16d299057a4f4dba1f8b25329b4e46c24048ea6fa4239d6853a34477f51e78cc8d76a29
-DIST pbs_installer-2025.12.5.tar.gz 66986 BLAKE2B 608a6ccfb97f693277b7290cf2b4ae83db63ea997821bddd1d75a34495d07da653054c0ee412e7dd99ae05187cb0bec05425813e16a135837d17cfbcbb6b3dfb SHA512 2c57b420e506b1ddcdacbdd26e7b8a13c451b0def078f539e4a482ddcd7e8473761663b219b817a2f7ba0f67e77512b3d146ab3060f2a8e645ecd2aec9fe59ad
-DIST pbs_installer-2025.12.5.tar.gz.provenance 9458 BLAKE2B cc4927c5460f7ad4da3a3ff1e4d819b02727ae4b21fac220cc4d29624d31fd187b893924f366a761a617fb9652f692a6a17f85a687ba0ecc39a3a87d7e583d19 SHA512 eb32ed101700b502c406170ce07b2a9ac5a6240c5ab36a2824ab1682e0d70edb4117734a96f2c34521f01167c8c9c49c6b4a9308bd0d42314fdda7db25fbe2ea
-DIST pbs_installer-2026.1.13.tar.gz 66984 BLAKE2B 79a01767990a37c22709b517aca7672f5516e8bbc4cb45e51bafa0f77f099cf7bb480e15c8ed5efad69d5d2d94de85ac5ef4acb27ce5940fc1aea95e1d2839de SHA512 05a18519c903e86bb5a01f433e04cfcc44903374d7719d3a70778e36a4f6b74879f8ae631138390ea1017721bf5b22fbdb5987dd9112c91e3ca6f79b4533e912
-DIST pbs_installer-2026.1.13.tar.gz.provenance 9517 BLAKE2B 34b911093945c2a5124013e524cd9b31ea63af86e98fe41123eebcc42100cb4afea90cf2b286f7a0b9fa511b7cd1cd1c14b0ddc474caf43b2e9be8bd372dec00 SHA512 44176bd59c5be0e43baeb5c65eb1c43e36004d864f0d785ea75f9aee94f7d4de0c10d42d930b3d632e1c69594aa6fdd3f295e549ec167b368cd790088baa7068
DIST pbs_installer-2026.1.14.tar.gz 66992 BLAKE2B a5f96ac0a836f8277539a1acaf9d70820026fe468f40cdb1a10c2eb87dc043271e1424f9cc4a696ee251be04f48007558a2e511dfc45e3626311387280e2f333 SHA512 335641d035062c4b8024beb05f8aebce900a8b5334190c38cc09aee2fab9a79dbeccb5f90a1352f7582ae7929523b57db2f2f977dcc6d3888eb99f9d446ec650
DIST pbs_installer-2026.1.14.tar.gz.provenance 9744 BLAKE2B 6e55bae2f2524da914ff672f3746910c0aaa57b89358c83b4efefa219e71dfd2cf86e543b903c81a3ba9ffe348a5098e79edb77b9ece9d5a0729956939adbb2a SHA512 9e9e25da6aca921c94bbac8713df107448a1021ec815f320731e22748347b973e678bf2d2c0dc6dfbdfd2b8c1e27a18c1f30c0aae027af451ba055b9a977b4fa
+DIST pbs_installer-2026.1.27.tar.gz 66993 BLAKE2B f8fca1b5ee172066f812fe543b62844819f2e9d67718e67af06f2c0c4f6df4a18bed6a0658a3d3e896cb04172a3cc5bb98151794a448a8c8fca5b7baffb74b8c SHA512 b9b3f7b3279b6e79306ca4dde63b91e6deaba1689f589899a10bb687b7a115ff39988494b20fa2ecd130b97d84c860216154149d9c0481486471a64524faf9f7
+DIST pbs_installer-2026.1.27.tar.gz.provenance 9458 BLAKE2B d16b56eeeb85c2e3ae60e2f637ea52d2ec674816b6b51bfe3b7717f33d3624139f6b72682ae32a922787ec8fba4df7df304b42eeae6bfa3ed7385104743f1ef3 SHA512 f211b8f32a2843e649fa66c423036a2a10a75588a8baaee29f30c5f3a81199d97670a30c44ba7f440365f4d695a46648ac1054140663c69390b5ceaa6ca72983
diff --git a/dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild b/dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild
deleted file mode 100644
index a7fdc223422d..000000000000
--- a/dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Installer for Python Build Standalone"
-HOMEPAGE="
- https://pypi.org/project/pbs-installer/
- https://github.com/frostming/pbs-installer/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-
-# httpx is needed to download builds
-# zstandard is needed to install them
-RDEPEND="
- <dev-python/httpx-1[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
- >=dev-python/zstandard-0.21.0[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-import-check )
-distutils_enable_tests import-check
diff --git a/dev-python/pbs-installer/pbs-installer-2026.1.13.ebuild b/dev-python/pbs-installer/pbs-installer-2026.1.27.ebuild
index ab0e8cdfbbac..ab0e8cdfbbac 100644
--- a/dev-python/pbs-installer/pbs-installer-2026.1.13.ebuild
+++ b/dev-python/pbs-installer/pbs-installer-2026.1.27.ebuild
diff --git a/dev-python/psutil/Manifest b/dev-python/psutil/Manifest
index 9e685a09d662..8fc96cb0d7b6 100644
--- a/dev-python/psutil/Manifest
+++ b/dev-python/psutil/Manifest
@@ -1,3 +1,4 @@
DIST psutil-7.1.3.tar.gz 489059 BLAKE2B 860fce273fd5f6977eeef3a47c97fbe9500e750fadb2bb7e9d4d8e7859e566202f8436fa5c022005c4d90e84265e50f0bf9b560f749831e6ea6c60fbe2ba8529 SHA512 6c4a4ef94e634a808cce94c143d5f4164d2012dc314091257ba122a7963fa6bf982c4c54ba3b60da6c52535fbe83de19a4e3181e07fde1807ec4acc47eb44621
DIST psutil-7.2.0.tar.gz 489863 BLAKE2B ad41b82c50346c58824c2db6d0fbf456b7080c290fc1669f7edd1fe716b3637c44aec6567720ffc463d209e43eef14d1ee2df99850762473e815b045faa78956 SHA512 d90b6198080b0e33cc24906365d825f8583e1c69f202df1de222b57f0e7140be2357df321406447215d0fd7f2f6f0781d2ba7dd0b4f52e9bef2f22bc2e3c3f3f
DIST psutil-7.2.1.tar.gz 490253 BLAKE2B 16a9c91a16418931a7dc3dbb25fc8d8b0ad95da107e2abf1dd92cc27ca0b691c9b91d79a6f0fc59842e2bd438932e9403fcdbcf490be1028a9f03e886a7e36f4 SHA512 d9b0b3d55301cb37017875685b4a990c0adaf2f2fb69a2893b4bcd7deeb81a1c141c6ddb1e26c45717f20aa9875cd66b20229d24f7b3687806478cbb4ee83ac5
+DIST psutil-7.2.2.tar.gz 493740 BLAKE2B 67a9fbf5b5e0f045b8ccbee34b34fe326111a5f4f0c5cb1ce4d8fd96fddc1826079aa2fbc40eee00851f4ea81d463eccb42ba4ed5aa98551b81e4066bec6484d SHA512 2de05c69d152a8582a4d8f1f02233cae5927baaa35f8797e4b0745f33e6b3c7239b9a54b719b0582b0b6c5b4bbc86d2e1e226c3e9854e4e5be9c5e349c704961
diff --git a/dev-python/psutil/psutil-7.2.2.ebuild b/dev-python/psutil/psutil-7.2.2.ebuild
new file mode 100644
index 000000000000..59e043385c03
--- /dev/null
+++ b/dev-python/psutil/psutil-7.2.2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Retrieve information on running processes and system utilization"
+HOMEPAGE="
+ https://github.com/giampaolo/psutil/
+ https://pypi.org/project/psutil/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+EPYTEST_PLUGINS=( pytest-subtests )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # hardcoded assumptions about the test environment
+ tests/test_linux.py::TestRootFsDeviceFinder::test_disk_partitions_mocked
+ tests/test_linux.py::TestSystemDiskPartitions::test_zfs_fs
+ tests/test_linux.py::TestSystemNetIfAddrs::test_ips
+ tests/test_posix.py::TestProcess::test_nice
+ tests/test_process.py::TestProcess::test_ionice_linux
+ tests/test_system.py::TestDiskAPIs::test_disk_partitions
+
+ # mocking is broken
+ tests/test_linux.py::TestSensorsBattery::test_emulate_energy_full_0
+ tests/test_linux.py::TestSensorsBattery::test_emulate_energy_full_not_avail
+ tests/test_linux.py::TestSensorsBattery::test_emulate_no_power
+ tests/test_linux.py::TestSensorsBattery::test_emulate_power_undetermined
+
+ # doesn't like sandbox injecting itself
+ tests/test_process.py::TestProcess::test_weird_environ
+
+ # extremely flaky
+ tests/test_heap.py::TestHeap::test_mmap_used
+ tests/test_linux.py::TestSystemVirtualMemoryAgainstFree::test_used
+ tests/test_linux.py::TestSystemVirtualMemoryAgainstVmstat::test_used
+ tests/test_system.py::TestMiscAPIs::test_heap_info
+
+ # nproc --all is broken?
+ tests/test_linux.py::TestSystemCPUCountLogical::test_against_nproc
+
+ # broken on some architectures
+ tests/test_linux.py::TestSystemCPUCountCores::test_method_2
+ tests/test_linux.py::TestSystemCPUCountLogical::test_emulate_fallbacks
+ tests/test_linux.py::TestSystemCPUFrequency::test_emulate_use_cpuinfo
+ tests/test_linux.py::TestSystemCPUFrequency::test_emulate_use_second_file
+ tests/test_system.py::TestCpuAPIs::test_cpu_freq
+ tests/test_system.py::TestCpuAPIs::test_cpu_times_comparison
+
+ # broken in some setups
+ tests/test_linux.py::TestMisc::test_issue_687
+ tests/test_linux.py::TestProcessAgainstStatus::test_cpu_affinity
+ tests/test_linux.py::TestSystemCPUStats::test_interrupts
+ tests/test_posix.py::TestProcess::test_cmdline
+ tests/test_posix.py::TestProcess::test_name
+ tests/test_posix.py::TestSystemAPIs::test_users
+ tests/test_process.py::TestProcess::test_memory_maps_lists_lib
+ tests/test_process.py::TestProcess::test_terminal
+ tests/test_unicode.py::TestFSAPIs::test_memory_maps
+
+ # fails on all AT containers
+ tests/test_system.py::TestMiscAPIs::test_users
+
+ # failing without /sys/class/power_supply?
+ tests/test_memleaks.py::TestModuleFunctionsLeaks::test_sensors_battery
+ tests/test_misc.py::TestMisc::test_serialization
+
+ # tests for calling setup.py, fail over removed psutil dir
+ tests/test_scripts.py
+ )
+ local EPYTEST_IGNORE=(
+ # requires psleak
+ tests/test_memleaks.py
+ )
+
+ # Since we are running in an environment a bit similar to CI,
+ # let's skip the tests that are disabled for CI
+ local -x TRAVIS=1
+ local -x APPVEYOR=1
+ local -x GITHUB_ACTIONS=1
+
+ rm -rf psutil || die
+ epytest -o addopts=
+}
+
+python_compile() {
+ # Force -j1 to avoid .o linking race conditions
+ local MAKEOPTS=-j1
+ distutils-r1_python_compile
+}
diff --git a/dev-python/pykeepass/Manifest b/dev-python/pykeepass/Manifest
new file mode 100644
index 000000000000..dcff25ac1848
--- /dev/null
+++ b/dev-python/pykeepass/Manifest
@@ -0,0 +1 @@
+DIST pykeepass-4.1.1_p1.gh.tar.gz 112962 BLAKE2B 986cacb63b4c9a60c291bcd67d32f025b69c4dea2c09edb4ea53251ed00ae0fc2b051aa161c9f892bd6a0877bbc00c2eebe2269a03f385ba63b92d940e9a0f16 SHA512 ba756ec7fc1410dd72a963ac70be432181d3a89d699bd823f7ffd296c42211ef9d20b583c2c47e0e1a0fc85827b0bbc14462d583fe457cc0a9174f7731d3db0f
diff --git a/dev-python/pykeepass/metadata.xml b/dev-python/pykeepass/metadata.xml
new file mode 100644
index 000000000000..6f3a915da508
--- /dev/null
+++ b/dev-python/pykeepass/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>parona@protonmail.com</email>
+ <name>Alfred Wingate</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild b/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild
new file mode 100644
index 000000000000..7e6a35e3468a
--- /dev/null
+++ b/dev-python/pykeepass/pykeepass-4.1.1_p1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library to interact with keepass databases (supports KDBX3 and KDBX4)"
+HOMEPAGE="
+ https://github.com/libkeepass/pykeepass/
+ https://pypi.org/project/pykeepass/
+"
+# no tests in sdist
+SRC_URI="
+ https://github.com/libkeepass/pykeepass/archive/refs/tags/v$(pypi_translate_version ${PV}).tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/argon2-cffi-18.1.0[${PYTHON_USEDEP}]
+ >=dev-python/construct-2.10.53[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pycryptodome-3.6.2[${PYTHON_USEDEP}]
+ >=dev-python/pyotp-2.9.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests unittest
+
+python_prepare() {
+ sed -e 's|pycryptodomex|pycryptodome|' -i pyproject.toml || die
+ sed -e 's|from Cryptodome|from Crypto|' -i pykeepass/kdbx_parsing/{common,twofish}.py || die
+}
+
+python_test() {
+ eunittest tests.tests
+}
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index d0a44d776f47..da878875a701 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,2 +1,2 @@
-DIST stripe-14.0.1.tar.gz 1362960 BLAKE2B aaa99435384a99f54cd8d33c73989040e8d20f17e2df9dd11a4d8ba8d0b429d04f8a29887583853c6c7e9b51fea59585ca3fd4ecee9ce5c32d3120d6871fff3f SHA512 0459973952e28fa1706dcca2a14e9b7f844bbd6b37cc4445b603ead34b8b711b3311ec3c0f404beb39041430a5c121f371525d3496998b27cf0328e8b335e355
DIST stripe-14.1.0.tar.gz 1449934 BLAKE2B abfcc3853bbdb645851e41da825c203ba5303b738c657e179525a673e2cb9d39ce8e6b9c2ebdd4eae6c02946c1ff7d0c9fe9207e357200ec457eb788134213f4 SHA512 6178266699a484a5a7a3571826f6c2fd4ccb4c4e5b8cf2b86b2da2857b00df8b575a64c9ae97d9fdd891532f7dc6b90855c58c6bbb6feaf8204231348c9519d5
+DIST stripe-14.3.0.tar.gz 1463618 BLAKE2B 6783b412c94089d13dc1efd14eb43bf2cbed93d818a9ab448cdb32bbfed975dd625baf9f51c6be2630c8dcbfe1da9a9520ee14d306e5fa1ddc7b7c4bdff39994 SHA512 85e82cadd82412b2dfee8750b92029ff8ef835d38499913644914e9a765aa57cafa659603fa403ea102149198744a5e769b5e325c653a13bdccaf31a6c94f944
diff --git a/dev-python/stripe/stripe-14.0.1.ebuild b/dev-python/stripe/stripe-14.3.0.ebuild
index 6410befd8b0b..eb032ea8ae0e 100644
--- a/dev-python/stripe/stripe-14.0.1.ebuild
+++ b/dev-python/stripe/stripe-14.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="telemetry"
RDEPEND="
diff --git a/dev-python/xarray/Manifest b/dev-python/xarray/Manifest
index 965a2f73fb44..fe56dfde651d 100644
--- a/dev-python/xarray/Manifest
+++ b/dev-python/xarray/Manifest
@@ -6,3 +6,5 @@ DIST xarray-2025.12.0.tar.gz 3082244 BLAKE2B ae7ddcefc9ad76f03b9c0e33a05620bf48c
DIST xarray-2025.12.0.tar.gz.provenance 9490 BLAKE2B a022f4b1432878278e919ee02cc2986efacb20ddd508119224ab3577ee290ee468ae14031dd2a67ed0359df3e6827b2a6dfe455aed1106dd29fc079645633801 SHA512 1dd1124e767bbbcc25f642528dfebd0a27f220b7ab9df0a92ef8aefe1989c51a19e0b145342e9af226f665c00a2a46018147d5c98094b7900d81a11c4db0a87d
DIST xarray-2025.6.1.tar.gz 3003185 BLAKE2B a75f68947922e922dad94dc6ab5454d9d2b2ec993e5fd06d760b2e3685b3feda2a88fb879e7ebb353b35dea5540fa8899eb8cba33ab0e5f9b59cb3fd885de1af SHA512 4fc7980f843f86c8e83015fbf9ea2c8440b046faaa1589a605cf1e2f64f9380e28e157c8afda5c0058b3fe8cfe01122ba8582f5d61b9f0eabdf7107ce6d81c0c
DIST xarray-2025.7.1.tar.gz 3013717 BLAKE2B 37abbeec6736745a9a0cc098bfdb36b76c5b07a1f762a3207e7a69bda1670ad464c328daabcb5845f65dcb0b9901f045c633fb12fed4524bcc7dacfcc259e65b SHA512 446e50cfa16a3ba54124dc9417203ea96f6232e05515de38dc191b06ee417e165fd2faefaf4718eddb9620d32675abc6c2125ac7555759eb003263a70662cb7e
+DIST xarray-2026.1.0.tar.gz 3107024 BLAKE2B 1118efc83590ce31520607e1a6d487e562d53c42479b28371941292f51b736db31e9b5e4d72415b11492c911dad3c7bce424d105c19f644570dd691576849e62 SHA512 733999235bf37c14710a5c811531e349c14c4470b2dbc4cc4b6e19de31f863240961b904eb046f1e9a1915c436d92c6af4f6f62b04a953d11dc0cff32d5c4e9d
+DIST xarray-2026.1.0.tar.gz.provenance 9490 BLAKE2B caa20e6bf64c0ebae9853b549628325ce54edd18f1ea3820314903308e8ad604a332334e07fc7b825a98dc112352c6c0d766e7a87a421a798635aec5bcfce89b SHA512 b76e2cd3caac2f68bdb404abbc45c152a0628fb017723bda3a5ad255ae32d63d7e3542c737019c9cfb7f2bb2712144774ba37d88828959cf5a59fa704624e128
diff --git a/dev-python/xarray/xarray-2026.1.0.ebuild b/dev-python/xarray/xarray-2026.1.0.ebuild
new file mode 100644
index 000000000000..8dd36de155fc
--- /dev/null
+++ b/dev-python/xarray/xarray-2026.1.0.ebuild
@@ -0,0 +1,139 @@
+# 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/pydata/xarray
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="N-D labeled arrays and datasets in Python"
+HOMEPAGE="
+ https://xarray.pydata.org/
+ https://github.com/pydata/xarray/
+ https://pypi.org/project/xarray/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="big-endian"
+
+RDEPEND="
+ >=dev-python/numpy-1.26[${PYTHON_USEDEP}]
+ >=dev-python/pandas-2.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.1[${PYTHON_USEDEP}]
+"
+# note: most of the test dependencies are optional
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/bottleneck[${PYTHON_USEDEP}]
+ dev-python/cftime[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ !riscv? ( !x86? (
+ >=dev-python/netcdf4-1.6.0[bzip2,szip,${PYTHON_USEDEP}]
+ ) )
+ dev-python/toolz[${PYTHON_USEDEP}]
+ !hppa? ( >=dev-python/scipy-1.13[${PYTHON_USEDEP}] )
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-asyncio )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # indirect pin, sigh
+ sed -i -e '/numpy/d' pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: these fail with filter errors even if netcdf4 is built
+ # with blosc/zstd support
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[zstd]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4hc]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zlib]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]'
+ # requires h5netcdf package
+ xarray/tests/test_backends_datatree.py::TestNetCDF4DatatreeIO::test_open_datatree_specific_group
+ # NotImplementedError, seriously?
+ xarray/tests/test_backends.py::TestGenericNetCDF4InMemory::test_roundtrip_group_via_memoryview
+ )
+
+ if has_version ">=dev-python/numpy-2.4[${PYTHON_USEDEP}]" ; then
+ EPYTEST_DESELECT+=(
+ # TODO
+ xarray/tests/test_dataarray.py::TestDataArray::test_curvefit_helpers
+ xarray/tests/test_variable.py::TestIndexVariable::test_concat_periods
+ )
+ fi
+
+ if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
+ EPYTEST_DESELECT+=(
+ 'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
+ )
+
+ if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]" ; then
+ EPYTEST_DESELECT+=(
+ xarray/tests/test_calendar_ops.py::test_interp_calendar
+ )
+ fi
+ fi
+
+ if use big-endian ; then
+ EPYTEST_DESELECT+=(
+ # Appears to be a numpy issue in display? See bug #916460.
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-20-True]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-09-21T00:12:44.145224808-ns-float64-1e+30-True]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225216-ns-float64--9.223372036854776e+18-True]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-None-False]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]'
+ 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:21:52.901038080-ns-float32-20.0-True]'
+ )
+ fi
+
+ if [[ ${ABI} != *64* ]]; then
+ EPYTEST_DESELECT+=(
+ # these tests hardcode object sizes for 64-bit arches
+ # https://github.com/pydata/xarray/issues/9127
+ xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex
+ xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex_long
+ xarray/tests/test_dataset.py::TestDataset::test_repr
+ xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex
+ xarray/tests/test_datatree.py::TestRepr::test_doc_example
+ xarray/tests/test_datatree.py::TestRepr::test_repr_truncates_nodes
+ xarray/tests/test_formatting.py::test_array_repr_dtypes_unix
+
+ # converting timestamps into ns, causing an overflow
+ xarray/tests/test_cftimeindex.py::test_asi8
+ xarray/tests/test_coding_times.py::test_decode_cf_time_bounds
+ xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range
+ xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units
+ )
+ fi
+
+ case ${ARCH} in
+ arm64)
+ EPYTEST_DESELECT+=(
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
+ 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
+ )
+ ;;
+ esac
+
+ if ! has_version "dev-python/seaborn[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ xarray/tests/test_plot.py::TestContour::test_colors
+ )
+ fi
+
+ epytest -o addopts=
+}
diff --git a/dev-python/zxcvbn/Manifest b/dev-python/zxcvbn/Manifest
new file mode 100644
index 000000000000..5b76231a0577
--- /dev/null
+++ b/dev-python/zxcvbn/Manifest
@@ -0,0 +1 @@
+DIST zxcvbn-4.5.0.gh.tar.gz 9399634 BLAKE2B 941f1ec1f13de0dd41c87aa6ffba8c8fb29338f5b4b7c8dba36d8436a7ceae549f14bcd05137f751239b336f0037e8ca2770f86eb493611296a9557a0512f68e SHA512 8c6887da9d4084060011a37f705528b24bf6d69452b92280df99290ac108934d93aeb7eec827381787e78753a5c6c3af486cf4cdceb0ff8726c96a60aa36d5e2
diff --git a/dev-python/zxcvbn/metadata.xml b/dev-python/zxcvbn/metadata.xml
new file mode 100644
index 000000000000..6f3a915da508
--- /dev/null
+++ b/dev-python/zxcvbn/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>parona@protonmail.com</email>
+ <name>Alfred Wingate</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/zxcvbn/zxcvbn-4.5.0.ebuild b/dev-python/zxcvbn/zxcvbn-4.5.0.ebuild
new file mode 100644
index 000000000000..61c7465115c4
--- /dev/null
+++ b/dev-python/zxcvbn/zxcvbn-4.5.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Realistic password strength estimator"
+HOMEPAGE="
+ https://github.com/dwolfhub/zxcvbn-python/
+ https://pypi.org/project/zxcvbn/
+"
+# no tests in sdist
+SRC_URI="
+ https://github.com/dwolfhub/zxcvbn-python/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/zxcvbn-python-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest