summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-04-30 07:11:46 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-04-30 07:11:46 +0000
commit05a0ec1de7339049e6e41684efe86e92a8e62f00 (patch)
tree411a98c392c9ea489c2305127d45af66061828eb /dev-python
parent6ae4a3f8c51706364b85936f7b001abdc3768db5 (diff)
downloadbaldeagleos-repo-05a0ec1de7339049e6e41684efe86e92a8e62f00.tar.gz
baldeagleos-repo-05a0ec1de7339049e6e41684efe86e92a8e62f00.tar.xz
baldeagleos-repo-05a0ec1de7339049e6e41684efe86e92a8e62f00.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.0.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.0.ebuild67
-rw-r--r--dev-python/build/Manifest5
-rw-r--r--dev-python/build/build-1.4.1.ebuild75
-rw-r--r--dev-python/build/build-1.4.2.ebuild75
-rw-r--r--dev-python/build/build-1.4.3.ebuild75
-rw-r--r--dev-python/build/build-1.5.0.ebuild (renamed from dev-python/build/build-1.4.0.ebuild)1
-rw-r--r--dev-python/cfn-lint/Manifest2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.50.1.ebuild64
-rw-r--r--dev-python/cryptography/cryptography-47.0.0.ebuild2
-rw-r--r--dev-python/dulwich/Manifest11
-rw-r--r--dev-python/dulwich/dulwich-1.2.1.ebuild124
-rw-r--r--dev-python/findpython/Manifest1
-rw-r--r--dev-python/findpython/findpython-0.8.0.ebuild27
-rw-r--r--dev-python/fsspec/Manifest1
-rw-r--r--dev-python/fsspec/fsspec-2026.4.0.ebuild67
-rw-r--r--dev-python/jupyterlab/Manifest1
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.5.7.ebuild76
-rw-r--r--dev-python/latexrestricted/latexrestricted-0.6.2.ebuild2
-rw-r--r--dev-python/plotly/Manifest1
-rw-r--r--dev-python/plotly/plotly-6.6.0.ebuild103
-rw-r--r--dev-python/plotly/plotly-6.7.0-r1.ebuild (renamed from dev-python/plotly/plotly-6.7.0.ebuild)7
-rw-r--r--dev-python/pycurl/Manifest2
-rw-r--r--dev-python/pycurl/pycurl-7.46.0.ebuild88
-rw-r--r--dev-python/s3transfer/Manifest1
-rw-r--r--dev-python/s3transfer/s3transfer-0.17.0.ebuild42
-rw-r--r--dev-python/twisted/Manifest2
-rw-r--r--dev-python/twisted/twisted-26.4.0_rc2.ebuild166
-rw-r--r--dev-python/uvloop/uvloop-0.22.1.ebuild3
-rw-r--r--dev-python/ytmusicapi/Manifest2
-rw-r--r--dev-python/ytmusicapi/ytmusicapi-1.12.0.ebuild28
33 files changed, 840 insertions, 336 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 03df048bb494..a4dad3df0787 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -6,3 +6,4 @@ DIST boto3-1.42.88.gh.tar.gz 1120718 BLAKE2B f45f5c0ee3a6b262f4e49a5fe670a225c1a
DIST boto3-1.42.91.gh.tar.gz 1124704 BLAKE2B b6916ead939d892467698a93b7fa9257f094cf3095465a38010ddbd0125e8ad042a28b10c4ee260e12e2819504855ab11ce18ab4100405c95ceec5272a894e71 SHA512 f6c8fc30f6846dbf9dce51177306cea7794bd74438322566ad7f5d6bdc60ca419b23dd08c5f92ba9a73fca8c8bc017555167a68c8966a0a0d04851e81c9a7990
DIST boto3-1.42.96.gh.tar.gz 1129293 BLAKE2B 186684ffe3d8e776e6f7462b4c7fdd996febcfc84ef87b3fe7399bc44bf00578177dab353d758231d0b2437fdbbef9204fc58b2eeda8f5be95b1d74e967c0d1d SHA512 c265a94e7fb4e7ed19e2f5aa152410c83d8e171373eb95c3572e8cc03fae6371c2ee7145722adffdab4e680b8f2abd0f3c3f4ff52bbd20fdfccd932f30cb9a20
DIST boto3-1.42.97.gh.tar.gz 1131087 BLAKE2B 34f150787ba8d312ac69b627a3db4d7ed0067beac56c18e2c5660448aeb389bed270fdac8c98b009f94191338741998ed482deffd4cb2e4ec2a987a719acb5a5 SHA512 cab47d3383b780e772b88afb1ce49d54050be711c4dd203765f9780607dcf409be4b2871014884684aaf8dcdaf1a2178baa8ca1188bbf31aceb64d8a0ed800ab
+DIST boto3-1.43.0.gh.tar.gz 1130987 BLAKE2B 290e6b812c6b9bdb77c5206c5a9534bda7b67d04afe8d9075ac0e7130bdaad26f291ed49699429037287b08334c5f5deda69769f2dbf443dd05011a5f9cf9d8b SHA512 1d8ffa67ae3d11c67ef892707f8dbd1c757bf64e1df5b7d5fd941846169c9e6c72a1eea64298791c78374e33b90335b84fc9b0d5739c9c4e56460ed9290cc056
diff --git a/dev-python/boto3/boto3-1.43.0.ebuild b/dev-python/boto3/boto3-1.43.0.ebuild
new file mode 100644
index 000000000000..11cadb4f704f
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.0.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.17.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 426e504fcf50..f058d53c8605 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -6,3 +6,4 @@ DIST botocore-1.42.88.gh.tar.gz 16115557 BLAKE2B cb2470ce6d16bb0e91d6976b84899ee
DIST botocore-1.42.91.gh.tar.gz 16138871 BLAKE2B b5090d9707e20d83bdcc2757f13f6555a2fe50bc10361c8bbea9fba5fe09183ac588700864fec9677ba0bc84d85337c0b2a5f8d38ab0a832068dd1292000ee95 SHA512 5c96771c9170476817b3c4fc8e4201123389867015285c14a6db09856f2a5f9b9110523cf3a757fa2182fe726e99c549871b62a2ce3dc80d6b8abf703f0103cb
DIST botocore-1.42.96.gh.tar.gz 16190988 BLAKE2B c63dbf335904dd9fd56d2881428fab2500ef36104fee2f979fb8394860eb30743022db17ffaabfe14bb896bed2b03728e32f0d0f8e7e6f1979abefb171f87a7c SHA512 d3f55cb1c05cb587b89f83eb3ca58fc002d67187e958deb25d8bd571bac89802e63231da4e6b9261616003e6cb3972291697141ad4208cec76ce39769aa81fc4
DIST botocore-1.42.97.gh.tar.gz 16197069 BLAKE2B c907476ae52d71e8dc63c7074a2b603a92823e94a31fc3a71739dcd0c6e73854bb1149eada875859ead93ca38873c3890e1c524799ac3173ea3e124cc436583b SHA512 7b9d576340fcc3d830015b2b1e895970e58afeb98796da53ce7353c78532f5661f6c4222d6f935cbd9363277c04a5be3fbac5554fa0f6c48742d1d52fafc868f
+DIST botocore-1.43.0.gh.tar.gz 16218774 BLAKE2B e98285e4e8920fe91163113fe45414e858a3fd9f907f4a2fdba4c2e1583214400f40e34259517da9c6640acd2742108fb9a34b5f2f6dc93170cc799cadd61995 SHA512 fa9f9af62657dd2be034725018f221cc6ab120df21ee438564c3e12690a59290d31b24921e1fe429c2cc22ca662bbc69f4b493e09213afecb52be04a0581b05f
diff --git a/dev-python/botocore/botocore-1.43.0.ebuild b/dev-python/botocore/botocore-1.43.0.ebuild
new file mode 100644
index 000000000000..f6ce0d9ed8d5
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.0.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/build/Manifest b/dev-python/build/Manifest
index aad7a03c1f39..8025982653f5 100644
--- a/dev-python/build/Manifest
+++ b/dev-python/build/Manifest
@@ -1,6 +1,3 @@
DIST build-1.3.0.gh.tar.gz 50871 BLAKE2B 0ca200c92e3bfa3ee91643cb140e4e6e90b01cdf820576a4b36e828ae5ed981075e22f0882b3ef6e2032a7f3cab3810a12c2b68503fccae89060b7cff8da9164 SHA512 f34450ffc92a434af2614f4341b38c8feed18ce9a799196bff3f735afc52334cacb34d2a831c3264bbfaacda642a5e4defe3842f8010cd687d47e2d018a191d0
-DIST build-1.4.0.gh.tar.gz 52372 BLAKE2B f7dac4752e908eee7e3f31af1da4c8854d5d1e3ac5210ea8acd1b306fa25a95b26ed68a7990782afc27e69b65f9719b8f914852ce2ac7989a89e77c06dd354bc SHA512 aad08af8a163c914671c1b149306061ea93fc1fb5f066dda5a351ddec4b7b374160bf657d30b0eccc498c4f53950307646d792b58cb0efb91975b2541e111d88
-DIST build-1.4.1.gh.tar.gz 89234 BLAKE2B 2447acae8dd03b37bd0be043f4428566a7cd7ec0b816ae2c2f5cf460741ff54310b0eb9a017f797662170a2c37cde6e41a4c6a031fee47da8ca2d2d2dcf439df SHA512 ed6e6329ee07c547a8cd7568d4f769b50e117a684c1d087380f896183db4bd6c4d921d75913525b301f994ff865d5acbe44290d8a1aa7c13c169979b942ceedc
-DIST build-1.4.2.gh.tar.gz 89637 BLAKE2B 723fdbf83eb942eb744f9bd000bbea8fc231f648ff38024aa29c6b7768b80907dfb4fa7360bbb3b61efa2a1d5f6854922447a988e19e012729fc09f9c45a14f8 SHA512 f404a97391497a21c401976ec95cc9544602c6d8c81443b011ecffe8785a42a9f7b8e4f1d2fdd7eba0f74e4ca74aae1c19f66dfe7dd53eb08c0a0efa8934b67d
-DIST build-1.4.3.gh.tar.gz 95503 BLAKE2B 71ba5fef2b9bd62eb1303d8d282ce5f6a18b7ba47632604a483f242d283295f8f52f2121a931607cbd9677e3e74cacb75f0a8992f147b07645fecd5121bb65ee SHA512 34158d518257aaeaffc0fba4275d4af9f62b2fa5fff80528aa968a33a3c2d91df96681167d964dd2922e2fcc694263a1a489ea1295f8dd4d75046ed7035ac266
DIST build-1.4.4.gh.tar.gz 95523 BLAKE2B f8f9247d4fbc27930a578fb4f0abba1e24af3e546f9b8af4fdef12e1d7c782b78805c917cbad77a9e8d2de9bd3e86613c8dc4a08fd5421e5d46dea948a3b8bdc SHA512 e296ad08b28b29e1233799ef25ad54265a19ced4c1c09db178776907d8ecc81f18d3f6bcc0f2197b250e5791e8c46362ba23a6a2ca455cab9d9dd308e4a8fc59
+DIST build-1.5.0.gh.tar.gz 95863 BLAKE2B 58bd95373d424cc06a4cb32da7d3e58743d0a5b1b59f92887ceb5d432d0f84ca92d3ba1e32c77580161c24b6f245103ddde2c674633e49f3a7a6f742e19e59ed SHA512 25f69c82047698e802feaf162a1ee334d32f83689ace3e2116d2329a10310b3bcfc6f2e42242d875f4781dffb364c95112819eb2bdaaecc0ebd4b9c00a94b99b
diff --git a/dev-python/build/build-1.4.1.ebuild b/dev-python/build/build-1.4.1.ebuild
deleted file mode 100644
index b69bda624b0a..000000000000
--- a/dev-python/build/build-1.4.1.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_TESTED=( python3_{11..14} pypy3_11 )
-PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
-
-inherit distutils-r1
-
-MY_P=${P/_p/.post}
-DESCRIPTION="A simple, correct PEP517 package builder"
-HOMEPAGE="
- https://pypi.org/project/build/
- https://github.com/pypa/build/
-"
-SRC_URI="
- https://github.com/pypa/build/archive/${PV/_p/.post}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test test-rust"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
- dev-python/pyproject-hooks[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-scm-6[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- >=dev-python/filelock-3[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
- >=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-xdist-1.34[${PYTHON_USEDEP}]
- >=dev-python/setuptools-56.0.0[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
- >=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
- test-rust? (
- !s390? ( !sparc? ( >=dev-python/uv-0.1.18 ) )
- )
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-python_test() {
- if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return
- fi
-
- local EPYTEST_DESELECT=(
- # broken by uv being installed outside venv
- tests/test_env.py::test_external_uv_detection_success
- )
-
- if ! has_version "dev-python/uv"; then
- EPYTEST_DESELECT+=(
- tests/test_env.py::test_uv_impl_install_cmd_well_formed
- 'tests/test_env.py::test_venv_creation[uv-venv+uv-None]'
- )
- fi
-
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- local EPYTEST_XDIST=1
- epytest -m "not network"
-}
diff --git a/dev-python/build/build-1.4.2.ebuild b/dev-python/build/build-1.4.2.ebuild
deleted file mode 100644
index b69bda624b0a..000000000000
--- a/dev-python/build/build-1.4.2.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_TESTED=( python3_{11..14} pypy3_11 )
-PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
-
-inherit distutils-r1
-
-MY_P=${P/_p/.post}
-DESCRIPTION="A simple, correct PEP517 package builder"
-HOMEPAGE="
- https://pypi.org/project/build/
- https://github.com/pypa/build/
-"
-SRC_URI="
- https://github.com/pypa/build/archive/${PV/_p/.post}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test test-rust"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
- dev-python/pyproject-hooks[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-scm-6[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- >=dev-python/filelock-3[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
- >=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-xdist-1.34[${PYTHON_USEDEP}]
- >=dev-python/setuptools-56.0.0[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
- >=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
- test-rust? (
- !s390? ( !sparc? ( >=dev-python/uv-0.1.18 ) )
- )
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-python_test() {
- if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return
- fi
-
- local EPYTEST_DESELECT=(
- # broken by uv being installed outside venv
- tests/test_env.py::test_external_uv_detection_success
- )
-
- if ! has_version "dev-python/uv"; then
- EPYTEST_DESELECT+=(
- tests/test_env.py::test_uv_impl_install_cmd_well_formed
- 'tests/test_env.py::test_venv_creation[uv-venv+uv-None]'
- )
- fi
-
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- local EPYTEST_XDIST=1
- epytest -m "not network"
-}
diff --git a/dev-python/build/build-1.4.3.ebuild b/dev-python/build/build-1.4.3.ebuild
deleted file mode 100644
index b69bda624b0a..000000000000
--- a/dev-python/build/build-1.4.3.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_TESTED=( python3_{11..14} pypy3_11 )
-PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
-
-inherit distutils-r1
-
-MY_P=${P/_p/.post}
-DESCRIPTION="A simple, correct PEP517 package builder"
-HOMEPAGE="
- https://pypi.org/project/build/
- https://github.com/pypa/build/
-"
-SRC_URI="
- https://github.com/pypa/build/archive/${PV/_p/.post}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test test-rust"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
- dev-python/pyproject-hooks[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-scm-6[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- >=dev-python/filelock-3[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
- >=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-xdist-1.34[${PYTHON_USEDEP}]
- >=dev-python/setuptools-56.0.0[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
- >=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
- test-rust? (
- !s390? ( !sparc? ( >=dev-python/uv-0.1.18 ) )
- )
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-python_test() {
- if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
- einfo "Skipping tests on ${EPYTHON}"
- return
- fi
-
- local EPYTEST_DESELECT=(
- # broken by uv being installed outside venv
- tests/test_env.py::test_external_uv_detection_success
- )
-
- if ! has_version "dev-python/uv"; then
- EPYTEST_DESELECT+=(
- tests/test_env.py::test_uv_impl_install_cmd_well_formed
- 'tests/test_env.py::test_venv_creation[uv-venv+uv-None]'
- )
- fi
-
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- local EPYTEST_XDIST=1
- epytest -m "not network"
-}
diff --git a/dev-python/build/build-1.4.0.ebuild b/dev-python/build/build-1.5.0.ebuild
index b69bda624b0a..8950eff25059 100644
--- a/dev-python/build/build-1.4.0.ebuild
+++ b/dev-python/build/build-1.5.0.ebuild
@@ -37,6 +37,7 @@ BDEPEND="
${RDEPEND}
$(python_gen_cond_dep '
>=dev-python/filelock-3[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.3[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
>=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
>=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 24ab4a7db25c..4a65b638ec22 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -5,3 +5,5 @@ DIST cfn_lint-1.49.3.tar.gz 4037038 BLAKE2B 621ac3cb97d5924e1b29c75924f89a3942b7
DIST cfn_lint-1.49.3.tar.gz.provenance 9768 BLAKE2B fc1c6756840e9ae9862c80cd6854a788ffe4a7e35724121fb1c5aaab38bc1d9be23b66b35cbcb14490e55ee75a39459cd542545d9c543f5bdd53776d8d81c1ed SHA512 acd61ba2f218a51b4ad078465b02a684d8a2903d440450a8a6b9844e28daf64182f887d06734cf7fea433a4c17920ef3236b3e305625fc8a2666cda84e7bc403
DIST cfn_lint-1.50.0.tar.gz 4063399 BLAKE2B 6182121e00285a7eceaf57ab4dd301770b92ad92e2619b0b4b548920e4746857e5455eef1caee536247cc0976a00f266cd237b98be8adfc165166afb0160253a SHA512 d7403236c4647a4791c2aab643ff77fa819b505204011ed8940b8881719c873354448ce0759c1750be5c87ca63baec7a7cddcf3ccbef03dbd60d32cb08739d41
DIST cfn_lint-1.50.0.tar.gz.provenance 9956 BLAKE2B 800d31ae2167926124ac9247bd8d3b7b9d2d15241edb713127aa5d098cfdf1422ccb16374e18fc99e335514b6a7f2c30f96c9caaf7b536c9f8c927399b586851 SHA512 123e97669b6ed4429d2bd30b5f890ffa5900698ab6b01f37928ef40cd4152d5957f0ba8ac9beee0defed561526110613786c1362d18c2145726bffbe19822ca8
+DIST cfn_lint-1.50.1.tar.gz 4076509 BLAKE2B 438ce08ba7b37ca76b8a286f18deabd740969627c5177a40fc75fe76c36cb1adebf4c5e5a785b7422f287ee72d294c571d9e1bdfca6b9ef10473a28f4ae993da SHA512 9ac4224f4d5da149747abe00d6bffed88bc8fd3b36a868417bd8cf578b1cf7956812c7caaca4da178a1bed2b31a0a83f22be489176755e2146f8286e2dee12ce
+DIST cfn_lint-1.50.1.tar.gz.provenance 9678 BLAKE2B fde3c92469e6b11b53a3734c1266810052dadf96ea1cb2ab9d2f20ad36fa6d499ee260fdbf98f2a97b86543763f3af201d98ddc586a32649aa2bb716d0a206e2 SHA512 6c0af59dc5e2b61eb617f1690d671d85b2a9bc9d0ffec5d86cab9e49cabe4b3b551f16fc4cc720eddab122b69253ba3e31af4ac57cc4947cf23a3589a8e2678f
diff --git a/dev-python/cfn-lint/cfn-lint-1.50.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.50.1.ebuild
new file mode 100644
index 000000000000..0dd1e9716233
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.50.1.ebuild
@@ -0,0 +1,64 @@
+# 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/aws-cloudformation/cfn-lint
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.109.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.14.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # different line wrapping somehow
+ test/unit/module/template/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # TODO: suddenly started failing in older versions too
+ # https://github.com/aws-cloudformation/cfn-lint/issues/4207
+ test/integration/test_good_templates.py
+ test/unit/module/override/test_exclude.py::TestExclude::test_success_run
+ test/unit/module/test_api.py::TestLintFile::test_good_template
+ test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
+ # crashes on 3.12+, probably pygraphviz
+ test/unit/module/test_api.py::TestLintByConfig::test_graph
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ epytest
+}
diff --git a/dev-python/cryptography/cryptography-47.0.0.ebuild b/dev-python/cryptography/cryptography-47.0.0.ebuild
index f152f1ac46a0..b9986ead1bac 100644
--- a/dev-python/cryptography/cryptography-47.0.0.ebuild
+++ b/dev-python/cryptography/cryptography-47.0.0.ebuild
@@ -67,7 +67,7 @@ IUSE="libressl"
RDEPEND="
!libressl? ( >=dev-libs/openssl-1.0.2o-r6:0= )
- libressl? ( dev-libs/libressl:= )
+ libressl? ( >=dev-libs/libressl-4.2.1:= )
$(python_gen_cond_dep '
>=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}]
' 'python*')
diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest
index 2a30e83653d7..ca2e2ce25fb2 100644
--- a/dev-python/dulwich/Manifest
+++ b/dev-python/dulwich/Manifest
@@ -1,23 +1,34 @@
DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST dulwich-1.1.0.tar.gz 1178580 BLAKE2B 34c4f73e8f72091c1b0cc0dce69b4db6eb9649aeb4db429d12e2089eff0cc68e4ab62b5e5fbe2a33a1f3a92010f071fa492f5dcd4996704b366986c99cf1a7cf SHA512 010576262ea78b86cceb64e9a19fa133068457669f675ee68b060de26f2387207a7a8305492e57ffabb3c3d01a8e5b98a132d1f7396a1c9bc3c2565867b2f3af
DIST dulwich-1.1.0.tar.gz.provenance 9772 BLAKE2B 088b649527839758e181a04bc49cf7bf889ff39fe6056ccdf427435a8089caf1e613cc3efee9066d3306d3e9731751d948e50b562f719d4aa91234ba67ad9302 SHA512 bada36af17a7d0465ed9baf323878a195242790d589d129fb5137410cde8dfc35eb8be164e5cdbd8afe207e5461f427063e353c14b17b115bd9a258c6ffb82b1
+DIST dulwich-1.2.1.tar.gz 1223320 BLAKE2B f88dd9a5799abd09e8e930efcf3f232cc2fb9913b76b70852d9a2efc37c1c82318b9cd78d3f04e88e0c0f9e2490f75acd8b9824fb7a6fd8604d026984ad9d303 SHA512 5b52b38300adbc73222c961c3b5df7877d576cadf170d679b4df83bf4f87be2b1b4111a804b042328cf9bd1662f6ad96036d7191870e3e8228e8abcae0ad757e
+DIST dulwich-1.2.1.tar.gz.provenance 9741 BLAKE2B d5a97c9eeb6279a98647b43bd29103bcd703d08317b520e7bc49995f89c8d05bf64add3766a16ddd8f07bbfc152140a0460bad85471902ce8be17beff7cbd04b SHA512 3aab6fd326d6596879ee07e4095b8bbf932e221736c57824bf617b5390ffaededdeac8bc8568c3a0440c6c5707fc7fd861b62a69c551ba2d7a57efb3cf01c4cd
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73
DIST libc-0.2.182.crate 814873 BLAKE2B a5fae27ee77495d8638297523d7428eda4a608109e7e1b67db1ba621f7700761f8131710a49bbd24bedf62f8df7ecdeaedb5def47201146a05b4288ee2f92515 SHA512 7923eeb0ee1db8b5b00a6a4352cf5fd3f877a2f727af5857ca49ceeab2dc7519137eb3a982f5a763ae61fbe422ba8f0fe83d92dcabcfa18c23fae619960f96db
+DIST libc-0.2.185.crate 821775 BLAKE2B e0e93466a29c9d19f7d9ab3581b491908d06873a9c57a96b0cae2eed0f0d1cb184ebe80bc61e36d5ab316ab35dca529a322b29e6895f7f339e72c79cca7f8ca2 SHA512 c8dbcaaf2e5d8377a4d1003af4a7210fbfe4f9b1e8497f07d88a231a8d5c9f67014e650a5e18e913e7b4d6a1835c4cbc9c31ce0cd224ea28acbdbb39034a300e
DIST memchr-2.8.0.crate 97780 BLAKE2B 228ce0b6fe8b168f5c31031690a5eb44466609b64c5c221e0b3f56fe331b4f25c0124d613c94ef030b225000978953641f5b07458d530c1d50eec3e1d54e4274 SHA512 8089238153493a0ff6adf980efd1ea2ba10eeff9f33fff200268692662d24152a8c14a4dac37fbc6a55dca741701fd256174f10a9838ca66f038f08e090de12f
DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
+DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
DIST pyo3-0.27.2.crate 1171342 BLAKE2B 421039fe650e01546661ab98593288f8058694d513261fe0025851a68b665bdfc001692c60a5a34ede92d13a6003e8f261e4bcdc17f67518a156f52916d2ff76 SHA512 b20f502bda6cc6d283012acbb2e0225219ccd77af09990872c76b0088947050d886eb47ed88e9e0dcb327d08ab4bf09119f7cab527dfde358e01df5a32bb64c2
+DIST pyo3-0.28.3.crate 1204476 BLAKE2B 8540a1c51bac4fbe04ea34d5ce38471c13d5a3f0759e60cf21d67e846b00feb8316e70f32cb8dc6b74d09f0901ffc83d5f41b1a06da6d34790ef13e4cefcad45 SHA512 f955957eec4b95cc9337d331bba3bba52b4754b301cf86cd974601e64eb20c2424023b19be89a224661fe2e185de646cd3d0d00705b6b5cbd139856c9443a247
DIST pyo3-build-config-0.27.2.crate 35564 BLAKE2B 8786478e559613cc258e2d0153d549f65c13a24a3fe612da7ac96e5f4038a1714dbc6a01b2d3e3d99b3de3af9658ad220647fbba4a33305bef81c07100426ada SHA512 dc7cee79ce7febddeec9e70dd5de3b59696a5cf38afeccdfeda00307cc22166d0e9649d5e34e9801b7f495b31c104fa78dac2241248787daae8b9ea1f4551ce5
+DIST pyo3-build-config-0.28.3.crate 35961 BLAKE2B 61a0101913c6d563721049ca99256c2aefd89b017a7e18c82f4a6aceca0aefeaa71fd559cd43adfb5034ce076c904e5188f8f73961ea217287fbfd12caab9401 SHA512 78f85696901b16540d42187d10e888bd929b9f23415faeb73f9798abda1af3506a308145dd4113b070521271c72624d7930fb4b19bad25aa1afd3082030c9126
DIST pyo3-ffi-0.27.2.crate 78552 BLAKE2B cdd6fb74a49615c42e6c6979e28c1d56e0061ae9e9897a20032d6be27c635433e9fa459847bf3c88de3be7503d045ef78d4ea3e028403c1ed00da96930ed73dd SHA512 29936c7a0fa524304ca8b017ac912e2c3e9237a86ac8510c17b96b75c7e83948599884f064428640456cd5fb256246d536da432d096f924e78360efd973cee0b
+DIST pyo3-ffi-0.28.3.crate 80881 BLAKE2B 4ac7066c911e2aec18aa9245efed00585d063f81d69910e6a146f8efbf2939ab5de519bbf2a3dde78b40c264e97c62490db80e9b2e84aaf080d63659a6676459 SHA512 ec49b5cc67d19f46c9daea76b37b4988af0f63b9ed67c71190f015a0aa9691d4a8ffd4128413de430928428e1e8e26d44c3103f561e6b71b7e8c4597ab602d9f
DIST pyo3-macros-0.27.2.crate 8913 BLAKE2B 99a9cf37cb05261fa75d0ede4ed8ad75bbe29b941a4c6a0907d1c1baa887d0777dcb5970c7fbe1337c1b127b6318d077e2d8374629485572f3f7997a3e3825b8 SHA512 b05f6b61c5b320e83e879384691cdb9ad57ade3ce5a9fdfb587ccd13ea1c92d2b210e2d7ca242c3d1a5f5173076a25578d3d81f5a8c3935a43f010bfa8452153
+DIST pyo3-macros-0.28.3.crate 8963 BLAKE2B ca9967cfba565b873ed77565ff6eb8408473c227d191797e9db8c6b5cbc89abc17ffd57ae71e28877088fe19373da2f503cdefeae6b0a47796f6abcf62044f08 SHA512 57d178bd9b53dd98916e60c89bc26c34f9949829dc17bf7d6cc15b704bba7c874d85d6bd3c827d401268660a79230a6e32711048da939ec4e22342f3e08046d1
DIST pyo3-macros-backend-0.27.2.crate 82513 BLAKE2B 9154f0275ac031fb456c313176490b7f98e033a9ff43caf32ca717e6dedc2c32435af5e7d9d2e784690fe2a379c033f0dc036b18c630fa7cb3c3365e335e3a12 SHA512 811fa48ceb5a87d23312b968efa9d8464653289cefc8a1e27838f03285eef67092652ba89eba655d243fa435edd97674a981267870d208e0b11390db32d1ad9f
+DIST pyo3-macros-backend-0.28.3.crate 88063 BLAKE2B a484b12bbab3031838f61149ab9f08b9e460a2bd02089e08e58dac2cb747afbc0cdfe64018ed4c8cb0bbbd1d22e3eb05a6a72b020da6b71a584ec51ca8d24292 SHA512 45ce31ed64ee4fd0249736d480c9840a756bc45934d6803ae11e0680057ecf4cc74c71b47ccf9241fc3ab5c1e0b9c758426f08bd523d1ace92fc308302ea3c84
DIST quote-1.0.44.crate 31629 BLAKE2B 6e34e4121b7a37fd7492fc22d652c44ff90b8b3391b5cfa320a606871a43a4494beca15c1d4416c342bf511adb6442afa5513821514c52376175e2f8a98b7293 SHA512 6c1e9b31e0c8bd13cd865e6846dc243d88f2c057adeb8e674117bdcb46947219a6a352a6a50be1132c483f55331e6556275ac514513dbf017825c64e5d96010d
+DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
DIST similar-2.7.0.crate 53928 BLAKE2B 41d6aec64403069dcf81a9a00b9db041967b89d09cf9f2371444928f32bbc2a8c6066adb93eaf25c72a257fab87e24c160265d687c4e33848728a4ddd374012a SHA512 4a2559d2e47e7747eb2bde0f02a0e652ff0e116d1d3c3756dd86fd48f114e2b42157b860165e5cc29c2123cf19c64ebd17f023aaa05950de03ab5752562206b3
DIST syn-2.0.116.crate 305969 BLAKE2B 68bec34f707325ced89dab5d67587fdcc3b5245c87bd16c1b65f5c832d4369b500e0485c9a4407667098248c856bcd091c936c06e0bf373e0b8c761bcaba85ba SHA512 81e1a5388d688a4aaf00ba35428ac82b9b4bb6e703c4321a898140d6fd40cdaa32762bf0e0ea0d9276f4322f673dbc39d3c46c275dcf69533c57ba4d68702ea1
+DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b
diff --git a/dev-python/dulwich/dulwich-1.2.1.ebuild b/dev-python/dulwich/dulwich-1.2.1.ebuild
new file mode 100644
index 000000000000..3fc93c6dda55
--- /dev/null
+++ b/dev-python/dulwich/dulwich-1.2.1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/jelmer/dulwich
+PYTHON_COMPAT=( python3_{10..14} )
+
+RUST_MIN_VER="1.83.0"
+CRATES="
+ heck@0.5.0
+ libc@0.2.185
+ memchr@2.8.0
+ once_cell@1.21.4
+ portable-atomic@1.13.1
+ proc-macro2@1.0.106
+ pyo3-build-config@0.28.3
+ pyo3-ffi@0.28.3
+ pyo3-macros-backend@0.28.3
+ pyo3-macros@0.28.3
+ pyo3@0.28.3
+ quote@1.0.45
+ similar@2.7.0
+ syn@2.0.117
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
+HOMEPAGE="
+ https://github.com/jelmer/dulwich/
+ https://pypi.org/project/dulwich/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="GPL-2+ Apache-2.0"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions Unicode-3.0
+ || ( MIT Unlicense )
+"
+LICENSE+=" )"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="doc examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.11)
+"
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${RDEPEND}
+ dev-python/fastimport[${PYTHON_USEDEP}]
+ dev-python/gpgmepy[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
+ dev-python/merge3[${PYTHON_USEDEP}]
+ dev-python/paramiko[${PYTHON_USEDEP},server(+)]
+ )
+"
+
+distutils_enable_sphinx docs
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so"
+
+pkg_setup() {
+ # avoid rust_pkg_setup which will die when there's no Rust found
+ if use native-extensions ; then
+ rust_pkg_setup # implicitly inherited through cargo
+ fi
+}
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+python_compile() {
+ # make extension build errors fatal
+ local -x CIBUILDWHEEL=1
+ unset PURE
+ if ! use native-extensions; then
+ local -x PURE=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # remove interference from the tests that do stuff like user.name
+ unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
+ unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
+ unset EMAIL
+ # Do not use make check which rebuilds the extension and uses -Werror,
+ # causing unexpected failures.
+ "${EPYTHON}" -m unittest -v tests.test_suite ||
+ die "tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/findpython/Manifest b/dev-python/findpython/Manifest
index d4328680d050..8f37a233051c 100644
--- a/dev-python/findpython/Manifest
+++ b/dev-python/findpython/Manifest
@@ -1 +1,2 @@
DIST findpython-0.7.1.tar.gz 18867 BLAKE2B f59fb6d523263bb53fc66c552d366a1ce116d5cf1f9d60efca30ffd7f46ce4d6d6e85cbdbb9e41c6d509ec8f33134bd16aff80744a64edb55e15d59ebd15a759 SHA512 3b85be82027c8e749edf640055315b1f916c93adc3fa436dd3281edf22af92bf077d255e8feec1a0a4211fda8e154768c424ad521baa7e6100f10acf6ebf121f
+DIST findpython-0.8.0.tar.gz 18892 BLAKE2B adabaef72fbff46ed122e7777fc27cc3a5e65d25b5fe56d1831a7b069f641debdb7ff7ba36f2b32bb5528be577b9c3261cd4761edc3dd78707219309bba3e13f SHA512 5933cedc10e6cc533f24bda74b5af5ae97996597f27ef417f452d8718d1b56b2fdbdd956ee0d5317b0a1cb7fc2d35bb871122c2d80861b2ad92cde499b361756
diff --git a/dev-python/findpython/findpython-0.8.0.ebuild b/dev-python/findpython/findpython-0.8.0.ebuild
new file mode 100644
index 000000000000..bca905e02a0c
--- /dev/null
+++ b/dev-python/findpython/findpython-0.8.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A utility to find python versions on your system"
+HOMEPAGE="
+ https://github.com/frostming/findpython/
+ https://pypi.org/project/findpython/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-20[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.3.6[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/fsspec/Manifest b/dev-python/fsspec/Manifest
index 587d10de2133..f7addbb6f230 100644
--- a/dev-python/fsspec/Manifest
+++ b/dev-python/fsspec/Manifest
@@ -1,2 +1,3 @@
DIST filesystem_spec-2026.2.0.gh.tar.gz 451801 BLAKE2B ad2fc26545c3f8984a356c489f4c44bd7b96ae09ee38726c38ac7adebe3168a875eff5eea2b3fc3e2fa87d3b609d88bc31aed887969d7154fa1cc22d0861e9bb SHA512 baf7537fccdd6f1486f92e94ffcf5a5c6d081a687998493bc3cc7a2d7261ec86f9d6b6289d7d6ab574a8108a68c80276d35d851e6c3cfc395b90908c6b462ccf
DIST filesystem_spec-2026.3.0.gh.tar.gz 452108 BLAKE2B cf4f4ef45908453934a1b63e1114d012f7c33bd4400b4c1193215e616243340dce642508c11e4b4f38f3e3db3b3ce6a5ad339669cf2e1a6ce8725ada7d9122b2 SHA512 861a9b1f88b80e41a3aa1e6d199a6c1a33db481fd9da17659c6a8e56857043103c6215a52550a403207ee296355e58acad8334ea6fe0af52a0a8cab8ac06dc7e
+DIST filesystem_spec-2026.4.0.gh.tar.gz 455367 BLAKE2B b47f54816eb19caf256e1291be7395493db82fa10c90f81a3b06ed49a8bf90aff23350f904ae0aae4fa4b54b7c6d4d6a08279c3307036822bd7dc35888fa3440 SHA512 289669397c965af7e9242b9cc181bba5bbac8ead95e4288135ce2cd209e37a15c0361652f221f2e0c68161041b24848113ad104582bc27188357da5ca3e29701
diff --git a/dev-python/fsspec/fsspec-2026.4.0.ebuild b/dev-python/fsspec/fsspec-2026.4.0.ebuild
new file mode 100644
index 000000000000..ca3863e5a90b
--- /dev/null
+++ b/dev-python/fsspec/fsspec-2026.4.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2020-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=filesystem_spec-${PV}
+DESCRIPTION="A specification that python filesystems should adhere to"
+HOMEPAGE="
+ https://github.com/fsspec/filesystem_spec/
+ https://pypi.org/project/fsspec/
+"
+# upstream removed tests in 2024.6.0
+SRC_URI="
+ https://github.com/fsspec/filesystem_spec/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+# Note: this package is not xdist-friendly
+EPYTEST_PLUGINS=( pytest-{asyncio,mock,rerunfailures} )
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+src_test() {
+ git config --global user.email "you@example.com" || die
+ git config --global user.name "Your Name" || die
+
+ # block importing pyarrow, it's causing Python to crash with
+ # the immutability assertion.
+ cat > pyarrow.py <<-EOF || die
+ raise ImportError("thou shalt not import pyarrow")
+ EOF
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ fsspec/implementations/tests/test_reference.py::test_async_cat_file_ranges
+ fsspec/implementations/tests/test_github.py
+ fsspec/implementations/tests/test_gist.py
+ )
+
+ epytest -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/jupyterlab/Manifest b/dev-python/jupyterlab/Manifest
index 859d66f9bace..38dbc1d81197 100644
--- a/dev-python/jupyterlab/Manifest
+++ b/dev-python/jupyterlab/Manifest
@@ -1,3 +1,4 @@
DIST jupyterlab-4.4.10.tar.gz 22969303 BLAKE2B 478b424ff65b4f88ee849f0e87cebf30a1a95d7da390e3179f0675c4d37cb6cc80aef0262e2e4ca09fecda71a76c6d92ed99a6b52337ff2ab22cc010122513a4 SHA512 fbdd4429ddc5c14f0085d3dc4a9cd1f93c8db3b438e62c7e653fb605819ec97f41aba182c48a54f25f5ed53d36a9137522e7901a2b36349596c8f03beeefe351
DIST jupyterlab-4.5.5.tar.gz 23968441 BLAKE2B 26cd7f35af4eeb02e642ad54b915a742ab72d6d8f2d0c1104bd110209099deb2130b17da1a7630a0ddacf85d0411f7bc53d344c8d7fbaa60c836a8737a96ab3a SHA512 9e30719ce3f243312dd9c4630f8985f0e34dace323bc4ade7e5db483175052127c76a582ff5014fe8f85f99370f820a24ee24aa782deaf87513c01db3e84f3ae
DIST jupyterlab-4.5.6.tar.gz 23970670 BLAKE2B 362d6557cf74858186a815d41d63ab6c987859d033484bd59b431924fc95eec8c692b5dd6fd9f1b110e17c8f8a285a96e1b45371379c2e5c485cf39783437f0d SHA512 67c63e8717384b334b421bc95f46a38a9a0ade3edc319a66f20e86102aa6583df3828b47fb4d90ff6291779fb078e42034f3dcbb293a2428bf554503e2495910
+DIST jupyterlab-4.5.7.tar.gz 23992763 BLAKE2B a8393ca503e6d35c8cd896948dc7201d10b9493bc55ed9898b706a9c88e98dc8000cb9d66e306600d0908aa23f6244860f7d271cfea6c54b339c5249ee2a6f33 SHA512 b2bc3190586c2f25688aef12a6ca04d77c69f21ce35f53bee926de10961c84e55e5441cd812f03e5deb649e8fa38674e97db7fd5a00edc965c19b2b7e1d90996
diff --git a/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild b/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild
new file mode 100644
index 000000000000..1701378bc41a
--- /dev/null
+++ b/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild
@@ -0,0 +1,76 @@
+# 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 pypi xdg
+
+DESCRIPTION="JupyterLab computational environment"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyterlab/jupyterlab/
+ https://pypi.org/project/jupyterlab/
+"
+
+LICENSE="BSD MIT GPL-3 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.5.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.28.0[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-41.1.0[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+ net-libs/nodejs[npm]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-cache[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # These tests call npm and want internet
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_uninstall_core_extension
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned_folder
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom_minimal_core_config
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_check
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_clear
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_build
+)
+
+EPYTEST_IGNORE=(
+ jupyterlab/tests/test_announcements.py
+)
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,tornasync,timeout} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+# TODO: package sphinx_copybutton
+#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/latexrestricted/latexrestricted-0.6.2.ebuild b/dev-python/latexrestricted/latexrestricted-0.6.2.ebuild
index 4e7ecb74555b..dcf7a85e3d9d 100644
--- a/dev-python/latexrestricted/latexrestricted-0.6.2.ebuild
+++ b/dev-python/latexrestricted/latexrestricted-0.6.2.ebuild
@@ -20,4 +20,4 @@ SRC_URI="
LICENSE="LPPL-1.3c"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ppc ppc64 ~riscv x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest
index 7fdf5d842fac..f4d8f3659995 100644
--- a/dev-python/plotly/Manifest
+++ b/dev-python/plotly/Manifest
@@ -1,2 +1 @@
-DIST plotly.py-6.6.0.gh.tar.gz 10370904 BLAKE2B 871fc805cda64303ffd5a3aa65e35573941fd3222f64e4bb965362d03f8e8843144bd6e9975960d009ca20a9af9366433878edd1f2edd13bffd734882eaae93c SHA512 ba3dae0d18a24498b9362fa7eb1cbc0a635fc447dfc9ee087fc6d8efd31359a4eb2d7467729d283325e3325a9645fcc4b5bdf60f3ea873b3ead79f6612ed39bc
DIST plotly.py-6.7.0.gh.tar.gz 10364351 BLAKE2B 335dcabc60048651d6e356bbb59320977989be15d5ea33d03e6ff2b2f5c19d0774679fccbe7da442287ee1dd94cfba14beb2f40fd538f13ffde3acf56839346a SHA512 ad651e9a79be30bb9123f2fd26d8847eba7cc7168924af5237c495352749bebd12c823e5294865ad9aca69ccaeb4636baa1f82b4bcc39b747a02b9b58c52da5d
diff --git a/dev-python/plotly/plotly-6.6.0.ebuild b/dev-python/plotly/plotly-6.6.0.ebuild
deleted file mode 100644
index 4a72b977015d..000000000000
--- a/dev-python/plotly/plotly-6.6.0.ebuild
+++ /dev/null
@@ -1,103 +0,0 @@
-# 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=setuptools
-
-inherit distutils-r1
-
-MY_P=plotly.py-${PV/_}
-DESCRIPTION="Browser-based graphing library for Python"
-HOMEPAGE="
- https://plotly.com/python/
- https://github.com/plotly/plotly.py/
- https://pypi.org/project/plotly/
-"
-SRC_URI="
- https://github.com/plotly/plotly.py/archive/refs/tags/v${PV/_}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S="${WORKDIR}/${MY_P}"
-# The tests are not included in the PyPI tarball, to use the GitHub tarball
-# we have to skip npm, which means that the resulting install will
-# unfortunately lack the jupyterlab extension.
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- >=dev-python/narwhals-1.15.1[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/jupyter[${PYTHON_USEDEP}]
- dev-python/jupyterlab[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/scikit-image[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/statsmodels[${PYTHON_USEDEP}]
- dev-python/xarray[${PYTHON_USEDEP}]
- )
-"
-
-# There are sphinx docs but we are missing a bunch of dependencies.
-# distutils_enable_sphinx ../../../doc/apidoc
-
-EPYTEST_PLUGINS=()
-# xdist is causing pretty nasty race conditions here
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=(
- # requires polars
- tests/test_optional/test_px
-
- # requires kaleido
- tests/test_optional/test_kaleido/test_kaleido.py
-)
-
-EPYTEST_DESELECT=(
- # requires polars
- 'tests/test_plotly_utils/validators/test_fig_deepcopy.py::test_deepcopy_dataframe[polars]'
-
- # require anywidgets
- 'tests/test_io/test_to_from_json.py::test_from_json_output_type[FigureWidget-FigureWidget0]'
- 'tests/test_io/test_to_from_json.py::test_from_json_output_type[FigureWidget-FigureWidget1]'
- 'tests/test_io/test_to_from_json.py::test_read_json_from_filelike[FigureWidget-FigureWidget0]'
- 'tests/test_io/test_to_from_json.py::test_read_json_from_filelike[FigureWidget-FigureWidget1]'
- 'tests/test_io/test_to_from_json.py::test_read_json_from_pathlib[FigureWidget-FigureWidget0]'
- 'tests/test_io/test_to_from_json.py::test_read_json_from_pathlib[FigureWidget-FigureWidget1]'
- 'tests/test_io/test_to_from_json.py::test_read_json_from_file_string[FigureWidget-FigureWidget0]'
- 'tests/test_io/test_to_from_json.py::test_read_json_from_file_string[FigureWidget-FigureWidget1]'
-
- # minor matplotlib incompatibility
- plotly/matplotlylib/mplexporter/tests/test_basic.py::test_legend_dots
- plotly/matplotlylib/mplexporter/tests/test_utils.py::test_linestyle
-
- # fails in non-isolated env
- test_init/test_dependencies_not_imported.py::test_dependencies_not_imported
- test_init/test_lazy_imports.py::test_lazy_imports
-
- # TODO
- 'tests/test_plotly_utils/validators/test_colorscale_validator.py::test_acceptance_named[Inferno_r]'
-
- # numpy 2.4
- tests/test_optional/test_figure_factory/test_figure_factory.py::TestViolin::test_violin_fig
- tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_encode_customdata_datetime_homogeneous_dataframe
- tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_encode_customdata_datetime_series
- tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_numpy_datetime64
-)
-
-src_configure() {
- # Do not try to fetch stuff with npm
- export SKIP_NPM=1
-}
diff --git a/dev-python/plotly/plotly-6.7.0.ebuild b/dev-python/plotly/plotly-6.7.0-r1.ebuild
index 565c1022538e..6dafeee24d5d 100644
--- a/dev-python/plotly/plotly-6.7.0.ebuild
+++ b/dev-python/plotly/plotly-6.7.0-r1.ebuild
@@ -97,6 +97,13 @@ EPYTEST_DESELECT=(
tests/test_optional/test_utils/test_utils.py::TestJSONEncoder::test_numpy_datetime64
)
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # stop installing junk "js" package
+ sed -i -e '/used by Jupyter extension/d' pyproject.toml || die
+}
+
src_configure() {
# Do not try to fetch stuff with npm
export SKIP_NPM=1
diff --git a/dev-python/pycurl/Manifest b/dev-python/pycurl/Manifest
index 27621e5b4a2a..46a14cf77873 100644
--- a/dev-python/pycurl/Manifest
+++ b/dev-python/pycurl/Manifest
@@ -1,2 +1,4 @@
DIST pycurl-7.45.7.tar.gz 241098 BLAKE2B 8150d9f783818ff8c307038e70b030904d90d9dd0ddb2bbdda1551ad725362eebe343bd2f376544da49b01b45a03c0826720565385a48ecba7830209dc191ed5 SHA512 dc8dc4ec1cc4fa8b34aa2ca6e1cd8c3dde4f73500f364bfb67a7c38bf04b18eaabcbd9b55cd7da9b4fe5080ab3845a4e4a2bed3a87d4c0d693ec24142319af27
DIST pycurl-7.45.7.tar.gz.provenance 9536 BLAKE2B c79ae5c53dfe14786e11edad42d7ea612ee7a09f6252b7876a8635a0b7c20e1d331a90c6cc2cde0889b7ca10e2d9787aab861968f526c68e4b9ce1686bdd462c SHA512 1d9762bc7e2b5d1c999679a15ee540dfc835b0b301f9f813b408774b41ae151a434b44d3aed802657e66a85e52d385bb8cb4478f0f8c93cb5b7504d17ff34592
+DIST pycurl-7.46.0.tar.gz 284697 BLAKE2B 0839edc2b93ddf3a164452b5c1b312f06960d7bf54d0ed8db1e9021e3abf0bf307c8d512cf5b5ac521b50921794142c00d90d2bdcabf982496ba8bc5e58bdaa8 SHA512 b30f41513b30b0ec54c8f3994245c5e31af194176086081040862772f059907375a7711c7a941c08c5c3daddfd9aae2ded3f0ed7fd6baa480ac1610de6959f8c
+DIST pycurl-7.46.0.tar.gz.provenance 9569 BLAKE2B 70d9db2f5f58586fd9cb7557f60ccb5eb5469bc17d8f42a616c754072bdf96c347e7ae09c7d706bc75835bab35e0a5fa07d74cdfe1e2bb8c1cbf90bf9f291263 SHA512 e66b4bc6c176264639485a7aa8f521783f7d95e6e05f3b7e78f5ba3a8e1845200e1aa67691d6ccf606d00791fe13e493b98d1e2e348afd4d599d2fc155ede8d6
diff --git a/dev-python/pycurl/pycurl-7.46.0.ebuild b/dev-python/pycurl/pycurl-7.46.0.ebuild
new file mode 100644
index 000000000000..d8ecc16aeed3
--- /dev/null
+++ b/dev-python/pycurl/pycurl-7.46.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pycurl/pycurl
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi toolchain-funcs
+
+DESCRIPTION="Python bindings for curl/libcurl"
+HOMEPAGE="
+ http://pycurl.io/
+ https://github.com/pycurl/pycurl/
+ https://pypi.org/project/pycurl/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="curl_ssl_gnutls +curl_ssl_openssl examples ssl"
+
+# Depend on a curl with curl_ssl_* USE flags.
+# libcurl must not be using an ssl backend we do not support.
+# If the libcurl ssl backend changes pycurl should be recompiled.
+# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl
+# does not need to initialize gcrypt threading and we do not need to
+# explicitly link to libgcrypt.
+DEPEND="
+ >=net-misc/curl-7.25.0-r1:=[ssl=]
+ ssl? (
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
+ curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0:= )
+ curl_ssl_openssl? ( dev-libs/openssl:= )
+ )
+"
+
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-python/flask[${PYTHON_USEDEP}]
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),http2]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+: ${EPYTEST_TIMEOUT:=120}
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # docs installed into the wrong directory
+ sed -e "/setup_args\['data_files'\] = /d" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # Override faulty detection in setup.py, bug #510974.
+ export PYCURL_SSL_LIBRARY=${CURL_SSL}
+}
+
+src_test() {
+ emake -C tests/fake-curl/libcurl CC="$(tc-getCC)"
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # refcounting tests are unreliable
+ tests/memory_mgmt_test.py::MemoryMgmtTest::test_readdata_refcounting
+ tests/memory_mgmt_test.py::MemoryMgmtTest::test_writedata_refcounting
+ tests/memory_mgmt_test.py::MemoryMgmtTest::test_writeheader_refcounting
+ )
+
+ epytest tests
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/s3transfer/Manifest b/dev-python/s3transfer/Manifest
index 2a8f650ad3be..a3dc7835f959 100644
--- a/dev-python/s3transfer/Manifest
+++ b/dev-python/s3transfer/Manifest
@@ -1,2 +1,3 @@
DIST s3transfer-0.16.0.tar.gz 153827 BLAKE2B 0bb01ad6e9bafbcdc2b89e11949fea5d2a550eefde12fc8ac696fc2153ae338759bcb0e7bdddc6c18c88108de64a90edb70d9deb2c3d4ce4ad26a0b20b3ee292 SHA512 dd81875d173c1d66ed234a5194e1bc06faa0dad2d885a55d09932c6686c0f56ecd9d474971ad7ec9c21a1ebf45c35d9688c4a2a4cdf16059cafb70ed910b003c
DIST s3transfer-0.16.1.tar.gz 154801 BLAKE2B 7a8684162402007c148b9cbd5eb29a006b99eeb0ecbb4221a452360220db26a3c7c5601f0a965ea29ba7946180224b4f34ee5cfca3631137b5a71328e9322921 SHA512 d953559ab4667b497b058945268af9edde3a1483f09c6725bf45eb5ab347a41c4c4635e663130edcd76aeeacbf40daa39ef8b78e777f54f7ef3ed4d1973cec04
+DIST s3transfer-0.17.0.tar.gz 155337 BLAKE2B bc1898fc9cc8ca5bbedad81a3491127cdf2021ee522b099121592f89a0c3bb3ece9a9cae3d35593b1cf9b379790c7135523bcf2e53675a5060fe64ed5be9a5da SHA512 cbd5a5ac93d3cad66b54d93fdd07b36dbc40a377e89395fd16349f0e8e5abc66938f4c74c00cc8ee4a14b9ac4673a43b18c217357eb4fcd72cb61682605bd134
diff --git a/dev-python/s3transfer/s3transfer-0.17.0.ebuild b/dev-python/s3transfer/s3transfer-0.17.0.ebuild
new file mode 100644
index 000000000000..099356fb337b
--- /dev/null
+++ b/dev-python/s3transfer/s3transfer-0.17.0.ebuild
@@ -0,0 +1,42 @@
+# 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="An Amazon S3 Transfer Manager"
+HOMEPAGE="
+ https://github.com/boto/s3transfer/
+ https://pypi.org/project/s3transfer/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/botocore-2[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.37.4[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # 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
+}
+
+python_test() {
+ epytest tests/{unit,functional}
+}
diff --git a/dev-python/twisted/Manifest b/dev-python/twisted/Manifest
index b28741505798..b48bcc2d0688 100644
--- a/dev-python/twisted/Manifest
+++ b/dev-python/twisted/Manifest
@@ -1,3 +1,5 @@
DIST twisted-25.5.0.tar.gz 3545725 BLAKE2B 01f24c3c90c3db349efe779a8262abab3004782aedd8534a8c53e5336d77862a3615c83093137074b19af415cdb5572e07c39a74846a128544e8405d9c69864b SHA512 3d023777854fdf54e06f4bbaf3159359767aac9ba33e90d2b2e8abe29815d088e00eebd06944c12610a28c517d9cb397a5104ff153160edabfb91dd16a15f597
DIST twisted-25.5.0.tar.gz.provenance 9203 BLAKE2B 76180b9aa470977a28eb3a2104bf6cf6355cf0585df5cf8e07420e3878df32e92ae23eef7bb64bd3fb8d863c4b3727daf44074d2a1d5735236f1d24f89711797 SHA512 9f5d3d92194abbbd5ed0bd524a11858f8d75ae8e9cf89bb4689a82053bc107f4eea6adbe2862fc9bba74bd3623eac3183a3bd3163cce4a7eec20e4ee4988afa0
+DIST twisted-26.4.0rc2.tar.gz 3575417 BLAKE2B 58f22a8fd475460b2d1db864b622bc2b0825bb24cbcface1a2cf299bb8e8206cd3c418ea8cb7baa0e19fdbeb4a8ef2ae41e66258329e9b232a4730069ff78d0e SHA512 f27629f801103eed16605809149588d2de9c3f8e837acc97f5481f68082024b971e13694c05bd35c90e875d9d0d362b5b824d0c967f4e333e7ae8268dfd77d7b
+DIST twisted-26.4.0rc2.tar.gz.provenance 9402 BLAKE2B 28a09a6d6458f0448b00b674a8437b41fe0a27fc9380675986dcb56972c1f440f4a228b59eb87ddbfc8a6d0ac7e1e0e2e0dbcc973edb92f0ed87f5a629be79f6 SHA512 f5adfbb14641ae94ee78ce622c6ea86dc225640106297f70dbeb85ef703f9bfe38a8c6ac1da9ccdf6fdab84d1a43a943b772a04e8e5863a98ca8359f6a0fa6d1
DIST twisted-regen-cache.gz 911 BLAKE2B ffd3fcda6c67ffe6fd3ef581c8d507548396b66ed0708e9a5c790095e579c0d5f0f71596acf05712989da2ddef2b8d437eca973bc4d80ef8a9fa852915f38305 SHA512 95a9b931c73017d16d1b5e6b41345dddffe62b6af1a8e93b5e40d06d3d15be17b0dd0181c767ffeeb791534d463764ef9e066fa6c2ee2ac4b53c86d1da8fce03
diff --git a/dev-python/twisted/twisted-26.4.0_rc2.ebuild b/dev-python/twisted/twisted-26.4.0_rc2.ebuild
new file mode 100644
index 000000000000..b3694f66a6df
--- /dev/null
+++ b/dev-python/twisted/twisted-26.4.0_rc2.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/twisted/twisted
+PYTHON_TESTED=( python3_{11..14} pypy3_11 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 multiprocessing pypi virtualx
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+HOMEPAGE="
+ https://twisted.org/
+ https://github.com/twisted/twisted/
+ https://pypi.org/project/Twisted/
+"
+SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+fi
+IUSE="conch http2 serial ssl test websockets"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/automat-24.8.0[${PYTHON_USEDEP}]
+ >=dev-python/constantly-15.1[${PYTHON_USEDEP}]
+ >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}]
+ >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-5[${PYTHON_USEDEP}]
+ conch? (
+ >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-3.2.1[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-38[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ )
+ http2? (
+ >=dev-python/h2-3.2[${PYTHON_USEDEP}]
+ >=dev-python/priority-1.1.0[${PYTHON_USEDEP}]
+ )
+ serial? (
+ >=dev-python/pyserial-3.0[${PYTHON_USEDEP}]
+ )
+ ssl? (
+ >=dev-python/pyopenssl-25.2.0[${PYTHON_USEDEP}]
+ >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.4[${PYTHON_USEDEP}]
+ )
+ websockets? (
+ dev-python/wsproto[${PYTHON_USEDEP}]
+ )
+"
+IDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/constantly-15.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
+ >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-3.2.1[${PYTHON_USEDEP}]
+ >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cython-test-exception-raiser-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.4[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.27[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.56[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ >=dev-python/pyhamcrest-2[${PYTHON_USEDEP}]
+ >=dev-python/pyserial-3.0[${PYTHON_USEDEP}]
+ dev-python/wsproto[${PYTHON_USEDEP}]
+ virtual/openssh
+ ssl? (
+ >=dev-python/pyopenssl-25.2.0[${PYTHON_USEDEP}]
+ >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}]
+ )
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # upstream test for making releases; not very useful and requires
+ # sphinx (including on py2)
+ rm src/twisted/python/test/test_release.py || die
+
+ # multicast tests fail within network-sandbox
+ sed -e 's:test_joinLeave:_&:' \
+ -e 's:test_loopback:_&:' \
+ -e 's:test_multiListen:_&:' \
+ -e 's:test_multicast:_&:' \
+ -i src/twisted/test/test_udp.py || die
+}
+
+src_test() {
+ # the test suite handles missing file & failing ioctl()s gracefully
+ # but not permission errors from sandbox
+ addwrite /dev/net/tun
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON} (xfail)"
+ return
+ fi
+
+ # breaks some tests by overriding empty environment
+ local -x SANDBOX_ON=0
+ # for py3.13, see
+ # https://github.com/twisted/twisted/pull/12092#issuecomment-2194326096
+ local -x LINES=25 COLUMNS=80
+ "${EPYTHON}" -m twisted.trial -j "$(makeopts_jobs)" twisted ||
+ die "Tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # own the dropin.cache so we don't leave orphans
+ > "${D}$(python_get_sitedir)"/twisted/plugins/dropin.cache || die
+
+ python_doscript "${WORKDIR}"/twisted-regen-cache
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
+
+python_postinst() {
+ twisted-regen-cache || die
+}
+
+pkg_postinst() {
+ if [[ -z ${ROOT} ]]; then
+ python_foreach_impl python_postinst
+ fi
+}
+
+python_postrm() {
+ rm -f "${ROOT}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die
+}
+
+pkg_postrm() {
+ # if we're removing the last version, remove the cache file
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ python_foreach_impl python_postrm
+ fi
+}
diff --git a/dev-python/uvloop/uvloop-0.22.1.ebuild b/dev-python/uvloop/uvloop-0.22.1.ebuild
index 0648fe309d71..039b8e9aca78 100644
--- a/dev-python/uvloop/uvloop-0.22.1.ebuild
+++ b/dev-python/uvloop/uvloop-0.22.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -31,6 +31,7 @@ RDEPEND="
"
BDEPEND="
>=dev-python/cython-3.0[${PYTHON_USEDEP}]
+ dev-python/pkg-resources[${PYTHON_USEDEP}]
test? (
>=dev-python/pyopenssl-22.0.0[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
diff --git a/dev-python/ytmusicapi/Manifest b/dev-python/ytmusicapi/Manifest
index 53980eec2547..76793ca7cbe0 100644
--- a/dev-python/ytmusicapi/Manifest
+++ b/dev-python/ytmusicapi/Manifest
@@ -1,2 +1,4 @@
DIST ytmusicapi-1.11.5.tar.gz 413046 BLAKE2B ad3a4cd5519c84e80e0fe802b8af011805d02f90299010b47dbe081ef9dcc462c92e8d3cde55e1c7ac4b541bd91b6093defb00d315281f681eedde8a8ae76060 SHA512 63be541a3c7615e2ac430359c844b77c83bb1c9c382c9c3b91eb314988be5179371deb10c46cec62d0b0db8217e870d9f2da27888bc77bcd88e4d1f44e337d41
DIST ytmusicapi-1.11.5.tar.gz.provenance 9560 BLAKE2B caffeb4d14af62940f214b14bbb50c02ecd7432fdd2e443214a6293079bec76df51c60847542a308ce8b6b4043d0d5ab4ac2842edbfa2867454b3cc4c1a46df9 SHA512 681bdd38d3b3476540780482bb182eb24d62991eb9095b0187054aba58c105093deedd6b2800150cbd1ab53d73620dbbd02d4bc2a0fe76f8ed4e11a671688280
+DIST ytmusicapi-1.12.0.tar.gz 434631 BLAKE2B be43548b2a1cca0e8d4eb1c4bf98f9bb0eff5578b97fe5ceb2358733cf73d991a51d4e50a3b1cdbf10fb7e702fe096ff5f713083637205adddc1a9f43ca4b71b SHA512 1b2ea9ab262622c188435954c3d61175ca474b7c66f7deaec7ec9bae881afe02918de593006b838c3a887d83b62802d1e25f81d880dbe23795cd05b39b83d8c5
+DIST ytmusicapi-1.12.0.tar.gz.provenance 9670 BLAKE2B 773dce972309fd00c9224cddebfb20fb81edb6834bfae51982fe5bb75a5982a8770d135ea7d1720df27c905142ab5aa9f76ec5543df0affa17df00b80f466df4 SHA512 6edad245fa30a5d5972933bcaa1ed97ee695bca048de61cdc4bded4743fe3cc81f1b92a581454fe7fa90332bc54fa4445944cf85f977acd5c1e8843848f237f1
diff --git a/dev-python/ytmusicapi/ytmusicapi-1.12.0.ebuild b/dev-python/ytmusicapi/ytmusicapi-1.12.0.ebuild
new file mode 100644
index 000000000000..5e8b02fc587f
--- /dev/null
+++ b/dev-python/ytmusicapi/ytmusicapi-1.12.0.ebuild
@@ -0,0 +1,28 @@
+# 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/sigma67/ytmusicapi
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Unofficial API for YouTube Music"
+HOMEPAGE="
+ https://ytmusicapi.readthedocs.io/
+ https://github.com/sigma67/ytmusicapi/
+ https://pypi.org/project/ytmusicapi/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme