summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiocache/aiocache-0.12.2.ebuild9
-rw-r--r--dev-python/alembic/alembic-1.13.1.ebuild5
-rw-r--r--dev-python/apprise/Manifest1
-rw-r--r--dev-python/apprise/apprise-1.7.2.ebuild38
-rw-r--r--dev-python/astroid/astroid-3.0.2.ebuild4
-rw-r--r--dev-python/blosc/blosc-1.11.1.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.29.ebuild64
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.29.ebuild68
-rw-r--r--dev-python/breathe/breathe-4.35.0-r1.ebuild (renamed from dev-python/breathe/breathe-4.35.0.ebuild)5
-rw-r--r--dev-python/breathe/files/breathe-4.35.0-sphinx-7.2.patch40
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-0.85.0.ebuild65
-rw-r--r--dev-python/chameleon/chameleon-4.5.0.ebuild7
-rw-r--r--dev-python/clang-python/Manifest1
-rw-r--r--dev-python/clang-python/clang-python-19.0.0_pre20240127.ebuild53
-rw-r--r--dev-python/cliff/cliff-4.5.0.ebuild1
-rw-r--r--dev-python/coverage/Manifest1
-rw-r--r--dev-python/coverage/coverage-7.4.1.ebuild98
-rw-r--r--dev-python/dask/Manifest1
-rw-r--r--dev-python/dask/dask-2024.1.1.ebuild93
-rw-r--r--dev-python/dill/Manifest1
-rw-r--r--dev-python/dill/dill-0.3.8.ebuild23
-rw-r--r--dev-python/django-sortedm2m/django-sortedm2m-3.1.1-r2.ebuild (renamed from dev-python/django-sortedm2m/django-sortedm2m-3.1.1-r1.ebuild)4
-rw-r--r--dev-python/dnspython/dnspython-2.5.0.ebuild6
-rw-r--r--dev-python/dnspython/files/dnspython-2.5.0-musl-test.patch67
-rw-r--r--dev-python/dparse/dparse-0.6.4_beta0.ebuild15
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.97.1.ebuild90
-rw-r--r--dev-python/ldap3/ldap3-2.9.1.ebuild2
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-19.0.0_pre20240127.ebuild45
-rw-r--r--dev-python/moto/Manifest2
-rw-r--r--dev-python/moto/moto-4.2.14.ebuild139
-rw-r--r--dev-python/moto/moto-5.0.0.ebuild140
-rw-r--r--dev-python/overrides/Manifest1
-rw-r--r--dev-python/overrides/overrides-7.7.0.ebuild21
-rw-r--r--dev-python/psycopg/files/psycopg-3.1.17-musl.patch34
-rw-r--r--dev-python/psycopg/psycopg-3.1.17.ebuild50
-rw-r--r--dev-python/pygit2/Manifest1
-rw-r--r--dev-python/pygit2/pygit2-1.14.0.ebuild45
-rw-r--r--dev-python/pytest/Manifest1
-rw-r--r--dev-python/pytest/pytest-8.0.0.ebuild110
-rw-r--r--dev-python/setuptools-gettext/Manifest1
-rw-r--r--dev-python/setuptools-gettext/setuptools-gettext-0.1.9.ebuild37
-rw-r--r--dev-python/tables/tables-3.9.2.ebuild2
-rw-r--r--dev-python/tavern/Manifest1
-rw-r--r--dev-python/tavern/tavern-2.9.1.ebuild65
-rw-r--r--dev-python/toolz/toolz-0.12.1.ebuild2
-rw-r--r--dev-python/trimesh/Manifest1
-rw-r--r--dev-python/trimesh/trimesh-4.1.0.ebuild68
52 files changed, 1506 insertions, 29 deletions
diff --git a/dev-python/aiocache/aiocache-0.12.2.ebuild b/dev-python/aiocache/aiocache-0.12.2.ebuild
index 2214dd5c94db..c550eb668e1a 100644
--- a/dev-python/aiocache/aiocache-0.12.2.ebuild
+++ b/dev-python/aiocache/aiocache-0.12.2.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
@@ -32,6 +32,10 @@ BDEPEND="
distutils_enable_tests pytest
python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by newer dev-python/redis (?), removed upstream
+ tests/ut/backends/test_redis.py::TestRedisBackend::test_close
+ )
local EPYTEST_IGNORE=(
# benchmarks
tests/performance
@@ -39,7 +43,8 @@ python_test() {
tests/ut/backends/test_memcached.py
)
- epytest -o addopts= -m "not memcached"
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -m "not memcached" -p asyncio -p pytest_mock
}
src_test() {
diff --git a/dev-python/alembic/alembic-1.13.1.ebuild b/dev-python/alembic/alembic-1.13.1.ebuild
index 32f2fa9a9666..0c3555364c87 100644
--- a/dev-python/alembic/alembic-1.13.1.ebuild
+++ b/dev-python/alembic/alembic-1.13.1.ebuild
@@ -25,6 +25,11 @@ RDEPEND="
>=dev-python/python-editor-0.3[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4[${PYTHON_USEDEP}]
"
+BDEPEND="
+ test? (
+ sys-libs/timezone-data
+ )
+"
EPYTEST_XDIST=1
distutils_enable_tests pytest
diff --git a/dev-python/apprise/Manifest b/dev-python/apprise/Manifest
index d9c7d847980e..8092fcc836aa 100644
--- a/dev-python/apprise/Manifest
+++ b/dev-python/apprise/Manifest
@@ -1,2 +1,3 @@
DIST apprise-1.6.0.tar.gz 1582966 BLAKE2B aec28c82a2e1b45341f1e67a0778be2a9149ff591172122abb7d30eeed27c7b49171556993c0f1c0d33fe12a5dcdeb4ad0ade8b9e68a8f9950a3f8b6f0638156 SHA512 572d0cb9e3464ea2bc65a101e520dd0b15ada08c158a21d1ac698adbcd454ecf5af7ad30dca6495b4d7e38b92128774c43864c011f1af26ad917699e1d50c59b
DIST apprise-1.7.1.tar.gz 1633347 BLAKE2B 4b51ffc45b61b4ff46cb3c0bd80c2f14a11d827ca350fe18fc6350934e3b93c09a98d03fd609d051311e46181778d433ae5813cb269623fed83ce47a7203eab3 SHA512 317e9fa057c7db28f73ea0888f378b036413a5a3186172206c3af57083a8d1965db178c89acfb2048bd82e5f530f65c05bfde3bb9c8aea7c9dd2f78e13e0a8b7
+DIST apprise-1.7.2.tar.gz 1638384 BLAKE2B 8fecb4d08e7e7c3aad24c1f8ac7aaec382aa934d46d5ab7cfd196949c9b7aa9ab2242a7626bddd336932ec12f17cdd966fde293f544e695468cfd810f5e6f5ba SHA512 897d4d253fcc2cfbb3fe2f1d0e9ecbe3a2a1bca65cb2c7d9595410e9c12adc6f5696216365fe583ebc457042db2d7e8a3c6153272865fc996e87342480536a0d
diff --git a/dev-python/apprise/apprise-1.7.2.ebuild b/dev-python/apprise/apprise-1.7.2.ebuild
new file mode 100644
index 000000000000..1fb4c1bf85d5
--- /dev/null
+++ b/dev-python/apprise/apprise-1.7.2.ebuild
@@ -0,0 +1,38 @@
+# 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 pypi
+
+DESCRIPTION="Push Notifications that work with just about every platform"
+HOMEPAGE="
+ https://pypi.org/project/apprise/
+ https://github.com/caronc/apprise/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
+IUSE="+dbus mqtt"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-oauthlib[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dbus? ( dev-python/dbus-python[${PYTHON_USEDEP}] )
+ mqtt? ( dev-python/paho-mqtt[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ dev-python/Babel[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/astroid/astroid-3.0.2.ebuild b/dev-python/astroid/astroid-3.0.2.ebuild
index 9e775bdfd728..7f19a99a8b80 100644
--- a/dev-python/astroid/astroid-3.0.2.ebuild
+++ b/dev-python/astroid/astroid-3.0.2.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
@@ -51,6 +51,8 @@ python_test() {
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
+ # requires pip, looks fragile
+ tests/test_manager.py::IsolatedAstroidManagerTest::test_no_user_warning
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
diff --git a/dev-python/blosc/blosc-1.11.1.ebuild b/dev-python/blosc/blosc-1.11.1.ebuild
index 440a500ad990..2fb6ba76836b 100644
--- a/dev-python/blosc/blosc-1.11.1.ebuild
+++ b/dev-python/blosc/blosc-1.11.1.ebuild
@@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
inherit distutils-r1
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 23d84d119416..e30c0821398b 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -5,3 +5,4 @@ DIST boto3-1.34.25.gh.tar.gz 767540 BLAKE2B 0018e04ce16529de14bca16011f7e4dfc949
DIST boto3-1.34.26.gh.tar.gz 767554 BLAKE2B 1dc099c1d6d1da2e704c574bc8bc70883fb2f8974faa1e8c87154e0c5a892a38a8768b6aef59710cad598a1d11ce0e03d81bb2f0c0c7e9a531b434a9ff22aa15 SHA512 3da5b2d00054c5344ec32ec20fbc1bd74b8be31616102d4b5c03367c4ffae97fc80fbec62562a8d42893df3791524d5f5b490570fe1881ac266fa3849f8ccc9a
DIST boto3-1.34.27.gh.tar.gz 768012 BLAKE2B 4a8edd2470b58b02b684def8a3e1d70950621498e557e7a4f89bfbaf798339eb5e9bb89f3653063d79ebfbf1b04e706fa7209beef8d5e110e6a9f00e022d47d3 SHA512 76eb0e341f368a391be492c9551de77165e43721a54f87493c20d4c5bb89e2318b86e83009d92366014660a41d969165dfa9cb12591b0ac60f6fbb82fff590c0
DIST boto3-1.34.28.gh.tar.gz 768214 BLAKE2B f208190d0321351252bd252f4152df7ecf337cb74e4642b4dc21c9d4d0aa7bb14aae2760b4220df292a1d47108fb23a42d73bc0d0aa28417298561d0f8795690 SHA512 3eeca1cd88a61bb8a7cdf23cd0c0317c3f5c4f915c4379a916a5b3a96263029c9932cb100286d8f5d9cef531a73e80ff66321d2869724cf9669a8fa9bcdec792
+DIST boto3-1.34.29.gh.tar.gz 769654 BLAKE2B 3eec92f78f343c1806eb7ad96a31b07592ffb355aed5bca75b9cf9bc32cc240a1c254cd43e618d7cba442dddab31035f43f319aa674b5fd6ee99e93d76514389 SHA512 1dff0825811b346e1300030770f00dfea9694d3f6c4beccddfb2ff00520503271b617321e124a1d922da8e8fb1d2c2beb08a83f23eb5e5754bf1d519ea994cf3
diff --git a/dev-python/boto3/boto3-1.34.29.ebuild b/dev-python/boto3/boto3-1.34.29.ebuild
new file mode 100644
index 000000000000..13391b8a8e76
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.29.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=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/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/boto3"
+ inherit git-r3
+ BOTOCORE_PV=${PV}
+else
+ SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${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 2b54669ef056..26b9413878d4 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -5,3 +5,4 @@ DIST botocore-1.34.25.gh.tar.gz 12652238 BLAKE2B 3509adf5f95387c1bc574dfed6edfbb
DIST botocore-1.34.26.gh.tar.gz 12658700 BLAKE2B 614b76d37259c4a37db4e91cce8a2bb64630bdb1172c081f169d8016ff6e4db221a56d5873594fb1251782b8c3758cf00ea7bb0aeffaedc2c9a163d86c8cd708 SHA512 86707d98ec287d01152eb179747e66f3ba8563e7fc83752d1c9c782296277dbe582ce56049859044dbc270fb4499c2d07de6a55b094597625234071203bf7d4b
DIST botocore-1.34.27.gh.tar.gz 12662876 BLAKE2B 8e9dcdeb03da533960df43c3688c4cdce2604e0eefb36a54ac372e04c7f828354523a9c322ad6fc8b1b7d349bf49417041d6074a34628c64db9d5caa9e90fe29 SHA512 1bae71c8156c4e465b3343ad91675cfcf78cef66ff382a54e56a5b12bf7c4dc2d385860846b97507288dbb9fb5878dc3a52555d872edc411eedc1774e0151871
DIST botocore-1.34.28.gh.tar.gz 12662404 BLAKE2B 31be5eb858f751947852d78d62d5bccb23b72eac03c4a83e27d576c4e1d651d27f78b5779afb9bc72797f6102f3efeb7c1aa78c9889d40ce988364ab4ea2d3c9 SHA512 042e31e106f5f22eeeed9cef1526710a767fbb9f398d39c85520a5767cb37f1bde10d4923cac7fbad6bec796ba4dfba330446309ab613ce53e4ff9b7771fab01
+DIST botocore-1.34.29.gh.tar.gz 12665018 BLAKE2B 928c27ae62a5e2675dc5476af05a4390cbeaf9d5c64cae6a5af0d5348f703417f48431258fc7c4ad316908fd29f6bfeb5a7c76290ea9622172f3d787f40021c7 SHA512 5314900eecf2d31fe08bcb9efbc1a361467fe034129c85f5cb4a678275115292fc5a6a95fbbe3cc06aa0a1387e14dde0f9115a9aa25ba59dba62a02c3b8db43b
diff --git a/dev-python/botocore/botocore-1.34.29.ebuild b/dev-python/botocore/botocore-1.34.29.ebuild
new file mode 100644
index 000000000000..2fc3a4924fdb
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.29.ebuild
@@ -0,0 +1,68 @@
+# 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/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/botocore"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${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 EPYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/breathe/breathe-4.35.0.ebuild b/dev-python/breathe/breathe-4.35.0-r1.ebuild
index c2ba73a57df7..19a59cbaa4e6 100644
--- a/dev-python/breathe/breathe-4.35.0.ebuild
+++ b/dev-python/breathe/breathe-4.35.0-r1.ebuild
@@ -35,3 +35,8 @@ RDEPEND="
"
distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/breathe-doc/breathe/pull/956
+ "${FILESDIR}/${P}-sphinx-7.2.patch"
+)
diff --git a/dev-python/breathe/files/breathe-4.35.0-sphinx-7.2.patch b/dev-python/breathe/files/breathe-4.35.0-sphinx-7.2.patch
new file mode 100644
index 000000000000..b81eddc6a6e3
--- /dev/null
+++ b/dev-python/breathe/files/breathe-4.35.0-sphinx-7.2.patch
@@ -0,0 +1,40 @@
+From 46abd77157a2a57e81586e4f8765ae8f1a09d167 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mark=C3=A9ta?= <meggy.calabkova@gmail.com>
+Date: Wed, 4 Oct 2023 15:53:59 +0200
+Subject: [PATCH] support Sphinx 7.2
+
+---
+ breathe/project.py | 2 +-
+ tests/test_renderer.py | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/breathe/project.py b/breathe/project.py
+index 865236e8..9716cb59 100644
+--- a/breathe/project.py
++++ b/breathe/project.py
+@@ -113,7 +113,7 @@ def __init__(self, app: Sphinx):
+ # Assume general build directory is the doctree directory without the last component.
+ # We strip off any trailing slashes so that dirname correctly drops the last part.
+ # This can be overridden with the breathe_build_directory config variable
+- self._default_build_dir = os.path.dirname(app.doctreedir.rstrip(os.sep))
++ self._default_build_dir = app.doctreedir.parent
+ self.project_count = 0
+ self.project_info_store: Dict[str, ProjectInfo] = {}
+ self.project_info_for_auto_store: Dict[str, AutoProjectInfo] = {}
+diff --git a/tests/test_renderer.py b/tests/test_renderer.py
+index a858c65d..73a29e4e 100644
+--- a/tests/test_renderer.py
++++ b/tests/test_renderer.py
+@@ -35,7 +35,11 @@ def app(test_params, app_params, make_app, shared_result):
+ """
+ args, kwargs = app_params
+ assert "srcdir" in kwargs
+- kwargs["srcdir"].makedirs(exist_ok=True)
++ try:
++ kwargs["srcdir"].mkdir(parents=True, exist_ok=True)
++ except AttributeError:
++ # old version of Sphinx
++ kwargs["srcdir"].makedirs(exist_ok=True)
+ (kwargs["srcdir"] / "conf.py").write_text("")
+ app_ = make_app(*args, **kwargs)
+ yield app_
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index b67bef26c886..c8540efadf22 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,2 +1,3 @@
DIST cfn-lint-0.83.8.tar.gz 3901954 BLAKE2B 33d728ddf7ae5bcb29fdb8211decd85b72519acd60b80831aafa59d042105af45a3f07e2d6ea9838b80af68f6eb19ba84be562e4a7104c64b68737ede3497b0d SHA512 f520f5e211284197ff3b2c5287cb72384544a273e1fa1d3007e7a3ad85ef1b4bae4ed0c0db609989ea51de29630454d97ba13a8d97ccc06992a7fb0da467e0b7
DIST cfn-lint-0.84.0.tar.gz 3890781 BLAKE2B 160c8f29f2551c0885d784d725e5e7077aaf162b13f8bcbe8f04c2f6dd939bdb22166ebc3fbba6ba71b0ec68356f520ae1968a447a7a24082eb85271c684aa1b SHA512 0e783c6c2fc590ce59526da887a3bdcc2f8c55e6d5d6e11f49df82c72d387a18abbac545b861bf806e829080b7be6da00d948d32769396b6730570ab4bc23f7a
+DIST cfn-lint-0.85.0.tar.gz 3875659 BLAKE2B 64bbd4ba0dc153b78da40588a2d0e9f34feafcf17b7262b84f3c3e0a98ecc6cc7b78152dc829fd2bcb3f3c3fe601fdf217111bd5a11d402a3b70ceda822206f7 SHA512 b7d65fb360e8743f08ec2feb451e6dc6cbda62c0850a954e5beec8d6a2a6bee2be2dddee36f262f571e5e9838deb7237895a3020b951686423315f5914f82d67
diff --git a/dev-python/cfn-lint/cfn-lint-0.85.0.ebuild b/dev-python/cfn-lint/cfn-lint-0.85.0.ebuild
new file mode 100644
index 000000000000..62ae5c544686
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-0.85.0.ebuild
@@ -0,0 +1,65 @@
+# 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="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.83.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.15.0[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+ # TODO: it looks as if AWS_DEFAULT_REGION didn't work
+ test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
+ test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_template_config
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/chameleon/chameleon-4.5.0.ebuild b/dev-python/chameleon/chameleon-4.5.0.ebuild
index 2f0738cdcff0..d151699b1d62 100644
--- a/dev-python/chameleon/chameleon-4.5.0.ebuild
+++ b/dev-python/chameleon/chameleon-4.5.0.ebuild
@@ -20,9 +20,4 @@ LICENSE="repoze"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
-distutils_enable_tests unittest
-
-src_test() {
- cd src || die
- distutils-r1_src_test
-}
+distutils_enable_tests pytest
diff --git a/dev-python/clang-python/Manifest b/dev-python/clang-python/Manifest
index eaf4dd1b1bc7..921b26789062 100644
--- a/dev-python/clang-python/Manifest
+++ b/dev-python/clang-python/Manifest
@@ -4,6 +4,7 @@ DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db3659
DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
+DIST llvm-project-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
DIST llvm-project-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
DIST llvm-project-9eb0f86c279f40a792ec27bf0e9b491b8c90a640.tar.gz 205195168 BLAKE2B c3d051270958216196d6051d41e78168a7027714c5658c7edc70d274ed91f9d4ee16e8d1f92672bf252c65005c636c380766210ac3d80b4ac2f9f6305aefa29b SHA512 ee62acdfa756a2ddeb46fcafa364489885b6ecc50c87f365af42f308ebc87b9674c33c2f5a84c5169d9c9cada08e4fffe35d2eff48f05b70e791e27ac2c8b347
DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d
diff --git a/dev-python/clang-python/clang-python-19.0.0_pre20240127.ebuild b/dev-python/clang-python/clang-python-19.0.0_pre20240127.ebuild
new file mode 100644
index 000000000000..82c18f7c0f95
--- /dev/null
+++ b/dev-python/clang-python/clang-python-19.0.0_pre20240127.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for sys-devel/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=sys-devel/clang-${PV}:*
+ !sys-devel/llvm:0[clang(-),python(-)]
+ !sys-devel/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/cliff/cliff-4.5.0.ebuild b/dev-python/cliff/cliff-4.5.0.ebuild
index 9dc40e0d3098..942c34bb148f 100644
--- a/dev-python/cliff/cliff-4.5.0.ebuild
+++ b/dev-python/cliff/cliff-4.5.0.ebuild
@@ -30,6 +30,7 @@ RDEPEND="
BDEPEND="
>dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
dev-python/sphinx[${PYTHON_USEDEP}]
>=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
>=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 8c806e82e6e1..89f81c1c5d33 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1 +1,2 @@
DIST coverage-7.4.0.tar.gz 776507 BLAKE2B ea96db033e711c5b47ebbd585f1eec8e576908dfbecd7df6e555a5e96cdbadf546e0b2b1a5790fd66be386a068ced5a1544dff79601546fe6a4ac0e9b36a05a2 SHA512 7563ca34ed8d0dd3b9f376b20cbaeb9c952ba0dda57d9f1a33abe94ac17ed6411d0d537f039613c310957eb926e8fa102ad888c5de8bdb3f0233668bdf96d395
+DIST coverage-7.4.1.tar.gz 780560 BLAKE2B bd23208a3fe86a0476b964150ba5bf7db5e26af3844eb16a36c4aaf96a40056486a906f82016f8a5adb05cca8562adcfa11cb44fdef78587aa575b93d24d54eb SHA512 a5e6a40a9b83a9e3ab88c432305a89caa4a7575f17c35385782a59237cc0464d879222afd524879e3e36a09f185fc6249af6198cbc0a10a6c3e83a19de452e79
diff --git a/dev-python/coverage/coverage-7.4.1.ebuild b/dev-python/coverage/coverage-7.4.1.ebuild
new file mode 100644
index 000000000000..8f7e197a5950
--- /dev/null
+++ b/dev-python/coverage/coverage-7.4.1.ebuild
@@ -0,0 +1,98 @@
+# 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 )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+ https://coverage.readthedocs.io/en/latest/
+ https://github.com/nedbat/coveragepy/
+ https://pypi.org/project/coverage/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.{9..10})
+"
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/addopts/s:-q -n auto::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+test_tracer() {
+ local -x COVERAGE_CORE=${1}
+ einfo " Testing with the ${COVERAGE_CORE} core ..."
+ epytest -p flaky -p hypothesis -p xdist tests
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: fails because of additional "Terminated" print on SIGTERM
+ tests/test_concurrency.py::SigtermTest::test_sigterm_threading_saves_data
+ # broken because of pytest plugins explicity loaded
+ tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
+ # these expect specific availability of C extension matching
+ # COVERAGE_CORE (which breaks testing pytracer on CPython)
+ tests/test_cmdline.py::CmdLineStdoutTest::test_version
+ tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
+ )
+ local EPYTEST_IGNORE=(
+ # pip these days insists on fetching build deps from Internet
+ tests/test_venv.py
+ )
+
+ "${EPYTHON}" igor.py zip_mods || die
+
+ local -x COVERAGE_TESTING=True
+ # TODO: figure out why they can't be imported inside test env
+ local -x COVERAGE_NO_CONTRACTS=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+
+ local prev_opt=$(shopt -p nullglob)
+ shopt -s nullglob
+ local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+ ${prev_opt}
+
+ if [[ -n ${c_ext} ]]; then
+ cp "${c_ext}" coverage/ || die
+ test_tracer ctrace
+ fi
+
+ test_tracer pytrace
+
+ case ${EPYTHON} in
+ python3.1[01]|pypy3)
+ ;;
+ *)
+ # available since Python 3.12
+ test_tracer sysmon
+ ;;
+ esac
+
+ if [[ -n ${c_ext} ]]; then
+ rm coverage/*.so || die
+ fi
+}
diff --git a/dev-python/dask/Manifest b/dev-python/dask/Manifest
index 00922635b64f..5bc66efa63be 100644
--- a/dev-python/dask/Manifest
+++ b/dev-python/dask/Manifest
@@ -1,2 +1,3 @@
DIST dask-2023.12.1.gh.tar.gz 8967874 BLAKE2B f397512fb50a53719fff8e234db0e366b17c9abaca4b98c0b1d4a98287dec7f869612e688cfa2e717fc35c4ed1f7a8d8fe74c7dec939e8f669e6790490005370 SHA512 4a90239e83e7cbd4797ee91dc9609d7322a7003b976ed3309de95b47d20e2e9f449cea803618539c5f80ec552dd2ac71e55c87c024beeabf74062beeb3260292
DIST dask-2024.1.0.gh.tar.gz 8975960 BLAKE2B bcc72c1428d0626eb686551c69b0dcbc7b9615524bbcdbc1bb6d5113929f32d53cc7d0952622d352ef7413057b9f90689471b3540b3748beb6cddd0dbbdef2f6 SHA512 a2a436cba1f84d7223ed049c395807f900bc012d7fb8c8ae18c27b15787885e6a6a02cd17da2cc7f765b26469190217e2c8306495fbfc82e3018e1bcee54d24b
+DIST dask-2024.1.1.gh.tar.gz 9328425 BLAKE2B 6b6208c59e0446816a962a9a3dc6a1754eba589810aacdab0c1ce38edd6d593763d1868578a344babfa74afd390ac1997d2461586b12180679fdc67ae26e0a74 SHA512 a5e424333c5d19f67d73c2b036544ef03122a99c2eb6a52019929f1e7b87297c776cbea713062372cf1685ef3b79d47734d6d0acd2c054ffadcbb3d96fb6deeb
diff --git a/dev-python/dask/dask-2024.1.1.ebuild b/dev-python/dask/dask-2024.1.1.ebuild
new file mode 100644
index 000000000000..e7216e3b1488
--- /dev/null
+++ b/dev-python/dask/dask-2024.1.1.ebuild
@@ -0,0 +1,93 @@
+# 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
+
+DESCRIPTION="Task scheduling and blocked algorithms for parallel processing"
+HOMEPAGE="
+ https://www.dask.org/
+ https://github.com/dask/dask/
+ https://pypi.org/project/dask/
+"
+SRC_URI="
+ https://github.com/dask/dask/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/click-8.1[${PYTHON_USEDEP}]
+ >=dev-python/cloudpickle-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/fsspec-2021.9.0[${PYTHON_USEDEP}]
+ >=dev-python/importlib-metadata-4.13.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21[${PYTHON_USEDEP}]
+ >=dev-python/pandas-1.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/partd-1.2.0[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
+ >=dev-python/toolz-0.10.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/toolz[${PYTHON_USEDEP}]
+ >=dev-python/versioneer-0.28[${PYTHON_USEDEP}]
+ test? (
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/numexpr[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # fails with sqlalchemy-2.0, even though we don't use it x_x
+ sed -i -e '/RemovedIn20Warning/d' pyproject.toml || die
+ sed -i -e 's:--cov-config=pyproject.toml::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # more tests relying on -Werror
+ "dask/array/tests/test_overlap.py::test_map_overlap_no_depth[None]"
+ dask/array/tests/test_random.py::test_RandomState_only_funcs
+ dask/dataframe/tests/test_dataframe.py::test_view
+ dask/dataframe/tests/test_shuffle.py::test_npartitions_auto_raises_deprecation_warning
+ # TODO
+ dask/array/tests/test_reductions.py::test_mean_func_does_not_warn
+ dask/tests/test_config.py::test__get_paths
+ dask/array/tests/test_linalg.py::test_solve_assume_a
+ "dask/dataframe/tests/test_dataframe.py::test_repartition_npartitions[<lambda>0-float-5-1-True]"
+ "dask/dataframe/tests/test_dataframe.py::test_repartition_npartitions[<lambda>1-float-5-1-True]"
+ dask/array/tests/test_image.py::test_preprocess
+ dask/tests/test_system.py::test_cpu_count_cgroups_v2
+ # require sqlalchemy<2.0
+ dask/dataframe/io/tests/test_sql.py
+ # crashes
+ dask/tests/test_base.py::test_tokenize_object_with_recursion_error
+ # regression with new pandas (?)
+ dask/dataframe/tests/test_multi.py::test_concat5
+ )
+
+ if ! has_version -b "dev-python/pyarrow[parquet,${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ # fails if pyarrow is installed without USE=parquet
+ # (optional dep, skipped if it's not installed at all)
+ dask/dataframe/io/tests/test_parquet.py::test_pyarrow_filter_divisions
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_rerunfailures -m "not network" \
+ -p xdist -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/dill/Manifest b/dev-python/dill/Manifest
index 6c63d3bcc35a..69a2c780c83f 100644
--- a/dev-python/dill/Manifest
+++ b/dev-python/dill/Manifest
@@ -1 +1,2 @@
DIST dill-0.3.7.gh.tar.gz 176315 BLAKE2B 8c98c40458035e42c078c79df14e474c35a2a6ff4f61d3cfca8f4dfa5a7756512b7d5af6276becd88315c01d88c8562de02b6f9dff06d0161df3e6f6694c7cc8 SHA512 33ec55dc32c9ddf275ce6e502187949bbc7ecc6d24560e132a7bed23e93254b771d38e59c4b6313bbfc25313305c43c6cba2fe07763a93238e1ba66c4bbd8cd4
+DIST dill-0.3.8.tar.gz 184847 BLAKE2B 6a0eb76526d5bc4afa003f34454c3a93b2b53e2d5bd362749bfcc22c6fe294dff3af9d52e83b288e999d7074d82a2671b3d271b3b423030f4cfd57cd70acdc6f SHA512 478d83af69dc0639a08e011e46127d9485dc998df54622e7fbb9ce4b004640d1b23aad57717d791cc609cd9d7071ea7300bce4be982488e4d21c5986e67ce586
diff --git a/dev-python/dill/dill-0.3.8.ebuild b/dev-python/dill/dill-0.3.8.ebuild
new file mode 100644
index 000000000000..96901c3dbd67
--- /dev/null
+++ b/dev-python/dill/dill-0.3.8.ebuild
@@ -0,0 +1,23 @@
+# 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="Serialize all of Python (almost)"
+HOMEPAGE="
+ https://github.com/uqfoundation/dill/
+ https://pypi.org/project/dill/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+python_test() {
+ "${EPYTHON}" -m dill.tests || die
+}
diff --git a/dev-python/django-sortedm2m/django-sortedm2m-3.1.1-r1.ebuild b/dev-python/django-sortedm2m/django-sortedm2m-3.1.1-r2.ebuild
index 77bb3ddf63c7..81b4a3b5a7cc 100644
--- a/dev-python/django-sortedm2m/django-sortedm2m-3.1.1-r1.ebuild
+++ b/dev-python/django-sortedm2m/django-sortedm2m-3.1.1-r2.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
@@ -25,7 +25,7 @@ IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
- dev-python/django[${PYTHON_USEDEP}]
+ <dev-python/django-5[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
diff --git a/dev-python/dnspython/dnspython-2.5.0.ebuild b/dev-python/dnspython/dnspython-2.5.0.ebuild
index 05191e93a134..e783972f92cc 100644
--- a/dev-python/dnspython/dnspython-2.5.0.ebuild
+++ b/dev-python/dnspython/dnspython-2.5.0.ebuild
@@ -38,6 +38,12 @@ BDEPEND="
distutils_enable_tests pytest
+PATCHES=(
+ # https://github.com/rthalley/dnspython/issues/1035
+ # https://github.com/rthalley/dnspython/commit/1b22985f2d67b6dd43259e3c6b853498f1cff712
+ "${FILESDIR}/${P}-musl-test.patch"
+)
+
python_install_all() {
distutils-r1_python_install_all
if use examples; then
diff --git a/dev-python/dnspython/files/dnspython-2.5.0-musl-test.patch b/dev-python/dnspython/files/dnspython-2.5.0-musl-test.patch
new file mode 100644
index 000000000000..a5aec3378fdd
--- /dev/null
+++ b/dev-python/dnspython/files/dnspython-2.5.0-musl-test.patch
@@ -0,0 +1,67 @@
+From 1b22985f2d67b6dd43259e3c6b853498f1cff712 Mon Sep 17 00:00:00 2001
+From: Bob Halley <halley@dnspython.org>
+Date: Sat, 27 Jan 2024 12:38:03 -0800
+Subject: [PATCH] In tests, work around musl libc and docker issues.
+
+Specifically: musl libc's getaddrinfo behavior always returns
+a canonical name.
+
+Docker's resolver proxy doesn't do dangling CNAMEs correctly
+and also answers NXDOMAIN in some cases where it should say
+no error, no data.
+---
+ tests/test_async.py | 14 +++++++++++---
+ tests/test_resolver.py | 21 +++++++++++++++------
+ tests/test_resolver_override.py | 19 ++++++++++++-------
+ tests/util.py | 10 +++++++++-
+ 4 files changed, 47 insertions(+), 17 deletions(-)
+
+diff --git a/tests/test_resolver_override.py b/tests/test_resolver_override.py
+index aed7a53d..be9e53f2 100644
+--- a/tests/test_resolver_override.py
++++ b/tests/test_resolver_override.py
+@@ -69,7 +69,7 @@ def test_override(self):
+ dns.resolver.restore_system_resolver()
+ self.assertTrue(socket.getaddrinfo is dns.resolver._original_getaddrinfo)
+
+- def equivalent_info(self, a, b):
++ def equivalent_info(self, a, b, q):
+ if len(a) != len(b):
+ return False
+ for x in a:
+@@ -78,16 +78,21 @@ def equivalent_info(self, a, b):
+ # looking for a zero protocol.
+ y = (x[0], x[1], 0, x[3], x[4])
+ if y not in b:
+- print("NOT EQUIVALENT")
+- print(a)
+- print(b)
+- return False
++ # musl libc insists on always providing a canonical name, so
++ # accept that too.
++ y = (x[0], x[1], x[2], q, x[4])
++ if y not in b:
++ print("NOT EQUIVALENT")
++ print(a)
++ print(b)
++ return False
+ return True
+
+ def equivalent(self, *args, **kwargs):
++ q = args[0]
+ a = socket.getaddrinfo(*args, **kwargs)
+ b = dns.resolver._original_getaddrinfo(*args, **kwargs)
+- return self.equivalent_info(a, b)
++ return self.equivalent_info(a, b, q)
+
+ @unittest.skipIf(
+ sys.platform == "win32", "avoid windows original getaddrinfo issues"
+@@ -139,7 +144,7 @@ def test_getaddrinfo_nxdomain(self):
+ def test_getaddrinfo_service(self):
+ a = socket.getaddrinfo("dns.google", "domain")
+ b = socket.getaddrinfo("dns.google", 53)
+- self.assertTrue(self.equivalent_info(a, b))
++ self.assertTrue(self.equivalent_info(a, b, "dns.google"))
+ try:
+ socket.getaddrinfo("dns.google", "domain", flags=socket.AI_NUMERICSERV)
+ self.assertTrue(False) # should not happen!
diff --git a/dev-python/dparse/dparse-0.6.4_beta0.ebuild b/dev-python/dparse/dparse-0.6.4_beta0.ebuild
index 54451e874b48..65cb3df979ed 100644
--- a/dev-python/dparse/dparse-0.6.4_beta0.ebuild
+++ b/dev-python/dparse/dparse-0.6.4_beta0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2023 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,15 +18,14 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~riscv"
-distutils_enable_tests pytest
-
+# Break circular dependency
+PDEPEND="
+ dev-python/pipenv[${PYTHON_USEDEP}]
+"
BDEPEND="
test? (
- dev-python/pipenv[${PYTHON_USEDEP}]
+ ${PDEPEND}
)
"
-# Break circular dependency
-PDEPEND="
- dev-python/pipenv[${PYTHON_USEDEP}]
-"
+distutils_enable_tests pytest
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index ae37f45ca043..2b282b12356d 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -11,3 +11,4 @@ DIST hypothesis-6.96.1.gh.tar.gz 9420126 BLAKE2B 546b9c77a144b58490fb5b6ba51fdff
DIST hypothesis-6.96.3.gh.tar.gz 9421880 BLAKE2B 0d73e363550ca45c316ddf05bc0615aaf9846482b0aaaf64daa0879ac716314b222afdd37aaf29bc00c32f3cfd984609292151e458c5b1165144b1d870cc698e SHA512 8d847e9db1ce83ebed7307be8df91dc517b37cf2588ddf005a158f8b3dca2cb3ee95ed5268d1d74d25a374959f7553d1fa8ab2bc83f314113042c090970a5307
DIST hypothesis-6.96.4.gh.tar.gz 9422075 BLAKE2B 0ab12a01c8d714490f3785ac01779c69d0dc5f31bb3c85be3c1ff9831c1b2392f19ec45adfd40f334f20d48b3ad1300d38ed2e49ca318f17cae36de44895bc3d SHA512 8cbfbf36c7e1e56c31b58aadd9e592672430492eb7c7fb570d4e1277df3e0dd83f76ef39e27e0c644e38c3bc35c993b79d1e6687be73c0780fa36840b4a2baec
DIST hypothesis-6.97.0.gh.tar.gz 9423342 BLAKE2B 77a1c7f3569e8a919e6e506222368163e87e98c99e35d4b65e07d4504db7842782689b4ca24bcf6d79cc4c0b59f9fafad2ceee54df6d94a48c7e114d10247bd1 SHA512 81308772235ed024e64ef4fd40f64905c26d9109ce4a21140eb83af60697a8025011ceeb354eb600eda5c39bc03247fc0b6ad8f3bfbe639be7dd8cc9d889c815
+DIST hypothesis-6.97.1.gh.tar.gz 9423481 BLAKE2B 6a52bf6a970bf8056284baaa21aa63fe85c289f4c7e856860eff39f82eab82b401360953d165e795db2b45c99bba16a28518328db052ab3eb2185f2c4b61881d SHA512 2334e23e3056c478c5288e1726ca6feff968caa97e2c6b3758fc62c54636d7026ea2d5e906a7e3d8c191a9d911bf9050f082ba9b42b78cffd5129f01985ac248
diff --git a/dev-python/hypothesis/hypothesis-6.97.1.ebuild b/dev-python/hypothesis/hypothesis-6.97.1.ebuild
new file mode 100644
index 000000000000..1f7054962839
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.97.1.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
+CLI_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 multiprocessing optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ !!<dev-python/requests-toolbelt-0.10.1
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -n "$(makeopts_jobs)" --dist=worksteal \
+ tests/cover tests/pytest tests/quality
+}
+
+python_install() {
+ distutils-r1_python_install
+ if ! use cli || ! has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ rm -r "${ED}/usr/bin" "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/ldap3/ldap3-2.9.1.ebuild b/dev-python/ldap3/ldap3-2.9.1.ebuild
index 9097ef966b2f..b51553bfce6e 100644
--- a/dev-python/ldap3/ldap3-2.9.1.ebuild
+++ b/dev-python/ldap3/ldap3-2.9.1.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/lit/Manifest b/dev-python/lit/Manifest
index eaf4dd1b1bc7..921b26789062 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -4,6 +4,7 @@ DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db3659
DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
+DIST llvm-project-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
DIST llvm-project-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
DIST llvm-project-9eb0f86c279f40a792ec27bf0e9b491b8c90a640.tar.gz 205195168 BLAKE2B c3d051270958216196d6051d41e78168a7027714c5658c7edc70d274ed91f9d4ee16e8d1f92672bf252c65005c636c380766210ac3d80b4ac2f9f6305aefa29b SHA512 ee62acdfa756a2ddeb46fcafa364489885b6ecc50c87f365af42f308ebc87b9674c33c2f5a84c5169d9c9cada08e4fffe35d2eff48f05b70e791e27ac2c8b347
DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d
diff --git a/dev-python/lit/lit-19.0.0_pre20240127.ebuild b/dev-python/lit/lit-19.0.0_pre20240127.ebuild
new file mode 100644
index 000000000000..5ed5b5bd096e
--- /dev/null
+++ b/dev-python/lit/lit-19.0.0_pre20240127.ebuild
@@ -0,0 +1,45 @@
+# 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 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ sys-devel/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from sys-devel/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index 682ad28ff42a..d75deddf087b 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -2,7 +2,9 @@ DIST moto-4.2.10.tar.gz 4784297 BLAKE2B ece1bc4f67c427890bb6f2e029d3bca44045ce5c
DIST moto-4.2.11.tar.gz 4796124 BLAKE2B 980db98cf688631ba2f88ca44e858b739b103a672668a6a4bf26d752aab946b74a46c746c1e4666d0079597dd219bebf104e36a39a2ed53091c0bdf67efcd4ad SHA512 51cb0d4d26e7b88af439a0a346698a081e823443ffd3c0bc64d864ca56e960d8cebb3045c8fb5f293d3059f9f15c46b966d1d8bb09eb2cb1b10156094588c8a0
DIST moto-4.2.12.tar.gz 4810689 BLAKE2B 07811805b73b2f1358f933dfc9a7a710d1cc209ad99edfe91fd3cd36713b9b404cfe82b249223860f828fc26d2cf18e303368cc6e182c515b44cfdcf7ab2d65d SHA512 774d1cc565e3cff3b3ba42790d15dd91850aa648b79a5a078f624b44bf499d360a01b68f9cf0d110a305efeede3e80408ecd06d6ffb9208f98e0ae86ea7cd514
DIST moto-4.2.13.tar.gz 4832368 BLAKE2B 36b053b5278bcbf289b33d013d7935282447d770c6e1d58585e90df9266bfa7edeb3a935b0f9f0607fc1c451be90147af43347af696e925ee3df1bb3463738de SHA512 89d12ec24f25ae8986179ceeefaf0b2850a4c77d95609de998e81e7ec511f900ed7886caee4fcbba2e44b0fdec195c610f32403997a281e1e00ae1af0c4f5669
+DIST moto-4.2.14.tar.gz 4933741 BLAKE2B 4c50a808dc8f27cfbcd0ba234d268084ee9a32f36cb5d6af61aacc4ee79f7bf5cf1045147c4642472129eee37bef8bc2c1953d140260d39d7f333ae0f5e5cf95 SHA512 d4079118ed1d2eef9134575e33dc0ed749bff0293d753baa63a630dbb987914b9933445027abdc344bb93fa1d6e483baf8a337a444c9dd055dda50b095ff9937
DIST moto-4.2.6.tar.gz 4745145 BLAKE2B 76610aafe3ea4106454aadbc8cf853ff5d4617202a62ae92e6cbe46c75a17d1dd8e63e8188c0c17a88af080bfe6c3466ed420378cee27d0287fe617d3412807e SHA512 0bef11a2600d48349735e7d118f6f28b02fb85e2b5e7310aaa0651444740ad4657470a59c59dab75084cb4250c6b5b725eda5e996b9acbc927529850cabc4c1c
DIST moto-4.2.7.tar.gz 4756973 BLAKE2B 2ab27952abd6faaa2bbe7b6565f5d5403ea4e2c5c87e262b9b8fce9efbd7bb6972e295476426026f4ab7c000da33dfed2d401c04514b1c87bb15a1ae36c4c9cb SHA512 b23272d125b8fcc57cc72243d559cd985f7b96b3e38df31cc83792dc2b830e17a0cf4e44eaec81473b567a2203014d3cfa1f2bfb77f994ca46fb3013d47da704
DIST moto-4.2.8.tar.gz 4769361 BLAKE2B 2e7d6a7cac04655aa9f05af463e57689c0fc2b67cec27644fdf7fd658d988d33f311e43323599a0f91325f7b4e61630a3066d3fda2a15b0c0ca50e6a7cf34e22 SHA512 5a40d44ad46083b6e7c8753e8986316a5beb5b352e7e7b0eefe2b3f3ed2d760f0745f835b6e7d6b2d7b039db0b6f2fad095f047795d2d08093257fa68db1ceee
DIST moto-4.2.9.tar.gz 4775687 BLAKE2B af626a18c9487c08172813ddf2f1112d4bba80dbb64bf8deaf63079a6d4c12464e70d7c99d5a65fd1018f9f3a08bd0b12183e04a549fdfe580942086d49b9e21 SHA512 4cca0bdbe106faa84fa3893eb1dc2b2972a85c98ca718a10fd08a06757e1634954c5576c82b66d88c431a51b989cfedb2a52e6455d718330d4a5dd6e95a90225
+DIST moto-5.0.0.tar.gz 4925737 BLAKE2B 45d60d1c7a53d9743cd4f3ac74a2108f9a6916dea09abb067111acbddf2ba5bb69e6ba354cdeb6be88876e4b8a8270876cfd4dab95339e948bf7cfb6e417e7d2 SHA512 44705d9b5aa5b373687fb34cae1d047b67b312bb788414f7b6c19b3f1e06fdf8fa69e88ae5df56bcc2ef0a74809211e0372fadb555ad57f50f313587d7dedb83
diff --git a/dev-python/moto/moto-4.2.14.ebuild b/dev-python/moto/moto-4.2.14.ebuild
new file mode 100644
index 000000000000..510420bac6e5
--- /dev/null
+++ b/dev-python/moto/moto-4.2.14.ebuild
@@ -0,0 +1,139 @@
+# 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 pypi
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.3.1[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.10.1[${PYTHON_USEDEP}]
+ >=dev-python/jsondiff-1.1.2[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/botocore[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ >=dev-python/sure-1.4.11[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ # broken code (local variable used referenced before definition)
+ tests/test_appsync/test_appsync_schema.py
+ # Needs network (or docker?) but not marked as such, bug #807031
+ # TODO: report upstream
+ tests/test_awslambda/test_lambda_layers_invoked.py::test_invoke_local_lambda_layers
+ tests/test_batch/test_batch_jobs.py::test_cancel_pending_job
+ tests/test_batch/test_batch_jobs.py::test_cancel_running_job
+ tests/test_batch/test_batch_jobs.py::test_container_overrides
+ tests/test_batch/test_batch_jobs.py::test_dependencies
+ tests/test_batch/test_batch_jobs.py::test_failed_dependencies
+ tests/test_batch/test_batch_jobs.py::test_failed_job
+ tests/test_batch/test_batch_jobs.py::test_submit_job_array_size
+ tests/test_batch/test_batch_jobs.py::test_terminate_job
+ tests/test_batch/test_batch_jobs.py::test_terminate_nonexisting_job
+ tests/test_cloudformation/test_cloudformation_custom_resources.py::test_create_custom_lambda_resource__verify_cfnresponse_failed
+
+ tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function
+ tests/test_core/test_docker.py::test_docker_is_running_and_available
+ tests/test_core/test_responses_module.py::TestResponsesMockWithPassThru::test_aws_and_http_requests
+ tests/test_core/test_responses_module.py::TestResponsesMockWithPassThru::test_http_requests
+ tests/test_events/test_events_lambdatriggers_integration.py::test_creating_bucket__invokes_lambda
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events0-ObjectCreated:Put]"
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events1-ObjectCreated:Put]"
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events3-ObjectCreated:Put]"
+ # TODO
+ tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_queue
+ tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_fifo_queue
+ # require py_partiql_parser
+ tests/test_s3/test_s3_select.py
+ tests/test_dynamodb/test_dynamodb_statements.py
+ # broken by new urllib3
+ tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_s3_upload_data
+ tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_s3_upload_file_using_requests
+ tests/test_s3/test_s3.py::test_upload_from_file_to_presigned_url
+ tests/test_s3/test_s3.py::test_put_chunked_with_v4_signature_in_body
+ tests/test_s3/test_s3.py::test_presigned_put_url_with_approved_headers
+ tests/test_s3/test_s3.py::test_presigned_put_url_with_custom_headers
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+
+ local serial_tests=(
+ # these tests set up credentials that are needed by the tests below
+ tests/test_core/test_importorder.py
+ # these tests apparently rely on some other test setting credentials
+ # up for them, so they need to be run separately, after the above
+ tests/test_awslambda_simple/test_lambda_simple.py::test_run_function{,_no_log}
+ tests/test_dynamodb/exceptions/test_dynamodb_exceptions.py
+ tests/test_dynamodb/exceptions/test_dynamodb_transactions.py::test_transaction_with_empty_key
+ tests/test_dynamodb/test_dynamodb.py::test_transact_write_items_failure__return_item
+ tests/test_dynamodb/test_dynamodb.py::test_transact_write_items_put_conditional_expressions
+ tests/test_dynamodb/test_dynamodb_update_expressions.py::test_update_different_map_elements_in_single_request
+ tests/test_events/test_events.py::test_start_replay_send_to_log_group
+ tests/test_lakeformation/test_resource_tags_integration.py
+ tests/test_redshiftdata
+ tests/test_resourcegroupstaggingapi/test_server.py::test_resourcegroupstaggingapi_list
+ tests/test_s3/test_s3.py::test_delete_bucket_cors
+ tests/test_s3/test_s3.py::test_delete_objects_percent_encoded
+ tests/test_s3/test_s3.py::test_delete_versioned_bucket_returns_metadata
+ tests/test_s3/test_s3_copyobject.py::test_copy_key_boto3_with_args
+ tests/test_s3/test_s3_copyobject.py::test_copy_key_boto3_with_args__using_multipart
+ tests/test_s3/test_s3_file_handles.py::TestS3FileHandleClosuresUsingMocks
+ tests/test_s3/test_s3_list_object_versions.py
+ tests/test_s3/test_s3_tagging.py
+ tests/test_s3control/test_s3control_access_points.py::test_delete_access_point
+ tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_can_handle_multiple_services
+ )
+
+ EPYTEST_XDIST= epytest "${serial_tests[@]}"
+
+ EPYTEST_DESELECT+=( "${serial_tests[@]}" )
+ epytest -m 'not network'
+}
diff --git a/dev-python/moto/moto-5.0.0.ebuild b/dev-python/moto/moto-5.0.0.ebuild
new file mode 100644
index 000000000000..f5be3a7de576
--- /dev/null
+++ b/dev-python/moto/moto-5.0.0.ebuild
@@ -0,0 +1,140 @@
+# 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 pypi
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.14.0[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.3.1[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.10.1[${PYTHON_USEDEP}]
+ >=dev-python/jsondiff-1.1.2[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ >=dev-python/sure-1.4.11[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ # broken code (local variable used referenced before definition)
+ tests/test_appsync/test_appsync_schema.py
+ # Needs network (or docker?) but not marked as such, bug #807031
+ # TODO: report upstream
+ tests/test_awslambda/test_lambda_layers_invoked.py::test_invoke_local_lambda_layers
+ tests/test_batch/test_batch_jobs.py::test_cancel_pending_job
+ tests/test_batch/test_batch_jobs.py::test_cancel_running_job
+ tests/test_batch/test_batch_jobs.py::test_container_overrides
+ tests/test_batch/test_batch_jobs.py::test_dependencies
+ tests/test_batch/test_batch_jobs.py::test_failed_dependencies
+ tests/test_batch/test_batch_jobs.py::test_failed_job
+ tests/test_batch/test_batch_jobs.py::test_submit_job_array_size
+ tests/test_batch/test_batch_jobs.py::test_terminate_job
+ tests/test_batch/test_batch_jobs.py::test_terminate_nonexisting_job
+ tests/test_cloudformation/test_cloudformation_custom_resources.py::test_create_custom_lambda_resource__verify_cfnresponse_failed
+
+ tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function
+ tests/test_core/test_docker.py::test_docker_is_running_and_available
+ tests/test_core/test_request_passthrough.py
+ tests/test_core/test_responses_module.py::TestResponsesMockWithPassThru::test_aws_and_http_requests
+ tests/test_core/test_responses_module.py::TestResponsesMockWithPassThru::test_http_requests
+ tests/test_events/test_events_lambdatriggers_integration.py::test_creating_bucket__invokes_lambda
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events0-ObjectCreated:Put]"
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events1-ObjectCreated:Put]"
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events3-ObjectCreated:Put]"
+ # TODO
+ tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_queue
+ tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_fifo_queue
+ # require py_partiql_parser
+ tests/test_s3/test_s3_select.py
+ tests/test_dynamodb/test_dynamodb_statements.py
+ # broken by new urllib3
+ tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_s3_upload_data
+ tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_s3_upload_file_using_requests
+ tests/test_s3/test_s3.py::test_upload_from_file_to_presigned_url
+ tests/test_s3/test_s3.py::test_put_chunked_with_v4_signature_in_body
+ tests/test_s3/test_s3.py::test_presigned_put_url_with_approved_headers
+ tests/test_s3/test_s3.py::test_presigned_put_url_with_custom_headers
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+
+ local serial_tests=(
+ # these tests set up credentials that are needed by the tests below
+ tests/test_core/test_importorder.py
+ # these tests apparently rely on some other test setting credentials
+ # up for them, so they need to be run separately, after the above
+ tests/test_awslambda_simple/test_lambda_simple.py::test_run_function{,_no_log}
+ tests/test_dynamodb/exceptions/test_dynamodb_exceptions.py
+ tests/test_dynamodb/exceptions/test_dynamodb_transactions.py::test_transaction_with_empty_key
+ tests/test_dynamodb/test_dynamodb.py::test_transact_write_items_failure__return_item
+ tests/test_dynamodb/test_dynamodb.py::test_transact_write_items_put_conditional_expressions
+ tests/test_dynamodb/test_dynamodb_update_expressions.py::test_update_different_map_elements_in_single_request
+ tests/test_events/test_events.py::test_start_replay_send_to_log_group
+ tests/test_lakeformation/test_resource_tags_integration.py
+ tests/test_redshiftdata
+ tests/test_resourcegroupstaggingapi/test_server.py::test_resourcegroupstaggingapi_list
+ tests/test_s3/test_s3.py::test_delete_bucket_cors
+ tests/test_s3/test_s3.py::test_delete_objects_percent_encoded
+ tests/test_s3/test_s3.py::test_delete_versioned_bucket_returns_metadata
+ tests/test_s3/test_s3_copyobject.py::test_copy_key_boto3_with_args
+ tests/test_s3/test_s3_copyobject.py::test_copy_key_boto3_with_args__using_multipart
+ tests/test_s3/test_s3_file_handles.py::TestS3FileHandleClosuresUsingMocks
+ tests/test_s3/test_s3_list_object_versions.py
+ tests/test_s3/test_s3_tagging.py
+ tests/test_s3control/test_s3control_access_points.py::test_delete_access_point
+ tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_can_handle_multiple_services
+ tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_is_reachable
+ )
+
+ EPYTEST_XDIST= epytest "${serial_tests[@]}"
+
+ EPYTEST_DESELECT+=( "${serial_tests[@]}" )
+ epytest -m 'not network'
+}
diff --git a/dev-python/overrides/Manifest b/dev-python/overrides/Manifest
index 1e95c5ff0932..90f754afc70f 100644
--- a/dev-python/overrides/Manifest
+++ b/dev-python/overrides/Manifest
@@ -1,2 +1,3 @@
DIST overrides-7.4.0.tar.gz 24804 BLAKE2B 9a9657d15ad835695d116559f1e6f51e14d1a0a9b5a237b2d468d9c6fd8d86368af53871490c257d7e6843fe02113a874524b8e55f4b3c9bcc7c827714cd5f44 SHA512 6ffd3b38997fd207d8ef9876ba9c328ef244b39300d22ae8c8bf63862f160b485d82b99d36d24abd1676fdddd39e5324eb0f1cf8629a0e17ac96956d165b6afd
DIST overrides-7.6.0.tar.gz 22773 BLAKE2B 159f68670f897a37ee12023dbe0f88ea59c8c41412054fa1124e39916b665a590ff83ded0ca11d49a67071358ebc9d0c1fc6e46b7b8de19bee379c8d786ab48e SHA512 1d72da8738b2faacd8fd5698f86cd878d23ade607f89dabbd47b6d808c06732ad6eedc4f2547ba5f0aee321ced490ff16566c47e732048743506ec4261dcc6d2
+DIST overrides-7.7.0.tar.gz 22812 BLAKE2B e51af6806e741f18fbfda57824e8f0db9f77686719b287c2b8abb8a33925c2ded8ac3fd40cb097cfcad60e06dcf5ced291e278b03a28afe15a6a6312306d200b SHA512 b2ad06da01e657839c5cbd62c49aa1022c4302fad44fd6b1a57e623e27d1c9d8cabdd9bf9c9a02c87a3b3618a662b922533cf407d17efa43769b0fc6360b5073
diff --git a/dev-python/overrides/overrides-7.7.0.ebuild b/dev-python/overrides/overrides-7.7.0.ebuild
new file mode 100644
index 000000000000..fcb12978fd7e
--- /dev/null
+++ b/dev-python/overrides/overrides-7.7.0.ebuild
@@ -0,0 +1,21 @@
+# 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="A decorator to automatically detect mismatch when overriding a method."
+HOMEPAGE="
+ https://pypi.org/project/overrides/
+ https://github.com/mkorpela/overrides/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+distutils_enable_tests pytest
diff --git a/dev-python/psycopg/files/psycopg-3.1.17-musl.patch b/dev-python/psycopg/files/psycopg-3.1.17-musl.patch
new file mode 100644
index 000000000000..ca1689931ed8
--- /dev/null
+++ b/dev-python/psycopg/files/psycopg-3.1.17-musl.patch
@@ -0,0 +1,34 @@
+From eeb662bf89e9ffdb3e6fc40eb30d0b53e0b4bece Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 27 Jan 2024 15:28:34 +0100
+Subject: [PATCH] fix: add `libc.so` fallback for musl systems to the ctypes
+ impl
+
+Add a fallback to `libc.so` library name to fix loading the ctypes
+implementation on musl systems. On musl, `find_library("c")` does
+not work (the problem has been reported to CPython in 2014, and has not
+been resolved yet), causing the module to fail on `assert libcname`.
+Instead, add a fallback to using `libc.so` and let ctypes raise
+an exception if such a library does not exist.
+---
+ psycopg/psycopg/pq/_pq_ctypes.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py
+index 9d4dd181..3ecff080 100644
+--- a/psycopg/psycopg/pq/_pq_ctypes.py
++++ b/psycopg/psycopg/pq/_pq_ctypes.py
+@@ -28,8 +28,8 @@ class FILE(Structure):
+ FILE_ptr = POINTER(FILE)
+
+ if sys.platform == "linux":
+- libcname = ctypes.util.find_library("c")
+- assert libcname
++ # find_library("c") does not work on musl, fall back to libc.so instead
++ libcname = ctypes.util.find_library("c") or "libc.so"
+ libc = ctypes.cdll.LoadLibrary(libcname)
+
+ fdopen = libc.fdopen
+--
+2.43.0
+
diff --git a/dev-python/psycopg/psycopg-3.1.17.ebuild b/dev-python/psycopg/psycopg-3.1.17.ebuild
index e740144c65f0..68148e58613f 100644
--- a/dev-python/psycopg/psycopg-3.1.17.ebuild
+++ b/dev-python/psycopg/psycopg-3.1.17.ebuild
@@ -3,6 +3,7 @@
EAPI=8
+DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
@@ -18,20 +19,29 @@ SRC_URI="
https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
-S=${WORKDIR}/${P}/psycopg
LICENSE="LGPL-3+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="+native-extensions"
DEPEND="
- >=dev-db/postgresql-8.1:*
+ native-extensions? (
+ >=dev-db/postgresql-8.1:=
+ )
+ !native-extensions? (
+ >=dev-db/postgresql-8.1:*
+ )
"
RDEPEND="
${DEPEND}
>=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}]
"
BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/tomli[${PYTHON_USEDEP}]
+ )
test? (
>=dev-db/postgresql-8.1[server]
dev-python/anyio[${PYTHON_USEDEP}]
@@ -41,9 +51,27 @@ BDEPEND="
distutils_enable_tests pytest
-src_test() {
- # tests are lurking in top-level directory
+PATCHES=(
+ # https://github.com/psycopg/psycopg/pull/725
+ "${FILESDIR}/${P}-musl.patch"
+)
+
+python_compile() {
+ # Python code + ctypes backend
+ cd psycopg || die
+ distutils-r1_python_compile
+
+ # optional C backend
+ if use native-extensions && [[ ${EPYTHON} != pypy3 ]]; then
+ local DISTUTILS_USE_PEP517=standalone
+ cd ../psycopg_c || die
+ distutils-r1_python_compile
+ fi
cd .. || die
+}
+
+src_test() {
+ rm -r psycopg{,_c} || die
initdb -D "${T}"/pgsql || die
# TODO: random port
@@ -70,7 +98,17 @@ python_test() {
tests/test_dns_srv.py::test_srv
)
+ local impls=( python )
+ if use native-extensions && [[ ${EPYTHON} != pypy3 ]]; then
+ impls+=( c )
+ fi
+
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # leak and timing tests are fragile whereas slow tests are slow
- epytest -p anyio -k "not leak" -m "not timing and not slow"
+ local -x PSYCOPG_IMPL
+ for PSYCOPG_IMPL in "${impls[@]}"; do
+ einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
+ # leak and timing tests are fragile whereas slow tests are slow
+ epytest -p anyio -k "not leak" \
+ -m "not timing and not slow and not flakey"
+ done
}
diff --git a/dev-python/pygit2/Manifest b/dev-python/pygit2/Manifest
index 7477a1672f5f..1868f384076a 100644
--- a/dev-python/pygit2/Manifest
+++ b/dev-python/pygit2/Manifest
@@ -1 +1,2 @@
DIST pygit2-1.13.3.tar.gz 752098 BLAKE2B 474c7e4cf92ec81c128fec1ff6222aa524a8dbf291c7ad350a1f150536442a518dbcf6c5ed2af2902265bcb04f34effb258c30e983bf52d1a93d477da4fce00c SHA512 def3d7b4df43ef231c488720a47cef91ad1e9a0568745869cec63f8a2ccfa7ad0be4c40b1cab973ef34e493d9451b33071aa64dc7fb8a8013fcdd1c6f6a45ef1
+DIST pygit2-1.14.0.tar.gz 765357 BLAKE2B fd36958cd64808d478e1c3bd6e6fc7714749c2b73cbf59f71c63ce3e37168df7196be143b0d8fbd724a7b090a06572cd0df111eea87becf9186be2ec4165104d SHA512 117858589c7cda9fe3c7d085c3577b5dfe1792335d58420349060ba45722adc59a479091e0c00e95298cdf705af9905236b3f54ccd75f82ca4704d4580e723be
diff --git a/dev-python/pygit2/pygit2-1.14.0.ebuild b/dev-python/pygit2/pygit2-1.14.0.ebuild
new file mode 100644
index 000000000000..5584ce17c02d
--- /dev/null
+++ b/dev-python/pygit2/pygit2-1.14.0.ebuild
@@ -0,0 +1,45 @@
+# 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} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for libgit2"
+HOMEPAGE="
+ https://github.com/libgit2/pygit2/
+ https://pypi.org/project/pygit2/
+"
+
+LICENSE="GPL-2-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+DEPEND="
+ =dev-libs/libgit2-1.7*:=
+"
+BDEPEND="
+ >=dev-python/cffi-1.16.0:=[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unconditionally prevent it from using network
+ sed -i -e '/has_network/s:True:False:' test/utils.py || die
+}
+
+src_test() {
+ rm -r pygit2 || die
+ distutils-r1_src_test
+}
diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest
index be28c571c189..be65f4ce38e8 100644
--- a/dev-python/pytest/Manifest
+++ b/dev-python/pytest/Manifest
@@ -1 +1,2 @@
DIST pytest-7.4.4.tar.gz 1357116 BLAKE2B 0bf281b3d4b7b2eb7805423a75c8c2befa820cc230318511e5a2d5ea35321a78a2603d5dbc033414ed73171525371efa9d9f54083d5638fc752c1c218e6d53aa SHA512 28a259dac6739683c131993409d508e10fbfee461291b8fc7697dd83f30725a3c60e681ba00b5669a215af6a5e683f07a329485d780acc9ad0372a6552f783a1
+DIST pytest-8.0.0.tar.gz 1395242 BLAKE2B 99d0dce33a2a9c0c421777779584b6f74950e27c4a3a64daaf9fbb9d6a28583cff1890ebd6f471e1ffdc6f9d3cfc69deb513b6884ec216a7e95b16eba8c59c5e SHA512 18c09d378e02a5b33bdf269aa27b6a4e84d43c46a702d34252ddf01a7cab3d56c8c9793ed4605ae041fc8c8845016b69dba4eb1f723756bab3704ab3e079b551
diff --git a/dev-python/pytest/pytest-8.0.0.ebuild b/dev-python/pytest/pytest-8.0.0.ebuild
new file mode 100644
index 000000000000..97dddf035948
--- /dev/null
+++ b/dev-python/pytest/pytest-8.0.0.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Simple powerful testing with Python"
+HOMEPAGE="
+ https://pytest.org/
+ https://github.com/pytest-dev/pytest/
+ https://pypi.org/project/pytest/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/iniconfig[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-4.0.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ >=dev-python/tomli-1.0.0[${PYTHON_USEDEP}]
+ ' 3.{9..10})
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmlschema[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_test() {
+ # workaround new readline defaults
+ echo "set enable-bracketed-paste off" > "${T}"/inputrc || die
+ local -x INPUTRC="${T}"/inputrc
+ distutils-r1_src_test
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x COLUMNS=80
+
+ local EPYTEST_DESELECT=(
+ # broken by epytest args
+ testing/test_warnings.py::test_works_with_filterwarnings
+
+ # tend to be broken by random pytest plugins
+ # (these tests patch PYTEST_DISABLE_PLUGIN_AUTOLOAD out)
+ testing/test_helpconfig.py::test_version_less_verbose
+ testing/test_helpconfig.py::test_version_verbose
+ testing/test_junitxml.py::test_random_report_log_xdist
+ testing/test_junitxml.py::test_runs_twice_xdist
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_normal_count
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_verbose
+ testing/test_terminal.py::TestProgressWithTeardown::test_xdist_normal
+ testing/test_terminal.py::TestTerminalFunctional::test_header_trailer_info
+ testing/test_terminal.py::TestTerminalFunctional::test_no_header_trailer_info
+
+ # unstable with xdist
+ testing/test_terminal.py::TestTerminalFunctional::test_verbose_reporting_xdist
+
+ # TODO (XPASS)
+ testing/test_debugging.py::TestDebuggingBreakpoints::test_pdb_not_altered
+ testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_simple
+ testing/test_debugging.py::TestPDB::test_pdb_interaction_capturing_twice
+ testing/test_debugging.py::TestPDB::test_pdb_with_injected_do_debug
+ testing/test_debugging.py::test_pdb_suspends_fixture_capturing
+
+ # setuptools warnings
+ testing/acceptance_test.py::TestInvocationVariants::test_cmdline_python_namespace_package
+
+ # times out
+ testing/test_debugging.py::TestPDB::test_pdb_interaction_exception
+ )
+
+ [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=(
+ # regressions on pypy3.9
+ # https://github.com/pytest-dev/pytest/issues/9787
+ testing/test_skipping.py::test_errors_in_xfail_skip_expressions
+ testing/test_unraisableexception.py
+ )
+
+ epytest -p xdist -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/setuptools-gettext/Manifest b/dev-python/setuptools-gettext/Manifest
index e9dc29e14b32..7d2a1dd08bfe 100644
--- a/dev-python/setuptools-gettext/Manifest
+++ b/dev-python/setuptools-gettext/Manifest
@@ -1 +1,2 @@
DIST setuptools-gettext-0.1.8.tar.gz 15548 BLAKE2B 4e1dcd219fca132e859a44e7ab86f0c81ac2dfccf5d2aca89ac05a2a3a50fec715a5e23e44173e741330d874d1f721ac8ec9d73d79b586ab605fb281aba8aafe SHA512 55b6512061565f210596972db3033d3d4f555428d23d1cac93feb3ea540461e908585d13157bcf97335f07b5a86e0b823b15457fe2f107ffc49e2e1b0c7a0c1e
+DIST setuptools-gettext-0.1.9.tar.gz 14490 BLAKE2B a233bb41124d2e927adc24aace620e7c9cd1dfd6e0a2f39343f2d9aaded434f87f2c106ddc19446cc9f4ebf39940091a93fc1375db22c8988e63425e3a5ebdde SHA512 7995c6b980429fba69aa6da2451d1cafb5035bdc02820c6ef729683d0689df594bd66a69fe142cf9f0f70f26858414a30cd9050180f9f1fdf8e81ea53bfcbbda
diff --git a/dev-python/setuptools-gettext/setuptools-gettext-0.1.9.ebuild b/dev-python/setuptools-gettext/setuptools-gettext-0.1.9.ebuild
new file mode 100644
index 000000000000..3cfa5da44d41
--- /dev/null
+++ b/dev-python/setuptools-gettext/setuptools-gettext-0.1.9.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2023-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="Setuptools plugin for building mo files"
+HOMEPAGE="
+ https://pypi.org/project/setuptools-gettext/
+ https://github.com/breezy-team/setuptools-gettext
+"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.2.1[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+python_test() {
+ cd example || die
+ distutils_pep517_install "${T}/${EPYTHON}"
+ if [[ ! -f ${T}/${EPYTHON}/usr/share/locale/nl/LC_MESSAGES/hallowereld.mo ]]
+ then
+ die ".mo file not installed"
+ fi
+}
diff --git a/dev-python/tables/tables-3.9.2.ebuild b/dev-python/tables/tables-3.9.2.ebuild
index 3fef8a11414f..e4b4df689c49 100644
--- a/dev-python/tables/tables-3.9.2.ebuild
+++ b/dev-python/tables/tables-3.9.2.ebuild
@@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
PYTHON_REQ_USE="threads(+)"
inherit distutils-r1 prefix pypi
diff --git a/dev-python/tavern/Manifest b/dev-python/tavern/Manifest
index b94f9a0f0cf5..9c3578e1da77 100644
--- a/dev-python/tavern/Manifest
+++ b/dev-python/tavern/Manifest
@@ -1,3 +1,4 @@
DIST tavern-2.7.1.gh.tar.gz 220388 BLAKE2B 3e689ff0c29ddf2e53e018f86c79ea7e4e89e586d5f28b79c93263a10c4e7738fbf4c66df81fd55bc13a812223e538726f3f9b9f8bdbb94e7f043e90c70af2ce SHA512 de2822ec746c2ccb27a401c07bc5618539e4ad309e56437d0c66669612f48658fc352e42a0b4db94f9c183a159bbdcbeabdf30bebeac03c5f6a9f51bc7014b76
DIST tavern-2.8.0.gh.tar.gz 246475 BLAKE2B 373d58205462bbe34deffdcb1f87700e121e9fceee77700bda7ef76787d3c1b4ce2fdba8eb4a4e1369814665ed0c6562268f8acfe3b85eb92ff260dd413caaee SHA512 b54ba992f328623b8bddbafd67eb7e124718aa7e01435ac3c1132451b450e7a8af49618fec16c0d47d0300c5cafe78ffab6991abde880986d7381c8b885e22ad
DIST tavern-2.9.0.gh.tar.gz 246867 BLAKE2B 77cb0cd54223ad401dba429abae503b102b208603e3ecaf0cdc84a71f0928beabd0b783ef5fbf448186d60e400c01ab67505a92031a097bcb68e4cbdd67d07d7 SHA512 4401e9c96f4f721f8d28f03e2a69bdc5e0daeb348b5a3356f1d9a996f81377f9fc5d8481f58dd6106904c89177324e541595e325f6d1c18e9028fa01dd022d4d
+DIST tavern-2.9.1.gh.tar.gz 247864 BLAKE2B a12552ead7afb2b9e0ab75fab958235d538221d15162063772b7838c33a3c72795058af8d244005eee72865e8388772bf92516402f2944e89d2ab680f1f7da4e SHA512 a7f882ca7c3337181f2a68b31f363317c50ee7e073cfbd4737f6e31a13e0af175d09e9fed04959bd0fe6ffa215c54a34d10ee3e1650a52cd566f2a7006840c43
diff --git a/dev-python/tavern/tavern-2.9.1.ebuild b/dev-python/tavern/tavern-2.9.1.ebuild
new file mode 100644
index 000000000000..d8b4de0ba510
--- /dev/null
+++ b/dev-python/tavern/tavern-2.9.1.ebuild
@@ -0,0 +1,65 @@
+# 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="A tool, library, and Pytest plugin for testing RESTful APIs"
+HOMEPAGE="
+ https://github.com/taverntesting/tavern/
+ https://pypi.org/project/tavern/
+"
+SRC_URI="
+ https://github.com/taverntesting/tavern/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/jmespath-1[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4[${PYTHON_USEDEP}]
+ >=dev-python/paho-mqtt-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7[${PYTHON_USEDEP}]
+ >=dev-python/python-box-6[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/Faker[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # strip unnecessary pins, upstream doesn't update them a lot
+ sed -i -E -e 's:,?<=?[0-9.]+::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires grpc
+ tests/unit/test_extensions.py::TestGrpcCodes
+ )
+ local EPYTEST_IGNORE=(
+ # require grpc*
+ tavern/_plugins/grpc
+ tests/unit/tavern_grpc
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p tavern
+}
diff --git a/dev-python/toolz/toolz-0.12.1.ebuild b/dev-python/toolz/toolz-0.12.1.ebuild
index 1c3b9a66be9f..c431ea522de8 100644
--- a/dev-python/toolz/toolz-0.12.1.ebuild
+++ b/dev-python/toolz/toolz-0.12.1.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
inherit distutils-r1 pypi
diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest
index 8dc4c83a6301..d478e7d2dba1 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1,3 +1,4 @@
DIST trimesh-4.0.10.gh.tar.gz 13435507 BLAKE2B 9e60ac72af4020997b606738dba044b23914a50ec07bcb014defcf23b2d5afde279755cc244dccc2e0a482f3b10eab025f9a0ea9f37becb62067a65192c948b1 SHA512 783730dfedbbbb09c829240c11de3ee15a5518454335734cc98b25b289011fb4310e80c6a11d3fe7b83d0661e38d36e98650333a976fed210aa1dc9fa30d857b
DIST trimesh-4.0.8.gh.tar.gz 13434746 BLAKE2B 858ad7daf9cff3bbedef3ea124d6af1be96233b09a2bd9abd0d2cc43b6f981f844300a36dfef751caf1abf721dd0481a189e0d80ddba8a3fcacbe87183c3d26e SHA512 77472e954b9defdf39fac7813aad892f56f02da475801effdac7de28b6e28f6ca5a7c99fa51013e44435a2143f01a5a2be1e8419c1c81c0c02dca237b8e21dd3
DIST trimesh-4.0.9.gh.tar.gz 13435804 BLAKE2B 7e07ad04f7c08b01763ce0d4f50ad7a00fa4888f43abab92bbce495cb0c1dc8815e0c346e326f19c811fbe8d9d2657b45390016f1508e1d994ee529af182b2c1 SHA512 8d6d48a7889693536a54355efac5dc35eb2a8babeb5c93d71127e65935e7750d7330bd9b96b31b37dded7a5fd50151d39b6c38a29e0075374ee29ca975e5ed9d
+DIST trimesh-4.1.0.gh.tar.gz 13437739 BLAKE2B 4a5c54bd17506fa391404f825c2be47e34c3757b6380bb8af43b27b3b1f30f6518dc997f0ce6a20d87c7c8ced4c5f54092a58d6d03f5d73e4fe6cc8bbc62342e SHA512 77729d3b14f90d106fd79d1bddd0261cc1e6aeb3f3af7fcad9c9dacbd8fecea4f996944d5af232f2af46e274b14b657e0ad90700cd194afa9fb2a40dc3763c44
diff --git a/dev-python/trimesh/trimesh-4.1.0.ebuild b/dev-python/trimesh/trimesh-4.1.0.ebuild
new file mode 100644
index 000000000000..b621d3cf0967
--- /dev/null
+++ b/dev-python/trimesh/trimesh-4.1.0.ebuild
@@ -0,0 +1,68 @@
+# 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[${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}]
+ )
+"
+
+EPYTEST_TIMEOUT=900
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ 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
+}