summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Faker/Faker-24.3.0.ebuild40
-rw-r--r--dev-python/Faker/Manifest1
-rw-r--r--dev-python/aiohttp/Manifest2
-rw-r--r--dev-python/aiohttp/aiohttp-3.9.1.ebuild125
-rw-r--r--dev-python/aiohttp/aiohttp-3.9.2.ebuild125
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.65.ebuild58
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.65.ebuild67
-rw-r--r--dev-python/croniter/Manifest1
-rw-r--r--dev-python/croniter/croniter-2.0.3.ebuild31
-rw-r--r--dev-python/fonttools/Manifest2
-rw-r--r--dev-python/fonttools/fonttools-4.47.2.ebuild98
-rw-r--r--dev-python/fonttools/fonttools-4.48.1.ebuild98
-rw-r--r--dev-python/fsspec/Manifest1
-rw-r--r--dev-python/fsspec/fsspec-2024.3.1.ebuild70
-rw-r--r--dev-python/git-review/Manifest1
-rw-r--r--dev-python/git-review/git-review-2.4.0.ebuild41
-rw-r--r--dev-python/griffe/Manifest1
-rw-r--r--dev-python/griffe/griffe-0.42.1.ebuild45
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.22.3.ebuild87
-rw-r--r--dev-python/hypothesis/Manifest2
-rw-r--r--dev-python/hypothesis/hypothesis-6.99.8.ebuild90
-rw-r--r--dev-python/hypothesis/hypothesis-6.99.9.ebuild90
-rw-r--r--dev-python/jupyter-events/Manifest1
-rw-r--r--dev-python/jupyter-events/jupyter-events-0.10.0.ebuild41
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/license-expression/Manifest1
-rw-r--r--dev-python/license-expression/license-expression-30.3.0.ebuild34
-rw-r--r--dev-python/markupsafe/Manifest1
-rw-r--r--dev-python/markupsafe/markupsafe-2.1.4.ebuild25
-rw-r--r--dev-python/multidict/Manifest1
-rw-r--r--dev-python/multidict/multidict-6.0.4-r1.ebuild50
-rw-r--r--dev-python/pandas/pandas-2.1.4.ebuild1
-rw-r--r--dev-python/pandas/pandas-2.2.0-r1.ebuild1
-rw-r--r--dev-python/pandas/pandas-2.2.0.ebuild1
-rw-r--r--dev-python/pandas/pandas-2.2.1-r1.ebuild (renamed from dev-python/pandas/pandas-2.2.1.ebuild)1
-rw-r--r--dev-python/persist-queue/persist-queue-0.8.0.ebuild2
-rw-r--r--dev-python/persist-queue/persist-queue-0.8.1.ebuild2
-rw-r--r--dev-python/pyamg/Manifest1
-rw-r--r--dev-python/pyamg/pyamg-5.1.0.ebuild50
-rw-r--r--dev-python/pyarrow/Manifest1
-rw-r--r--dev-python/pyarrow/pyarrow-15.0.2.ebuild87
-rw-r--r--dev-python/pycairo/Manifest1
-rw-r--r--dev-python/pycairo/pycairo-1.25.1.ebuild73
-rw-r--r--dev-python/pytest-asyncio/Manifest1
-rw-r--r--dev-python/pytest-asyncio/pytest-asyncio-0.23.6.ebuild52
-rw-r--r--dev-python/pytest-twisted/Manifest1
-rw-r--r--dev-python/pytest-twisted/pytest-twisted-1.14.1.ebuild56
-rw-r--r--dev-python/python-openstackclient/Manifest1
-rw-r--r--dev-python/python-openstackclient/python-openstackclient-6.6.0.ebuild62
-rw-r--r--dev-python/sqlalchemy/Manifest2
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.4.52.ebuild2
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild111
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.26.ebuild111
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.28.ebuild2
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-23.0.0.ebuild121
-rw-r--r--dev-python/sqlglot/sqlglot-23.0.1.ebuild121
-rw-r--r--dev-python/tldextract/Manifest1
-rw-r--r--dev-python/tldextract/tldextract-5.1.2.ebuild40
-rw-r--r--dev-python/uvicorn/Manifest1
-rw-r--r--dev-python/uvicorn/uvicorn-0.28.1.ebuild75
-rw-r--r--dev-python/validators/Manifest1
-rw-r--r--dev-python/validators/validators-0.23.1.ebuild21
-rw-r--r--dev-python/watchdog/Manifest1
-rw-r--r--dev-python/watchdog/watchdog-3.0.0.ebuild50
-rw-r--r--dev-python/zope-interface/Manifest1
-rw-r--r--dev-python/zope-interface/zope-interface-6.1.ebuild51
73 files changed, 1427 insertions, 943 deletions
diff --git a/dev-python/Faker/Faker-24.3.0.ebuild b/dev-python/Faker/Faker-24.3.0.ebuild
new file mode 100644
index 000000000000..b726995539a4
--- /dev/null
+++ b/dev-python/Faker/Faker-24.3.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2022-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} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python package that generates fake data for you"
+HOMEPAGE="
+ https://github.com/joke2k/faker/
+ https://pypi.org/project/Faker/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
+ !dev-ruby/faker
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
+ epytest
+}
diff --git a/dev-python/Faker/Manifest b/dev-python/Faker/Manifest
index 4b32189ff037..46d427870ed1 100644
--- a/dev-python/Faker/Manifest
+++ b/dev-python/Faker/Manifest
@@ -1,3 +1,4 @@
DIST Faker-23.3.0.tar.gz 1716346 BLAKE2B 21be02c45fdaeed398ce157b9874985791dff67784b60198323ffae8f8c3a3e82932ebc152893aed40efb5d73e1e775c52b364c62411b59e48ce3d897971ba92 SHA512 2bdcf86adae1eeee257ee24df140894451d13854afdde8794d08072b9b572e48fcacb74597f64da9f069e914db0f27c8f4e74d746a25bbee8421310749468b82
DIST Faker-24.1.0.tar.gz 1716789 BLAKE2B 60a8571cd9aae2c1a47aabcb50d85507d78b5635332d24036e2b28756c4e7da3950074eff906200b9eefee28d9594dba3df7ee17fd815308e01d1cf8ed422afb SHA512 a467cfab41a074ac88c398640b02898f96ced7150d5989270573fd5765e880e539932046b5829b3428d087b5f6f97c9c5ea51725003abbf2ae06e8862fd86fef
DIST Faker-24.2.0.tar.gz 1723713 BLAKE2B 75ea69214239084a59284a95a1cb2585671aa770fd78f853030ae7cb32281370e7505ba05262958d3511ea131ebab6ef1175953be6f73a048160eaa8536a6364 SHA512 85b5acf252f6163cdd87b8f8269360e6e204899f1645ed0f50302719ad0386e1c1fd766904cb239222c1d6120429f33a69deaf3d331743685333e35e12790a43
+DIST Faker-24.3.0.tar.gz 1724127 BLAKE2B 2962a650dc5c09f699a766eb184d07aa28d8a0ef094f28d17e13ccbeadbe9682160e3783196f4259bdf4543710ec23839a85deeb53e668663ed7f0c17f9691fd SHA512 9a5db3bff17901e8841329b776bffd879b0f8c29117c316fb63e01b98d446b663f55a4aef4113682ea2258969de88993be885183bfa335e39955e6f41eee4359
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index fe3b1587cfae..a4b8b3ee4094 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,3 +1 @@
-DIST aiohttp-3.9.1.tar.gz 7482118 BLAKE2B 2150ae98f799f9c6e1f48987bfd8b1847439d8b87cd21417676c2fa5c971fcdc13c3f933dfdd5eceb92b47ad604d16c2a71d884118d8bde1816f2d944d2930a2 SHA512 3288085d5fbcfb7e3664f906345aeab6f989f2318babae6bf5cc3955de48707e9de56ce3b9553d6ee35c72b8f884dc1fd01861a638ee738573e78a203e6a9dec
-DIST aiohttp-3.9.2.tar.gz 7499640 BLAKE2B 7e840d4493345b0cfa9315c562703de94cb550dc6ead293910552dab3e4fe13a47af210827452544b3c16b5fbc9d02d1e62a6cb4fadd54b0b4f1dd93b3b5c038 SHA512 8e9c41b45d1ffd99ef819a6c46f16dd7c92dd2416c383ad9c3d810c055cc0a0db4e7ab15e7ef5b3550eaa68b18538b246b45a969ce7d76cbce667209c7477643
DIST aiohttp-3.9.3.tar.gz 7499669 BLAKE2B 0712df73af60cc9cbf12f0a4e063b6aa6da1b19b0668effe16672a4b7ca3f24cc831218ec8d4672cd86acd4335a75e16f94133dbb1bf783baf8ed96e471f3eec SHA512 6236f27b6def0c3bba1b5fc59f4af74f8076aa369cf5c1b9bd9ff9dee1c71ee49387ded812875da9450130e92d2091fd01f0608b25b03ff37e99162b89120fd7
diff --git a/dev-python/aiohttp/aiohttp-3.9.1.ebuild b/dev-python/aiohttp/aiohttp-3.9.1.ebuild
deleted file mode 100644
index a43f62508b10..000000000000
--- a/dev-python/aiohttp/aiohttp-3.9.1.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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="HTTP client/server for asyncio"
-HOMEPAGE="
- https://github.com/aio-libs/aiohttp/
- https://pypi.org/project/aiohttp/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="test-rust"
-
-RDEPEND="
- >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
- >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
- dev-python/brotlicffi[${PYTHON_USEDEP}]
- >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
- >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
- >=dev-python/yarl-1.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- <dev-python/async-timeout-5[${PYTHON_USEDEP}]
- >=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
- ' 3.10)
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
- test? (
- dev-python/freezegun[${PYTHON_USEDEP}]
- www-servers/gunicorn[${PYTHON_USEDEP}]
- dev-python/pytest-forked[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/re-assert[${PYTHON_USEDEP}]
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' 'python3*')
- test-rust? (
- dev-python/trustme[${PYTHON_USEDEP}]
- )
- )
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # increase the timeout a little
- sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
- # xfail_strict fails on py3.10
- sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
- sed -i -e 's:-Werror::' Makefile || die
-
- distutils-r1_src_prepare
-}
-
-python_configure_all() {
- # workaround missing files
- mkdir tools || die
- > requirements/cython.txt || die
- > tools/gen.py || die
- chmod +x tools/gen.py || die
- # force rehashing first
- emake requirements/.hash/cython.txt.hash
- > .update-pip || die
- > .install-cython || die
- emake cythonize
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # proxy is not packaged
- tests/test_proxy_functional.py
- # python_on_whales is not packaged
- tests/autobahn/test_autobahn.py
- )
-
- local EPYTEST_DESELECT=(
- # Internet
- tests/test_client_session.py::test_client_session_timeout_zero
- # broken by irrelevant deprecation warnings
- tests/test_circular_imports.py::test_no_warnings
- # TODO
- tests/test_client_session.py::test_request_tracing_url_params
- # fragile timing test
- tests/test_imports.py::test_import_time
- # crash in time-machine
- # https://github.com/aio-libs/aiohttp/issues/7851
- # https://github.com/adamchainz/time-machine/issues/403
- tests/test_cookiejar.py::TestCookieJarSafe::test_max_age
- )
-
- case ${EPYTHON} in
- pypy3)
- # upstream unconditionally blocks building C extensions
- # on PyPy3 but the test suite needs an explicit switch,
- # sigh
- local -x AIOHTTP_NO_EXTENSIONS=1
-
- EPYTEST_IGNORE+=(
- # Skip tests requiring dev-python/re-assert -> dev-python/regex
- tests/test_streams.py
- tests/test_urldispatch.py
- tests/test_client_session.py
- tests/test_web_response.py
- )
- ;;
- esac
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin,pytest_forked
- rm -rf aiohttp || die
- epytest --forked
-}
diff --git a/dev-python/aiohttp/aiohttp-3.9.2.ebuild b/dev-python/aiohttp/aiohttp-3.9.2.ebuild
deleted file mode 100644
index dd8aa361c3de..000000000000
--- a/dev-python/aiohttp/aiohttp-3.9.2.ebuild
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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="HTTP client/server for asyncio"
-HOMEPAGE="
- https://github.com/aio-libs/aiohttp/
- https://pypi.org/project/aiohttp/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test-rust"
-
-RDEPEND="
- >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
- >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
- dev-python/brotlicffi[${PYTHON_USEDEP}]
- >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
- >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
- >=dev-python/yarl-1.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- <dev-python/async-timeout-5[${PYTHON_USEDEP}]
- >=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
- ' 3.10)
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
- test? (
- dev-python/freezegun[${PYTHON_USEDEP}]
- www-servers/gunicorn[${PYTHON_USEDEP}]
- dev-python/pytest-forked[${PYTHON_USEDEP}]
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/re-assert[${PYTHON_USEDEP}]
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' 'python3*')
- test-rust? (
- dev-python/trustme[${PYTHON_USEDEP}]
- )
- )
-"
-
-DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- # increase the timeout a little
- sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
- # xfail_strict fails on py3.10
- sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
- sed -i -e 's:-Werror::' Makefile || die
-
- distutils-r1_src_prepare
-}
-
-python_configure_all() {
- # workaround missing files
- mkdir tools || die
- > requirements/cython.txt || die
- > tools/gen.py || die
- chmod +x tools/gen.py || die
- # force rehashing first
- emake requirements/.hash/cython.txt.hash
- > .update-pip || die
- > .install-cython || die
- emake cythonize
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # proxy is not packaged
- tests/test_proxy_functional.py
- # python_on_whales is not packaged
- tests/autobahn/test_autobahn.py
- )
-
- local EPYTEST_DESELECT=(
- # Internet
- tests/test_client_session.py::test_client_session_timeout_zero
- # broken by irrelevant deprecation warnings
- tests/test_circular_imports.py::test_no_warnings
- # TODO
- tests/test_client_session.py::test_request_tracing_url_params
- # fragile timing test
- tests/test_imports.py::test_import_time
- # crash in time-machine
- # https://github.com/aio-libs/aiohttp/issues/7851
- # https://github.com/adamchainz/time-machine/issues/403
- tests/test_cookiejar.py::TestCookieJarSafe::test_max_age
- )
-
- case ${EPYTHON} in
- pypy3)
- # upstream unconditionally blocks building C extensions
- # on PyPy3 but the test suite needs an explicit switch,
- # sigh
- local -x AIOHTTP_NO_EXTENSIONS=1
-
- EPYTEST_IGNORE+=(
- # Skip tests requiring dev-python/re-assert -> dev-python/regex
- tests/test_streams.py
- tests/test_urldispatch.py
- tests/test_client_session.py
- tests/test_web_response.py
- )
- ;;
- esac
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin,pytest_forked
- rm -rf aiohttp || die
- epytest --forked
-}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 73991e114760..403c5280372c 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.34.54.gh.tar.gz 779564 BLAKE2B f61a74f6a317af6f180edb047e8c37e55c2d497c9507728eb098e2627d071aa56bae037a4bb8582774a49b20d0c1794a8793ab3d8e92d90071de3caf1d32bc2b SHA512 e3549e7b7ad254eafff60eb9bd21aa179f2840c2097874fb0a0602e767dbcf203742629eeaffe6432db65c3f76c326032e700cebb7ea92ebb7305ae6e26173ba
DIST boto3-1.34.59.gh.tar.gz 782060 BLAKE2B d46f20f101f36380a17cb5c1bd511adde1b9fb01981566b863d192d0b93d9965a6720dc67ba47d4e1da94b3994dc5a6e59b1effa4e5c4f5e1e25f1683d99c40e SHA512 5d1d34339d60cd5c2efb60da885c4f92e5c245ef95bdaf46631d2938adf9fb08f7fba86ce2dd3e6382291d0d72c81aa9698cfe327d88c0b8ae8812d9c1e0b37c
DIST boto3-1.34.64.gh.tar.gz 784663 BLAKE2B 6a4b335dba37ea09d7b2cec152699972b0b1db6c9a538435f565fcf6694d0f7bcff8e1dcec04f3a8a00844582eb8f5b3635b6425404020e760a35809c6d868b8 SHA512 39297271578a5766d95dcef540fa9f29831680ae13e618b3aa0890cf888e4e7f8c509d3df15e8003ab94c66c7de1442adf74a1bb38a8d5cb9bbab46f00fbc17a
+DIST boto3-1.34.65.gh.tar.gz 785163 BLAKE2B 15596df62933b72311f7f6cb7a9c710355ad040e4be8bd8c78481a1a69ccaafbc50ed427466da985c0031d5d1e440ba78fdc751655921d08f15c506d29b2d5d2 SHA512 12ded3641b4c18425886d9f017e157e22b587386d17a16914918deb68c5e8b13369e40af1012a8917621fd97c0d076057bf95d3e4a9ae367f9ccec3d88aade96
diff --git a/dev-python/boto3/boto3-1.34.65.ebuild b/dev-python/boto3/boto3-1.34.65.ebuild
new file mode 100644
index 000000000000..c6201d2c5818
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.65.ebuild
@@ -0,0 +1,58 @@
+# 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}]
+"
+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 6e0024abcafd..d52deaf76ef9 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.34.54.gh.tar.gz 12748623 BLAKE2B 2b4732636e0d7cf46e12fc2cf4320c7c4a89c79abe5102a06c0b60c61ca1f638edbfeda0248c3044dbfe594b3dcfe0e8e73f52011bcad0e96fa4c51f3b6b944f SHA512 36fbbd8ad1627b86723ffbb54149ffb7b740831cb31be2e9c0423d158c5755161ec853ef5f97f4fa2632116099266d5f8dc06e47fda6356f988eb39636f435aa
DIST botocore-1.34.59.gh.tar.gz 12764223 BLAKE2B 13347793764afb8ef51502149f490e5082e65a76a3f72eb484d60ea44542dc8026ddfd6e6cc0c90273f6f3fbdc82e42bc6ad5f2c434900a881208ff79edcbf6b SHA512 5afe577889fed68308a414982c12d36ddc9ce1d7d7b866c544d1f25226050772775c7ee04e490f72d1f355a1f68fcfcb7431d626fa9a85f76065f2576de511cf
DIST botocore-1.34.64.gh.tar.gz 12774647 BLAKE2B a41493d400b0f4f406a144aa968f0111ef2fa4bd739e43c6db8dddf4b70cfe68c714ec16875b942078a4bf8b9bd3a2dc596ea403c6e7dec6b076dccac7167c4b SHA512 66b7abf68d560ef87c94fbcde2738d8ce2c5bbd265678fab80d04966cdf1559c1ea3401dbcc6ef8e3f183a45ea1c3d31def8f1ce2c39135a3c247e73a18082b3
+DIST botocore-1.34.65.gh.tar.gz 12776587 BLAKE2B c2e54d007e910e5fb274655a0b8fcded4a44966b8f35097eed38ce8fe238cf694e0a26305df4e029115ee6e174314beb5d2934a08e36129388ccd8e2ca2903da SHA512 dd76e445f55b44bdf2b3b71aed2c5beec2332311af669dc04f073e885b54da3ccf79fd49bb5f97de71f6b3b7f36c6fd6f431164cde5b75241c7f89264fe0a4d6
diff --git a/dev-python/botocore/botocore-1.34.65.ebuild b/dev-python/botocore/botocore-1.34.65.ebuild
new file mode 100644
index 000000000000..857224b496b7
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.65.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/croniter/Manifest b/dev-python/croniter/Manifest
index 32a3c30e293c..341938db2bc0 100644
--- a/dev-python/croniter/Manifest
+++ b/dev-python/croniter/Manifest
@@ -1 +1,2 @@
DIST croniter-2.0.2.tar.gz 42739 BLAKE2B 3156c6676e38aead9efd425d92676620e6736bbccef7b4e53ca1ab91728f522e4aa9ac4b518205717e6bc7034dd231f90d6f6f5bc58d04da0c8f76ce8cbc1ff6 SHA512 f1ef58b21be070a4da7447322130bb2a7672572a78c0214d6df37428a8103234582c647747e76d890194dde8293dd2cc097a65484738a03423061545263417fe
+DIST croniter-2.0.3.tar.gz 43274 BLAKE2B 30efe8767d6705518a1f7f605f63ad0e114eb6fc0e5f8677aaed5627ff7c3f3923fb0858fe27c167146b494950a8dfe9b8c8b14a89cc47a715ea4528fffaac98 SHA512 28c6596dad10ffb0c8a682d959505713c3ac3188034c5f7d1771772805b57363a66a213f36b90b1208d897b35da5c8805c6f7e4744ff511e0c5b6da686bd7dbe
diff --git a/dev-python/croniter/croniter-2.0.3.ebuild b/dev-python/croniter/croniter-2.0.3.ebuild
new file mode 100644
index 000000000000..3b0cef363bb5
--- /dev/null
+++ b/dev-python/croniter/croniter-2.0.3.ebuild
@@ -0,0 +1,31 @@
+# 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="Python module to provide iteration for datetime object"
+HOMEPAGE="
+ https://github.com/kiorky/croniter/
+ https://pypi.org/project/croniter/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/tzlocal[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
index e979bea5e0e3..77f552a71543 100644
--- a/dev-python/fonttools/Manifest
+++ b/dev-python/fonttools/Manifest
@@ -1,4 +1,2 @@
-DIST fonttools-4.47.2.gh.tar.gz 3813471 BLAKE2B 7c478395e1c0cad52a29bc504bac235c4e198284a7f1f4b32e9db0704d3eeb56ea69d563a862239396fd1e67f47f168ae2f42676fe5ba3f9e1c356de8c5039f2 SHA512 03b6411c72ce38eeaa6401440d9612a37cd2ff6a686d7c6dbe7328a876f9e4369c06edea184ea72c1002b26b956d0196c241e40fe28b0ccf42f616ce9a700a07
-DIST fonttools-4.48.1.gh.tar.gz 3815962 BLAKE2B 86f93ddfbff0d3e5e165adc73908176ec3eee1d35d7009faa9827bc992d6bb5a11b95823596ae40ea739b117af7933fea0b768cf3a44d4cb770daa7db42048c9 SHA512 1f8336880575038f904873f6359b9c0a5885f14358c5560592b274db7aa2b96433770f5195e93ac04552f2580aadf0efc9268dcce9f0d178b78e75f5507dad67
DIST fonttools-4.49.0.gh.tar.gz 3818768 BLAKE2B add7c03762e6c09950f2abfb8b19e627f7ce367b73c48b02059ab308ee7f8475e94c575719a168166497261cb4762ec4959c7812ab5fc122477a7751a8fabdb9 SHA512 6caa108b92a9661f6761a4e1c65f05cabf0d4f6a6f2517d2a289afc5e60ad73c7e35ee283d1a206b1bcd2ec5861f70272e323b9041aa949c713dc531d2d056d2
DIST fonttools-4.50.0.gh.tar.gz 3823676 BLAKE2B ebcc19b3f2c8367147c7e05a514951d25497b1e6e224226e0831f566464b6d407e6a52a3b30620dbe87df1a0ce03d95cb5769cab15ee78822d218ccd81419263 SHA512 a169f18077f2c4f0ad8a46569a30b3e35ca2343e9f3d43cd362dafa26085f545dd9a42e7edb3054f9d37e1576117aa34a0c2b4adabc9fc29c076e69d3fdd66ee
diff --git a/dev-python/fonttools/fonttools-4.47.2.ebuild b/dev-python/fonttools/fonttools-4.47.2.ebuild
deleted file mode 100644
index 2a58b639d265..000000000000
--- a/dev-python/fonttools/fonttools-4.47.2.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# 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="xml(+)"
-
-inherit distutils-r1 virtualx
-
-DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
-HOMEPAGE="
- https://github.com/fonttools/fonttools/
- https://pypi.org/project/fonttools/
-"
-SRC_URI="
- https://github.com/fonttools/fonttools/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
-IUSE="+native-extensions"
-
-RDEPEND="
- >=dev-python/fs-2.4.9[${PYTHON_USEDEP}]
-"
-BDEPEND="
- native-extensions? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- ' 'python*')
- )
- test? (
- dev-python/brotlicffi[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- app-arch/zopfli
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # When dev-python/pytest-shutil is installed, we get weird import errors.
- # This is due to incomplete nesting in the Tests/ tree:
- #
- # Tests/feaLib/__init__.py
- # Tests/ufoLib/__init__.py
- # Tests/svgLib/path/__init__.py
- # Tests/otlLib/__init__.py
- # Tests/varLib/__init__.py
- #
- # This tree requires an __init__.py in Tests/svgLib/ too, bug #701148.
- touch Tests/svgLib/__init__.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_compile() {
- local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
- [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
- distutils-r1_python_compile
-}
-
-src_test() {
- # virtualx used when matplotlib is installed causing plot module tests to run
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # flaky test
- Tests/ttLib/woff2_test.py::WOFF2ReaderTest::test_get_normal_tables
- )
-
- if [[ ${EPYTHON} == pypy3 ]] &&
- has_version "dev-python/pyxattr[${PYTHON_USEDEP}]" &&
- {
- has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
- has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
- }
- then
- EPYTEST_DESELECT+=(
- # affected by a bug in PyPy/pyxattr
- # https://github.com/iustin/pyxattr/issues/41
- Tests/t1Lib/t1Lib_test.py::ReadWriteTest::test_read_with_path
- )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest \
- -p rerunfailures --reruns=5 \
- Tests fontTools || die -n "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/fonttools/fonttools-4.48.1.ebuild b/dev-python/fonttools/fonttools-4.48.1.ebuild
deleted file mode 100644
index 5d7ead30d21f..000000000000
--- a/dev-python/fonttools/fonttools-4.48.1.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# 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="xml(+)"
-
-inherit distutils-r1 virtualx
-
-DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
-HOMEPAGE="
- https://github.com/fonttools/fonttools/
- https://pypi.org/project/fonttools/
-"
-SRC_URI="
- https://github.com/fonttools/fonttools/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-IUSE="+native-extensions"
-
-RDEPEND="
- >=dev-python/fs-2.4.9[${PYTHON_USEDEP}]
-"
-BDEPEND="
- native-extensions? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- ' 'python*')
- )
- test? (
- dev-python/brotlicffi[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- app-arch/zopfli
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # When dev-python/pytest-shutil is installed, we get weird import errors.
- # This is due to incomplete nesting in the Tests/ tree:
- #
- # Tests/feaLib/__init__.py
- # Tests/ufoLib/__init__.py
- # Tests/svgLib/path/__init__.py
- # Tests/otlLib/__init__.py
- # Tests/varLib/__init__.py
- #
- # This tree requires an __init__.py in Tests/svgLib/ too, bug #701148.
- touch Tests/svgLib/__init__.py || die
-
- distutils-r1_python_prepare_all
-}
-
-python_compile() {
- local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
- [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
- distutils-r1_python_compile
-}
-
-src_test() {
- # virtualx used when matplotlib is installed causing plot module tests to run
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # flaky test
- Tests/ttLib/woff2_test.py::WOFF2ReaderTest::test_get_normal_tables
- )
-
- if [[ ${EPYTHON} == pypy3 ]] &&
- has_version "dev-python/pyxattr[${PYTHON_USEDEP}]" &&
- {
- has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
- has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
- }
- then
- EPYTEST_DESELECT+=(
- # affected by a bug in PyPy/pyxattr
- # https://github.com/iustin/pyxattr/issues/41
- Tests/t1Lib/t1Lib_test.py::ReadWriteTest::test_read_with_path
- )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest \
- -p rerunfailures --reruns=5 \
- Tests fontTools || die -n "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/fsspec/Manifest b/dev-python/fsspec/Manifest
index 7ac09907d8d7..1d4fa31d3e78 100644
--- a/dev-python/fsspec/Manifest
+++ b/dev-python/fsspec/Manifest
@@ -1,2 +1,3 @@
DIST filesystem_spec-2024.2.0.gh.tar.gz 424600 BLAKE2B 548f77229dd936437cbafcd4e8df2a5c25e6244ba5c95553cb84eabbb6d8c2aa16313896b4aecbb6c921d01f84c6c5517b13a2cf1552cac0fa29da8034873143 SHA512 ca8c7c448984ecd9b128608f2c028cf32baf3cda3f22addde80c3bef5c1e5644e010b739fb5d28dc951151fdafb4006def080e8c2c769179b1d145ad6e2f9370
DIST filesystem_spec-2024.3.0.gh.tar.gz 426296 BLAKE2B 815b8004f5f04e7c831d4b31e0d667b63f9dc13d2ccbb5cd3e33292ec75a8952e4eceaa9e1f2547de3ab53111e1154c9ca36b4e48ea21e3235a409ee00e409b6 SHA512 f6b05e5724cb640a3526b37f6368327788cf87bb9e4a523f79af846aa682dbd193b1699854e8f7c57849ba7a6805a422d56aad77049e4500a5ca2c0966ab183e
+DIST filesystem_spec-2024.3.1.gh.tar.gz 426712 BLAKE2B 9e9c60f581872559bd667e8e3fadcb5c4c56a727901ffc2328b67da6a4553ae2e4981f143838532faa59deb9b3f3926e1e2f0b2dd86daf49f93a1811d4e668a4 SHA512 6b93543b729eae898a71fb0249ed69973cb1d2dfcf0feac7d40fb69b40e1109739819acbec9f239023b8a5eaaba01377215458cb5c4c806741ed319433d8f570
diff --git a/dev-python/fsspec/fsspec-2024.3.1.ebuild b/dev-python/fsspec/fsspec-2024.3.1.ebuild
new file mode 100644
index 000000000000..4f7ed3f6460d
--- /dev/null
+++ b/dev-python/fsspec/fsspec-2024.3.1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2020-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
+
+MY_P=filesystem_spec-${PV}
+DESCRIPTION="A specification that python filesystems should adhere to"
+HOMEPAGE="
+ https://github.com/fsspec/filesystem_spec/
+ https://pypi.org/project/fsspec/
+"
+SRC_URI="
+ https://github.com/fsspec/filesystem_spec/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+# Note: this package is not xdist-friendly
+distutils_enable_tests pytest
+
+src_test() {
+ git config --global user.email "you@example.com" || die
+ git config --global user.name "Your Name" || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ fsspec/tests/test_spec.py::test_find
+ # requires s3fs
+ fsspec/implementations/tests/test_local.py::test_urlpath_inference_errors
+ fsspec/tests/test_core.py::test_mismatch
+ # requires pyarrow, fastparquet
+ fsspec/implementations/tests/test_reference.py::test_df_single
+ fsspec/implementations/tests/test_reference.py::test_df_multi
+ )
+
+ local EPYTEST_IGNORE=(
+ # sftp and smb require server started via docker
+ fsspec/implementations/tests/test_dbfs.py
+ fsspec/implementations/tests/test_sftp.py
+ fsspec/implementations/tests/test_smb.py
+ # unhappy about dev-python/fuse-python (?)
+ fsspec/tests/test_fuse.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p pytest_mock -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/git-review/Manifest b/dev-python/git-review/Manifest
index ff6d0c0e304c..c69dfde2a9ad 100644
--- a/dev-python/git-review/Manifest
+++ b/dev-python/git-review/Manifest
@@ -1 +1,2 @@
DIST git-review-2.3.1.tar.gz 66400 BLAKE2B 67b2bf60e91a127144995231b94a48eaa03cfe8cb8e27513183f21b4cae1fbe2eeaa00a23d21da2dd7258aa794ce4cb0ee06e91510d707116699da1702bbebac SHA512 b3fe0ab40c473c80da20c42b4104e82115c9ea02bda01580aedb69622e117d733160eb42027432eec12379250186ea7b6f9eb4cb86b128a591816243a0c0fadc
+DIST git-review-2.4.0.tar.gz 70859 BLAKE2B afe7da3e7efd3c26f55beb102f0961607d818dcdba47beef4f94bf4cbe67bfcdad7cd14bbe6767902f694844ebe94c2b547e9dc4f55f4b0c94e9b292913c3b98 SHA512 24b8b4813933a53158eacaff8b336da1e7c948377cd147487cfccab81c7211c55f8aa8348998bfdf161b4bb9ed107aaa841b643d045498690f75fa18be0aae1f
diff --git a/dev-python/git-review/git-review-2.4.0.ebuild b/dev-python/git-review/git-review-2.4.0.ebuild
new file mode 100644
index 000000000000..69b7d4d1c579
--- /dev/null
+++ b/dev-python/git-review/git-review-2.4.0.ebuild
@@ -0,0 +1,41 @@
+# 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
+
+DESCRIPTION="Tool to submit code to Gerrit"
+HOMEPAGE="https://git.openstack.org/cgit/openstack-infra/git-review"
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://opendev.org/opendev/${PN}.git"
+else
+ inherit pypi
+ KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+BDEPEND="
+ >=dev-python/pbr-4.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/requests-1.1[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i -e '/manpages/,+1d' setup.cfg || die
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ doman git-review.1
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/griffe/Manifest b/dev-python/griffe/Manifest
index a3dd73324b06..4e97b2341030 100644
--- a/dev-python/griffe/Manifest
+++ b/dev-python/griffe/Manifest
@@ -4,3 +4,4 @@ DIST griffe-0.41.1.gh.tar.gz 216351 BLAKE2B e4c8bad6c6870aab7dee9d8d4326537d7943
DIST griffe-0.41.2.gh.tar.gz 216659 BLAKE2B b0974a105aaa9ffca5e0b977fd816f228ff78f550e7995fe0f902d9bdfb720c603238b2e084fc2cf1364c13a78311877c87e175eb37b5ac310345ed05b04ec96 SHA512 981c91a48a06d157b42b7415002360158a144845a1cdbd7c09c7e07ff43bbb795bbcda784f72dfb863183fe7093e34483f2c57f8370194f4834d51659401462e
DIST griffe-0.41.3.gh.tar.gz 216756 BLAKE2B 00c979a32409f765b1c7d70edb91c8df71042e3ef0692e4575f8c161d8789f5b0dc8f60500925905089a1e13078a012ad5a8b312e5a78e882238c722c936eff1 SHA512 fb6ee21f3a71021e7b425522d0c0d6d6c7ce27cb62bac61c83d85c09311518a7ef7404347fe597d3b7d5ca19c09a6b7b61135779969777880e307a820ce93bdb
DIST griffe-0.42.0.gh.tar.gz 223478 BLAKE2B f607c552d3576cf37b00c16412cc1925706beedb386e63da0909a7967c4c3aad5782d39cff38d5bbbc4c38baf6967cdf4668bf6017a66409dbb0704eb5ac31c8 SHA512 21e0598d992fb1a22cf75e7d9bd1cadb1622f43817b685cd19f33c1202a67fe12f99baeba7237c64483addd8caed931d8cae2407f1071b06ffb340e00403a5af
+DIST griffe-0.42.1.gh.tar.gz 225572 BLAKE2B 90f4773f13534698899abb9447b432835c87dddeb21274b14f26486cbfb720e7bc294c6e342b3d2cfb63a7a3dba0f190fa62112035ed573c492cb547694e3426 SHA512 61b5f5a77a4d90233cf7fe848aaef1bbd94f803417724d44de4d47918c54347a952ecb3ad82fc794b2d3615bca96a611e9cab2d06f7f4dbe36297c2802d60dd0
diff --git a/dev-python/griffe/griffe-0.42.1.ebuild b/dev-python/griffe/griffe-0.42.1.ebuild
new file mode 100644
index 000000000000..6b674e3230b3
--- /dev/null
+++ b/dev-python/griffe/griffe-0.42.1.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=pdm-backend
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Signature generator for Python programs"
+HOMEPAGE="
+ https://mkdocstrings.github.io/griffe/
+ https://github.com/mkdocstrings/griffe/
+ https://pypi.org/project/griffe/
+"
+# Tests need files absent from the PyPI tarballs
+SRC_URI="
+ https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/colorama-0.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/jsonschema-4.17[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-2.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+export PDM_BUILD_SCM_VERSION=${PV}
+
+EPYTEST_DESELECT=(
+ # fragile to installed packages
+ # (failed on PySide2 for me)
+ tests/test_stdlib.py::test_fuzzing_on_stdlib
+)
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index cb988a523d96..ff2a3bb97458 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1,2 +1,3 @@
DIST hatch-hatchling-v1.21.1.gh.tar.gz 774577 BLAKE2B 31e2b50598b4fe120ecea407a37e3262876a2ec1e8cf02f272c25838e73afc37f2fef1f8fab08b2e3b83bfd828f6c558ce303b084081b83504343a8bb057c341 SHA512 91b5684737fac19758d7095b357f99031d46e9f981e093cab848ce770fd1f9440b69212f3ef2217e3700e7dd7985a97c2735bbd27b306c7b8aa7bffc5c950fb4
DIST hatch-hatchling-v1.22.2.gh.tar.gz 782675 BLAKE2B 1b8dd52627cbbc87c8ed2d4b8f41f339fd59ee5e641f8d14f88c200b085d0d783397b406d4c2e0fc38a4c0545d02e03c8c3c4f19ab810828b522571e807b9460 SHA512 fe5fa174f07b552d46fb75d092b6e992cff8f0a72b994336b8593b807fdf61cc07ab5a90097099a7f30d3da34b4ce9a3d9313316cfd97f3b0e731bd2d7d3511e
+DIST hatch-hatchling-v1.22.3.gh.tar.gz 782744 BLAKE2B aa60f8ecf7ab28b04cba8586085326b267a54210dba41d93c5b8e0cbb5f4a4a8cbe33387d08b975d00c8799b29336513d51825cdfed6c4765142148be72833e8 SHA512 059667e0ed2ad1c1d305800a88a8e218daa6cf11bdf0507ebe8630fbea1ef412159f779853213d1dc3121b5434474f5b319da4168cd72a3c6d983a7d384f0c2e
diff --git a/dev-python/hatchling/hatchling-1.22.3.ebuild b/dev-python/hatchling/hatchling-1.22.3.ebuild
new file mode 100644
index 000000000000..1389ba78396b
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.22.3.ebuild
@@ -0,0 +1,87 @@
+# 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-21.3[${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)
+ dev-python/trove-classifiers[${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/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 0ba7c014b15b..ce496ed6d0a4 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -8,3 +8,5 @@ DIST hypothesis-6.99.4.gh.tar.gz 9440865 BLAKE2B aa7e37077f59e0aa46c83067d9bda8a
DIST hypothesis-6.99.5.gh.tar.gz 9441876 BLAKE2B ab1cce09dda83a89e63aaf6a995816bc82a8d2126d138626159c2f6263536cb477f8c2cb521034f59557b16de2a16e2e0934da34e21246043ad4374882616a5c SHA512 00f72255a0db863c8beb73cbc2298170f600053f94198cd24c3bf276b580971328d9c1ea62b71a70e411005f4b99f5be20a6ef5f0b53f9e7c84042aa05e26fa6
DIST hypothesis-6.99.6.gh.tar.gz 9445919 BLAKE2B ea518d35aa62eb23b6859965ee5acadb12e1e6eec1e5c04b98aef5fec6f4b4e97f3c98f7c16bd07cc1e74d41040a9eabb6091c24c7132cefc2f02a94d3fe9df4 SHA512 d78c9086a6e5de8b80ec544047d70436053934a3f2b822f8389881e3679b1b7c6a26f653723f97ecf4c462b91183c35f07ffa79e6126e03926507981a6893e19
DIST hypothesis-6.99.7.gh.tar.gz 9446140 BLAKE2B 968bff89e90b2d2af67d2dd30872238d71296e1582fb9e44152c59fc9b1c26c6fd3eb2eef75a65cf51b007264f714042721a2c44304064b2540df9cc064fdd0a SHA512 484ff8d680c3b5441647dcb0e1c2ae0eff80358168f96cf8a0d3caabf8ba0159a27bffe5b118fc2f36accbec4c99be63e56f0851f1c12ebba8d26ee2bf030d70
+DIST hypothesis-6.99.8.gh.tar.gz 9447084 BLAKE2B f0641ed13bbf28999294836f1faedf63428448221e9446ce87504e5446f834280d7466c79c498ce6f34613f6f0d6345a4f2d50f2aebc23c830c4265dd7b3166a SHA512 138ded3e11c3ade5fb06778929e9e49e114b9e139d6253b7d20625b31098ed30cc7ba95eb3851a6501b6c4f1426461e22dfc6fbf52fc55da7083d5412d6f1164
+DIST hypothesis-6.99.9.gh.tar.gz 9448274 BLAKE2B 9fb6732d3a3a7b2efb123f7dc09e495ad8901085e7c3aa6ab84af96fe59802246a26f1029d8e3340dfe8cdd49864a34a30d3fbb02c7a606f0758737ee6fd6893 SHA512 28a0665c2af3f3929f1d1ce3fe1f6d05a76451a30e0485abdfc8c5332f728b4a3e7216a8012ce6c4a513a33233ef68e650775aa0372f7c6cfb102fb0a239a9cd
diff --git a/dev-python/hypothesis/hypothesis-6.99.8.ebuild b/dev-python/hypothesis/hypothesis-6.99.8.ebuild
new file mode 100644
index 000000000000..1f7054962839
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.99.8.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/hypothesis/hypothesis-6.99.9.ebuild b/dev-python/hypothesis/hypothesis-6.99.9.ebuild
new file mode 100644
index 000000000000..1f7054962839
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.99.9.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/jupyter-events/Manifest b/dev-python/jupyter-events/Manifest
index 071e218ae4bf..f4a87a6f6b57 100644
--- a/dev-python/jupyter-events/Manifest
+++ b/dev-python/jupyter-events/Manifest
@@ -1,2 +1,3 @@
+DIST jupyter_events-0.10.0.tar.gz 61516 BLAKE2B 12cf323f65cd52a6c0aa29e7b75e7899ec245752a7c4e17d32650ae3e9b27f47a7e593b491747667dfc58bde5e0745077c72317dbfa6db1f266d7ada14bc8f6a SHA512 6e56b48a238353fbd5e6a1a8cb3fcc5a506063aa555c96172ec2e03a14fb527b39d03a9897de49353927e8993a770d028d6d0d2c9a92785c4b727e3da66676df
DIST jupyter_events-0.9.0.tar.gz 60502 BLAKE2B faf2c7b1b1403c809e98673dc2600750d5c18ff2578b7f1f6f569fa5ac5e955384eda69f0d281a8aa504a1bbeba639931b0fc01bd117b1621fdeb64d4c6881bb SHA512 7b70edd79b80a3d73f0fedd21f0dba8060cb190b0dc8a6d7d9d11fdfd5b219c7a2f54438f0888c062e00b7def37fa0d7cfb0213bfa8d93737a83802079e4b103
DIST jupyter_events-0.9.1.tar.gz 61082 BLAKE2B 7a2b5ddac58a03656ac0dbe451fe6ebe947f63dcad5d652883d67aa9319deadcf6a5e12304d1c9042fb098e848e155ff7e4254d65c5db1113e8311be685e8b83 SHA512 2c3984165287391462386583f32f492f037bbcb778025420a5fc0c28699bbf01a2c55100e227b8a14c3a8797220b7a3cf644975ecc7a09ee80102f8ef815c91c
diff --git a/dev-python/jupyter-events/jupyter-events-0.10.0.ebuild b/dev-python/jupyter-events/jupyter-events-0.10.0.ebuild
new file mode 100644
index 000000000000..816c9e323fbd
--- /dev/null
+++ b/dev-python/jupyter-events/jupyter-events-0.10.0.ebuild
@@ -0,0 +1,41 @@
+# 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 pypi
+
+DESCRIPTION="Jupyter Event System library"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/jupyter_events/
+ https://pypi.org/project/jupyter-events/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# jsonschema[format-nongpl] deps are always on in our ebuild
+RDEPEND="
+ >=dev-python/jsonschema-4.18.0[${PYTHON_USEDEP}]
+ >=dev-python/python-json-logger-2.0.4[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.3[${PYTHON_USEDEP}]
+ dev-python/referencing[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+# TODO: package jupyterlite-sphinx
+# distutils_enable_sphinx docs
+distutils_enable_tests pytest
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index e9da2ac43cac..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 493 BLAKE2B 0df8bce19bc80f79f8e76bcef5a4c2caf333365fe0cb9a3c076b7858bceded5a3e58921474f866a2709dd657b7ed330c1ec4a7f9d7bab0fcf1bc92d77cabc32d SHA512 ea2a1adcb133ac5fc951ba1aa90ef1ce3dfcc424e59727591763d4875aa044a74188be2d15fd89c6b2e83ed6ea04ec3d9851ed584ae79d2c2c127bde7d994b48
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index c09b7356f549..630fe63c6f53 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..736a1167c898 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,12 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/license-expression/Manifest b/dev-python/license-expression/Manifest
index 858fd5f7fbd5..399faa8c06ae 100644
--- a/dev-python/license-expression/Manifest
+++ b/dev-python/license-expression/Manifest
@@ -1 +1,2 @@
DIST license-expression-30.2.0.gh.tar.gz 170391 BLAKE2B 38e934fa4c442b797be34b4431955bba5eae589247288f827753fdd167177839faac057448422fe1176127b0c96734c19c185c11814dc7d7765538b3d4184bd1 SHA512 13a9dea381088d95421aca8d096c54e9537bd0671000a21067257d01ced28a5c778bf8adff3d6e83ed89559ed62a0d08ccf98c88c0974c913b199f68d0a4336c
+DIST license-expression-30.3.0.gh.tar.gz 170159 BLAKE2B 6db3c9c3a1c6551fd22a338c74b75b595df5fe59fcde526baf2ddc52329b20cc4fd9848b986acc62709054c8d1f297879d0636e0c75ec30112cc654c41c7efec SHA512 10e141c9f7d05353ff2d76053497a72aebee6bbda6f263cb4fa69d1ab0ada8331bd0a126558b89bd7db428fc55a87bb5c88f1d5217cfb9640dbd10c1975bd08c
diff --git a/dev-python/license-expression/license-expression-30.3.0.ebuild b/dev-python/license-expression/license-expression-30.3.0.ebuild
new file mode 100644
index 000000000000..b10b5409a10e
--- /dev/null
+++ b/dev-python/license-expression/license-expression-30.3.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-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
+
+DESCRIPTION="Parse, compare, simplify and normalize license expressions"
+HOMEPAGE="
+ https://pypi.org/project/license-expression/
+ https://github.com/nexB/license-expression/
+"
+SRC_URI="
+ https://github.com/nexB/license-expression/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/boolean-py-4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-4[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/markupsafe/Manifest b/dev-python/markupsafe/Manifest
index 61cff049d104..f4ec7c22901f 100644
--- a/dev-python/markupsafe/Manifest
+++ b/dev-python/markupsafe/Manifest
@@ -1,2 +1 @@
-DIST MarkupSafe-2.1.4.tar.gz 19288 BLAKE2B 3c358e913b0fb9fc4ea1fb4ed983a8b20a5b6fc6a7212e12cbd4bbd6753e45339dbc88068105cdcab3a86ed812ecd2cb04a6d94222c50bce3752e3125edb783b SHA512 f9abe713349ee81eb0d89c584b665440f7e9c26df3f4f87e277894aa59090cfa769e099a12b16c9029d98257dbb311e49a1d7deeeb4ca9e1863fd38e574b2d94
DIST MarkupSafe-2.1.5.tar.gz 19384 BLAKE2B d6ae0e1864983f4ab92f2fd9b58a012a8c76e6f47957681d4acc362b2129d63fe4f4625600a89081afe0e99f868eb604d6c75fec88de9a18ebb32c15f091681b SHA512 3ba5af43d23c266377f5d32b11e1faa7955ea8c67eb1c32886c308527f93e75e387294d0eec7794c0c20aad0c705b27f3d1f86b04202f3b63068d12d4053cc71
diff --git a/dev-python/markupsafe/markupsafe-2.1.4.ebuild b/dev-python/markupsafe/markupsafe-2.1.4.ebuild
deleted file mode 100644
index 614e709eeb8d..000000000000
--- a/dev-python/markupsafe/markupsafe-2.1.4.ebuild
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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
-PYPI_NO_NORMALIZE=1
-PYPI_PN="MarkupSafe"
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Implements a XML/HTML/XHTML Markup safe string for Python"
-HOMEPAGE="
- https://palletsprojects.com/p/markupsafe/
- https://github.com/pallets/markupsafe/
- https://pypi.org/project/MarkupSafe/
-"
-
-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 ~x64-solaris"
-
-distutils_enable_tests pytest
diff --git a/dev-python/multidict/Manifest b/dev-python/multidict/Manifest
index 20db56eeb9ba..5de60752053a 100644
--- a/dev-python/multidict/Manifest
+++ b/dev-python/multidict/Manifest
@@ -1,2 +1 @@
-DIST multidict-6.0.4.gh.tar.gz 58931 BLAKE2B 2cf25ac2af57289432dfc6617f35a9f1310469b8d7b6a762e63f4f08b3cb8235c7115c4072fc2ffeec417b49af8a97654c7d69e8e20507fd553fab074e42b1cf SHA512 6f9e6ff16a104d40b0cb59860af9cb1a98e8d3a256626f77600c4895e6ef692b31880273f204e7ecdeb574407dd7c2e4326ad7cd9c08b1095011d6ba3793b86e
DIST multidict-6.0.5.gh.tar.gz 72819 BLAKE2B 668b5db8174c0dbc6651eae281f777d5c1dfb59a4f4d9d5301355148bf40063e33e26844d2f8ff543ebe7b9c91cf7fffb4abd57ca6786684757f50af27b7df56 SHA512 500d3b2a139d40442462a2b49f9dd0c01631643ef9905367d8b7c472a1030437c26a042a28e11ba94058a17821628d96f19ec6ca479d5831e2f1263ff0069871
diff --git a/dev-python/multidict/multidict-6.0.4-r1.ebuild b/dev-python/multidict/multidict-6.0.4-r1.ebuild
deleted file mode 100644
index 7d53bb502cf3..000000000000
--- a/dev-python/multidict/multidict-6.0.4-r1.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2023 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
-
-DESCRIPTION="multidict implementation"
-HOMEPAGE="
- https://github.com/aio-libs/multidict/
- https://pypi.org/project/multidict/
-"
-SRC_URI="
- https://github.com/aio-libs/${PN}/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
-IUSE="+native-extensions"
-
-distutils_enable_sphinx docs --no-autodoc
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # don't enable coverage or other pytest settings
- sed -i -e 's:--cov.*::' setup.cfg || die
-
- distutils-r1_python_prepare_all
-}
-
-python_compile() {
- # the C extension segfaults on py3.12
- # https://github.com/aio-libs/multidict/issues/868
- if ! use native-extensions || [[ ${EPYTHON} == python3.12 ]]; then
- local -x MULTIDICT_NO_EXTENSIONS=1
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- rm -rf multidict || die
- epytest
-}
diff --git a/dev-python/pandas/pandas-2.1.4.ebuild b/dev-python/pandas/pandas-2.1.4.ebuild
index 621506ad4a25..fb762102f21f 100644
--- a/dev-python/pandas/pandas-2.1.4.ebuild
+++ b/dev-python/pandas/pandas-2.1.4.ebuild
@@ -64,6 +64,7 @@ OPTIONAL_DEPEND="
)
"
DEPEND="
+ <dev-python/numpy-2[${PYTHON_USEDEP}]
>=dev-python/numpy-1.23.2[${PYTHON_USEDEP}]
"
COMMON_DEPEND="
diff --git a/dev-python/pandas/pandas-2.2.0-r1.ebuild b/dev-python/pandas/pandas-2.2.0-r1.ebuild
index d1898b024dbb..09e0611d0d14 100644
--- a/dev-python/pandas/pandas-2.2.0-r1.ebuild
+++ b/dev-python/pandas/pandas-2.2.0-r1.ebuild
@@ -62,6 +62,7 @@ OPTIONAL_DEPEND="
)
"
DEPEND="
+ <dev-python/numpy-2[${PYTHON_USEDEP}]
>=dev-python/numpy-1.23.2[${PYTHON_USEDEP}]
"
COMMON_DEPEND="
diff --git a/dev-python/pandas/pandas-2.2.0.ebuild b/dev-python/pandas/pandas-2.2.0.ebuild
index 98f8a8539079..fb8d3aac2aa2 100644
--- a/dev-python/pandas/pandas-2.2.0.ebuild
+++ b/dev-python/pandas/pandas-2.2.0.ebuild
@@ -62,6 +62,7 @@ OPTIONAL_DEPEND="
)
"
DEPEND="
+ <dev-python/numpy-2[${PYTHON_USEDEP}]
>=dev-python/numpy-1.23.2[${PYTHON_USEDEP}]
"
COMMON_DEPEND="
diff --git a/dev-python/pandas/pandas-2.2.1.ebuild b/dev-python/pandas/pandas-2.2.1-r1.ebuild
index b5730dd47d3d..3cd92505209b 100644
--- a/dev-python/pandas/pandas-2.2.1.ebuild
+++ b/dev-python/pandas/pandas-2.2.1-r1.ebuild
@@ -62,6 +62,7 @@ OPTIONAL_DEPEND="
)
"
DEPEND="
+ <dev-python/numpy-2[${PYTHON_USEDEP}]
>=dev-python/numpy-1.23.2[${PYTHON_USEDEP}]
"
COMMON_DEPEND="
diff --git a/dev-python/persist-queue/persist-queue-0.8.0.ebuild b/dev-python/persist-queue/persist-queue-0.8.0.ebuild
index 5f6fe5c3d693..58fb3163a13c 100644
--- a/dev-python/persist-queue/persist-queue-0.8.0.ebuild
+++ b/dev-python/persist-queue/persist-queue-0.8.0.ebuild
@@ -21,7 +21,7 @@ SLOT="0"
RESTRICT="test"
DEPEND="
- dev-python/DBUtils[${PYTHON_USEDEP}]
+ dev-python/dbutils[${PYTHON_USEDEP}]
dev-python/msgpack[${PYTHON_USEDEP}]
dev-python/pymysql[${PYTHON_USEDEP}]
"
diff --git a/dev-python/persist-queue/persist-queue-0.8.1.ebuild b/dev-python/persist-queue/persist-queue-0.8.1.ebuild
index 2e621702b7ab..93df58fdfcbd 100644
--- a/dev-python/persist-queue/persist-queue-0.8.1.ebuild
+++ b/dev-python/persist-queue/persist-queue-0.8.1.ebuild
@@ -21,7 +21,7 @@ SLOT="0"
RESTRICT="test"
DEPEND="
- dev-python/DBUtils[${PYTHON_USEDEP}]
+ dev-python/dbutils[${PYTHON_USEDEP}]
dev-python/msgpack[${PYTHON_USEDEP}]
dev-python/pymysql[${PYTHON_USEDEP}]
"
diff --git a/dev-python/pyamg/Manifest b/dev-python/pyamg/Manifest
index 1228f683422a..44ce22afef1a 100644
--- a/dev-python/pyamg/Manifest
+++ b/dev-python/pyamg/Manifest
@@ -1 +1,2 @@
DIST pyamg-5.0.1.gh.tar.gz 4132815 BLAKE2B 578a8b1ff7eb627698ba1f0fc2483c614bf73b38b0f38ba11264a3754d5d6e24dd09b818e42d059e7efc18300bb7eb0f661c8ad9e874fcb4d316c5dcebce27df SHA512 d04291854840bbf349cb7b73a392bf3d043f8db88ed1070e8689d45803c8544470d09c2eb268d57ac994e59b99b3f42c8350f1e3612600069c2b93f65ceb659f
+DIST pyamg-5.1.0.gh.tar.gz 4133863 BLAKE2B eb1894f52ef40764f580c23381afbfc1a0ae066ef34ab393adc1ded8f5ed2d881db231f8cfcf94232a531300d920cd54f634382be390be1127648be06464ffb9 SHA512 d770289a9995dd6d7eb7be137e39adeed0968d25d6c5c8c664f14ca3980f09fdda407adb3f634172a9ce49e4d0e205a63dccc21214a027324372a2be1374f062
diff --git a/dev-python/pyamg/pyamg-5.1.0.ebuild b/dev-python/pyamg/pyamg-5.1.0.ebuild
new file mode 100644
index 000000000000..df071298b105
--- /dev/null
+++ b/dev-python/pyamg/pyamg-5.1.0.ebuild
@@ -0,0 +1,50 @@
+# 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
+
+DESCRIPTION="Algebraic multigrid solvers in Python"
+HOMEPAGE="
+ https://www.pyamg.org/
+ https://github.com/pyamg/pyamg/
+ https://pypi.org/project/pyamg/
+"
+SRC_URI="
+ https://github.com/pyamg/pyamg/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ dev-python/CppHeaderParser[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.8.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${DEPEND}
+ >=dev-python/setuptools-scm-7.0.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ cd "${T}" || die
+ epytest --pyargs pyamg
+}
diff --git a/dev-python/pyarrow/Manifest b/dev-python/pyarrow/Manifest
index 809d7f359a44..46c46391e6d1 100644
--- a/dev-python/pyarrow/Manifest
+++ b/dev-python/pyarrow/Manifest
@@ -1,2 +1,3 @@
DIST apache-arrow-15.0.0.tar.gz 21491996 BLAKE2B 55709d1d181ed5c1482e1eadc9031c692bbd39434ccad17be8c0f3f5af47e3b3d5f262903d1ce09c39442497e14c22c80d7b30215e4de830a4ac82a1b3db34fb SHA512 d5dccaa0907b0e6f2a460e32ae75091942dcb70b51db4aefe2767ee8d99882694607b723a9c06898dda3938d8eb498258d7f9aad11054665b6ea9c2fbaeafa74
DIST apache-arrow-15.0.1.tar.gz 21499849 BLAKE2B 5f8f91932941105e753b7b7812bf132bd99501ccfac0574b8072e638764cb46694062bcdb8568a474f50de008ede9259b70f16ba7f33ada0f6ec763c21b1c25a SHA512 b426421336c6bc3757626b2743a039d3c7030ad257c3bcf3247a236462dbc140b7eff4476cb727f4d048144a90c1368740c139318f8237d6cc20e87d3efdaf74
+DIST apache-arrow-15.0.2.tar.gz 21503812 BLAKE2B 5a42b3409515d7a09daff33d30e72e828e1df2e009ed746f101f4d8e6dcadb2e9c305a6cb9799d4003e1421ba666d2a2e9ba182c11b0c538fbd1aee4b3ba10ff SHA512 6c83e3be1e5840c30387f088315b74aca8e7c2d060793af70a156effb496a71e3e6af0693188c0f46f8a4a061a263a47095912ef04a5dc8141abd59075b14c78
diff --git a/dev-python/pyarrow/pyarrow-15.0.2.ebuild b/dev-python/pyarrow/pyarrow-15.0.2.ebuild
new file mode 100644
index 000000000000..c36294127c8f
--- /dev/null
+++ b/dev-python/pyarrow/pyarrow-15.0.2.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="Python library for Apache Arrow"
+HOMEPAGE="
+ https://arrow.apache.org/
+ https://github.com/apache/arrow/
+ https://pypi.org/project/pyarrow/
+"
+SRC_URI="mirror://apache/arrow/arrow-${PV}/apache-arrow-${PV}.tar.gz"
+S="${WORKDIR}/apache-arrow-${PV}/python"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~riscv"
+IUSE="+parquet +snappy ssl"
+
+RDEPEND="
+ ~dev-libs/apache-arrow-${PV}[compute,dataset,json,parquet?,re2,snappy?,ssl?]
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-libs/apache-arrow[lz4,zlib]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+PATCHES=(
+ # upstream backports
+ "${FILESDIR}/${PN}-15.0.1-32bit.patch"
+)
+
+src_prepare() {
+ # cython's -Werror
+ sed -i -e '/--warning-errors/d' CMakeLists.txt || die
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ export PYARROW_PARALLEL="$(makeopts_jobs)"
+ export PYARROW_BUILD_VERBOSE=1
+ export PYARROW_CXXFLAGS="${CXXFLAGS}"
+ export PYARROW_BUNDLE_ARROW_CPP_HEADERS=0
+ export PYARROW_CMAKE_GENERATOR=Ninja
+ export PYARROW_WITH_HDFS=1
+ if use parquet; then
+ export PYARROW_WITH_DATASET=1
+ export PYARROW_WITH_PARQUET=1
+ use ssl && export PYARROW_WITH_PARQUET_ENCRYPTION=1
+ fi
+ if use snappy; then
+ export PYARROW_WITH_SNAPPY=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # wtf?
+ tests/test_fs.py::test_localfs_errors
+ # these require apache-arrow with jemalloc that doesn't seem
+ # to be supported by the Gentoo package
+ tests/test_memory.py::test_env_var
+ tests/test_memory.py::test_specific_memory_pools
+ tests/test_memory.py::test_supported_memory_backends
+ # pandas changed, i guess
+ tests/test_pandas.py::test_array_protocol_pandas_extension_types
+ tests/test_table.py::test_table_factory_function_args_pandas
+ )
+
+ cd "${T}" || die
+ epytest --pyargs pyarrow
+}
diff --git a/dev-python/pycairo/Manifest b/dev-python/pycairo/Manifest
index c7bcb5e4215e..664fdd77aa1a 100644
--- a/dev-python/pycairo/Manifest
+++ b/dev-python/pycairo/Manifest
@@ -1,2 +1 @@
-DIST pycairo-1.25.1.tar.gz 347088 BLAKE2B ba4eedaf47e514bd7c3ad5ea738d099428958988a708255f59df48372d112d0195fe746be03de56aa25ccce9c2366b8898fcdd568b427372d0340c5edd550a5c SHA512 f2b93a09cbe9cd7c2885794ff58a48df6cf59fbe2dbeabf7c6e9d99e68c71ac220abc866ac0d756c7ffb3f821ef63b65dbb8963f0bf7d5bd21ee0efb800e7b23
DIST pycairo-1.26.0.tar.gz 346850 BLAKE2B da6c35c929d372764280e8963a8b66ba533ccb99be9ee2bfa10859c635dd16cc087d542607be9ec6a9ffb942feb892100d4b9017d832d478b35c434aa05b9bb9 SHA512 5313f0d408a6e6ce6e70ac92291be5dd8651e01fbf9411d0467061afa21849cde27db273f2a13b4c3c931183f63f75f31fc0f0d3283b8f339ba88e71eab432f1
diff --git a/dev-python/pycairo/pycairo-1.25.1.ebuild b/dev-python/pycairo/pycairo-1.25.1.ebuild
deleted file mode 100644
index d207c4d9768f..000000000000
--- a/dev-python/pycairo/pycairo-1.25.1.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2023 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(+)"
-
-inherit distutils-r1
-
-DESCRIPTION="Python bindings for the cairo library"
-HOMEPAGE="
- https://www.cairographics.org/pycairo/
- https://github.com/pygobject/pycairo/
- https://pypi.org/project/pycairo/
-"
-SRC_URI="
- https://github.com/pygobject/${PN}/releases/download/v${PV}/${P}.tar.gz
-"
-
-LICENSE="|| ( LGPL-2.1 MPL-1.1 )"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-IUSE="examples"
-
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-python/hypothesis[${PYTHON_USEDEP}]
- )
-"
-RDEPEND="
- >=x11-libs/cairo-1.15.10[svg(+)]
-"
-DEPEND="
- ${RDEPEND}
- x11-base/xorg-proto
-"
-
-distutils_enable_sphinx docs \
- dev-python/sphinx-rtd-theme
-distutils_enable_tests pytest
-
-python_test() {
- esetup.py build_tests
- epytest
-}
-
-python_install() {
- distutils-r1_python_install
-
- # we need to pass --root via install command, sigh
- cat > "${T}/distutils-extra.cfg" <<-EOF || die
- [install]
- root = ${D}
- EOF
- local -x DIST_EXTRA_CONFIG=${T}/distutils-extra.cfg
- esetup.py \
- install_pkgconfig --pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
-}
-
-python_install_all() {
- if use examples; then
- dodoc -r examples
- fi
-
- distutils-r1_python_install_all
-
- insinto /usr/include/pycairo
- newins cairo/pycairo.h py3cairo.h
-}
diff --git a/dev-python/pytest-asyncio/Manifest b/dev-python/pytest-asyncio/Manifest
index 8b90c626076b..9f11862e7286 100644
--- a/dev-python/pytest-asyncio/Manifest
+++ b/dev-python/pytest-asyncio/Manifest
@@ -1,2 +1,3 @@
DIST pytest-asyncio-0.23.5.post1.tar.gz 46227 BLAKE2B 25c1ea816efee026ffec8703a3f8d84311e67a73e5c32395aa0b5dd9ee9b328c0eb198ee64aadafedd9f1563dfe8074720059f536a998cddc45c7b85e8d7f251 SHA512 a8948f82d281d760bdd55b4fb84dc72ff6a8fcb813896d1c9024586c1aac52b5f18831599f6b5160f203ac35410ad8286c06242ece63d7eb728b89e66ca82855
DIST pytest-asyncio-0.23.5.tar.gz 45887 BLAKE2B 6f641d3c614c5a224f51278ba6021ed40f015a30aa19999cca7803cc3b50e91e8a0e3c997fbd6905801a10fda5f6c2de9f2ce3228d6f1a3f734e81ebd9f0796c SHA512 112ddaa0cf8c05cec4e99cb55df4db1b7d9929b13aa531172b442cff4cd49fbe12ec23ff12aaa260f303919c840c13b21c00a94990e4b107fb115c4850a33b47
+DIST pytest-asyncio-0.23.6.tar.gz 46203 BLAKE2B 37dd3cafa2c77b0dd04a6f406e9e83705b31a98eb058fef02ad6d917cb291874dac0388a129bce5d80954fe8dd0a28fbe9e2b94dabc2ff59a1a055154b908cce SHA512 24ec7fef2f1db744c743c4da651106320d02e8a83af0a238f6335ef669751e541b7fa787fd007fd7208f1837c1cb684acdecd66ee5e022501a7aad97649fdfbe
diff --git a/dev-python/pytest-asyncio/pytest-asyncio-0.23.6.ebuild b/dev-python/pytest-asyncio/pytest-asyncio-0.23.6.ebuild
new file mode 100644
index 000000000000..8a883c311a3f
--- /dev/null
+++ b/dev-python/pytest-asyncio/pytest-asyncio-0.23.6.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2019-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} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Library for testing asyncio code with pytest"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-asyncio/
+ https://pypi.org/project/pytest-asyncio/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/pytest-5.4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hypothesis-3.64[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on precise warning counts
+ tests/hypothesis/test_base.py::test_can_use_explicit_event_loop_fixture
+ tests/modes/test_legacy_mode.py
+ tests/modes/test_strict_mode.py::test_strict_mode_ignores_unmarked_fixture
+ tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_raises_warning_when_fixture_leaves_loop_unclosed
+ tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_raises_warning_when_test_leaves_loop_unclosed
+ tests/test_pytest_min_version_warning.py
+ tests/trio/test_fixtures.py::test_strict_mode_ignores_trio_fixtures
+
+ # TODO
+ tests/test_is_async_test.py::test_returns_false_for_unmarked_coroutine_item_in_strict_mode
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_asyncio.plugin,_hypothesis_pytestplugin
+ epytest
+}
diff --git a/dev-python/pytest-twisted/Manifest b/dev-python/pytest-twisted/Manifest
index 5dd091b55d26..0c501cb43335 100644
--- a/dev-python/pytest-twisted/Manifest
+++ b/dev-python/pytest-twisted/Manifest
@@ -1 +1,2 @@
DIST pytest-twisted-1.14.0.gh.tar.gz 16234 BLAKE2B 1f0470893135127111194dcb726e5c16c8ce6911456eae7068035a001010b2513f5b1d7507c84f8ebf183042144c3cec3fb4fd1f060d987f5e1f3c053f29ed0e SHA512 d3c1b7320f87bd32bec992b807baf235c13e5595c93895eb7df91f709d7ab92dbbc30a47f4341477d7ba9541958efa1d4ef7d355023050747b401bb541314bc9
+DIST pytest-twisted-1.14.1.gh.tar.gz 17114 BLAKE2B 36b851b734acc03919dc03842d942d205468375d9318d4ce4f880532fca29d31354125fd2ab8149a50bcf29e46ec812898b7167e34c0fa1276dcd5c2aa36ccd1 SHA512 d5b6d629ed3cf7ae1537e76494fa7eb4bbb9767cbc50d97a5657c668b381f39236acc6224b3754d62e2cccd4dff7e6161265ddc6a939f0488cef53eeade0eae9
diff --git a/dev-python/pytest-twisted/pytest-twisted-1.14.1.ebuild b/dev-python/pytest-twisted/pytest-twisted-1.14.1.ebuild
new file mode 100644
index 000000000000..c871ea1c6748
--- /dev/null
+++ b/dev-python/pytest-twisted/pytest-twisted-1.14.1.ebuild
@@ -0,0 +1,56 @@
+# 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} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1
+
+DESCRIPTION="A pytest plugin for testing Twisted framework consumers"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-twisted/
+ https://pypi.org/project/pytest-twisted/
+"
+SRC_URI="
+ https://github.com/pytest-dev/pytest-twisted/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~riscv ~x86"
+
+RDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ >=dev-python/pytest-2.3[${PYTHON_USEDEP}]
+ dev-python/twisted[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # If we let pytest-twisted autoload everywhere, it breaks tests in
+ # packages that don't expect it. Apply a similar hack as for bug
+ # #661218.
+ sed -e 's/"pytest11": \[[^]]*\]//' -i setup.py || die
+
+ # https://github.com/pytest-dev/pytest/issues/9280
+ sed -e '/^pytest_plugins =/d' -i testing/conftest.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_twisted
+
+ epytest -p pytester
+}
diff --git a/dev-python/python-openstackclient/Manifest b/dev-python/python-openstackclient/Manifest
index c94aea63efe6..db6471f71f30 100644
--- a/dev-python/python-openstackclient/Manifest
+++ b/dev-python/python-openstackclient/Manifest
@@ -1 +1,2 @@
DIST python-openstackclient-6.5.0.tar.gz 916521 BLAKE2B c50c1f0e68a66133b304b7ad930c3ed11327d0ebcfb65e4776bfa3fb33680977c4d2fc6c7e5ad579d3da07190803db27adb9a8de6fc3fae2018b9effb3eb8b09 SHA512 8ecae7c1c8b93efdc9751b803606f0413e689c52aab8df83e47a3abcf367135f6fcd150c3e2025fd4c8a691113e1ff77b8e7496d1032b05c8710abc557248713
+DIST python-openstackclient-6.6.0.tar.gz 917251 BLAKE2B 9f11b357bdeede556e106a21b2c7bbd86804251612cd676525a8817b693733dfe72388213cfa16517b3b75725702090fa3e728ec6986dcda196aa1e8aac9fd0a SHA512 7b073263fe9d905b3c10b2a4dcfa7156c9cd5ae453d792e1dcf3be278de0abc25c931388c8cabff6b11b61174acf79c87951028626af1e1b9f0dd09f38b7900a
diff --git a/dev-python/python-openstackclient/python-openstackclient-6.6.0.ebuild b/dev-python/python-openstackclient/python-openstackclient-6.6.0.ebuild
new file mode 100644
index 000000000000..293c643b6b3b
--- /dev/null
+++ b/dev-python/python-openstackclient/python-openstackclient-6.6.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack APIs"
+HOMEPAGE="
+ https://opendev.org/openstack/python-openstackclient/
+ https://github.com/openstack/python-openstackclient/
+ https://pypi.org/project/python-openstackclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/osc-lib-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-3.22.0[${PYTHON_USEDEP}]
+ >=dev-python/python-novaclient-18.1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-cinderclient-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-2.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/wrapt-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Depends on a specific runner
+ sed -e 's/test_command_has_logger/_&/' \
+ -i openstackclient/tests/unit/common/test_command.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstackclient/tests/unit
+}
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index 87efbfa06497..049d61b74289 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,6 +1,4 @@
DIST SQLAlchemy-1.4.51.tar.gz 8521574 BLAKE2B 216550225c11d5367e5a50ec321a09078b4677973cf33eee1874beb9f855cfeb629a6df4d05e8ecc5b22052628de5cae2e468d18d50502a4560bd4ca7d85ab7d SHA512 be27a41f442428cdb5cc6a20af2de9424384457475d16a7d7167b718256e208766e2ba8d53bef2b314aafe87b3d9b0c5f9af6e4c03f53fb194671cfaca6e50b5
DIST SQLAlchemy-1.4.52.tar.gz 8514200 BLAKE2B b41fccb885ce6761e29621a654c97537610a1875d66302ba56fac560f5c85db35b14595efd903aebfd0186ee39b75a8666e1304cdee6a6ec6eb9923bc602b9e5 SHA512 afda6a3503c9d2baba8c1dd9e7216d5ac1561f52f5f11009c41a1a98ac998643c980c60cf8ba4d84c4af8808be26ead9fd2e7a2c8bf15b2fdb521b4e5de7748e
-DIST SQLAlchemy-2.0.25.tar.gz 9508797 BLAKE2B 88f8927af1a20bdc3697e90112d515a04c64879bc806ae655d326f22322210853c2995ad884cb510a15d14ae12eb7612d867f701ab8f938ec0227abaab642497 SHA512 60b31a167f46a623f76e349f6a3f5a1696e1a04aee8dec2750396c715831a242a96e281ee7fcbfa26f82e6318573ab58e97d21bd93d02bbe3ff962777d809146
-DIST SQLAlchemy-2.0.26.tar.gz 9526590 BLAKE2B b68db1bd26106d199559ab80381c33c2bc0fd767f7a25e90216ddb93e2207fae5b85f369536f3531cb2699f6ed815a18f60860f0003c36d74a3c61080faeb1f2 SHA512 62532253ba6dee0c8e5c89487459ce783eb3d00cdcaf645efa5b68a03b62cc92ab7b447c791ac05bd552910edd223a390ab930a16b6234afb5dbe6d9c05b997a
DIST SQLAlchemy-2.0.27.tar.gz 9527460 BLAKE2B 06c3649c00fad1a82305502fce00938b85098a6e283eccc5992bc6b1df564a2947557db6bbd3633f96096fabca1fcf8fb1edee125b86be3a31508d6878fcc3be SHA512 78f0aeda4352e05282b86bdcaaf369804e4294e10f944a15cacd518b3741cf6359880d7400ec689e234ad6f8227d32822aa9073ed33f40825c3542102ebcada5
DIST SQLAlchemy-2.0.28.tar.gz 9531010 BLAKE2B bd989adcdfe9640d001a97f48d782628ae307fd24d74ad227cf8e767bf0cfcb71b95f8a3506768146477b09f5196323e435092899d4ecc139a422849fc787a52 SHA512 83745aaf2d0b469dbbb28960eef4a1e23fb8fe8a2f4b8cb055cc06c5bd4ccb2f365a2b55c7ca76be2d809d4127e16ace06f4e50f59f63d946e3225375499f4f0
diff --git a/dev-python/sqlalchemy/sqlalchemy-1.4.52.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.4.52.ebuild
index 92f70ecf5e96..8da678b24de4 100644
--- a/dev-python/sqlalchemy/sqlalchemy-1.4.52.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-1.4.52.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}/${MY_PN}-${PV}"
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"
+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="examples +sqlite test"
BDEPEND="
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild
deleted file mode 100644
index 68705271b766..000000000000
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild
+++ /dev/null
@@ -1,111 +0,0 @@
-# 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="sqlite?"
-
-inherit distutils-r1 multiprocessing optfeature pypi
-
-MY_PN="SQLAlchemy"
-DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
-HOMEPAGE="
- https://www.sqlalchemy.org/
- https://pypi.org/project/SQLAlchemy/
- https://github.com/sqlalchemy/sqlalchemy/
-"
-SRC_URI="$(pypi_sdist_url --no-normalize "${MY_PN}")"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-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="examples +sqlite test"
-
-RDEPEND="
- >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
- test? (
- $(python_gen_impl_dep sqlite)
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/greenlet/d' setup.cfg || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- test/ext/mypy/test_mypy_plugin_py3k.py
- test/typing/test_mypy.py
- # hardcode call counts specific to Python versions
- test/aaa_profiling
- )
- local EPYTEST_DESELECT=(
- # warning tests are unreliable
- test/base/test_warnings.py
- )
- local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access
- test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg
- test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg
- test/engine/test_processors.py::PyDateProcessorTest::test_date_invalid_string
- test/engine/test_processors.py::PyDateProcessorTest::test_datetime_invalid_string
- test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string
- "test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message"
- "test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"::test_{delete,insert,update}_single
- test/base/test_utils.py::ImmutableDictTest::test_pep584
- )
- ;;
- esac
- if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution
- test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]"
- "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]"
- "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]"
- )
- fi
-
- # upstream's test suite is horribly hacky; it relies on disabling
- # the warnings plugin and turning warnings into errors; this also
- # means that any DeprecationWarnings from third-party plugins cause
- # everything to explode
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p rerunfailures --reruns=10 --reruns-delay=2 \
- -p xdist -n "$(makeopts_jobs)" --dist=worksteal
-}
-
-python_install_all() {
- if use examples; then
- docompress -x "/usr/share/doc/${PF}/examples"
- dodoc -r examples
- fi
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature "asyncio support" dev-python/greenlet
- optfeature "MySQL support" \
- dev-python/mysqlclient \
- dev-python/pymysql
- optfeature "postgresql support" dev-python/psycopg:2
-}
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.26.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.26.ebuild
deleted file mode 100644
index 4cd69540a31d..000000000000
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.26.ebuild
+++ /dev/null
@@ -1,111 +0,0 @@
-# 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="sqlite?"
-
-inherit distutils-r1 multiprocessing optfeature pypi
-
-MY_PN="SQLAlchemy"
-DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
-HOMEPAGE="
- https://www.sqlalchemy.org/
- https://pypi.org/project/SQLAlchemy/
- https://github.com/sqlalchemy/sqlalchemy/
-"
-SRC_URI="$(pypi_sdist_url --no-normalize "${MY_PN}")"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-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="examples +sqlite test"
-
-RDEPEND="
- >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
- test? (
- $(python_gen_impl_dep sqlite)
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -i -e '/greenlet/d' setup.cfg || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- test/ext/mypy/test_mypy_plugin_py3k.py
- test/typing/test_mypy.py
- # hardcode call counts specific to Python versions
- test/aaa_profiling
- )
- local EPYTEST_DESELECT=(
- # warning tests are unreliable
- test/base/test_warnings.py
- )
- local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access
- test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg
- test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg
- test/engine/test_processors.py::PyDateProcessorTest::test_date_invalid_string
- test/engine/test_processors.py::PyDateProcessorTest::test_datetime_invalid_string
- test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string
- "test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message"
- "test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"::test_{delete,insert,update}_single
- test/base/test_utils.py::ImmutableDictTest::test_pep584
- )
- ;;
- esac
- if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution
- test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]"
- "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]"
- "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]"
- "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]"
- )
- fi
-
- # upstream's test suite is horribly hacky; it relies on disabling
- # the warnings plugin and turning warnings into errors; this also
- # means that any DeprecationWarnings from third-party plugins cause
- # everything to explode
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p rerunfailures --reruns=10 --reruns-delay=2 \
- -p xdist -n "$(makeopts_jobs)" --dist=worksteal
-}
-
-python_install_all() {
- if use examples; then
- docompress -x "/usr/share/doc/${PF}/examples"
- dodoc -r examples
- fi
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature "asyncio support" dev-python/greenlet
- optfeature "MySQL support" \
- dev-python/mysqlclient \
- dev-python/pymysql
- optfeature "postgresql support" dev-python/psycopg:2
-}
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.28.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.28.ebuild
index 4cd69540a31d..ce75ec61746d 100644
--- a/dev-python/sqlalchemy/sqlalchemy-2.0.28.ebuild
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.28.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}/${MY_PN}-${PV}"
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"
+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="examples +sqlite test"
RDEPEND="
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 09faef69c32c..5b3124adc2f5 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -24,6 +24,8 @@ DIST sqlglot-22.3.0.tar.gz 12723662 BLAKE2B 301c2590d91c274e038d0fcce467cc6991af
DIST sqlglot-22.3.1.tar.gz 12763515 BLAKE2B b4f3eba750ed44153d0032fa698b25580625cae4857ffac3fdc675304ae50cb89c576c32233982d80cae0b4cd3ad7b94e1eafd431bbaf3d5f2d1915446c49136 SHA512 511868ae992f037a0a844a940f3ccbd8b482fc6aad422bd060ab695d580504626248de8c71413c40745dedcb43020a56098d8fdadd83d649d78c33734a236a2a
DIST sqlglot-22.4.0.tar.gz 12770391 BLAKE2B c9695cd2241b5003ea3b3dee22ea53cc690f8444f168cbca627c9993792d68addccf8e86ad95c97bc553fb886f54b6a9932a890913cf2bb220403509cb243217 SHA512 6225722ab46aadbf01f1f24b5bd4fbeedbf97a6db6262365a08ea188d9cff1eecb380c4629a69065a0e2e5a1c397969d855b8bd3553527b6b36653ac60a8c66d
DIST sqlglot-22.5.0.tar.gz 12813145 BLAKE2B d1a83bc743165e709805d07e1b6de6e8b6e40ee98d21d7a85933781515c05d87bbd5c7d6850cd929e66084d0b4db6be469bec49c1d143198dc91c33aaef51d30 SHA512 fd0575375ce1e7edcfa3d7ced8b3da9226de5afd8d6d26aac813882a691ff15649b10f97b047523a052b08201bb0f5079ee1c8b3c3858a0e5e30ce74f08b5367
+DIST sqlglot-23.0.0.tar.gz 12818941 BLAKE2B 713ebdab33a27514cccd591677e0ecd8944782f67ffc871eb0622350f4a80b079b2981fc62997abeeffcd7bda4f4859757de9755c0662f69e08b7e7b65b6cf84 SHA512 001792d7b1cab28b886c76f1c4cc7766f05730344c54ece04c467ce747655b79ebb7638d551ba296993356b7cc362043f2669cd5c891b01b716a7f176a81f910
+DIST sqlglot-23.0.1.tar.gz 12849655 BLAKE2B 1c6b9356ab1f46e69f933e5a7dae4e39a49da0e6e01ef4d68458e3e038efe1881840b39de4b28799332435553ebb50cebf8f08bbd898f64fecc36507b101b140 SHA512 005310d68d21cefedbeba9eeea15e4edcc73c43e36d14a247814dad862e476c70fe292963f62e993b6b16859752f2c2e62c0d4b73d9cf62f0fb27ae6c78f384f
DIST syn-2.0.41.crate 246016 BLAKE2B 9d389f2e2a0acb4c84c309456e8ffcc88c5d4d541535ed136832d7a6054dde45a598bb68e8a6f3062ca2a96e1ceae947d54b3aec9bad65b0c51d6733aa6c80db SHA512 6bbaf69ca783025dfb81ac3612ac60bfbed31b2d87792909b35c12892dadebdaff2ddf9463105e536b671dce5870610ab90fe29471284bbd3014dca8d6993f1a
DIST target-lexicon-0.12.12.crate 25156 BLAKE2B f3803596c75f6c89438592a1176c3748fc2c0524d7d50a20056de1cd26d40c572b05bafcdf6dd702752864bea37c8b4f28f96dadc12a5b3bb1d279b25e489f85 SHA512 6147295c43ba1b7b087a3c5ab51534b2985e4e77e5e15687978cfb9d07e21c4fd9bc7191576d6cabd268d08a44dc733c4a957e59dba8b948c2055d8bb433aeca
DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
diff --git a/dev-python/sqlglot/sqlglot-23.0.0.ebuild b/dev-python/sqlglot/sqlglot-23.0.0.ebuild
new file mode 100644
index 000000000000..c040bab3734b
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-23.0.0.ebuild
@@ -0,0 +1,121 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+CARGO_OPTIONAL=1
+CRATES="
+ autocfg@1.1.0
+ bitflags@1.3.2
+ cfg-if@1.0.0
+ heck@0.4.1
+ indoc@2.0.4
+ libc@0.2.150
+ lock_api@0.4.11
+ memoffset@0.9.0
+ once_cell@1.19.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ proc-macro2@1.0.70
+ pyo3-build-config@0.20.0
+ pyo3-ffi@0.20.0
+ pyo3-macros-backend@0.20.0
+ pyo3-macros@0.20.0
+ pyo3@0.20.0
+ quote@1.0.33
+ redox_syscall@0.4.1
+ scopeguard@1.2.0
+ smallvec@1.11.2
+ syn@2.0.41
+ target-lexicon@0.12.12
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+"
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ # remove fragile timing check
+ sed -i -e '/assertLessEqual(time\.time/d' tests/test_parser.py || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/sqlglot/sqlglot-23.0.1.ebuild b/dev-python/sqlglot/sqlglot-23.0.1.ebuild
new file mode 100644
index 000000000000..c040bab3734b
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-23.0.1.ebuild
@@ -0,0 +1,121 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+CARGO_OPTIONAL=1
+CRATES="
+ autocfg@1.1.0
+ bitflags@1.3.2
+ cfg-if@1.0.0
+ heck@0.4.1
+ indoc@2.0.4
+ libc@0.2.150
+ lock_api@0.4.11
+ memoffset@0.9.0
+ once_cell@1.19.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ proc-macro2@1.0.70
+ pyo3-build-config@0.20.0
+ pyo3-ffi@0.20.0
+ pyo3-macros-backend@0.20.0
+ pyo3-macros@0.20.0
+ pyo3@0.20.0
+ quote@1.0.33
+ redox_syscall@0.4.1
+ scopeguard@1.2.0
+ smallvec@1.11.2
+ syn@2.0.41
+ target-lexicon@0.12.12
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+"
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ # remove fragile timing check
+ sed -i -e '/assertLessEqual(time\.time/d' tests/test_parser.py || die
+ distutils-r1_src_prepare
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/tldextract/Manifest b/dev-python/tldextract/Manifest
index 2f165772b2a4..c0b5f739f5da 100644
--- a/dev-python/tldextract/Manifest
+++ b/dev-python/tldextract/Manifest
@@ -1 +1,2 @@
DIST tldextract-5.1.1.tar.gz 112645 BLAKE2B 3d4550f60c37769985f5e52ddcd8d93881759631a8a49c4588eee533da695d26c8b31294dd2b4f2456a14efe2a5af8e9573df18ab7eb54fe21a3c082c0615e59 SHA512 805266da1d66e9a8c43edc02014835abf691ab5b25262c63815a2e5b4d41c4e68944aafd35aad6abce650c762284e3a4281716c2d30c0e2d2c2ecccbb0139df9
+DIST tldextract-5.1.2.tar.gz 116825 BLAKE2B ffe10e58e122ac3a0d8851992d791d9525695d987d2c3bfcfe37df043bd532491e21b2e2530feab6d60befad7afb76b5e66d3ce16e909a0cd822a7cb37fa10f9 SHA512 79cdab6ec9259109bdee6412206eea1cd1d760e3c8ee3483607e27adc237821ff74039b2b3c886cb21ebd76f9d636e775623d018e06e46b713d76b9e9719fa00
diff --git a/dev-python/tldextract/tldextract-5.1.2.ebuild b/dev-python/tldextract/tldextract-5.1.2.ebuild
new file mode 100644
index 000000000000..f4841b407b35
--- /dev/null
+++ b/dev-python/tldextract/tldextract-5.1.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Accurately separate the TLD from the registered domain and subdomains of a URL"
+HOMEPAGE="
+ https://github.com/john-kurkowski/tldextract/
+ https://pypi.org/project/tldextract/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~x86"
+
+RDEPEND="
+ >=dev-python/filelock-3.0.8[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-file-1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # we don't need release tests, also deps
+ tests/test_release.py
+)
diff --git a/dev-python/uvicorn/Manifest b/dev-python/uvicorn/Manifest
index 0ad93b9040e3..31330cad6e86 100644
--- a/dev-python/uvicorn/Manifest
+++ b/dev-python/uvicorn/Manifest
@@ -1,2 +1,3 @@
DIST uvicorn-0.27.1.gh.tar.gz 718990 BLAKE2B a520bcb2cde4ed6125c0d64b06d3d301471c1722f7642adb09320b6a6386fe6206a501f171ed4bfe4f95f333c323d1e9f65efc89c1669abc398a57ad0ad27b16 SHA512 57946b71e3f332a9c549ec48ea25375d5ddad4e7f0d5b406690569ed492c305d8441b3ded5386d6d3295e62007cfcd2ae2f0816266cf493391e813db3ef44109
DIST uvicorn-0.28.0.gh.tar.gz 718359 BLAKE2B a8e08c3abe6ea1e9d596ad57ef6d0efa0b219bdba89eb27aa6c7f6efa383cc2edfc2d755b8fb58f84d8eb5307fb33ca6c5c15cf2f4de361ee5dbb81cb6b2e897 SHA512 7e001e4d40092f9cc6f230f53958f71150ab6818ab883cd7edfe4a2b7269d5d17ce98d3b279e74b9b58026bcef9b48d1944405df253cfaf18b943979f1a1835d
+DIST uvicorn-0.28.1.gh.tar.gz 718292 BLAKE2B cfa9284d941cb8817968d6e65c1cf62cee59398b9674785f183465abda544b8ea2d83e8791cf357ee736636bd9a00ddd29b0209d1ca94170d2d2130404b20f18 SHA512 5ce75daee19d20b4ffdc653cd7d271b3f1776f1f350da1b41a627fd3210bee620610c0c17d0e735c8a4fe883fb1bc72e603fb9dcd1939b6cd797c3b1800bf75e
diff --git a/dev-python/uvicorn/uvicorn-0.28.1.ebuild b/dev-python/uvicorn/uvicorn-0.28.1.ebuild
new file mode 100644
index 000000000000..171f3a489763
--- /dev/null
+++ b/dev-python/uvicorn/uvicorn-0.28.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2021-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 optfeature
+
+DESCRIPTION="Lightning-fast ASGI server implementation"
+HOMEPAGE="
+ https://www.uvicorn.org/
+ https://github.com/encode/uvicorn/
+ https://pypi.org/project/uvicorn/
+"
+# as of 0.28.0, no tests in sdist
+SRC_URI="
+ https://github.com/encode/uvicorn/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/asgiref-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ >=dev-python/h11-0.8[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/a2wsgi[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/websockets-10.4[${PYTHON_USEDEP}]
+ dev-python/wsproto[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/watchfiles[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # too long path for unix socket
+ tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers
+ )
+ case ${EPYTHON} in
+ pypy3)
+ # TODO
+ EPYTEST_DESELECT+=(
+ tests/middleware/test_logging.py::test_running_log_using_fd
+ )
+ ;;
+ esac
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "auto reload on file changes" dev-python/watchfiles
+}
diff --git a/dev-python/validators/Manifest b/dev-python/validators/Manifest
index 94b560a2cf1b..43285640ae34 100644
--- a/dev-python/validators/Manifest
+++ b/dev-python/validators/Manifest
@@ -1 +1,2 @@
DIST validators-0.22.0.tar.gz 41479 BLAKE2B b949ce879df0885c201a972cce746d22810b6338c820f9aad71941b5277b8e14a4b367aa2c18421dd4643dc2ce7247e7bc9511eec5ffe7f737ed07d213b862b0 SHA512 2024f0b33c142537f160086d2c2e511342af283dfed2d9a9ff19877a7897c64b3f2f1f48ee451c38f7fd63374e2e7ce17d0340afc71cb6d272837a37f212142d
+DIST validators-0.23.1.tar.gz 42555 BLAKE2B 8ef5f227dbcbe16981f826abacb0869ef5fc08bfb3785703a91fdb3c3252384a667e22cf434944e427757b5ea45f66f79544478bef865a92971c050b49ecdfee SHA512 920161da0738e272c9705b32516613f9fdfe2ec610b6c3b1c7b078bbfe975d5468d9f020f14d6ecff4ea1cc1ee552b34fe66f9ca022c3cca9202808ff6021e16
diff --git a/dev-python/validators/validators-0.23.1.ebuild b/dev-python/validators/validators-0.23.1.ebuild
new file mode 100644
index 000000000000..c129e9d75200
--- /dev/null
+++ b/dev-python/validators/validators-0.23.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2021-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="Python Data Validation for Humans"
+HOMEPAGE="
+ https://github.com/python-validators/validators/
+ https://pypi.org/project/validators/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+distutils_enable_tests pytest
diff --git a/dev-python/watchdog/Manifest b/dev-python/watchdog/Manifest
index 720d31be731c..ba383ae35737 100644
--- a/dev-python/watchdog/Manifest
+++ b/dev-python/watchdog/Manifest
@@ -1,2 +1 @@
-DIST watchdog-3.0.0.tar.gz 124593 BLAKE2B bc8135dcbe9b1000fb7befc85ebf62518222b0470676cf94aabbe8f871bb05064a46ae4d11ce34f8030d35268c073fe82757b911e3983a8b683ffbd09227395c SHA512 fa1421b01af99d7fa676c9077b2330ead17c004d9bb9e9edd78d4bbf87cf41624ecd669ca48613d99be2109373bbab4e004b69665d2ca42e082573e4740c13d0
DIST watchdog-4.0.0.tar.gz 126415 BLAKE2B 59cba81d705031b89b6cd0a92959cd714ec701c4b986446fb7946898b9df1389734bc7eb7521d5af2df5a1a5e31b2f1dc436ca603b8f70313e99ad2abf0e9922 SHA512 ba1beafe292b52b4628eb570b05d816faffe09acd3b63bc50d986cf04f3c7b4fa9c1ebe5c99a10c0723b5604cfdcbd0c09a17507196a32b8fddeeb46faccf4dd
diff --git a/dev-python/watchdog/watchdog-3.0.0.ebuild b/dev-python/watchdog/watchdog-3.0.0.ebuild
deleted file mode 100644
index d38910221add..000000000000
--- a/dev-python/watchdog/watchdog-3.0.0.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2023 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 optfeature pypi
-
-DESCRIPTION="Python API and shell utilities to monitor file system events"
-HOMEPAGE="
- https://github.com/gorakhargosh/watchdog/
- https://pypi.org/project/watchdog/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
-
-RDEPEND="
- dev-python/pyyaml[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-python/pytest-timeout-0.3[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- sed -e '/--cov/d' -i setup.cfg || die
- default
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # known flaky
- tests/test_emitter.py::test_close
- # requires root powers via sudo (yes, seriously)
- tests/test_inotify_buffer.py::test_unmount_watched_directory_filesystem
- )
-
- epytest -p no:django
-}
-
-pkg_postinst() {
- optfeature "Bash completion" dev-python/argcomplete
-}
diff --git a/dev-python/zope-interface/Manifest b/dev-python/zope-interface/Manifest
index 439bce7987f7..d19d60e2a73b 100644
--- a/dev-python/zope-interface/Manifest
+++ b/dev-python/zope-interface/Manifest
@@ -1,2 +1 @@
-DIST zope.interface-6.1.tar.gz 293914 BLAKE2B e0285c381bbd241be24aef60a59a70d268852dd99113e890d67f6e371792d2c8d19b3bf42d60b04f2a94259c144ec191c1baaca171ece1adf49d0558574152cc SHA512 04305eaf98fb40269d417c6894a6e154340669b66033c50e130d58bf6166cabc0a8979e1ba80dda47cb2bc508dde01ea2175628f89cbfd44cc2f59ac3cdce2c0
DIST zope.interface-6.2.tar.gz 247528 BLAKE2B 4112579da95e763bb5feca7fc8845896178afd5e3fb181a5945de80cf579d0c66373e9ee9cbff97964f79750908b5e4650316b3df1cef16a267c3625268cec46 SHA512 42c169ba88e0e4fe7895f0956250ddb5f3e9aef3e73a801ef71b0e94f906e9f597008de16955a7a8a5ca59551b800e6f000c70ffb3f486a7cbb7bf9caa00059d
diff --git a/dev-python/zope-interface/zope-interface-6.1.ebuild b/dev-python/zope-interface/zope-interface-6.1.ebuild
deleted file mode 100644
index 9a5c2eff85b8..000000000000
--- a/dev-python/zope-interface/zope-interface-6.1.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYPI_PN=${PN/-/.}
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Interfaces for Python"
-HOMEPAGE="
- https://github.com/zopefoundation/zope.interface/
- https://pypi.org/project/zope.interface/
-"
-
-LICENSE="ZPL"
-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"
-
-RDEPEND="
- !dev-python/namespace-zope
-"
-BDEPEND="
- test? (
- dev-python/zope-event[${PYTHON_USEDEP}]
- dev-python/zope-testing[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- # strip rdep specific to namespaces
- sed -e "/'setuptools'/d" -i setup.py || die
- distutils-r1_src_prepare
-}
-
-python_compile() {
- distutils-r1_python_compile
- find "${BUILD_DIR}" -name '*.pth' -delete || die
-}
-
-python_test() {
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- distutils_write_namespace zope
- eunittest
-}