summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-04-17 05:58:52 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-04-17 05:58:52 +0000
commit4cf2d660778c5ab561405ad76ec790eeca9fa2c4 (patch)
tree5fb8534f38cdb95763b7e4f1ff6f1c6a33bef46d /dev-python
parent99287888364e3496ee6789f6f7ed5c84118ea4ad (diff)
downloadbaldeagleos-repo-4cf2d660778c5ab561405ad76ec790eeca9fa2c4.tar.gz
baldeagleos-repo-4cf2d660778c5ab561405ad76ec790eeca9fa2c4.tar.xz
baldeagleos-repo-4cf2d660778c5ab561405ad76ec790eeca9fa2c4.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.85.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.85.ebuild67
-rw-r--r--dev-python/emcee/Manifest1
-rw-r--r--dev-python/emcee/emcee-3.1.5.ebuild50
-rw-r--r--dev-python/google-api-python-client/Manifest1
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.126.0.ebuild51
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.24.0.ebuild92
-rw-r--r--dev-python/itsdangerous/Manifest1
-rw-r--r--dev-python/itsdangerous/itsdangerous-2.2.0.ebuild28
-rw-r--r--dev-python/keyutils/keyutils-0.6-r2.ebuild2
-rw-r--r--dev-python/path-and-address/path-and-address-2.0.1-r1.ebuild2
-rw-r--r--dev-python/pikepdf/Manifest1
-rw-r--r--dev-python/pikepdf/pikepdf-8.15.1.ebuild68
-rw-r--r--dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.15.2-r1.ebuild (renamed from dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.15.2.ebuild)1
-rw-r--r--dev-python/qscintilla-python/qscintilla-python-2.14.1-r2.ebuild (renamed from dev-python/qscintilla-python/qscintilla-python-2.14.1-r1.ebuild)4
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-9.2.0.ebuild88
-rw-r--r--dev-python/trimesh/Manifest1
-rw-r--r--dev-python/trimesh/trimesh-4.3.1.ebuild74
-rw-r--r--dev-python/urwid/urwid-2.6.10.ebuild2
-rw-r--r--dev-python/virtualenv/Manifest1
-rw-r--r--dev-python/virtualenv/virtualenv-20.25.2.ebuild122
25 files changed, 709 insertions, 5 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 3d187e3058ff..e59ed490b18c 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.34.74.gh.tar.gz 790202 BLAKE2B 4368db3e11d6bda6eee4ccde82bcc0c2c5a67448400ce0d29d221840360348ab1c7d3c8360ff3c91190ebccb30e187c6fc3ed72f29f1a1d1f883888a8cad12dc SHA512 977e1b9f8a9506bd040ff6a9a1df106294ff62a100cf5cb31aeaa363a4f3fe28cab71e4740028202829fac3023bf832bd4ac25b3474c2a5e107892c05b356e0c
DIST boto3-1.34.79.gh.tar.gz 792796 BLAKE2B 97a4f8e6fc33bcfe2817ce353df8ff6354bc89c449e5e29833704e12513aa21129863164c51047b17c7f15a47f0ceb90c60a83071464283292089b2535e8fed9 SHA512 15161face918253eac06dfbeb67adb8ef5ed6902b2eed760feb9fdd3aee0e38da3511aa7d829914b6f80addff7feffae7d3645f7567643a37d3659001d7b6a1a
DIST boto3-1.34.84.gh.tar.gz 796658 BLAKE2B 76ad7997f92167f1ed2f14a0a780a1a58b4a853ea132ca38797a228382ad8f55264dfaee99ebf6f8e2bea1848ec918f7b3b0943d0bb6a81b3b858e729b2e74c4 SHA512 55988d7ba69a46b986ed2cffd46b37a154baaa3a73ce62d9ee5b4b8b6f8987f714034ae4f3e59ed9907920216eaf8b18edea4c0fbac99037979b8b30e3b71133
+DIST boto3-1.34.85.gh.tar.gz 797539 BLAKE2B b958d009a7acdd541306f41f8708951ed1bf3d303d5e3b3453307415ddc8cf6f6d3c7ed464f350d1a36646729095b1684a865f5982d2ae9b3d7facf596c8b579 SHA512 91295f89896a705c3cbb941fa55e8d227b12dc28290ca15a31ebf60e936ea805233d7b14c6097c9757f6c7ff310159bcc1f2a2e46227d98b6d04adf9c6d44a33
diff --git a/dev-python/boto3/boto3-1.34.85.ebuild b/dev-python/boto3/boto3-1.34.85.ebuild
new file mode 100644
index 000000000000..509842b2699d
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.85.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_{8,9,10,11,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 4631e546882c..4fadf8a88865 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.34.74.gh.tar.gz 12820469 BLAKE2B e9d7a35e82aee30666952ea6f74d8d0f695efad2fd0da520b70fdd313cabf3aff6e67fa71543c630bcfb4b4f78f780321babaf118990d8136b79755beadd8a5a SHA512 f7d741bd86e249ae46a7f79828c8b63c66519f9ae203f1a14a17e126c22d9e3d94710f5f5992f057491d3f7e41c7ea180255e1f766dc3bdee96ddb2ac6e28312
DIST botocore-1.34.79.gh.tar.gz 12882231 BLAKE2B 56d7d2a1046a164f4f64f375f608b8646e0f7c266b1c7ab37ff7141fd8d8d843ce2890b0a947f051956f61fb2cfc75c2eb3b3cf70305de4ba9ce2e18d8569ded SHA512 00717ad582e23e1c4f4d803eea2069224fc69c6e701d6b4a55d0d99806cebfb1e2c45c7eb65464b84e0cc63399a7b6235b90ba9245e27fe435eca6079b5c29aa
DIST botocore-1.34.84.gh.tar.gz 12910232 BLAKE2B 3a9f9073e34d203f05ae44f9dc437f4d325084dbe858e59008a7b0c826c53d6e9a1911f6e9203aa476787878de88a1d8a9c1e26cedc3c34bebf6739c9bb10fce SHA512 247578e628e5ea57cfb956a10c0975d7a2caa24617e8572f90ca2a0286c75077a732328cb2dde34c937113d288c4a8a346adc074aae14dcebfa16c309d801a31
+DIST botocore-1.34.85.gh.tar.gz 12919998 BLAKE2B 3c23623bc37f2b2b725b3187faad5860b0e8fe6cd6295503ae2abf45e83a7393fa0613400052a668c7c2781f2ce76b8b1bc725a268020b45df62aaaef317e25c SHA512 797b097a99709d04d294f15ea89039567ceecea1ce16439eda31a659cc2b195d2aca79b9b1be264285f917569127b8ccdfe72d37b174d67fb562dbcf0ba081c0
diff --git a/dev-python/botocore/botocore-1.34.85.ebuild b/dev-python/botocore/botocore-1.34.85.ebuild
new file mode 100644
index 000000000000..857224b496b7
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.85.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_{8,9,10,11,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/emcee/Manifest b/dev-python/emcee/Manifest
index 50caf5d4435a..77a114b77bce 100644
--- a/dev-python/emcee/Manifest
+++ b/dev-python/emcee/Manifest
@@ -1 +1,2 @@
DIST emcee-3.1.4.tar.gz 2869179 BLAKE2B 19e93a154a7c9f8c43389681b7318ff6e79aea8588af10bf86d63bdee51551c538ad8850b82c1233f656a45bbbd344655aad01ed93ddb30337ad49b6bfed8b46 SHA512 23f3945571bc4346c90026f9c675cb72a5cf173294eafd5bf02dc8572cfea63de3260ade91cb9360e420969f2a939fa8ac55961e808c55900fef903be357facf
+DIST emcee-3.1.5.tar.gz 2870972 BLAKE2B 49ddd0a41a61f33573f1b1e0b198306567e097b86153392fc0f874b3c7e728611fdfb2d45b8427c85208beb3c819ec174bdf5481005a3b17a4f5ea196a54ff3e SHA512 7cc6fe30ad472d4823b12c8bab50fa7d3aea49ca22d38479d77d90d357e715c0dadda7f96575291fbe05ff27962f8a180c49b6629ddb891b044db2719bd88610
diff --git a/dev-python/emcee/emcee-3.1.5.ebuild b/dev-python/emcee/emcee-3.1.5.ebuild
new file mode 100644
index 000000000000..3a4510066ecc
--- /dev/null
+++ b/dev-python/emcee/emcee-3.1.5.ebuild
@@ -0,0 +1,50 @@
+# 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_{8,9,10,11,12} )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Python ensemble sampling toolkit for affine-invariant MCMC"
+HOMEPAGE="
+ https://emcee.readthedocs.io/en/stable/
+ https://github.com/dfm/emcee/
+ https://pypi.org/project/emcee/
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+ dev-python/h5py[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+DOCS=( AUTHORS.rst README.rst )
+
+src_prepare() {
+ # unnecessary dep
+ sed -i -e '/wheel/d' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 20aa3b943adb..f5f677496f3b 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,2 +1,3 @@
DIST google-api-python-client-2.124.0.tar.gz 11956565 BLAKE2B efa7273bb4c298804b331ea29218710a7427e614f830fe308763ef226ec392f3f1ea16e4d0f4f5ff98c987eba7c9331f0ff0ed6d32a89e9538d1fa18fcc40399 SHA512 4eacdbe4733a235b5c31c337c8cde18fef88691d55a8b988291dd5ff8cea786f67b4052eb2fb6e7aeb31631311f956e255469c3a1438f137c1eb03b43812f9c9
DIST google-api-python-client-2.125.0.tar.gz 12020305 BLAKE2B a5c5beef66a40adc8eb9b56476bbd2eb6a5b9b1b528ccbfa964d9a2c65bdff2f949c52de5384faae6c7233be6f3357040a8fe531e0d21f48f822276a8e8a7ec9 SHA512 b2f456edacf515f83755bfaeb35677c3d3f6bef90d4d9be986a9191c3e8a0d80664784cc125524dd77792a329ff58fc9b35b0bd387248450a8b4e67ccaaa2f85
+DIST google-api-python-client-2.126.0.tar.gz 12163106 BLAKE2B b66240ea914b1f673bd96e161e2fdffa4567641471594b166258331c04d5f43cc1a0c6f888cafd904b0b84d3afe5befbf437c347409da6197b4f801c6a15b7a1 SHA512 e21d98106a97de4037d9eead2b2153010d75a07bc00585a8a4d0a584b3da1bd753421ef33fa635a62c850235eede880f34ed222c2b0ede13ba93e7e1558d7cf5
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.126.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.126.0.ebuild
new file mode 100644
index 000000000000..63817fa5c051
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.126.0.ebuild
@@ -0,0 +1,51 @@
+# 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_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="
+ https://github.com/googleapis/google-api-python-client/
+ https://pypi.org/project/google-api-python-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
+ <dev-python/httplib2-1[${PYTHON_USEDEP}]
+ >=dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/uritemplate-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # require Internet access (and credentials)
+ tests/test_discovery.py::DiscoveryErrors::test_credentials_and_credentials_file_mutually_exclusive
+ tests/test_discovery.py::DiscoveryFromDocument::test_api_endpoint_override_from_client_options_mapping_object
+ tests/test_discovery.py::Universe::test_client_options_universe_configured_with_mtls
+ tests/test_discovery.py::Universe::test_universe_env_var_configured_with_mtls
+ )
+
+ epytest tests
+}
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index a9f192263681..6a3418c585bf 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1,3 +1,4 @@
DIST hatch-hatchling-v1.21.1.gh.tar.gz 774577 BLAKE2B 31e2b50598b4fe120ecea407a37e3262876a2ec1e8cf02f272c25838e73afc37f2fef1f8fab08b2e3b83bfd828f6c558ce303b084081b83504343a8bb057c341 SHA512 91b5684737fac19758d7095b357f99031d46e9f981e093cab848ce770fd1f9440b69212f3ef2217e3700e7dd7985a97c2735bbd27b306c7b8aa7bffc5c950fb4
DIST hatch-hatchling-v1.22.5.gh.tar.gz 782757 BLAKE2B 3431ef7c4e5f0754e51507e29d88ed0277b530d220eb75bdeab459d88172ba51de3cf2456074fa88483cc89e72726f3e147b97e995f9ccaf699b6c2699776a8c SHA512 d4e77872e34e3aba3fce286f911861b795005c37550a2ca72a83216cea67d53be891afc8861b11582c66d38748f9c8d4980548d216c0fb21b2b4e1cadc314e58
DIST hatch-hatchling-v1.23.0.gh.tar.gz 802345 BLAKE2B 571ae18bda737acf05bd830c4d835b2c785a595844cefbed030383e9ede166b0cd8bba2d7a6e0a4c7b504be825fbca4fa89861e9ae265e9a24bc756025da8d07 SHA512 ed504577d856e42b46ab861972cfb1c47589ae85887c2fc0aa78ded7a2f1cc8eaef796b9331d4ff853a86b6d808080b15d11943775c600c5d10b191ae65cb400
+DIST hatch-hatchling-v1.24.0.gh.tar.gz 802778 BLAKE2B d2dc29c551767cf090588533c47d936aeb38cda14154edc1a78496d0dbad3aecab3869e1f8e877c71a798f4a7ad2c853550ab2d7b9748e4d7f6c37e58811bfe8 SHA512 466748bff35acf7556cad6ee42ad2767c1a52734e1de9ac7b60867714e1707f508c27bcc5573100d68ace950aa9e42122235e439d5ea0ff0b713fa713ef503c6
diff --git a/dev-python/hatchling/hatchling-1.24.0.ebuild b/dev-python/hatchling/hatchling-1.24.0.ebuild
new file mode 100644
index 000000000000..bcffd69fd58f
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.24.0.ebuild
@@ -0,0 +1,92 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1
+
+TAG=${P/-/-v}
+MY_P=hatch-${TAG}
+DESCRIPTION="Modern, extensible Python build backend"
+HOMEPAGE="
+ https://pypi.org/project/hatchling/
+ https://github.com/pypa/hatch/
+"
+SRC_URI="
+ https://github.com/pypa/hatch/archive/${TAG}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/backend
+
+LICENSE="MIT"
+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"
+
+# deps are listed in backend/src/hatchling/ouroboros.py
+# editables are optional but required for editable installs
+RDEPEND="
+ >=dev-python/editables-0.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.2.2[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+# always depend on the newest version available, at least until upstream
+# stops treating unknown classifiers as a fatal error
+# https://github.com/pypa/hatch/issues/1368
+RDEPEND+="
+ >=dev-python/trove-classifiers-2024.3.25[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/atomicwrites[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x EPYTEST_DESELECT=(
+ # these run pip to install stuff
+ tests/backend/dep/test_core.py::test_dependency_found
+ tests/backend/dep/test_core.py::test_extra_met
+ tests/backend/dep/test_core.py::test_extra_no_dependencies
+ tests/backend/dep/test_core.py::test_extra_unmet
+ tests/backend/dep/test_core.py::test_unknown_extra
+ tests/backend/dep/test_core.py::test_version_unmet
+ # broken if CARGO is set
+ tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo
+ )
+
+ # top-level "tests" directory contains tests both for hatch
+ # and hatchling
+ cd "${WORKDIR}/${MY_P}" || die
+ local -x PYTHONPATH="src:${PYTHONPATH}"
+ # sigh; standalone test suites are overrated, right?
+ echo "__version__ = '${PV}'" > src/hatch/_version.py || die
+ # tests mock cargo subprocess call but the backend raises if CARGO
+ # is not set and shutil.which() can't find it
+ local -x CARGO=cargo
+ epytest tests/backend
+}
diff --git a/dev-python/itsdangerous/Manifest b/dev-python/itsdangerous/Manifest
index fbb0fcf1d8c2..f1ce7421bb69 100644
--- a/dev-python/itsdangerous/Manifest
+++ b/dev-python/itsdangerous/Manifest
@@ -1 +1,2 @@
DIST itsdangerous-2.1.2.tar.gz 56143 BLAKE2B 4c36cb26bcc6b6821b92b88b0254711ebe00bfda2193cecf0a7eb1fd514806f366fc0b4dc587a383003ec1272a2bc732418a46b44fa711beaedc06c379635ddc SHA512 e4d870a33992b309ed778f403c0c1e098983a693d1165260748bf36385ebfadb583811e05ddd48001a33cf6a4e963b7dd8a8c68919c5b4b86f63621d8869e259
+DIST itsdangerous-2.2.0.tar.gz 54410 BLAKE2B 8179d8bc705a9d695046c8ec5e37df5a0f7f8e8c7e000d2a25b684ab0292874fa2a79085326a4001df4a782247f5ce1c1425f8c4a6490818929ae80a146f140b SHA512 ed046cc371ea9aa1f7cd3bd201f1b68910a2b008bd8434c425332cecec6539cf031df6e2223a1fdccd68c12ccf5486e80f178d5906911b19417f0ea244e367f8
diff --git a/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild b/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild
new file mode 100644
index 000000000000..a4e1422be2ef
--- /dev/null
+++ b/dev-python/itsdangerous/itsdangerous-2.2.0.ebuild
@@ -0,0 +1,28 @@
+# 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_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Various helpers to pass trusted data to untrusted environments and back"
+HOMEPAGE="
+ https://palletsprojects.com/p/itsdangerous/
+ https://github.com/pallets/itsdangerous/
+ https://pypi.org/project/itsdangerous/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/keyutils/keyutils-0.6-r2.ebuild b/dev-python/keyutils/keyutils-0.6-r2.ebuild
index 8dba24e4abc9..52be2ba84078 100644
--- a/dev-python/keyutils/keyutils-0.6-r2.ebuild
+++ b/dev-python/keyutils/keyutils-0.6-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2023 Gentoo Authors
+# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/path-and-address/path-and-address-2.0.1-r1.ebuild b/dev-python/path-and-address/path-and-address-2.0.1-r1.ebuild
index dbfa4260e8fa..60b8f8e90b01 100644
--- a/dev-python/path-and-address/path-and-address-2.0.1-r1.ebuild
+++ b/dev-python/path-and-address/path-and-address-2.0.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pikepdf/Manifest b/dev-python/pikepdf/Manifest
index ed6681de72aa..dce789bf9dda 100644
--- a/dev-python/pikepdf/Manifest
+++ b/dev-python/pikepdf/Manifest
@@ -3,4 +3,5 @@ DIST pikepdf-8.12.0.tar.gz 2870386 BLAKE2B f27c034ef94b63e56efa84abef987b23801dd
DIST pikepdf-8.13.0.tar.gz 2870366 BLAKE2B 4e08cd992ef6dc18d64d3b62ca85a138474c2d77548a14522172b80d842b9ad969d701e30376a394aa60baa5b17bba7e48eb11c071e130f43e387659e8e862e6 SHA512 6ab231510ced72a6697cf7ea50d7b73d6ef33d4305fe70904164319f2c6964fdd645f8011a049d763a50809772ccb65a9833feca3e65e59b5c37c84bb90dbc79
DIST pikepdf-8.14.0.tar.gz 2870612 BLAKE2B be0fd5a8d48fccc7695c45acc28cbda8252529d0687197c261e077e8c3a63e3597e504bf2aae2ab09648c0f127228d517bfa630ed77ea90bc28c8f3463854779 SHA512 f0e073df952cd850e0529fa798743a09f249a998450be1393b109b21850cf86b80c8813b55db778dc4e265df48af7619fccfac30ec9195c3ac724b8c7724e858
DIST pikepdf-8.15.0.tar.gz 2870646 BLAKE2B 9745a241ab8fa55a5df6357f63dada9fe91aee435c7e4280e6329d28f67542316110a3f67921b1be235edd3b85e9315479a0d3b0fa37f22d528ef82afbc3bb0a SHA512 8b6ddabc19acc5e7f0742c38a355d4560452c899b85538188e215dfc4599901660af55f80daccd0fbd439f3f735bbce93f35de114d71bd5484321bb7a500d73a
+DIST pikepdf-8.15.1.tar.gz 2870723 BLAKE2B 958bb2a417e2f1c9e5e4448b47cdadffb10e82841cc8173503881a86e92e85c05f800a8ad6936f32ee53e6f7a8cd62ee9e28e251de1f32a7cdce055139ec5fa3 SHA512 ae6b0b8bdf7e395943caf503f1d498861bd2719185e6382a522b8c0d4e38413a1b070e912367852bc5735d29b8453d05c57ff384ede825830722470445a534f6
DIST pikepdf-8.4.1.tar.gz 2853305 BLAKE2B 2298514159db17ba49b8e2fa2407d60de50273bea111ece704251d99193bdc4c8ed77f624237a49c3f4f129e3b14ac4ddd1006cf3024bcbf822bc5523e0fee35 SHA512 6989e8a3888f612e453ec1ea8425c0ca35ccfee19ae5e8c32df136ebc3fbb7728d9fe5beaacb4e392a20c9037a1009fc8f8d53d73634427fb0df9103626e34fa
diff --git a/dev-python/pikepdf/pikepdf-8.15.1.ebuild b/dev-python/pikepdf/pikepdf-8.15.1.ebuild
new file mode 100644
index 000000000000..b42fa571b91d
--- /dev/null
+++ b/dev-python/pikepdf/pikepdf-8.15.1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-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_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library to work with pdf files based on qpdf"
+HOMEPAGE="
+ https://github.com/pikepdf/pikepdf/
+ https://pypi.org/project/pikepdf/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
+# https://qpdf.readthedocs.io/en/stable/release-notes.html.
+DEPEND="
+ >=app-text/qpdf-11.5.0:0=
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/deprecated[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pybind11-2.10.1[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-20.2.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.36[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-5.0.0[${PYTHON_USEDEP},jpeg,lcms,tiff]
+ >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
+ >=dev-python/pytest-timeout-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
+ >=dev-python/python-xmp-toolkit-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ media-libs/tiff[zlib]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fragile to system load
+ tests/test_image_access.py::test_random_image
+)
+
+src_prepare() {
+ sed -e '/-n auto/d' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p timeout
+}
diff --git a/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.15.2.ebuild b/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.15.2-r1.ebuild
index 6877b09fe803..13b395e17c06 100644
--- a/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.15.2.ebuild
+++ b/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.15.2-r1.ebuild
@@ -31,6 +31,7 @@ RDEPEND="
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/pygments[${PYTHON_USEDEP}]
+ <dev-python/sphinx-7.3[${PYTHON_USEDEP}]
>=dev-python/sphinx-5[${PYTHON_USEDEP}]
dev-python/typing-extensions[${PYTHON_USEDEP}]
"
diff --git a/dev-python/qscintilla-python/qscintilla-python-2.14.1-r1.ebuild b/dev-python/qscintilla-python/qscintilla-python-2.14.1-r2.ebuild
index 2d5d41d5feca..bbf8e9918ce5 100644
--- a/dev-python/qscintilla-python/qscintilla-python-2.14.1-r1.ebuild
+++ b/dev-python/qscintilla-python/qscintilla-python-2.14.1-r2.ebuild
@@ -34,9 +34,9 @@ DEPEND="${PYTHON_DEPS}
)
qt6? (
dev-python/PyQt6[gui,printsupport,widgets,${PYTHON_USEDEP}]
- dev-qt/qtbase:6[cups,gui,widgets]
+ dev-qt/qtbase:6[gui,widgets]
)
- ~x11-libs/qscintilla-${PV}:=[qt5(+),qt6(+)]
+ ~x11-libs/qscintilla-${PV}:=[qt5(+)?,qt6(-)?]
"
RDEPEND="${DEPEND}
qt5? ( >=dev-python/PyQt5-sip-12.9:=[${PYTHON_USEDEP}] )
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index 284089728b50..0c2a8c96a97a 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,3 +1,4 @@
DIST stripe-8.11.0.tar.gz 1215071 BLAKE2B 7e3eec2008582a7ba52bf6c9a9676f5886cb3a52aed06302f2a21c572db01c759f5a48a743ee32d76cd54d28acb507b46ee556a10b277c6727e0737f055506bf SHA512 9d53ed3e253f18de36dfaf3c28fbcba7ef957f35b6f117c0dcb50040e0484f6fde1f3deb816d51aac62ddad64a20ae344acd25d680ec10c7fa7ddde1cf16c0ec
DIST stripe-8.9.0.tar.gz 1124248 BLAKE2B 158b070256404dfa7f5d2a13f076c08834fc0ec5c3f0564912bcd461276d790faf0530260f291f8681c357de727465ab900339b4d53ddf93972ace7411748ff8 SHA512 e4505262720eaccffd5b5e12858df1ca81117bdb9103ac7f9425ae50f93ac621b13587a314edc80546f1f6c4b28c5908fcd34f31dacc8e2c80b4532bf56fb63e
DIST stripe-9.1.0.tar.gz 1219814 BLAKE2B 1a84dab6743e92423cb376f1dc03d01140f93dd74a89a0eb89c9697911c70abf108dd2f51ac422948d73c9ca024ca50e93c0552a2f4df642d60df6d1c521a71b SHA512 6f8484f99ecc0a66d778ef9e3140224adff79391f03acba594b2da3c0096433990d77f2eedb91812626b25aca7063d824cb3511c02eb2b489909cfc78fc0dca4
+DIST stripe-9.2.0.tar.gz 1221000 BLAKE2B efa869e7f9039fbf5ec2c7308b1f2b098f870289224f5f941ae3555c2f9177cf18210f813e26fb068841855d62697d25302b10dd8db0aa7de2af74b827ea151c SHA512 a579c537b3cfea245638d649734f62f6734e237db4d2bc733f933ecf03ac2576e9fdce2ad1adf5891db72c68e2166907b93e4e5d98b6ef92962423f7d8241ee2
diff --git a/dev-python/stripe/stripe-9.2.0.ebuild b/dev-python/stripe/stripe-9.2.0.ebuild
new file mode 100644
index 000000000000..997dc774bc37
--- /dev/null
+++ b/dev-python/stripe/stripe-9.2.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_{8,9,10,11,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.184.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/trimesh/Manifest b/dev-python/trimesh/Manifest
index e858d219bcb9..c59324eba95d 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1,3 +1,4 @@
DIST trimesh-4.1.8.gh.tar.gz 13440336 BLAKE2B aa4bddc3d613144a0e304ec320a2b38df213846260e2525dae0f0f35a4146561e7b81dc88e197a5b0f0a76ff4b757c30df2a68fe0db0d4a37cdc8a91aedc41ba SHA512 e20ca45f08a4d65c44c214b104af7c6d9d27121716ed7efd53a521c5b896ce788dba91b7794db518f26bb2ae86a1b8269af94f9b9381f8fdd342372b4ba86ce4
DIST trimesh-4.2.4.gh.tar.gz 13554819 BLAKE2B 233f4d5404793ed1b5dc475da2dd371ca3a792239ae9ffea95ef3609a19b2701f66ad7aeb72b7b078b7a58d812ebe59b3bc12fedc6b9c34213c60378a2959d1c SHA512 3d37a429a21250a26f0a46c29c432b97158849bc0fbba7dec441bdd2453c4ef6a917483604f1c7ecb0e2415b9a270a80e36225cb951e59af1db54d20ebf60902
DIST trimesh-4.3.0.gh.tar.gz 13595823 BLAKE2B 2d7d74be7eff74513e7758944f57e6bd9d1003ce5591e1a6b261bf3d797b8f7fb5ed9de3f7a1a863650dda6575dfdd250a129bf561e7cdf65f90d33c2df8474c SHA512 e27394abc8cea8f09df14329842cca6dcfd79dc9eb00e961138c3ce1fa61bb85a6585daa376cd7f80c3c64968001686f0de4ad685c121d08415d5c4e088093cc
+DIST trimesh-4.3.1.gh.tar.gz 13596739 BLAKE2B 3d14fc70c29c70c93d4b63c6486a66eb7d059b2c6856702696e5f07668810019d98f2b0f1d964d80be9fafd702924e505762283b476a554960ea37b554031b7f SHA512 01d7bcca7c1d36488f236a45481ed0cda2b63cd4a1308b0067ba95392b2517df143e3afb93c8632ad117e2dfea12e3eec80c057f8367a465a8f26b554d29614c
diff --git a/dev-python/trimesh/trimesh-4.3.1.ebuild b/dev-python/trimesh/trimesh-4.3.1.ebuild
new file mode 100644
index 000000000000..28e2ef0d54f8
--- /dev/null
+++ b/dev-python/trimesh/trimesh-4.3.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=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for loading and using triangular meshes"
+HOMEPAGE="
+ https://trimesh.org/
+ https://github.com/mikedh/trimesh/
+ https://pypi.org/project/trimesh/
+"
+SRC_URI="
+ https://github.com/mikedh/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pycollada[${PYTHON_USEDEP}]
+ dev-python/pyglet[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
+ dev-python/svg-path[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/xxhash[${PYTHON_USEDEP}]
+ sci-libs/rtree[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mapbox_earcut[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_TIMEOUT=1800
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # require pyinstrument
+ tests/test_sweep.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+pkg_postinst() {
+ optfeature_header "${PN} functionality can be extended by installing the following packages:"
+ optfeature "making GUI applications with 3D stuff" dev-python/glooey
+ optfeature "2D triangulations of polygons" dev-python/mapbox_earcut
+ optfeature "loading a number of additional mesh formats" dev-python/meshio
+ optfeature "figuring out how much memory we have" dev-python/psutil
+ optfeature "marching cubes and other nice stuff" dev-python/scikit-image
+}
diff --git a/dev-python/urwid/urwid-2.6.10.ebuild b/dev-python/urwid/urwid-2.6.10.ebuild
index dc019e29e945..62f5d8d8e9a6 100644
--- a/dev-python/urwid/urwid-2.6.10.ebuild
+++ b/dev-python/urwid/urwid-2.6.10.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index 161a4dc436c0..ac8d2556a3fe 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1 +1,2 @@
DIST virtualenv-20.25.1.tar.gz 7152341 BLAKE2B 7d3ecaca89cb4106f97fb5565331b257017d756742f9c90972a01a86296e81d509d2f4a7869d3bc7a299c1c2f01cc08999eddc258f1bd46acf88999d0732794e SHA512 c0791de2aed7893658316199696906b1aed650460f3b53e0dbd13e695d16bc14d8974cd72fc8dcc010ff7ba10036121929ce9a608f97d7d2cd9f972144a3a1f0
+DIST virtualenv-20.25.2.tar.gz 7289618 BLAKE2B 9217dadaa00521b5109a7efdaadd99663898931aee57d34e1fae0484cf997cb06d7a6f87bd971802fae9539435eae69c4f3f4f6a5e0771d08926fd8151ec0810 SHA512 080fe3b02d08f9c55a2eea7b68022de935e0887826d52511c768ef4fb72b0278d99413f5f08288fd22c5925d362588af0afbbf7f2c51dcc47c8bce1485d6ae19
diff --git a/dev-python/virtualenv/virtualenv-20.25.2.ebuild b/dev-python/virtualenv/virtualenv-20.25.2.ebuild
new file mode 100644
index 000000000000..2b1774884f90
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-20.25.2.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
+ ' pypy3)
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:<[0-9.]*,::' pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ tests/unit/activation/test_xonsh.py
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ tests/unit/create/test_creator.py::test_cross_major
+ # tests failing without python2 installed
+ "tests/unit/create/test_creator.py::test_py_pyc_missing[True-False]"
+ "tests/unit/create/test_creator.py::test_py_pyc_missing[False-False]"
+ )
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-pypy3-posix-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-pypy3-posix-copies-global]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-pypy3-posix-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-pypy3-posix-copies-global]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-venv-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-venv-copies-global]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-venv-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-venv-copies-global]'
+ 'tests/unit/create/test_creator.py::test_zip_importer_can_import_setuptools'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.9-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.9--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.10-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.10--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.9-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.9--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.10-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.10--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3--bin-]'
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ tests/unit/create/via_global_ref/test_build_c_ext.py
+ )
+ ;&
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+ local plugins=( -p flaky -p pytest_mock )
+ if [[ ${EPYTHON} == pypy3 ]]; then
+ plugins+=( -p freezegun )
+ else
+ plugins+=( -p time_machine )
+ fi
+ epytest "${plugins[@]}" -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}