summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-admin/awscli/Manifest1
-rw-r--r--app-admin/awscli/awscli-1.32.107.ebuild90
-rw-r--r--dev-lang/gprolog/Manifest1
-rw-r--r--dev-lang/gprolog/gprolog-1.4.5.ebuild85
-rw-r--r--dev-lang/gprolog/gprolog-1.5.0-r1.ebuild2
-rw-r--r--dev-python/Nuitka/Manifest3
-rw-r--r--dev-python/Nuitka/Nuitka-2.2.3.ebuild (renamed from dev-python/Nuitka/Nuitka-2.2.1.ebuild)0
-rw-r--r--dev-python/Nuitka/Nuitka-2.2.ebuild52
-rw-r--r--dev-python/astroid/Manifest1
-rw-r--r--dev-python/astroid/astroid-3.2.1.ebuild74
-rw-r--r--dev-python/aws-sam-translator/Manifest1
-rw-r--r--dev-python/aws-sam-translator/aws-sam-translator-1.89.0.ebuild62
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.107.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.107.ebuild67
-rw-r--r--dev-python/cliff/Manifest1
-rw-r--r--dev-python/cliff/cliff-4.7.0.ebuild40
-rw-r--r--dev-python/notebook/Manifest1
-rw-r--r--dev-python/notebook/notebook-7.2.0.ebuild64
-rw-r--r--dev-python/python-glanceclient/Manifest1
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-4.6.0.ebuild52
-rw-r--r--dev-python/python-neutronclient/Manifest1
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-11.3.0.ebuild78
-rw-r--r--dev-python/pyzotero/Manifest1
-rw-r--r--dev-python/pyzotero/pyzotero-1.5.19.ebuild37
-rw-r--r--dev-python/scikit-learn/scikit-learn-1.4.2.ebuild2
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-23.15.9.ebuild121
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-9.7.0.ebuild88
-rw-r--r--dev-python/twine/Manifest1
-rw-r--r--dev-python/twine/twine-5.1.0.ebuild78
-rw-r--r--dev-python/typing-extensions/Manifest1
-rw-r--r--dev-python/typing-extensions/typing-extensions-4.12.0_rc1.ebuild26
-rw-r--r--dev-python/zipp/zipp-3.18.2.ebuild1
-rw-r--r--dev-util/stripe-mock/Manifest1
-rw-r--r--dev-util/stripe-mock/stripe-mock-0.186.0.ebuild27
-rw-r--r--eclass/cargo.eclass56
39 files changed, 1009 insertions, 165 deletions
diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest
index d03d195e0e6b..c06cbe86ca27 100644
--- a/app-admin/awscli/Manifest
+++ b/app-admin/awscli/Manifest
@@ -2,5 +2,6 @@ DIST aws-cli-1.32.103.gh.tar.gz 2726436 BLAKE2B 7c08f29df7b0f786a99a7469263cb367
DIST aws-cli-1.32.104.gh.tar.gz 2726763 BLAKE2B 997fc73890d033485fb22cf7c5e6ab2844aaec60fe2017cea2513f4f439f6fab8c70519a5ded46ed269b3733eed52579236e577d8db172448812128c68687d50 SHA512 a416f93d77a7f314294aff14a337dbea1ae7d5ef10221a97abec71f8b4c23d764455b4bcb48d10fc5cbb1fcc9cfb149bc4b49e102d0e488a8f3bd4d91782878c
DIST aws-cli-1.32.105.gh.tar.gz 2727065 BLAKE2B 1ddbb3405e491fac1257936647872beb93f374754f718338cca1d6ddf230feb3ac4b167af36a1f2a351553af7ea0b525d6481bc06a9d469c79ad06134d1e1da2 SHA512 a181ca52de6f1c891ceb12958927040751e7890b505d1dd2ab1400f1fa17ba555ff2e2fa5a542113648991b37ce99d8016f00e863f81b56e783c28169d7cc993
DIST aws-cli-1.32.106.gh.tar.gz 2727416 BLAKE2B 6749a4f63ca594c344a80751fc0ac0f3434c4b5c8a93db794f89d10a23369941656067b00fd66da72d4dd081a920e51a57572d028953356c9c5ad6ebfc1dccf1 SHA512 d6103bbacd65b94f4289d332bf18895899a5caa9c201bb62601863c86a07f8b97dd58651c0e8f2665b322e5d6ea3ac8d2bec2cdeac391cefe0cd03488a02fefc
+DIST aws-cli-1.32.107.gh.tar.gz 2727905 BLAKE2B 6790687edadc7ebf4bb8519ed9352961d002b95b157bf56b3ce02f50eef8e9eeeac39bb211816ab3e8e0f21dc2e41b9b3c179c77eab8c23d5650b1002fafff52 SHA512 b2f363ba8833058eb935fab311492c252dac4afff2f81e5ea70b9a8610c6e5b7e0b4ec090591af1a0c3692c3641ac1213cb8455d8ffac8a148d7ba0b7c7f4467
DIST aws-cli-1.32.93.gh.tar.gz 2695489 BLAKE2B d2f81786d4db158a13ec50ed833668db26bde00cc1e4f5254aa127aba82113074abafa996f525b5f7cd215fd51639481a01a49c425bb4c01e990261529f06082 SHA512 e03892ef522fa43442d1b053d0bf8dbd6c892d94398934c4af58e81153c2759f7e55a289457bb3e5b46f2f01697642498fdd6d51cdc18ad8b6c0f6a31d7c606a
DIST aws-cli-1.32.98.gh.tar.gz 2723261 BLAKE2B f854a78226a9480d2966e0dcc817e372de96f32723c28bd7189ed484ab24e8fa9f33a018b1b3193d1a5be82e1ad2b69b2d0d6642f004aa6fd601a68862cbbbdc SHA512 989ad96da152423001832a502935ed64a92ef61ba63f9f413fa07e84910d2aa905056bbfcf49202508d6d0a910b4a2969da27e736857e918077693909e4ca0ea
diff --git a/app-admin/awscli/awscli-1.32.107.ebuild b/app-admin/awscli/awscli-1.32.107.ebuild
new file mode 100644
index 000000000000..4a677affdbc4
--- /dev/null
+++ b/app-admin/awscli/awscli-1.32.107.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit bash-completion-r1 distutils-r1
+
+MY_P=aws-cli-${PV}
+DESCRIPTION="Universal Command Line Environment for AWS"
+HOMEPAGE="
+ https://github.com/aws/aws-cli/
+ https://pypi.org/project/awscli/
+"
+SRC_URI="
+ https://github.com/aws/aws-cli/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# botocore is x.(y+2).z
+BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
+RDEPEND="
+ >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/rsa[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ !app-admin/awscli-bin
+"
+BDEPEND="
+ test? (
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pytest-forked[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+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
+ # strip overzealous upper bounds on requirements
+ sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local serial_tests=(
+ tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
+ tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
+ tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
+ tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
+ tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
+ tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
+ tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
+ tests/unit/customizations/test_sessionmanager.py
+ tests/unit/test_compat.py::TestIgnoreUserSignals
+ tests/unit/test_help.py
+ tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
+ )
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ EPYTEST_XDIST= epytest "${serial_tests[@]}"
+
+ local EPYTEST_DESELECT=( "${serial_tests[@]}" )
+ # integration tests require AWS credentials and Internet access
+ epytest tests/{functional,unit}
+}
+
+python_install_all() {
+ newbashcomp bin/aws_bash_completer aws
+
+ insinto /usr/share/zsh/site-functions
+ newins bin/aws_zsh_completer.sh _aws
+
+ distutils-r1_python_install_all
+
+ rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
+}
diff --git a/dev-lang/gprolog/Manifest b/dev-lang/gprolog/Manifest
index c39f0b3c5d47..a1f25fe789db 100644
--- a/dev-lang/gprolog/Manifest
+++ b/dev-lang/gprolog/Manifest
@@ -1,2 +1 @@
-DIST gprolog-1.4.5.tar.gz 3587361 BLAKE2B c0c73ce249d7c26b914a3f831c6ac93aeb884bded6c5ebbe51223f0685de0be2e746533aade1633a953b93e88a30796fa52ecd5e609d05bc051363cbf34e0477 SHA512 425103bc9e5bdbdb4ae331f5be0cf49524fbdb4f5e2809fb973360de9e7ad9935c1b28f3603e0be696a647153d9f0d3dacdc87251098ac99faf7d0b3c652fc60
DIST gprolog-1.5.0.tar.gz 3813899 BLAKE2B e1d82393f122f37b1e139732c1b954b8a407feac4973b56c2e39dcf907424acca67bd10ea0e833ebbd6764a47b075911a29e05b51c37d3751a5d5fc751a08789 SHA512 7ef1a3555ffa58d3fb0db2b55ffc1d00868021f0f9f3d63dd1f43b5b833e6e00ecc74abfc0573828a3d53f20c134dffaf7fe79ab21b3e16dccfca8c73b5dfb8d
diff --git a/dev-lang/gprolog/gprolog-1.4.5.ebuild b/dev-lang/gprolog/gprolog-1.4.5.ebuild
deleted file mode 100644
index 355d3940417f..000000000000
--- a/dev-lang/gprolog/gprolog-1.4.5.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools flag-o-matic toolchain-funcs
-
-DESCRIPTION="A native Prolog compiler with constraint solving over finite domains (FD)"
-HOMEPAGE="http://www.gprolog.org/"
-SRC_URI="http://www.gprolog.org/${P}.tar.gz"
-S="${WORKDIR}"/${P}
-
-LICENSE="|| ( GPL-2+ LGPL-3+ )"
-SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="debug doc examples"
-
-PATCHES=(
- "${FILESDIR}"/${P}-ldflags.patch
- "${FILESDIR}"/${P}-links.patch
- "${FILESDIR}"/${P}-nodocs.patch
- "${FILESDIR}"/${P}-txt-file.patch
- "${FILESDIR}"/${P}-check-boot.patch
- "${FILESDIR}"/${P}-llvm-as.patch
-)
-
-src_prepare() {
- default
-
- cd "${S}"/src
- eautoconf
-}
-
-src_configure() {
- CFLAGS_MACHINE="`get-flag -march` `get-flag -mcpu` `get-flag -mtune`"
-
- # Work around -fno-common (GCC 10 default), bug #71202
- append-flags -fcommon
-
- append-flags -fno-strict-aliasing
- use debug && append-flags -DDEBUG
-
- if tc-enables-pie; then
- # gplc generates its own native ASM; disable PIE
- append-ldflags -no-pie
- fi
-
- if tc-is-gcc && ! use x86; then
- gprolog_use_regs=yes
- else
- gprolog_use_regs=no
- fi
-
- cd "${S}"/src || die
- econf \
- CFLAGS_MACHINE="${CFLAGS_MACHINE}" \
- --with-c-flags="${CFLAGS}" \
- --with-install-dir="${EPREFIX}"/usr/$(get_libdir)/${P} \
- --with-links-dir="${EPREFIX}"/usr/bin \
- --enable-regs=${gprolog_use_regs} \
- $(use_with doc doc-dir "${EPREFIX}"/usr/share/doc/${PF}) \
- $(use_with doc html-dir "${EPREFIX}"/usr/share/doc/${PF}/html) \
- $(use_with examples examples-dir "${EPREFIX}"/usr/share/doc/${PF}/examples)
-}
-
-src_compile() {
- cd "${S}"/src || die
-
- # gprolog is compiled using gplc which cannot be run in parallel
- emake -j1
-}
-
-src_test() {
- cd "${S}"/src || die
-
- emake -j1 check
-}
-
-src_install() {
- cd "${S}"/src || die
- emake DESTDIR="${D}" install
-
- cd "${S}" || die
- dodoc ChangeLog NEWS PROBLEMS README
-}
diff --git a/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild b/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
index 54de50f89002..9762d540b63f 100644
--- a/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
+++ b/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}"/${P}
LICENSE="|| ( GPL-2+ LGPL-3+ )"
SLOT="0"
-KEYWORDS="amd64 ~ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug doc examples"
PATCHES=(
diff --git a/dev-python/Nuitka/Manifest b/dev-python/Nuitka/Manifest
index e536dbba436f..8ee35085bd8d 100644
--- a/dev-python/Nuitka/Manifest
+++ b/dev-python/Nuitka/Manifest
@@ -1,3 +1,2 @@
-DIST Nuitka-2.2.1.tar.gz 3657159 BLAKE2B 46578e2ab4afa7edfb43cf42f968d222ba85717a276b84c25dfffea0f3211dc9ad202718f23b54435525a2b4447b49742259fb636a9cba3bfc1d251232878393 SHA512 08dfc85ada702e41b282ee8291c9b2f389c0b320cdab8ad7b259af9aba1fc3efb26d3deab5391a5d592c206f7dd94d7b99780ba25377bd5f145bd0bfd84e01fb
DIST Nuitka-2.2.2.tar.gz 3999091 BLAKE2B 1512b0112dfa36c704900b787ac43a24377ab2994d16865d85da0384d2bb29a6dd26a83be270c51c28bcca68dad2398d68096d4dae1ee3f2044a85dad2571d82 SHA512 13f03fb849d83a1fbb10df2fe54f429f8871068942dfe93316460e1abed9149793b6fc1d7b62b1e72fc00de94ae9fd4b218f4ee65ea7668d138700f2bfd94eb2
-DIST Nuitka-2.2.tar.gz 3655576 BLAKE2B a5c88da5c585163cf7efcc238697b2c930426674d89203e12dbf2bc00e579c523a74527269039e2a155a13821c5ae4d7022215db88b2ba201f3b13224c3e8223 SHA512 0e21ccbf2c35176e3f1b704f599ef79e65f19529c2de362ae384e61e6b0e5d7e86a8489fe0cb25e6800e169833d50e54853bd6c4bd860c139162e22e39249aff
+DIST Nuitka-2.2.3.tar.gz 3657438 BLAKE2B f01a213f7dff39b6bba50ba21fbd120927caa60c88156aa0e9094339f260008fe18aaec4aabe5f878224516bddde697020ac16795e528b0e0141937565255b0a SHA512 36147901a75fcefad10ec75b66a3c988be9c8d6f54aca0f2f9ab3a8c4b06efc7c1b4eb5af5686675ce7040948f7032c27a93f7ea2429e02b99c2d817c37c72fe
diff --git a/dev-python/Nuitka/Nuitka-2.2.1.ebuild b/dev-python/Nuitka/Nuitka-2.2.3.ebuild
index 123acd66de1f..123acd66de1f 100644
--- a/dev-python/Nuitka/Nuitka-2.2.1.ebuild
+++ b/dev-python/Nuitka/Nuitka-2.2.3.ebuild
diff --git a/dev-python/Nuitka/Nuitka-2.2.ebuild b/dev-python/Nuitka/Nuitka-2.2.ebuild
deleted file mode 100644
index 123acd66de1f..000000000000
--- a/dev-python/Nuitka/Nuitka-2.2.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYTHON_COMPAT=( python3_{10..11} )
-
-inherit distutils-r1 flag-o-matic optfeature pypi
-
-DESCRIPTION="Python to native compiler"
-HOMEPAGE="
- https://nuitka.net/
- https://github.com/Nuitka/Nuitka/
- https://pypi.org/project/Nuitka/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~loong ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-build/scons[${PYTHON_USEDEP}]
-"
-BDEPEND="
- ${RDEPEND}
- test? ( dev-util/ccache )
-"
-
-distutils-r1_src_prepare() {
- # remove vendored version of SCons that is Python2 only
- # this should be removed when upstream removes support for Python2
- rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die
- eapply_user
-}
-
-python_install() {
- distutils-r1_python_install
- doman doc/nuitka.1 doc/nuitka-run.1
-}
-
-python_test() {
- append-ldflags -Wl,--no-warn-search-mismatch
- ./tests/basics/run_all.py search || die
-}
-
-pkg_postinst() {
- optfeature "support for stand-alone executables" dev-util/patchelf
-}
diff --git a/dev-python/astroid/Manifest b/dev-python/astroid/Manifest
index 171555504810..9ab4ca269c77 100644
--- a/dev-python/astroid/Manifest
+++ b/dev-python/astroid/Manifest
@@ -1,2 +1,3 @@
DIST astroid-3.1.0.gh.tar.gz 463675 BLAKE2B 363ca82814c170c89beb39118109e8a8488f5b5a43bb4a0fdb6d88a24842789ebfb3bb9ed6ebd00f1cd90dfc2d1c7d9730c8c2fe17eadb8f52f53add47cd5089 SHA512 7b2cd6270d1a9219d32e69e1a9c9eeffd2c5fcf575bc53df4a8c2d8df97b019e3e4e60768286a757a7390effcb454c7997f1f0f677c2b6370a2c3a9d46519057
DIST astroid-3.2.0.gh.tar.gz 464812 BLAKE2B b8cb241d4c711ebf7737c6fb83081ea6abc2bcacb4eef6c83450b963ff8fe2fa47da5b615cc0c0749a935f1df15df45086066d6bc5372f118c049ffa18f57f9b SHA512 551ad666ed8ffb22fccf44647eee5193cae17fa69837234b26adb91b85f5781e5cd729c55b351ff814a6c7f3fafc86ebed2ecb0b86b0a619933c77c3750b7e39
+DIST astroid-3.2.1.gh.tar.gz 464873 BLAKE2B 0ec3f470b3ecc803d0f8057d0af361b7f72fd60d462752bd6381fbe8cfc74d8695a1123beaacd87db9d9513f68635ccb4e6d2d79be1e210752a53c0ec85798cc SHA512 a9d38e19ab4164a490d6097baa5bd33d5b8f80b4da3172bfff3a7ab9242dfd29bdcaead7fd1ee12ac5abca34bbb1104904261c0fb3fbd42e8c8df3f40790e1f6
diff --git a/dev-python/astroid/astroid-3.2.1.ebuild b/dev-python/astroid/astroid-3.2.1.ebuild
new file mode 100644
index 000000000000..867c6a6ee54e
--- /dev/null
+++ b/dev-python/astroid/astroid-3.2.1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Abstract Syntax Tree for logilab packages"
+HOMEPAGE="
+ https://github.com/pylint-dev/astroid/
+ https://pypi.org/project/astroid/
+"
+SRC_URI="
+ https://github.com/pylint-dev/astroid/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# Version specified in pyproject.toml
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+# dev-python/regex isn't available for pypy
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/attrs[${PYTHON_USEDEP}]
+ <dev-python/numpy-2[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.17.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/regex[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # no clue why they're broken
+ tests/test_modutils.py::GetModulePartTest::test_known_values_get_builtin_module_part
+ tests/test_regrtest.py::NonRegressionTests::test_numpy_distutils
+ # pydantic-2?
+ tests/brain/test_dataclasses.py::test_pydantic_field
+ # requires urllib3 with bundled six (skipped with urllib3>=2)
+ tests/test_modutils.py::test_file_info_from_modpath__SixMetaPathImporter
+ # hangs
+ tests/test_nodes.py::AsStringTest::test_recursion_error_trapped
+ # TODO
+ tests/test_builder.py::BuilderTest::test_data_build_error_filename
+ )
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ tests/test_transforms.py::TestTransforms::test_transform_aborted_if_recursion_limited
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/aws-sam-translator/Manifest b/dev-python/aws-sam-translator/Manifest
index 218ff498e389..86072fc1ca38 100644
--- a/dev-python/aws-sam-translator/Manifest
+++ b/dev-python/aws-sam-translator/Manifest
@@ -1,2 +1,3 @@
DIST serverless-application-model-1.87.0.gh.tar.gz 5497979 BLAKE2B 96e62bd2c8b7497524f3fcd2fb805d5904d69b875049783e424859e3a038b704bebe212db4d0325050665104f9cfa9a0c746e65c33f3d7934deab3840479e975 SHA512 5577447575bd58a574f912250062d58a2ad087a4322f178580ca13bed16f60683f120c9d11006c7ebdd25937f229dfd3b308a4cc5fca2d09b7771f19e1739842
DIST serverless-application-model-1.88.0.gh.tar.gz 5568588 BLAKE2B 82b2d8ed46b170d62017916cfdf007bff84e7d909f054e8d6b9cd735607d702257d6c2d06c4c0a911db6718ed215172e7225c502afbfff924b14cef5f0e19bcb SHA512 2b81a46ec72d7afb115e54263fbdf260e0e66f7ae4d0554aa26369c572b2584d3019d25161a8ecca769aa7140bd933abdc4e5d4a7e5852f4402c5576907b098d
+DIST serverless-application-model-1.89.0.gh.tar.gz 5659213 BLAKE2B 1b8128c904ee1db34e722e0e4d5e7a0b16685dfbc589c390e34679b75481afad963a30f40d18bedb29010f62a338d1818da957ce6b58b7ee63d83444dccfc8ac SHA512 899fe08f3a16669de86ad3861d1072017af5fb3d2254583e502970c77e280d0ccb39b6a8f7e647acb94fb0cc6305aba35a98663427114764300d69f9c3b5e2fe
diff --git a/dev-python/aws-sam-translator/aws-sam-translator-1.89.0.ebuild b/dev-python/aws-sam-translator/aws-sam-translator-1.89.0.ebuild
new file mode 100644
index 000000000000..166699d76ae6
--- /dev/null
+++ b/dev-python/aws-sam-translator/aws-sam-translator-1.89.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1 multiprocessing
+
+MY_P=serverless-application-model-${PV}
+DESCRIPTION="A library that transform SAM templates into AWS CloudFormation templates"
+HOMEPAGE="
+ https://github.com/aws/serverless-application-model/
+ https://pypi.org/project/aws-sam-translator/
+"
+SRC_URI="
+ https://github.com/aws/serverless-application-model/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/boto3-2[${PYTHON_USEDEP}]
+ >=dev-python/boto3-1.19.5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2[${PYTHON_USEDEP}]
+ <dev-python/pydantic-3[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-1.8[${PYTHON_USEDEP}]
+ <dev-python/typing-extensions-5[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # so much noise...
+ sed -i -e '/log_cli/d' pytest.ini || die
+
+ # deps are installed by ebuild, don't try to reinstall them via pip
+ truncate --size=0 requirements/*.txt || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x AWS_DEFAULT_REGION=us-east-1
+ epytest -o addopts= -o filterwarnings= \
+ -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 6ee62d9196b9..ce1123bc2c4f 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,5 +2,6 @@ DIST boto3-1.34.103.gh.tar.gz 807394 BLAKE2B da291c86a8b20bcaac5f93779899bfa5c6c
DIST boto3-1.34.104.gh.tar.gz 807605 BLAKE2B d315be19b5d54b74d2cec2967fb4d12bb2c3529f404dd41628d1fe41de7b0f81fa28b098268ea020db4334b863c875e7cf31763a179352b3f3bc6326a33d2f56 SHA512 18fb51400a20686db02317812da15dd6117a630896ed284b6fece7c7903265a2e9d5d74a8d5fe0eb504ed2e27d1b714369a4391a095f771aaf09609745436cdf
DIST boto3-1.34.105.gh.tar.gz 807800 BLAKE2B a61b420b89fc153de0a32b5212eb5c492d2576fbad06073dfed5960bc15e6d45fa06df20ef59b9a41c4a9295a4129ff43f7781828d6f76ba7ba86a53bc5b6ee4 SHA512 d35ce5780f73ee973a232345f2585d4aff3f477c2976eb3127285ab7a143c94de19e4997036e65cbc3cc9e987d36b26ce2d028fb0e8f34e6813f5d5d65666fea
DIST boto3-1.34.106.gh.tar.gz 808363 BLAKE2B 4dcfdd6b7d3f143abc1296b87209c3bba12c38e07df5d019e080e8cd1ea3cf2916a6fca3c0bcbc1321c312432020e24f2d851e5371a53f46995830f39f2c132f SHA512 6aea22407bb58d6c7a177402005b31d3a303a780b6379d3614e7ac508f582b11a6a726ce88f02ec57a0e1998ad8da1c6fceaa3f8b6ccfa5a1410a1e9b50b6fda
+DIST boto3-1.34.107.gh.tar.gz 809164 BLAKE2B ab11e6bd87ee2fa473e95fc1a135b90769fbde948ca7c9b4c5f1679a10036778ff37b1473e57dc957b5bfaa3a36bd05cd968bbd585f0ab92772aaec0bc3ae868 SHA512 388e1748480a7176b74ffe0142e2a9cd5e95c9badf054053f076ef4c5bd77f40d7052c457a5a671607d551473c0d82f26ea3f88e505127d642429bd4651c69db
DIST boto3-1.34.93.gh.tar.gz 802078 BLAKE2B 43f19efd6ae42bdb20e8dd79b1735df229ec2f231b5fe05006b26fcd5ddf4796a53fba6011c298fb919ee7b205b4ae3f4b563ad3b5325bdbbdebaeab7be59608 SHA512 4da1d9d7d8648e895f23763e5055a868d05bbfd8eb28d56e716975b3b8349bd1825d703f6fd11c316174004c39e1fca5ddcd8a4ad27a000e1a52f08a36eb4780
DIST boto3-1.34.98.gh.tar.gz 805719 BLAKE2B 5cf7f0cc415e25c8b41aa464b636b1683f4e71198569f5eac3e6e43cef7050e20e92c3fd988517fc1463601073b41b0b9c668a58bb866d03b83973c9b9cd976a SHA512 06cab81bbf73a9c37b68e0312a7c587bace700b8032e283b6782c1275804ea7c93065c4282837957b5cf3523d50fe57319a54af494262e2666f65440da9771fd
diff --git a/dev-python/boto3/boto3-1.34.107.ebuild b/dev-python/boto3/boto3-1.34.107.ebuild
new file mode 100644
index 000000000000..2c733040b7a3
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.107.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+
+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() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 89d8c491c489..d77bfe4357c7 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,5 +2,6 @@ DIST botocore-1.34.103.gh.tar.gz 13018336 BLAKE2B 84cef06d1eff09fc9e7d4480bc11be
DIST botocore-1.34.104.gh.tar.gz 13018781 BLAKE2B 1c2cd9988482d2217392572c791b49e415b92229de0c68269dbc58a8ee88f28b1ea2add3557da4dacdd1fb7e72fe47357e18d901188795d6bc5bfc717760e903 SHA512 c66afeb83edc62adfb4d691dcf37c2b76a3cad7b5ea6ec0741129d99ec4a10fa09ed5827b8c6a3224436026ad4fbd7565074e7161921010bb6adcd5f563b30a4
DIST botocore-1.34.105.gh.tar.gz 13020214 BLAKE2B 309c2130756f10d6000c606d2392848869e26ea7bb5bb23c55e60fa9292b263e61be9eedea37f8eed471d9ad70785877797d34135064e49863bc70f1b8a80bac SHA512 ea6f816ccdaa754fa4059c3cab96ac892d1165fa6c988bf3da87227a629989bf006b8b334f0aefa8bb25923f064da478f11561f02a49006274f76fe93fa492d8
DIST botocore-1.34.106.gh.tar.gz 13025091 BLAKE2B 86eff845ca4b2e983b552b2a331cb48b93808355d8c6865170cfab76d13fc6c3caf7335a6131399199536860ca27c886aefca0925c0ebfe8e6ad187fd92b6a24 SHA512 04f74dae3f1de2473d4f832c582538f7a1285fe6020214183bd6fe04e3fb6103346ea28d2f19ef28d6b20c63693876de860d330dd97f23dced35ca0a00da5545
+DIST botocore-1.34.107.gh.tar.gz 13028692 BLAKE2B ab26f39a43d1dad6b2ee7a99878a584601d0368bff65ef1beb0869a1272ce528074633091fd52f34ca839865f83c73b7be238666ccfa8975cbe2e83203f426e6 SHA512 59dcd1a4fe32bd61da81b02a78925cc11e010ccd98445c1073665d3de57a532cbc283dace6cd0772be7c366d5e859b2ea904ee5b197c7e395b75b7b795e13236
DIST botocore-1.34.93.gh.tar.gz 12982900 BLAKE2B 3225279b85101e04da3be11f01ac3f4ca74cf77235fcb8878bc12d7aca61472155c8319329beb54ffe335f9da9023fb3ccce99256f3a31c6588389dfa1746de9 SHA512 505e8c9b3915b1c2da3863b62c85c392a58c12376c3e71493025445b7b672ba320474087b446fda876ffee5d6260909bc1d1442ff6dbfeb49fd6661d3d7840a1
DIST botocore-1.34.98.gh.tar.gz 13008491 BLAKE2B 0b5c368264cc43c162d158b383535183c0fd0065dc6c5edfd3eaaab842d0607b3cc3b99860fa8dc4ef207b5be1457fce9d143723da29e262f30ecc82c5f9ba66 SHA512 39ccb0082ecd6ed6cc7d3f7cea01d39e8d5e92224e3290a66f86ed00562a1d858f75d006af725d2b857ac891f1b366300b7e4c2d24277d942b5a9b9e2cdba431
diff --git a/dev-python/botocore/botocore-1.34.107.ebuild b/dev-python/botocore/botocore-1.34.107.ebuild
new file mode 100644
index 000000000000..ba6cd2a5d2a2
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.107.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+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_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
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cliff/Manifest b/dev-python/cliff/Manifest
index a884de01fe6c..bfe0f1eeca57 100644
--- a/dev-python/cliff/Manifest
+++ b/dev-python/cliff/Manifest
@@ -1 +1,2 @@
DIST cliff-4.6.0.tar.gz 83765 BLAKE2B a71ec00ac4525b960da4b40135477a3ed3fab8651c12b69af1a48ef19ae6e2eec37c8ab8f83ab23e0a948b002a7bfb152b677fd0ec313deb5e70ee5cb37fdd46 SHA512 59e887eddbdf695927e9ece46749f3f62557fd20bb24d7ff109f174a4ae4886cb3b44994903522c1d31c83b9f7f101f16604f6ffc4167ed6405e49a09f236dd0
+DIST cliff-4.7.0.tar.gz 84250 BLAKE2B e49cb9b5e05ab37885df47b80489e41eaf7662cf39ce61bdcb545a6ef5496b786c94c60c2164af15ae9536af7a9841e723fa62091300b28a49beed8945941dc0 SHA512 f1e6a28fbedb911efae02a3827f019411b99afdc316fcb07b115ca2157dcd23bbcce72d2d63b9850bb5b1cb21a4787575528a26d178943f7aba2a125ed9b55e5
diff --git a/dev-python/cliff/cliff-4.7.0.ebuild b/dev-python/cliff/cliff-4.7.0.ebuild
new file mode 100644
index 000000000000..087b9699e509
--- /dev/null
+++ b/dev-python/cliff/cliff-4.7.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Command Line Interface Formulation Framework"
+HOMEPAGE="
+ https://opendev.org/openstack/cliff/
+ https://github.com/openstack/cliff/
+ https://pypi.org/project/cliff/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/autopage-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/cmd2-0.8.0[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.12.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-2.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-5.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/notebook/Manifest b/dev-python/notebook/Manifest
index 8d89e9804f54..d35fa6782971 100644
--- a/dev-python/notebook/Manifest
+++ b/dev-python/notebook/Manifest
@@ -1 +1,2 @@
DIST notebook-7.1.3.tar.gz 4897695 BLAKE2B ed43c72cf9cc3a9c96e71aa62a2079f2fcd7f6eed3469794a78673eeb0afb8bf2cabd3c3f1f9cfed7270ff02d78c6ba10cbc3785cfac82cac5083b8c8194cfc7 SHA512 596a35b718c222f960023f31c9a3c85661622d7aaa901abb81569dc465cfaf5aba137caa1c046b7b18d5e6b5ed59e0bc3849b03e74c3e45f7344adcfdb95f594
+DIST notebook-7.2.0.tar.gz 4946565 BLAKE2B f29d784c972a2b84b84c67e0e0a225e933468c1097c698690e68f99bd5ace98765d4c0ff5146e4cd0b3be3db0b0affd5a8a41ded262b8ffe50304594cd0ae2ee SHA512 6d76d67ea02493c04287a5571f8f817cf3a4072635995bde3ae7695cd00926519f20ae44a267a38b7b65578be507103f895137e37360c93bf4219b2e8f134935
diff --git a/dev-python/notebook/notebook-7.2.0.ebuild b/dev-python/notebook/notebook-7.2.0.ebuild
new file mode 100644
index 000000000000..49097b1c08f3
--- /dev/null
+++ b/dev-python/notebook/notebook-7.2.0.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi xdg-utils
+
+DESCRIPTION="Jupyter Interactive Notebook"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/notebook/
+ https://pypi.org/project/notebook/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-4.2.0[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-4.3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ <dev-python/notebook-shim-0.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/nbval[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-unixsocket[${PYTHON_USEDEP}]
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/dev-python/python-glanceclient/Manifest b/dev-python/python-glanceclient/Manifest
index 258aefeb919c..b14d48951c1f 100644
--- a/dev-python/python-glanceclient/Manifest
+++ b/dev-python/python-glanceclient/Manifest
@@ -1 +1,2 @@
DIST python-glanceclient-4.5.0.tar.gz 205909 BLAKE2B 5e48abd2c869d4f3a0bfbfc593950754fd165bd36a98bc4358d88a1b64f6892b6633f10421999733c014fe8f1664d1181b5019739997139c1ef5d604194cfda8 SHA512 141f03fa55012981214283e961c4d4020a2fa4dc87b7cbc323d87c536b88e98f4798b59d83dc627a5846c5437fdac963fb34a3db444c20410a01441bf5838fa7
+DIST python-glanceclient-4.6.0.tar.gz 206480 BLAKE2B 302414b0fcf85ec9a8e53e9bf43c5801df82826524780249e9c4b46b44ca2e53c1c5d63f6e80c73dee2a59009a3e0aa1df591ecb2a4d000b74ee078b4810de2c SHA512 ed9d554d40a03134bc8871fbf712dd4bb2aab5e18854fd9c07df0d20dead1a9f3473bc4253ba4dd8c87cf7227148c637718461d45cd01bd9aaf673f7fc7ee9fc
diff --git a/dev-python/python-glanceclient/python-glanceclient-4.6.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-4.6.0.ebuild
new file mode 100644
index 000000000000..6930cb7e8b95
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-4.6.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-glanceclient/
+ https://github.com/openstack/python-glanceclient/
+ https://pypi.org/project/python-glanceclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/keystoneauth1-3.6.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/wrapt-1.7.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ddt[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/tempest[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ <dev-python/urllib3-2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b glanceclient/tests/unit
+}
diff --git a/dev-python/python-neutronclient/Manifest b/dev-python/python-neutronclient/Manifest
index bfc724299a4d..4378c1d82e47 100644
--- a/dev-python/python-neutronclient/Manifest
+++ b/dev-python/python-neutronclient/Manifest
@@ -1 +1,2 @@
DIST python-neutronclient-11.2.0.tar.gz 211150 BLAKE2B 3384e75eedf0f81ce1d056c1e58c8ecf4ee94041f54225b4435dbc3f8d01cbb709428e7e42bf312b7734b276dae959c3014dae66696bd9019a120ccf8805029e SHA512 47d0bdd9765c727cf3b9fba44269853652bb0d9ba84a25123402262b8381ae3f3d9f9e98916f0ff770b6a3c92699d5d2e3140ad19cdb9b17c94fed3185d7fca0
+DIST python-neutronclient-11.3.0.tar.gz 211322 BLAKE2B 495e2f8db5d85cc92d1990239999c920341cc18e2d519da4e458eb8e50b803aa77d838dc06f2a248ead2ee156a763103c5376b786fa99d97a0c6dff5659374ba SHA512 4115326f2a40957f1db94ee4e65f7399019fa135774fa9ed5f2ffc6d20f65f326fedc724639decb730ce9de0a0e82239e1ffe6ec4df59382adb16d9c3cfb64d5
diff --git a/dev-python/python-neutronclient/python-neutronclient-11.3.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-11.3.0.ebuild
new file mode 100644
index 000000000000..700ffba1b843
--- /dev/null
+++ b/dev-python/python-neutronclient/python-neutronclient-11.3.0.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack Quantum API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-neutronclient/
+ https://github.com/openstack/python-neutronclient/
+ https://pypi.org/project/python-neutronclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/osc-lib-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
+ >dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/os-client-config-1.28.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.8.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-3.8.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/bandit[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/oslotest[${PYTHON_USEDEP}]
+ dev-python/python-openstackclient[${PYTHON_USEDEP}]
+ dev-python/subunit[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/tempest[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Needs osprofile
+ rm neutronclient/tests/unit/test_http.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b neutronclient.tests.unit
+}
+
+python_install() {
+ distutils-r1_python_install
+ # stupid stupid stupid
+ local SITEDIR="${D}$(python_get_sitedir)" || die
+ cd "${SITEDIR}" || die
+ local egg=( python_neutronclient*.dist-info )
+ [[ -d ${egg[0]} ]] || die "python_quantumclient*.dist-info not found"
+ ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
+ ln -s neutronclient quantumclient || die
+ ln -s neutron quantumclient/quantum || die
+}
diff --git a/dev-python/pyzotero/Manifest b/dev-python/pyzotero/Manifest
index dca07ac3c047..f1069734c7d1 100644
--- a/dev-python/pyzotero/Manifest
+++ b/dev-python/pyzotero/Manifest
@@ -1 +1,2 @@
DIST pyzotero-1.5.18.tar.gz 527435 BLAKE2B 27ab1ccf32c260098a684ce4ee05c9acdedec787ec268ebe994d4e9904b9aae73c4a48bb169ec84d727d780c2168e177bcb47209d0f09dc661dd990f1a4075db SHA512 c45e18de0ed479b0ce03cc69ec7a2b060370d6c26e57fa707d2230078e87cdb9eb70f341bac8533a9fa6f4101f29aeca8767befa1e275c0dbd7e778e9c227c21
+DIST pyzotero-1.5.19.tar.gz 527472 BLAKE2B 3cd188812f44d4f3d77fb74c7a2e915969f835a941234b60975d11435d651408cb86462ba684a607698ab634138389999796749217be8b4db1bdd8a9b3dffd8c SHA512 ffb466592f96f2af5775d7b57da3dd314809605c57a1fcbe863003eed1774e9bf89d99e3bc549c61fbaf29a0d520c0eaa767ff0dd9cdaae538a6880018b6347e
diff --git a/dev-python/pyzotero/pyzotero-1.5.19.ebuild b/dev-python/pyzotero/pyzotero-1.5.19.ebuild
new file mode 100644
index 000000000000..9f5c51eba660
--- /dev/null
+++ b/dev-python/pyzotero/pyzotero-1.5.19.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python client for the Zotero API"
+HOMEPAGE="
+ https://github.com/urschrei/pyzotero/
+ https://pypi.org/project/pyzotero/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ app-text/zotero-bin
+ dev-python/bibtexparser[${PYTHON_USEDEP}]
+ >=dev-python/feedparser-6.0.11[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.21.0[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/httpretty[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx doc --no-autodoc
+distutils_enable_tests pytest
diff --git a/dev-python/scikit-learn/scikit-learn-1.4.2.ebuild b/dev-python/scikit-learn/scikit-learn-1.4.2.ebuild
index eef7795138fe..dc15a4a085ac 100644
--- a/dev-python/scikit-learn/scikit-learn-1.4.2.ebuild
+++ b/dev-python/scikit-learn/scikit-learn-1.4.2.ebuild
@@ -28,12 +28,12 @@ IUSE="examples"
DEPEND="
virtual/blas:=
virtual/cblas:=
+ >=dev-python/numpy-1.22.3:=[${PYTHON_USEDEP}]
"
RDEPEND="
${DEPEND}
dev-python/wheel[${PYTHON_USEDEP}]
>=dev-python/joblib-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.22.3:=[${PYTHON_USEDEP}]
>=dev-python/scipy-1.6.0[${PYTHON_USEDEP}]
>=dev-python/threadpoolctl-2.0.0[${PYTHON_USEDEP}]
"
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 9c74bb1c1df7..28ed54d612d7 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -20,6 +20,7 @@ DIST redox_syscall-0.4.1.crate 24858 BLAKE2B c3301137a0b84e03b09d28dfa377ab3bea7
DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
DIST smallvec-1.11.2.crate 34801 BLAKE2B 58645e99db8f02db64d02c75860c7ea41836c427c03ee3b0b23365e73a406e4fd6ac312bf13fc5faef8bb6111c10fcfd5f839d5b3686e9b34d1626f8469fc327 SHA512 5cfb427c3b99b0dbd71f6154ed899abcde9d7d2992977ac7b2ef3a4c3ff51e4efafd133071a69609b4ed6cb269bdc26b79eb72e1988f10dfcaef8185d950cd1d
DIST sqlglot-23.15.8.tar.gz 13118607 BLAKE2B 967590ff24f6a25adc4c227510ab027f695cf12b90dbf3304a6327afcdbfbd7d96d7f77b25876f3e7dce471c78e38498f9c156671f84f25b7eeecd315678a958 SHA512 4d283b9cd09b7bee873c07b9618cd046d1d312bf8e3280a635ccb91c45532c590a152db97cc338be91eafc2e68dd587f48460ad8eea1ab0b4c5ec5f64c2be2d9
+DIST sqlglot-23.15.9.tar.gz 13124523 BLAKE2B 653c443dfb6308ca7dd896f24aa8783a06664ecc636416bef057ad2d8d98f988fcf95bc86bc55ec19a0fe479308dc1f1e2fdc125cf5fefb650955e9e3af20344 SHA512 198788fc3a0cf08f49f37a6dad79e31e909718b7fe27575cc4fc6a426a868fab2849a9923f1628ef03f56925928a70497efa616330281189dba900a84b4926cf
DIST syn-2.0.41.crate 246016 BLAKE2B 9d389f2e2a0acb4c84c309456e8ffcc88c5d4d541535ed136832d7a6054dde45a598bb68e8a6f3062ca2a96e1ceae947d54b3aec9bad65b0c51d6733aa6c80db SHA512 6bbaf69ca783025dfb81ac3612ac60bfbed31b2d87792909b35c12892dadebdaff2ddf9463105e536b671dce5870610ab90fe29471284bbd3014dca8d6993f1a
DIST target-lexicon-0.12.12.crate 25156 BLAKE2B f3803596c75f6c89438592a1176c3748fc2c0524d7d50a20056de1cd26d40c572b05bafcdf6dd702752864bea37c8b4f28f96dadc12a5b3bb1d279b25e489f85 SHA512 6147295c43ba1b7b087a3c5ab51534b2985e4e77e5e15687978cfb9d07e21c4fd9bc7191576d6cabd268d08a44dc733c4a957e59dba8b948c2055d8bb433aeca
DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
diff --git a/dev-python/sqlglot/sqlglot-23.15.9.ebuild b/dev-python/sqlglot/sqlglot-23.15.9.ebuild
new file mode 100644
index 000000000000..3ecfcc322a3e
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-23.15.9.ebuild
@@ -0,0 +1,121 @@
+# Copyright 2023-2024 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..13} )
+
+CARGO_OPTIONAL=1
+CRATES="
+ autocfg@1.1.0
+ bitflags@1.3.2
+ cfg-if@1.0.0
+ heck@0.4.1
+ indoc@2.0.4
+ libc@0.2.150
+ lock_api@0.4.11
+ memoffset@0.9.0
+ once_cell@1.19.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ proc-macro2@1.0.70
+ pyo3-build-config@0.20.0
+ pyo3-ffi@0.20.0
+ pyo3-macros-backend@0.20.0
+ pyo3-macros@0.20.0
+ pyo3@0.20.0
+ quote@1.0.33
+ redox_syscall@0.4.1
+ scopeguard@1.2.0
+ smallvec@1.11.2
+ syn@2.0.41
+ target-lexicon@0.12.12
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+"
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ # remove fragile timing check
+ sed -i -e '/assertLessEqual(time\.time/d' tests/test_parser.py || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index 5a54b0fb219c..68fab601271e 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,3 +1,4 @@
DIST stripe-9.4.0.tar.gz 1260466 BLAKE2B 77bcca5fa3e514733f3812b738ae1590da641b24e58de4d6e2eb49d45512e6eecc6025912d03e73344645bd86ea14db2673f9fe9c34519520284bdf965c98eae SHA512 6d290c0c0e86c9eac5862bea8918c7f4508049b0f87fca7e087d05678a35eec28acd1304a8a6f32265856baa8992f364c4cb98b85727862989990024a240ba49
DIST stripe-9.5.0.tar.gz 1262346 BLAKE2B 45ba78fac985352f1857b7f6e5e4907afc9ff45815419671b9ee6476f04a7bf216fa49eb0008b8804d0a9763885ee5a8d09431ba6c26cca5e2091787353ae688 SHA512 2a530fe88d56a4753a5f497547aaf51ae770c1c616677eaad65d820eef638f5dd35d78486a3105caf97b2986f3940019a7cc0e7f89fe1c4ae83195bccd1ce000
DIST stripe-9.6.0.tar.gz 1265189 BLAKE2B d5b37cc8c7ee8597b80f9920e782e6eda5ff6905f8b303c4344b345c73c80a37eb1cd8dc9cc30d7321c58070cc5b0180144964d5f285edcff031cb0655b41409 SHA512 d93349c85791abec7d691c2aa726996e3110117dfda5608aa63e39463399200a4f8427dc609fc2a32c7eea005e4a79fd93cffa76762e0914efcd89b83baa58c2
+DIST stripe-9.7.0.tar.gz 1268225 BLAKE2B 2ae512fa7f24966166e2d64a8e4e9f23077d0d0318c6f85e4b922b59fbf66e7bf884567d86270c96911a82b51ecfd72312dfd42d335801e9dd40a1912150e8f0 SHA512 5c36ca6447f5d4947b0e069fe5d4fa30ce2cf11768efa8abb70fcc9a69bd104fe085707a463d566abb5417f9dd4b6cb1d3bab132d20616267931fd895544236e
diff --git a/dev-python/stripe/stripe-9.7.0.ebuild b/dev-python/stripe/stripe-9.7.0.ebuild
new file mode 100644
index 000000000000..3bf97ad94c6e
--- /dev/null
+++ b/dev-python/stripe/stripe-9.7.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Stripe python bindings"
+HOMEPAGE="
+ https://github.com/stripe/stripe-python/
+ https://pypi.org/project/stripe/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="telemetry"
+
+RDEPEND="
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+# please bump dev-util/stripe-mock dep to the latest version on every bump
+BDEPEND="
+ test? (
+ >=dev-util/stripe-mock-0.186.0
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ net-misc/curl
+ )
+"
+
+distutils_enable_tests pytest
+
+DOCS=( LONG_DESCRIPTION.rst CHANGELOG.md README.md )
+
+src_prepare() {
+ if ! use telemetry; then
+ sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die
+ fi
+ # https://github.com/stripe/stripe-python/pull/1297
+ sed -e 's:from mock:from unittest.mock:' \
+ -i tests/test_http_client.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests -p anyio -p pytest_mock
+}
+
+src_test() {
+ local stripe_mock_port=12111
+ local stripe_mock_max_port=12121
+ local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log"
+ # Try to start stripe-mock until we find a free port
+ while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do
+ ebegin "Trying to start stripe-mock on port ${stripe_mock_port}"
+ stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" &
+ local stripe_mock_pid=${!}
+ sleep 2
+ # Did stripe-mock start?
+ curl --fail -u "sk_test_123:" \
+ "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null
+ eend ${?} "Port ${stripe_mock_port} unavailable"
+ if [[ ${?} -eq 0 ]]; then
+ einfo "stripe-mock running on port ${stripe_mock_port}"
+ break
+ fi
+ (( stripe_mock_port++ ))
+ done
+ if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then
+ eerror "Unable to start stripe-mock for tests"
+ die "Please see the logfile located at: ${stripe_mock_logfile}"
+ fi
+
+ local -x STRIPE_MOCK_PORT=${stripe_mock_port}
+ distutils-r1_src_test
+
+ # Tear down stripe-mock
+ kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock"
+}
diff --git a/dev-python/twine/Manifest b/dev-python/twine/Manifest
index 86a36bb60287..3e6d7735b2bb 100644
--- a/dev-python/twine/Manifest
+++ b/dev-python/twine/Manifest
@@ -1 +1,2 @@
DIST twine-5.0.0.gh.tar.gz 218873 BLAKE2B 0f4f92d3ee9ae0f154c68cbc165ce014cbd5c34d88f8067c5f9ab4b6cfd3fc9d435f9c1ada6911af2f711bef3c5607fdfd969ad454c06e3a9bbce4f23ebc2a07 SHA512 a1701844df03f0ca0e4b15eeae97e1a1a5788f13f04bbd5b084a9dc6637c2404aefc354705c974edd53b2f09517e088f5857cb211ed45ed7dbcedecb0f6392d5
+DIST twine-5.1.0.gh.tar.gz 221527 BLAKE2B 45b707883e84ade7cad8bee712e7b68f24eb8ccfd018de5c0522cf98cb66895e6a4324f17e54fa87dacdf97ee092a0fdbc0b5289b30871da36828c987c518c2f SHA512 41a5b94b6929a0a018cd15dd4ede45a361420752235e9b1a8b16979609e6a056bf46cd88efa869c27fa9bae3907f4e45d0c468de8058c3f82f15b48b4274b4cd
diff --git a/dev-python/twine/twine-5.1.0.ebuild b/dev-python/twine/twine-5.1.0.ebuild
new file mode 100644
index 000000000000..970c1576f1a5
--- /dev/null
+++ b/dev-python/twine/twine-5.1.0.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of utilities for publishing packages on PyPI"
+HOMEPAGE="
+ https://twine.readthedocs.io/
+ https://github.com/pypa/twine/
+ https://pypi.org/project/twine/
+"
+SRC_URI="
+ https://github.com/pypa/twine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
+ >=dev-python/importlib-metadata-3.6[${PYTHON_USEDEP}]
+ >=dev-python/keyring-15.1[${PYTHON_USEDEP}]
+ >=dev-python/pkginfo-1.8.1[${PYTHON_USEDEP}]
+ >=dev-python/readme-renderer-35.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-toolbelt-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/rfc3986-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/rich-12.0.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.26.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/jaraco-envs[${PYTHON_USEDEP}]
+ dev-python/jaraco-functools[${PYTHON_USEDEP}]
+ dev-python/munch[${PYTHON_USEDEP}]
+ dev-python/portend[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pypiserver[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # pytest-socket dep relevant only to test_integration, and upstream
+ # disables it anyway
+ sed -i -e '/--disable-socket/d' pytest.ini || die
+ sed -i -e '/--cov/d' pytest.ini || die
+
+ distutils-r1_python_prepare_all
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Internet
+ tests/test_integration.py
+ )
+ local EPYTEST_DESELECT=(
+ # Regression due to deps?
+ tests/test_check.py::test_fails_rst_no_content
+ # Avoid needing heavy virtualx
+ tests/test_auth.py::test_warns_for_empty_password
+ )
+
+ local -x COLUMNS=80
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/typing-extensions/Manifest b/dev-python/typing-extensions/Manifest
index 5c662d9a86ea..cb460b4805a6 100644
--- a/dev-python/typing-extensions/Manifest
+++ b/dev-python/typing-extensions/Manifest
@@ -1,2 +1,3 @@
DIST typing_extensions-12e901ed0cb8a826726357f8020cf3837d961e15.gh.tar.gz 95229 BLAKE2B 1d5feabe39d0a04486e2ed5acf6b46f91a1656d10175a54d6b41e194d4693bbf6d5d135d7ed887308c90d8e65f4f7e99fe095263f761d4077bbf7baa9eaabd51 SHA512 c61249d1b6bcda302991f6f981261361730b3c11f860df98cdba0304ff575a89228ad96966810c17b50cac75bde0ed5f9e6519a2904d56f6021fd2048ad155cc
DIST typing_extensions-4.11.0.tar.gz 78744 BLAKE2B 641d4a13fcd10151a0b7059d11393c78974883710a860805dc132a148677c80a0be06dc32f66cffc4ae2dd838c607bdaa8d3f44e4e3cf55848d2a315bd74ce5a SHA512 d795fadbe9c0a24c4d3190f375d72576f5b42a14dc3a999127c1356f2ae77d4bffdc04a23b7a05331cc8b703a81f504328aaf5d6c1247ea24cbeed25dccb0a37
+DIST typing_extensions-4.12.0rc1.tar.gz 83702 BLAKE2B 5f8faaf15bb975f84fc4e217ab1ef9aaa3526dbfc3e17150a1b94cade70e19b27d9e0b637b175aae108719dd234a972c53696e96f7d6b5e96c626c31ded68123 SHA512 a0ce4d62695facb9ad11a4719ea31a0d5f95ca10eee939fb9b3fde8bae963e343a6779e7f5507af7f8751cf0b944d703110bcb18a345f020923ff5ebac54bc9e
diff --git a/dev-python/typing-extensions/typing-extensions-4.12.0_rc1.ebuild b/dev-python/typing-extensions/typing-extensions-4.12.0_rc1.ebuild
new file mode 100644
index 000000000000..71adea3717b9
--- /dev/null
+++ b/dev-python/typing-extensions/typing-extensions-4.12.0_rc1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Backported and Experimental Type Hints for Python 3.7+"
+HOMEPAGE="
+ https://pypi.org/project/typing-extensions/
+ https://github.com/python/typing_extensions/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+distutils_enable_tests unittest
+
+python_test() {
+ cd src || die
+ eunittest
+}
diff --git a/dev-python/zipp/zipp-3.18.2.ebuild b/dev-python/zipp/zipp-3.18.2.ebuild
index f1e7c1550400..4c2c0b9b1eb8 100644
--- a/dev-python/zipp/zipp-3.18.2.ebuild
+++ b/dev-python/zipp/zipp-3.18.2.ebuild
@@ -24,6 +24,7 @@ BDEPEND="
test? (
dev-python/jaraco-functools[${PYTHON_USEDEP}]
dev-python/jaraco-itertools[${PYTHON_USEDEP}]
+ dev-python/jaraco-test[${PYTHON_USEDEP}]
dev-python/more-itertools[${PYTHON_USEDEP}]
)
"
diff --git a/dev-util/stripe-mock/Manifest b/dev-util/stripe-mock/Manifest
index 7a8caef432d2..2419bf5716d8 100644
--- a/dev-util/stripe-mock/Manifest
+++ b/dev-util/stripe-mock/Manifest
@@ -1 +1,2 @@
DIST stripe-mock-0.185.0.tar.gz 1605001 BLAKE2B 4e44e6d3bb58ea650583317a07e085ba919c8fc183456ebc0a6821420eccc968642411e7e6589e3808bb07512ffab6b8078ffc3400b565f4c4977e68f9a4c306 SHA512 9ef5fce0c393ce7131dfc24587e19f6b3bc456b0b4650be8d70eac05cbcf37a6024f2deca1f763168609ee903b9d4045f0c36ee56c7b140410e34d7c393ea2dc
+DIST stripe-mock-0.186.0.tar.gz 1617203 BLAKE2B a98ac19f23e9e15514c221df3e857a14bffc261e3e5d93cd8db1f821fdb37a97b49d74b9cadbcf752412b19a9757eed7c1d0e072b33eff83d40cce5d81f303be SHA512 7003eded0bc88442b3b8d66f6f943a2b438da783f1f3c8bccb1dc3c760f090e64faea08efd5ba544be7dc516657616f50040300c78f7ce10f2095d1e36576cc0
diff --git a/dev-util/stripe-mock/stripe-mock-0.186.0.ebuild b/dev-util/stripe-mock/stripe-mock-0.186.0.ebuild
new file mode 100644
index 000000000000..352d14e2ce00
--- /dev/null
+++ b/dev-util/stripe-mock/stripe-mock-0.186.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module
+
+DESCRIPTION="Mock HTTP server that responds like the real Stripe API"
+HOMEPAGE="https://github.com/stripe/stripe-mock/"
+SRC_URI="https://github.com/stripe/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT ISC BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+src_compile() {
+ emake build
+}
+
+src_test() {
+ emake test
+}
+
+src_install() {
+ dobin stripe-mock
+ einstalldocs
+}
diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index 0f2da982f60c..a685cd99fb38 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -329,40 +329,50 @@ _cargo_gen_git_config() {
cargo_src_unpack() {
debug-print-function ${FUNCNAME} "$@"
- mkdir -p "${ECARGO_VENDOR}" || die
- mkdir -p "${S}" || die
+ mkdir -p "${ECARGO_VENDOR}" "${S}" || die
local archive shasum pkg
+ local crates=()
for archive in ${A}; do
case "${archive}" in
*.crate)
- # when called by pkgdiff-mg, do not unpack crates
- [[ ${PKGBUMPING} == ${PVR} ]] && continue
-
- ebegin "Loading ${archive} into Cargo registry"
- tar -xf "${DISTDIR}"/${archive} -C "${ECARGO_VENDOR}/" || die
- # generate sha256sum of the crate itself as cargo needs this
- shasum=$(sha256sum "${DISTDIR}"/${archive} | cut -d ' ' -f 1)
- pkg=$(basename ${archive} .crate)
- cat <<- EOF > ${ECARGO_VENDOR}/${pkg}/.cargo-checksum.json
- {
- "package": "${shasum}",
- "files": {}
- }
- EOF
- # if this is our target package we need it in ${WORKDIR} too
- # to make ${S} (and handle any revisions too)
- if [[ ${P} == ${pkg}* ]]; then
- tar -xf "${DISTDIR}"/${archive} -C "${WORKDIR}" || die
- fi
- eend $?
+ crates+=( "${archive}" )
;;
*)
- unpack ${archive}
+ unpack "${archive}"
;;
esac
done
+ if [[ ${PKGBUMPING} != ${PVR} && ${crates[@]} ]]; then
+ pushd "${DISTDIR}" >/dev/null || die
+
+ ebegin "Unpacking crates"
+ printf '%s\0' "${crates[@]}" |
+ xargs -0 -P "$(makeopts_jobs)" -n 1 -t -- \
+ tar -x -C "${ECARGO_VENDOR}" -f
+ assert
+ eend $?
+
+ while read -d '' -r shasum archive; do
+ pkg=${archive%.crate}
+ cat <<- EOF > ${ECARGO_VENDOR}/${pkg}/.cargo-checksum.json || die
+ {
+ "package": "${shasum}",
+ "files": {}
+ }
+ EOF
+
+ # if this is our target package we need it in ${WORKDIR} too
+ # to make ${S} (and handle any revisions too)
+ if [[ ${P} == ${pkg}* ]]; then
+ tar -xf "${archive}" -C "${WORKDIR}" || die
+ fi
+ done < <(sha256sum -z "${crates[@]}" || die)
+
+ popd >/dev/null || die
+ fi
+
cargo_gen_config
}