summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.82.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.82.ebuild67
-rw-r--r--dev-python/cbor2/Manifest1
-rw-r--r--dev-python/cbor2/cbor2-5.6.3.ebuild46
-rw-r--r--dev-python/django-otp/Manifest1
-rw-r--r--dev-python/django-otp/django-otp-1.4.1.ebuild43
-rw-r--r--dev-python/h5py/Manifest1
-rw-r--r--dev-python/h5py/h5py-3.11.0.ebuild62
-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/mako/Manifest1
-rw-r--r--dev-python/mako/mako-1.3.3.ebuild49
-rw-r--r--dev-python/openapi-core/Manifest1
-rw-r--r--dev-python/openapi-core/openapi-core-0.19.1.ebuild71
-rw-r--r--dev-python/pandas/Manifest1
-rw-r--r--dev-python/pandas/pandas-2.2.2-r1.ebuild214
-rw-r--r--dev-python/pandas/pandas-2.2.2.ebuild217
-rw-r--r--dev-python/scikit-image/Manifest1
-rw-r--r--dev-python/scikit-image/scikit-image-0.23.1.ebuild97
-rw-r--r--dev-python/snakeoil/Manifest3
-rw-r--r--dev-python/snakeoil/snakeoil-0.10.5.ebuild33
-rw-r--r--dev-python/snakeoil/snakeoil-0.10.6.ebuild33
-rw-r--r--dev-python/snakeoil/snakeoil-0.10.7.ebuild33
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-23.8.2.ebuild121
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-9.0.0.ebuild88
-rw-r--r--dev-python/trove-classifiers/Manifest1
-rw-r--r--dev-python/trove-classifiers/trove-classifiers-2024.4.10.ebuild43
33 files changed, 1201 insertions, 113 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 37635fb80719..4e54453a0552 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.34.74.gh.tar.gz 790202 BLAKE2B 4368db3e11d6bda6eee4ccde82bcc0c2c5a6
DIST boto3-1.34.79.gh.tar.gz 792796 BLAKE2B 97a4f8e6fc33bcfe2817ce353df8ff6354bc89c449e5e29833704e12513aa21129863164c51047b17c7f15a47f0ceb90c60a83071464283292089b2535e8fed9 SHA512 15161face918253eac06dfbeb67adb8ef5ed6902b2eed760feb9fdd3aee0e38da3511aa7d829914b6f80addff7feffae7d3645f7567643a37d3659001d7b6a1a
DIST boto3-1.34.80.gh.tar.gz 793186 BLAKE2B aa45147344c21291f413580473bdd358d25e69944c16ea43e731465911c5c16fdc1e9fde20d69634debdc7cd0af07a999072ee6ecfb6c0b93a96ecb66dee78b3 SHA512 a43be78c98060a0aeb232dad7bb118768711e375f8137d0b59293397056a360a6a6e7d067651404c4ae43180d9c5e100fd2ee041b8ecc17e9982a30cdfc0e8d4
DIST boto3-1.34.81.gh.tar.gz 793676 BLAKE2B 40e8eccfc1a619c5d542233faa13aa099fad43c6eddf669914cdbcd58c44bb13433ccad44d6aa2ef5162ba4f7725269b60e82d9093b2119b029eb884b0fdb4ef SHA512 a1823dd568f3e46bdea0830cd1a56aecd949d7e5f1e3558f759a672ed10f754faf546a69c8f1489dc203f04dc173de644689b6bdb53c4446f3cf81adbabc9211
+DIST boto3-1.34.82.gh.tar.gz 794338 BLAKE2B ea4053423ed712e7ecbaeb749eb1f6a8bc4a2302f71662d10fb9014a2c95a7539943bbffb8175a1fbda9631c931aea2a756f337ccc2f59cd4bf4ae4b5063049b SHA512 d21b91f4f3fee6e91414ce75a39622a09ea7c570c5877fa140e88ea3ab04ce98a34167a973802766c5c654b9a038c536199cc330c1687af9b917ebf4767223a5
diff --git a/dev-python/boto3/boto3-1.34.82.ebuild b/dev-python/boto3/boto3-1.34.82.ebuild
new file mode 100644
index 000000000000..509842b2699d
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.82.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index e9f347d50f0a..22ebb7344525 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.34.74.gh.tar.gz 12820469 BLAKE2B e9d7a35e82aee30666952ea6f74d8d0
DIST botocore-1.34.79.gh.tar.gz 12882231 BLAKE2B 56d7d2a1046a164f4f64f375f608b8646e0f7c266b1c7ab37ff7141fd8d8d843ce2890b0a947f051956f61fb2cfc75c2eb3b3cf70305de4ba9ce2e18d8569ded SHA512 00717ad582e23e1c4f4d803eea2069224fc69c6e701d6b4a55d0d99806cebfb1e2c45c7eb65464b84e0cc63399a7b6235b90ba9245e27fe435eca6079b5c29aa
DIST botocore-1.34.80.gh.tar.gz 12886772 BLAKE2B a77200c5fa28ec9f1a8d65aae08130906719bd530065407446084354e49962f1db22a0c5370d9634d916c563899f3886613a35c24fa2f02967bbf1d191d27b0e SHA512 b2b767f54426bd7cef6d49cdaa4e3d81a11a557e3364646b1cb738bc3f050172f08127c95bca00b170cf2758a71e1ef0f4273bfa7dda6f6dc05b252f73ac903f
DIST botocore-1.34.81.gh.tar.gz 12888862 BLAKE2B 75394b63e4617da9e41801de96b4fa2e590add49e7697771e018ab0ca161dbc3eab95b4af98a1886e8d41419b9e3508727912082708e0197f676437cd19091ef SHA512 dba689f4fe6b32eeb4ef32b49217849a5b6624f8ce3bfeb0857f88b98f84c38d4f04b3ef4c5d3e613ed96117f433cb16562984f6d826149dbbed80230d54386b
+DIST botocore-1.34.82.gh.tar.gz 12892302 BLAKE2B d536197d6cd93e85d6e67bdf854a337c4fbf3702b699caf9b3d11553fd41b8de9f4cd10e410a1bcf27f20d2b83e19891afad1eebb064ba71d8779b1db7ee1de3 SHA512 5de261d295ad482ec13878fefc5775764345624eaf43fd0dc38d4419aa05a9d3a5f81ab1d1f09eeefaa70b5c87795dd8168105360005f2592ba7b6919bccfdb4
diff --git a/dev-python/botocore/botocore-1.34.82.ebuild b/dev-python/botocore/botocore-1.34.82.ebuild
new file mode 100644
index 000000000000..857224b496b7
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.82.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/cbor2/Manifest b/dev-python/cbor2/Manifest
index 8d1faf61b2b0..7cb9096822bc 100644
--- a/dev-python/cbor2/Manifest
+++ b/dev-python/cbor2/Manifest
@@ -1 +1,2 @@
DIST cbor2-5.6.2.tar.gz 100016 BLAKE2B a0a71f40f39ba86c545e5f8462af74e17b6851d350f0c9831be2ac414216437021150d0d7ddb481d62454d5ff73b99ccda7ae0676fd6d53b7e3228616fa0042d SHA512 da98aaf17b17b50bdfc4dbecc1e88e70ed6e99f26e9eb4124de0e92ea2d63f827cee3da83c9aeba1af386cf5a7e95d76be30c79b0a8fde7d53ee8c203b2119b9
+DIST cbor2-5.6.3.tar.gz 100224 BLAKE2B bccdca4fb2659c201663897a27801b7ae040fecc1c734356d4e4859df94eb65ef122bdda68384670102ee40476135d0c781c9f966b7c2845babb2bbd9729bc78 SHA512 1ab6a88a95cde178b21a75275fb286038f15d2fbd752059f9fc6fdb64e23eca90f65f7e443cae4bdbb7f451378711b20963909136c06b3bb4f054d52a7a95207
diff --git a/dev-python/cbor2/cbor2-5.6.3.ebuild b/dev-python/cbor2/cbor2-5.6.3.ebuild
new file mode 100644
index 000000000000..96b4b1b35f34
--- /dev/null
+++ b/dev-python/cbor2/cbor2-5.6.3.ebuild
@@ -0,0 +1,46 @@
+# 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="Pure Python CBOR (de)serializer with extensive tag support"
+HOMEPAGE="
+ https://github.com/agronholm/cbor2/
+ https://pypi.org/project/cbor2/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ >=dev-python/setuptools-61[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # remove pytest-cov dep
+ sed -i -e "s/--cov//" pyproject.toml || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ local -x CBOR2_BUILD_C_EXTENSION=1
+ # pypy3 not supported upstream
+ if [[ ${EPYTHON} == pypy3 ]] || ! use native-extensions; then
+ CBOR2_BUILD_C_EXTENSION=0
+ fi
+ distutils-r1_python_compile
+}
diff --git a/dev-python/django-otp/Manifest b/dev-python/django-otp/Manifest
index 1b4d366e9a0a..302ad5a338bf 100644
--- a/dev-python/django-otp/Manifest
+++ b/dev-python/django-otp/Manifest
@@ -1,2 +1,3 @@
DIST django_otp-1.3.0.tar.gz 69013 BLAKE2B 4b6143bb8863e6c151df954a3c4ac4ecca770b1f396dd291e8634e8ad5e0755514111dac02307120e74abacf04bc681503a973bba067817c80bcffc8c462c592 SHA512 ef63c5db096ce7d1b10d6b2a99ab6db46b779d4221f509452921fcbf338decbd5c799aec7476587a03b34288ef3f5ff1964dee72105b65f04a22cbd53d445fa4
DIST django_otp-1.4.0.tar.gz 71690 BLAKE2B 61144122ab6dec438dcc3136e8856b4d66c598e811f1fdd21e5ba77a907ae5bda88fd543a1c87a165d9ba30ce2bcd7415b04d598719ecb46f2f3ddc15a342aa0 SHA512 df4a11d3cb6a55e2506815b81c7e8cc3e9c272afd8d1d9ba94fd1336467b177ea3eb1e89129c3c727d7ce74ce159e5d153a22e0be2d3d638c8357653b22dba56
+DIST django_otp-1.4.1.tar.gz 71847 BLAKE2B 49764cd1957ab2a6644780c1c6a0947b20bb4a0c1ca286907122a8b47f937aca8d1d2e480f7a309b546ac503cb0c3b1ea3e03532e7d6c38fe8db1606406eda71 SHA512 bb041a6ecd93dbad4f83d6593dfbc2f4768e1a3e68df332a61ed9ce483a8ec7090179a6865b128d02a2fc5ba2b42cd63dc16595a7b98e2728733fc274d506b1a
diff --git a/dev-python/django-otp/django-otp-1.4.1.ebuild b/dev-python/django-otp/django-otp-1.4.1.ebuild
new file mode 100644
index 000000000000..abcade6e9261
--- /dev/null
+++ b/dev-python/django-otp/django-otp-1.4.1.ebuild
@@ -0,0 +1,43 @@
+# 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} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Django framework adding two-factor authentication using one-time passwords"
+HOMEPAGE="
+ https://github.com/django-otp/django-otp/
+ https://pypi.org/project/django-otp/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/django-3.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/qrcode[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ ${RDEPEND}
+ )
+"
+
+python_test() {
+ local -x PYTHONPATH=test:${PYTHONPATH}
+ local -x DJANGO_SETTINGS_MODULE=test_project.settings
+ "${EPYTHON}" -m django test -v 2 django_otp ||
+ die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/h5py/Manifest b/dev-python/h5py/Manifest
index 9858508408b0..c732deb78cdf 100644
--- a/dev-python/h5py/Manifest
+++ b/dev-python/h5py/Manifest
@@ -1,2 +1,3 @@
DIST h5py-3.10.0-cython3.patch.xz 3868 BLAKE2B 3c0d952bdca5307ebf0bf878c26b94d0593bb89ac538a51017fb94e1e488bffc1583dcf4e713005b87d1b5e20d7b73043b24d65404faf60fb69515e598ca2133 SHA512 a0a0e3d1a9bccad1c89aa7efe3ba1e080eb70cae1f42f8de1021c212817970eaaa7070131e8e39859eea3c18d6c1243a17e7f53f2179f34ff6c406b315bab8fa
DIST h5py-3.10.0.tar.gz 403716 BLAKE2B a8e4351a15aee5fe9d23f9c5f9b6ff44e688a391ba17e27338675bde60415c73e3cd97a4a0c05490df849f649d626450d3dbecc9ae6ea3d24d784a0a4aaa1850 SHA512 840d7f2b9b9d5e22e8edae21c84884abec64acdd6c36437a4921ce9dc1b343c55f66f72b699146d71fe55688f6f948787b62335a24906288e9565b2b19b24b01
+DIST h5py-3.11.0.tar.gz 406519 BLAKE2B a5568c96290eee1f6da965174b6fa398f94e2e1825ec4ec50efd856b37ccf2bf634cfeb32101c7c53712fe9c68b0617774e9339a3f0d9373d3df24e6763a20cf SHA512 05d99093d5e7c280779b4167bd3594488dfc348b800da95c2275ddc8d77b4208fd1353942bf8863c4859d0208e8aa8bf84e628b3c5942eb947ecdcf0a7d19e88
diff --git a/dev-python/h5py/h5py-3.11.0.ebuild b/dev-python/h5py/h5py-3.11.0.ebuild
new file mode 100644
index 000000000000..2bc5596688ae
--- /dev/null
+++ b/dev-python/h5py/h5py-3.11.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_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple Python interface to HDF5 files"
+HOMEPAGE="
+ https://www.h5py.org/
+ https://github.com/h5py/h5py/
+ https://pypi.org/project/h5py/
+"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-3.10.0-cython3.patch.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+IUSE="examples"
+
+DEPEND="
+ >=sci-libs/hdf5-1.10.4:=[hl(+)]
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/numpy-1.17.3[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/cython-0.29.31[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.14.5[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ test? (
+ dev-python/QtPy[testlib,${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/alabaster
+
+python_prepare_all() {
+ # avoid pytest-mpi dep, we do not use mpi anyway
+ sed -i -e 's:pytest-mpi::' pytest.ini || die
+ distutils-r1_python_prepare_all
+
+ export H5PY_SETUP_REQUIRES=0
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest -m "not mpi"
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
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/mako/Manifest b/dev-python/mako/Manifest
index 1877327c693c..933299d49615 100644
--- a/dev-python/mako/Manifest
+++ b/dev-python/mako/Manifest
@@ -1 +1,2 @@
DIST Mako-1.3.2.tar.gz 390659 BLAKE2B 930b74a19c8b582781b05d7042f8c27636989614df62328f5c3548d427c1e3e2366edb8a7ad3ecbd123ef5344c9cf2ba1bdc00e8540b9624d7bcecfecb8329a5 SHA512 acde7b4be929fdd97f2a3fc133966ffc44b5706dbdd3f1af0fee16620b3c82d12b1a67b7292a229084ebb4f0c392e8db1b2844112baa3c6a5fd2be8777b04897
+DIST Mako-1.3.3.tar.gz 389980 BLAKE2B 1c890f159e808a7026e46a489d49ec19a346ce0a8be8d2ea1ef870435830a9021b0877a3d395c9273609be9dc4b11d1e5359d89a9b571a73f05de11152988800 SHA512 fa8bf3997f7a3edc18057f53e8450d72d5c86019229fef91eaa141f0b65a081ca9425c14245227b35aedcccc7dbe52e90bc7dfee34598b490e93cd01fc4a8321
diff --git a/dev-python/mako/mako-1.3.3.ebuild b/dev-python/mako/mako-1.3.3.ebuild
new file mode 100644
index 000000000000..399b690d7b2c
--- /dev/null
+++ b/dev-python/mako/mako-1.3.3.ebuild
@@ -0,0 +1,49 @@
+# 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
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python templating language"
+HOMEPAGE="
+ https://www.makotemplates.org/
+ https://github.com/sqlalchemy/mako/
+ https://pypi.org/project/Mako/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-python/markupsafe-0.9.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/Babel[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=(
+ test/test_exceptions.py::ExceptionsTest::test_alternating_file_names
+ )
+ epytest
+}
+
+python_install_all() {
+ rm -r doc/build || die
+
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/openapi-core/Manifest b/dev-python/openapi-core/Manifest
index 4430496d97ee..b1edbe7997f0 100644
--- a/dev-python/openapi-core/Manifest
+++ b/dev-python/openapi-core/Manifest
@@ -1,2 +1,3 @@
DIST openapi_core-0.18.2.tar.gz 84444 BLAKE2B bb05ba86eff3c70c780f1919a29b93f2137983318834c51204d7ad1094fc645d2dbcef93d92d03096826688fdfe1811c551eee68995fd46739314c2e4bc77cfc SHA512 552109c095c840a46759a54e247a3ac2d8cc36707ba89815740eef4b7fb421bd489929543892341fd89a578bff4043c8c81302fddaa1efe125238e050f152c27
DIST openapi_core-0.19.0.tar.gz 105815 BLAKE2B 25036e98dbf4d572e77eb5dcc00909df1cd2d7b7c37bb691c403df2a48273cc2dd4150c99c526eacc709785f4ec9c525de53e7f613f10b15177fc1ff90ce76fe SHA512 3a94170f8ab6a47188c693545be9d2cd965d2479c838a8644d6218f9f46b54fdb94e0550ea5626e5ba58920419b7c700d26b2e6dd6a55afeb73778f582a645e0
+DIST openapi_core-0.19.1.tar.gz 107802 BLAKE2B c8cd318ab6a88272e45fbff16df7e0cef7d8bab6c7cef8d965443fa0ad7439182bd9639f8a912ad913eb3d7727c4aeb49d576a8721aac1d0ba9423dd344da44d SHA512 861e3793303ec89265be3a0846ad702e321ebc8536497d146ef10a4c9ab54900ad35ee9e90ef42e1f0856da8c0e746471e9820b0ac3e149adaa0b951a66b382f
diff --git a/dev-python/openapi-core/openapi-core-0.19.1.ebuild b/dev-python/openapi-core/openapi-core-0.19.1.ebuild
new file mode 100644
index 000000000000..59c15dd0f57e
--- /dev/null
+++ b/dev-python/openapi-core/openapi-core-0.19.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Client-side and server-side support for the OpenAPI Specification v3"
+HOMEPAGE="
+ https://github.com/python-openapi/openapi-core/
+ https://pypi.org/project/openapi-core/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.6.0[${PYTHON_USEDEP}]
+ dev-python/isodate[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4.17.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-path-0.4[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-path-0.3.1[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ dev-python/parse[${PYTHON_USEDEP}]
+ <dev-python/openapi-schema-validator-0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-schema-validator-0.6.0[${PYTHON_USEDEP}]
+ <dev-python/openapi-spec-validator-0.8[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.7.1[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/aiohttp-3.8.4[${PYTHON_USEDEP}]
+ >=dev-python/aioitertools-0.11.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.24.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-aiohttp-1.0.4[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ >=dev-python/starlette-0.26.1[${PYTHON_USEDEP}]
+ dev-python/strict-rfc3339[${PYTHON_USEDEP}]
+ dev-python/webob[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # missing dependendencies
+ tests/integration/contrib/falcon
+ tests/integration/contrib/fastapi
+
+ # TODO: these tests fail to collect
+ tests/integration/validation/test_security_override.py
+ tests/integration/validation/test_read_only_write_only.py
+
+ # unhappy about modern django
+ tests/integration/contrib/django/test_django_project.py
+ tests/unit/contrib/django/test_django.py
+)
+
+src_prepare() {
+ sed -i -e '/--cov/d' pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pandas/Manifest b/dev-python/pandas/Manifest
index e7d0eca84d14..6ec9246b695c 100644
--- a/dev-python/pandas/Manifest
+++ b/dev-python/pandas/Manifest
@@ -1,3 +1,4 @@
DIST pandas-2.1.4.tar.gz 4274800 BLAKE2B 71cd374964d5e751a9ea0b29cb341d7de521de8de3bbe0963fc821eb6fa2babf2a5cb87c0f49fab88fd451bd331d83fd216f199c75876d7c1ea367ba53c20178 SHA512 de02944829ea4df6a3913788c2ae30683504d70a1cef5789c927245dab8700981edd50de18af3619d30ac97f4658fce67f6c7637acf496bd464ad3a4109bfd1c
DIST pandas-2.2.0.tar.gz 4390211 BLAKE2B 205410d02d1295bfb68403685fb9247ca361c80233e762b8d798ff4a04fd1ca39e22bc3beb3f701490dbaf0a2d69a1afebbfe142ef646506c1d19aba88a1b5c6 SHA512 6de7f6941f08d412d5e6e3b33e7ad569afce4ade2eda9a68f2883e8ccefe8373212a1b80ac384e68522fb5a9c043de0b944b3920d07131ed6625363f2a4b0b5b
DIST pandas-2.2.1.tar.gz 4395256 BLAKE2B 7f66c2995699832930a626ff01b3b39bafa0bd19f41245b8b49bbf5a1b78663433060f4d94817498494b6cf66d38dde27da64e196c6400e50f30441d7e51991b SHA512 8e6af4793d8b77e5c86a22c88f999dba63b1cc1954f5148bdb8c9b1bfe4e7fc5004de7d0f035b2d651f56c44b28ba4b0bd304f9c9122426cc37fb97596e13746
+DIST pandas-2.2.2.tar.gz 4398391 BLAKE2B 6b723d85c500abaca4d833e4fb329d9a495e3e8ae51c74632111b139ed38ca9e26087ba43ecc40d68f66613352dc140bb2f1b0cbb92915bb027548886072fc79 SHA512 85b006f96bd6400aeea2ec29df3557ea6c4bfee0a7aebb172547a43171dc0e7682d15f798081846a4f464559ab83f579cfe06d66d4b5c0cb0fb2975c2ef98f9c
diff --git a/dev-python/pandas/pandas-2.2.2-r1.ebuild b/dev-python/pandas/pandas-2.2.2-r1.ebuild
new file mode 100644
index 000000000000..6bf4e4dd7f14
--- /dev/null
+++ b/dev-python/pandas/pandas-2.2.2-r1.ebuild
@@ -0,0 +1,214 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_REQ_USE="threads(+)"
+
+VIRTUALX_REQUIRED="manual"
+
+inherit distutils-r1 optfeature pypi virtualx
+
+DESCRIPTION="Powerful data structures for data analysis and statistics"
+HOMEPAGE="
+ https://pandas.pydata.org/
+ https://github.com/pandas-dev/pandas/
+ https://pypi.org/project/pandas/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~riscv"
+IUSE="full-support minimal test X"
+RESTRICT="!test? ( test )"
+
+RECOMMENDED_DEPEND="
+ >=dev-python/bottleneck-1.3.4[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-2.8.0[${PYTHON_USEDEP}]
+"
+
+# TODO: add pandas-gbq to the tree
+# TODO: Re-add dev-python/statsmodel[python3_11] dep once it supports python3_11
+# https://github.com/statsmodels/statsmodels/issues/8287
+OPTIONAL_DEPEND="
+ >=dev-python/beautifulsoup4-4.11.1[${PYTHON_USEDEP}]
+ dev-python/blosc[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-1.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja-3.1.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-3.6.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.4.36[${PYTHON_USEDEP}]
+ >=dev-python/tables-3.7.0[${PYTHON_USEDEP}]
+ >=dev-python/tabulate-0.8.10[${PYTHON_USEDEP}]
+ >=dev-python/xarray-2022.3.0[${PYTHON_USEDEP}]
+ >=dev-python/xlrd-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/xlwt-1.3.0[${PYTHON_USEDEP}]
+ !arm? ( !hppa? ( !ppc? ( !x86? (
+ >=dev-python/scipy-1.8.1[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ ) ) ) )
+ X? (
+ || (
+ >=dev-python/PyQt5-5.15.6[${PYTHON_USEDEP}]
+ >=dev-python/QtPy-2.2.0[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+ )
+"
+DEPEND="
+ >=dev-python/numpy-1.23.2:=[${PYTHON_USEDEP}]
+"
+COMMON_DEPEND="
+ ${DEPEND}
+ >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2020.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${COMMON_DEPEND}
+ >=dev-build/meson-1.2.1
+ >=dev-python/cython-3.0.5[${PYTHON_USEDEP}]
+ >=dev-python/versioneer-0.28[${PYTHON_USEDEP}]
+ test? (
+ ${VIRTUALX_DEPEND}
+ ${RECOMMENDED_DEPEND}
+ ${OPTIONAL_DEPEND}
+ dev-libs/apache-arrow[brotli,parquet,snappy]
+ >=dev-python/beautifulsoup4-4.11.1[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.46.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-3.0.10[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-10.0.1[parquet,${PYTHON_USEDEP}]
+ >=dev-python/pymysql-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ dev-python/tzdata[${PYTHON_USEDEP}]
+ !minimal? ( ${RECOMMENDED_DEPEND} )
+ full-support? ( ${OPTIONAL_DEPEND} )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # test for rounding errors, fails if we have better precision
+ # e.g. on amd64 with FMA or on arm64
+ # https://github.com/pandas-dev/pandas/issues/38921
+ tests/window/test_rolling.py::test_rolling_var_numerical_issues
+
+ # TODO; unhappy about DISPLAY?
+ tests/test_downstream.py::test_seaborn
+
+ # OOMs
+ tests/io/parser/test_c_parser_only.py::test_bytes_exceed_2gb
+
+ # TODO: numexpr says "forbidden control characters"
+ tests/computation/test_eval.py::TestOperations::test_multi_line_expression_local_variable
+ 'tests/computation/test_eval.py::test_query_token[numexpr-Temp(\xb0C)]'
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_lots_of_operators_string
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_multiple_spaces
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_parenthesis
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_start_with_spaces
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_local_syntax
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_local_variable_with_in
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_nested_scope
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_query_scope
+
+ # TODO: missing data not covered by --no-strict-data-files?
+ tests/io/xml/test_xml.py::test_empty_stylesheet
+ tests/io/xml/test_xml.py::test_wrong_file_path
+
+ # TODO
+ tests/frame/test_arithmetic.py::TestFrameFlexArithmetic::test_floordiv_axis0_numexpr_path
+
+ # deprecation warning
+ tests/io/pytables/test_retain_attributes.py::test_retain_index_attributes2
+ 'tests/computation/test_eval.py::TestEval::test_scalar_unary[numexpr-pandas]'
+
+ # Needs 64-bit time_t (TODO: split into 32-bit arch only section)
+ tests/tseries/offsets/test_year.py::test_add_out_of_pydatetime_range
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessDay]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessHour]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessDay]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessHour]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-QuarterEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-LastWeekOfMonth]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-WeekOfMonth]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-Week]'
+
+ # hdf / pytables have alignment problems: bug #911660
+ # https://github.com/pandas-dev/pandas/issues/54396
+ tests/io/pytables/test_append.py::test_append_frame_column_oriented
+ tests/io/pytables/test_store.py::test_select_filter_corner
+
+ # blosc2 version
+ tests/io/pytables/test_file_handling.py::test_complibs\[blosc2-{1..9}\]
+
+ # requires -Werror
+ tests/tslibs/test_to_offset.py::test_to_offset_lowercase_frequency_deprecated
+ tests/tslibs/test_to_offset.py::test_to_offset_uppercase_frequency_deprecated
+
+ # assumes that it will fail due to -mfpmath=387 on 32-bit arches,
+ # so it XPASS-es in every other scenario
+ tests/tools/test_to_timedelta.py::TestTimedeltas::test_to_timedelta_float
+ )
+
+ if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/plotting/test_misc.py::test_savefig
+ )
+ fi
+
+ local -x LC_ALL=C.UTF-8
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
+ # --no-strict-data-files is necessary since upstream prevents data
+ # files from even being included in GitHub archives, sigh
+ # https://github.com/pandas-dev/pandas/issues/54907
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest pandas/tests \
+ --no-strict-data-files \
+ -m "not single_cpu and not slow and not network and not db" ||
+ die "Tests failed with ${EPYTHON}"
+ rm test-data.xml test_stata.dta || die
+}
+
+pkg_postinst() {
+ optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
+ optfeature "accelerating certain numerical operations, using multiple cores as well as smart chunking and caching to achieve large speedups" ">=dev-python/numexpr-2.1"
+ optfeature "needed for pandas.io.html.read_html" dev-python/beautifulsoup4 dev-python/html5lib dev-python/lxml
+ optfeature "for msgpack compression using blosc" dev-python/blosc
+ optfeature "Template engine for conditional HTML formatting" dev-python/jinja
+ optfeature "Plotting support" dev-python/matplotlib
+ optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-3.0.10" dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt
+ optfeature "necessary for HDF5-based storage" ">=dev-python/tables-3.7.0"
+ optfeature "R I/O support" dev-python/rpy
+ optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
+ optfeature "SQL database support" ">=dev-python/sqlalchemy-1.4.36"
+ optfeature "miscellaneous statistical functions" dev-python/scipy
+ optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/PyQt5 dev-python/QtPy dev-python/pygtk x11-misc/xclip x11-misc/xsel
+}
diff --git a/dev-python/pandas/pandas-2.2.2.ebuild b/dev-python/pandas/pandas-2.2.2.ebuild
new file mode 100644
index 000000000000..90b22a5d82d1
--- /dev/null
+++ b/dev-python/pandas/pandas-2.2.2.ebuild
@@ -0,0 +1,217 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_REQ_USE="threads(+)"
+
+VIRTUALX_REQUIRED="manual"
+
+inherit distutils-r1 optfeature pypi virtualx
+
+DESCRIPTION="Powerful data structures for data analysis and statistics"
+HOMEPAGE="
+ https://pandas.pydata.org/
+ https://github.com/pandas-dev/pandas/
+ https://pypi.org/project/pandas/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="full-support minimal test X"
+RESTRICT="!test? ( test )"
+
+RECOMMENDED_DEPEND="
+ >=dev-python/bottleneck-1.3.4[${PYTHON_USEDEP}]
+ >=dev-python/numexpr-2.8.0[${PYTHON_USEDEP}]
+"
+
+# TODO: add pandas-gbq to the tree
+# TODO: Re-add dev-python/statsmodel[python3_11] dep once it supports python3_11
+# https://github.com/statsmodels/statsmodels/issues/8287
+OPTIONAL_DEPEND="
+ >=dev-python/beautifulsoup4-4.11.1[${PYTHON_USEDEP}]
+ dev-python/blosc[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-1.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja-3.1.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-3.6.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.4.36[${PYTHON_USEDEP}]
+ >=dev-python/tables-3.7.0[${PYTHON_USEDEP}]
+ >=dev-python/tabulate-0.8.10[${PYTHON_USEDEP}]
+ >=dev-python/xarray-2022.3.0[${PYTHON_USEDEP}]
+ >=dev-python/xlrd-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/xlwt-1.3.0[${PYTHON_USEDEP}]
+ !arm? ( !hppa? ( !ppc? ( !x86? (
+ >=dev-python/scipy-1.8.1[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ ) ) ) )
+ X? (
+ || (
+ >=dev-python/PyQt5-5.15.6[${PYTHON_USEDEP}]
+ >=dev-python/QtPy-2.2.0[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ )
+ )
+"
+DEPEND="
+ >=dev-python/numpy-1.23.2:=[${PYTHON_USEDEP}]
+"
+COMMON_DEPEND="
+ ${DEPEND}
+ >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2020.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${COMMON_DEPEND}
+ >=dev-build/meson-1.2.1
+ >=dev-python/cython-3.0.5[${PYTHON_USEDEP}]
+ >=dev-python/versioneer-0.28[${PYTHON_USEDEP}]
+ test? (
+ ${VIRTUALX_DEPEND}
+ ${RECOMMENDED_DEPEND}
+ ${OPTIONAL_DEPEND}
+ >=dev-python/beautifulsoup4-4.11.1[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.46.1[${PYTHON_USEDEP}]
+ >=dev-python/openpyxl-3.0.10[${PYTHON_USEDEP}]
+ >=dev-python/pymysql-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/xlsxwriter-3.0.3[${PYTHON_USEDEP}]
+ x11-misc/xclip
+ x11-misc/xsel
+ !!dev-python/pyarrow
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ dev-python/tzdata[${PYTHON_USEDEP}]
+ !minimal? ( ${RECOMMENDED_DEPEND} )
+ full-support? ( ${OPTIONAL_DEPEND} )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # test for rounding errors, fails if we have better precision
+ # e.g. on amd64 with FMA or on arm64
+ # https://github.com/pandas-dev/pandas/issues/38921
+ tests/window/test_rolling.py::test_rolling_var_numerical_issues
+
+ # TODO; unhappy about DISPLAY?
+ tests/test_downstream.py::test_seaborn
+
+ # OOMs
+ tests/io/parser/test_c_parser_only.py::test_bytes_exceed_2gb
+
+ # TODO: numexpr says "forbidden control characters"
+ tests/computation/test_eval.py::TestOperations::test_multi_line_expression_local_variable
+ 'tests/computation/test_eval.py::test_query_token[numexpr-Temp(\xb0C)]'
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_lots_of_operators_string
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_multiple_spaces
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_parenthesis
+ tests/frame/test_query_eval.py::TestDataFrameQueryBacktickQuoting::test_start_with_spaces
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_local_syntax
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_local_variable_with_in
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_nested_scope
+ tests/frame/test_query_eval.py::TestDataFrameQueryNumExprPandas::test_query_scope
+
+ # TODO: missing data not covered by --no-strict-data-files?
+ tests/io/xml/test_xml.py::test_empty_stylesheet
+ tests/io/xml/test_xml.py::test_wrong_file_path
+
+ # TODO
+ tests/frame/test_arithmetic.py::TestFrameFlexArithmetic::test_floordiv_axis0_numexpr_path
+
+ # deprecation warning
+ tests/io/pytables/test_retain_attributes.py::test_retain_index_attributes2
+ 'tests/computation/test_eval.py::TestEval::test_scalar_unary[numexpr-pandas]'
+
+ # Needs 64-bit time_t (TODO: split into 32-bit arch only section)
+ tests/tseries/offsets/test_year.py::test_add_out_of_pydatetime_range
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessDay]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessHour]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BusinessMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-BQuarterBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessDay]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessHour]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-CustomBusinessMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-MonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthBegin]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-SemiMonthEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-QuarterEnd]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-LastWeekOfMonth]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-WeekOfMonth]'
+ 'tests/tseries/offsets/test_common.py::test_apply_out_of_range[tzlocal()-Week]'
+
+ # hdf / pytables have alignment problems: bug #911660
+ # https://github.com/pandas-dev/pandas/issues/54396
+ tests/io/pytables/test_append.py::test_append_frame_column_oriented
+ tests/io/pytables/test_store.py::test_select_filter_corner
+
+ # blosc2 version
+ tests/io/pytables/test_file_handling.py::test_complibs\[blosc2-{1..9}\]
+
+ # requires -Werror
+ tests/tslibs/test_to_offset.py::test_to_offset_lowercase_frequency_deprecated
+ tests/tslibs/test_to_offset.py::test_to_offset_uppercase_frequency_deprecated
+
+ # requires pyarrow
+ tests/io/formats/style/test_bar.py::test_style_bar_with_pyarrow_NA_values
+ tests/series/test_api.py::TestSeriesMisc::test_inspect_getmembers
+
+ # assumes that it will fail due to -mfpmath=387 on 32-bit arches,
+ # so it XPASS-es in every other scenario
+ tests/tools/test_to_timedelta.py::TestTimedeltas::test_to_timedelta_float
+ )
+
+ if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/plotting/test_misc.py::test_savefig
+ )
+ fi
+
+ local -x LC_ALL=C.UTF-8
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ "${EPYTHON}" -c "import pandas; pandas.show_versions()" || die
+ # --no-strict-data-files is necessary since upstream prevents data
+ # files from even being included in GitHub archives, sigh
+ # https://github.com/pandas-dev/pandas/issues/54907
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest pandas/tests \
+ --no-strict-data-files \
+ -m "not single_cpu and not slow and not network and not db" ||
+ die "Tests failed with ${EPYTHON}"
+ rm test-data.xml test_stata.dta || die
+}
+
+pkg_postinst() {
+ optfeature "accelerating certain types of NaN evaluations, using specialized cython routines to achieve large speedups." dev-python/bottleneck
+ optfeature "accelerating certain numerical operations, using multiple cores as well as smart chunking and caching to achieve large speedups" ">=dev-python/numexpr-2.1"
+ optfeature "needed for pandas.io.html.read_html" dev-python/beautifulsoup4 dev-python/html5lib dev-python/lxml
+ optfeature "for msgpack compression using blosc" dev-python/blosc
+ optfeature "Template engine for conditional HTML formatting" dev-python/jinja
+ optfeature "Plotting support" dev-python/matplotlib
+ optfeature "Needed for Excel I/O" ">=dev-python/openpyxl-3.0.10" dev-python/xlsxwriter dev-python/xlrd dev-python/xlwt
+ optfeature "necessary for HDF5-based storage" ">=dev-python/tables-3.7.0"
+ optfeature "R I/O support" dev-python/rpy
+ optfeature "Needed for parts of pandas.stats" dev-python/statsmodels
+ optfeature "SQL database support" ">=dev-python/sqlalchemy-1.4.36"
+ optfeature "miscellaneous statistical functions" dev-python/scipy
+ optfeature "necessary to use pandas.io.clipboard.read_clipboard support" dev-python/PyQt5 dev-python/QtPy dev-python/pygtk x11-misc/xclip x11-misc/xsel
+}
diff --git a/dev-python/scikit-image/Manifest b/dev-python/scikit-image/Manifest
index ecdbdaba9105..19374f7c05eb 100644
--- a/dev-python/scikit-image/Manifest
+++ b/dev-python/scikit-image/Manifest
@@ -1,3 +1,4 @@
DIST scikit-image-data-15735b54e85c02427f07c71e6456723495034805.tar.bz2 143900901 BLAKE2B c1352e76337250fe1a9d6e07f08b6c9b1e0aed922ab8e0a3a4a1ea175f593b3375522e59550d30a22d392c34fef26d638c007c2af3d991887e02e7c68e56ebbb SHA512 d113dd258b35be710d841f9900cfbfe7103d1190b042489de88dd504b56277edac9a98fed5517e57725c5292fe26528267a06ff313bf6500b669d872c4481146
DIST scikit_image-0.22.0.tar.gz 22685018 BLAKE2B 7d0a65f75f5a58211e21501d6cc6a638f1d36e9a2198a3ad9ff2f230890496c41d5e6cdaed02bbaa62f26aa57fd24fc993656cbdfc2c9c9750147d0f325e56f1 SHA512 4b8c097cd5465f57b1c0879363fe3bdc0941decf2d1f8a881f13f2b7f3207c425f3a0cdcb4be0eed7b33d3ac2f3f8b1835d1cfa69cd3fa2ff5e0be11385fef48
DIST scikit_image-0.23.0rc2.tar.gz 22677632 BLAKE2B b663065650e25a33ffec80ddd05df622bc62b1c1d3d0a831488d4dd23291b4f125458ae335782762b1d4dc1efa8cbedd5fcd7e6bbe62003967209e4ca4179bca SHA512 aa5f27d571ea49276aba8443a691b30a576d52145a17f13b8ea080a2abf0ed01c57fe50324c05e72bb4662a9ddbb480be94be6784ac3220ed6853b12d94ae06b
+DIST scikit_image-0.23.1.tar.gz 22676819 BLAKE2B 2d02bab4f8d6217c842f428a6758d467393a73a05ac741a49cd27fa6ee48335cf8fed4cc104296388d0e23c61ac3603f72d7bab44986c0d3d4073da383f89726 SHA512 7450387c3adcac15148c3ae4f43fd7da97ceabf3522302b7f3ab4cd02e5a9ec2cd9623f29e4aec3bb47668a231e0900724804619bb91aaaf97283d29c34392e6
diff --git a/dev-python/scikit-image/scikit-image-0.23.1.ebuild b/dev-python/scikit-image/scikit-image-0.23.1.ebuild
new file mode 100644
index 000000000000..6370fde1999b
--- /dev/null
+++ b/dev-python/scikit-image/scikit-image-0.23.1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=meson-python
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 optfeature pypi
+
+TEST_DATA_COMMIT=15735b54e85c02427f07c71e6456723495034805
+DESCRIPTION="Image processing routines for SciPy"
+HOMEPAGE="
+ https://scikit-image.org/
+ https://github.com/scikit-image/scikit-image/
+ https://pypi.org/project/scikit-image/
+"
+SRC_URI+="
+ test? (
+ https://gitlab.com/scikit-image/data/-/archive/${TEST_DATA_COMMIT}/scikit-image-data-${TEST_DATA_COMMIT}.tar.bz2
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/imageio-2.33[${PYTHON_USEDEP}]
+ >=dev-python/lazy-loader-0.4[${PYTHON_USEDEP}]
+ >=dev-python/networkx-2.8[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
+ >=dev-python/pillow-9.1[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.9[sparse(+),${PYTHON_USEDEP}]
+ >=dev-python/tifffile-2022.8.12[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-python/cython-3.0.4[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( CONTRIBUTORS.txt RELEASE.txt )
+
+# xdist does not work with this test suite
+distutils_enable_tests pytest
+# There is a programmable error in your configuration file:
+#distutils_enable_sphinx doc/source dev-python/numpydoc dev-python/myst-parser
+
+src_test() {
+ # for some reason, upstream refetches data that's already in the tarball
+ # sigh
+ mkdir -p "${HOME}/.cache/scikit-image" || die
+ mv skimage "${HOME}/.cache/scikit-image/${PV/_/}" || die
+
+ # This is a true horror, sigh
+ local cache_dir=${HOME}/.cache/scikit-image/${PV/_/}/data
+ pushd "${WORKDIR}/data-${TEST_DATA_COMMIT}" >/dev/null || die
+ cp Tests_besides_Equalize_Otsu/add18_entropy/rank_filters_tests_3d.npz \
+ Tests_besides_Equalize_Otsu/gray_morph_output.npz \
+ brain.tiff cells3d.tif eagle.png \
+ "${cache_dir}/" || die
+ cp Normal_Epidermis_and_Dermis_with_Intradermal_Nevus_10x.JPG "${cache_dir}"/skin.jpg || die
+ cp pivchallenge/B/B001_1.tif "${cache_dir}"/pivchallenge-B-B001_1.tif || die
+ cp pivchallenge/B/B001_2.tif "${cache_dir}"/pivchallenge-B-B001_2.tif || die
+ cp kidney-tissue-fluorescence.tif "${cache_dir}"/kidney.tif || die
+ cp lily-of-the-valley-fluorescence.tif "${cache_dir}"/lily.tif || die
+ cp astronaut_rl.npy "${cache_dir}/../restoration/tests/" || die
+ popd > /dev/null || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for downloading all data files, including these not needed
+ # by any actual tests
+ data/tests/test_data.py::test_download_all_with_pooch
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest --pyargs skimage -p localserver -o xfail_strict=False
+}
+
+pkg_postinst() {
+ optfeature "FITS io capability" dev-python/astropy
+ optfeature "GTK" dev-python/pygtk
+ optfeature "Parallel computation" dev-python/dask
+ optfeature "io plugin providing most standard formats" dev-python/imread
+ optfeature "plotting" dev-python/matplotlib
+ optfeature "wavelet transformations" dev-python/pywavelets
+ optfeature "io plugin providing a wide variety of formats, including specialized formats using in medical imaging." dev-python/simpleitk
+}
diff --git a/dev-python/snakeoil/Manifest b/dev-python/snakeoil/Manifest
index 5ba55cad4100..bfd8a713f81f 100644
--- a/dev-python/snakeoil/Manifest
+++ b/dev-python/snakeoil/Manifest
@@ -1,4 +1 @@
-DIST snakeoil-0.10.5.tar.gz 183358 BLAKE2B 6154eb0b5ce55aefc67484dc33c8a6e36ee903bce4293045252a8c9a3b4ecfc27690c720bb46842c1bca8c14ef59fbae4d3c1f02ebd46a7c91c1c9fbd1aa1532 SHA512 fafc04aa65423ebb3db66daa9c239bdf0968722b8ac14c1206dd3f26e3960d832fd15001e320463f98ca142ec7e1d6bff73ebc0ab10c3c5d3cde241b8160fdc3
-DIST snakeoil-0.10.6.tar.gz 174265 BLAKE2B e1d80bdd0eb37604f77b385e31b45a4b5437cf33ca01593b0ec091351e221dd5fea1b631d2962807fd63e5b59cbfa9d953149bf686821011bb37525156cbef79 SHA512 2534398ede5a112c493ffb59c32ad8f1eecea8992d8f97ae37d8d825a428383338820d9a70f784999690367c84eca2bd2cbdb21a73f2b426157a9a917efeb729
-DIST snakeoil-0.10.7.tar.gz 174373 BLAKE2B 73a58adbb653b979b9c3f4b3cbdeef8ec5a3c8ba6262788a9694a41779660efcef724e1b318be1819dd2c2e2170d7d9e8e6bc615d0ad824cccb662527e204bfc SHA512 b84851f39565a0cfdb32e86744472426ac7502507c12e9869ab5f1eb15913ef6372a1f55465a1e6dbf3832a98bb14856004948dbc1197c454ac046423bfb15af
DIST snakeoil-0.10.8.tar.gz 174380 BLAKE2B 96c5f4e106513ee8061c6278345ac132510202faa0e915b362170ee7de5f23f0b7bfdc671c0c07721f57eeeb90df5f6851be70d4541295029d93126ea680e50b SHA512 7088cd3fb34bc666a51ddd59b0bf6c9d9da2f04727057ffa5b74ffb188efd63153afcf45442e99b8e1611642b71cf92518dafcacb85717dfa82370df18458497
diff --git a/dev-python/snakeoil/snakeoil-0.10.5.ebuild b/dev-python/snakeoil/snakeoil-0.10.5.ebuild
deleted file mode 100644
index 1a9768f64e87..000000000000
--- a/dev-python/snakeoil/snakeoil-0.10.5.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-PYTHON_REQ_USE="threads(+)"
-inherit distutils-r1
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git
- https://github.com/pkgcore/snakeoil.git"
- inherit git-r3
-else
- KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
- inherit pypi
-fi
-
-DESCRIPTION="misc common functionality and useful optimizations"
-HOMEPAGE="https://github.com/pkgcore/snakeoil"
-
-LICENSE="BSD BSD-2 MIT"
-SLOT="0"
-
-RDEPEND="
- dev-python/lazy-object-proxy[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/flit-core-3.8[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/snakeoil/snakeoil-0.10.6.ebuild b/dev-python/snakeoil/snakeoil-0.10.6.ebuild
deleted file mode 100644
index 1a9768f64e87..000000000000
--- a/dev-python/snakeoil/snakeoil-0.10.6.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-PYTHON_REQ_USE="threads(+)"
-inherit distutils-r1
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git
- https://github.com/pkgcore/snakeoil.git"
- inherit git-r3
-else
- KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
- inherit pypi
-fi
-
-DESCRIPTION="misc common functionality and useful optimizations"
-HOMEPAGE="https://github.com/pkgcore/snakeoil"
-
-LICENSE="BSD BSD-2 MIT"
-SLOT="0"
-
-RDEPEND="
- dev-python/lazy-object-proxy[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/flit-core-3.8[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/snakeoil/snakeoil-0.10.7.ebuild b/dev-python/snakeoil/snakeoil-0.10.7.ebuild
deleted file mode 100644
index 80247352faf2..000000000000
--- a/dev-python/snakeoil/snakeoil-0.10.7.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-PYTHON_REQ_USE="threads(+)"
-inherit distutils-r1
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git
- https://github.com/pkgcore/snakeoil.git"
- inherit git-r3
-else
- KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
- inherit pypi
-fi
-
-DESCRIPTION="misc common functionality and useful optimizations"
-HOMEPAGE="https://github.com/pkgcore/snakeoil"
-
-LICENSE="BSD BSD-2 MIT"
-SLOT="0"
-
-RDEPEND="
- dev-python/lazy-object-proxy[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/flit-core-3.8[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index fda733d5a1dc..9dce0edb90ad 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -22,6 +22,7 @@ DIST smallvec-1.11.2.crate 34801 BLAKE2B 58645e99db8f02db64d02c75860c7ea41836c42
DIST sqlglot-23.7.0.tar.gz 12930040 BLAKE2B 2edd122e351286948f7adeaea6ead40a4c4ffbe9ff141f8fb0ded2ba8153ff90d051b4c6e5335f0ebb07c816956cb39164918bddc7ab2ef6c805e8713338243e SHA512 31d7eba56a74943cbff4275280c527a1ceeaa69b26fc992b7b227e9bcb836487ce57dfb1f562df1b6780128b1479d2c7f65a8497cb237e6618d8be9ad972130d
DIST sqlglot-23.8.0.tar.gz 12933026 BLAKE2B 4f29458d6fc4e45b81e37882a3722dcc82a3cc5e3103234f81629c01fb14ff5aa157d6faf006ed10be15d275b0e5a5575b320aa54d673ddd7be08135c67b5d55 SHA512 dd69eb0fe28cbfb6b928c1e2cfe020469da759e75fa73912160e743ae3285cef816b898f3668dd4da87f9f37649310ff67d0f02ee0787c32eff09a15b4ed7138
DIST sqlglot-23.8.1.tar.gz 12945839 BLAKE2B f9b182c0d1a5929ea9cc2b508d681fdef2b22c8c89f81eeb428bd94760a548446fd113573d466b87d51f71688c3ed2605c1626987dfdd4e834aa34b686e3b092 SHA512 8ad53f29bd99cb55db8cad09f17b301eb56a0add53b81e322acb997d822be075c4f28324643b3f5740be1bf69f58c03f163ab3506852e038381d6148502ebc47
+DIST sqlglot-23.8.2.tar.gz 12946196 BLAKE2B 5836f252bb80886a4e7160c17010670dda1de3387df57d076f74e7186ba18ea306e5ec86f4bfe4002dc22ff0aa0eda088c994fb23a075e86319b10c1150a12fb SHA512 95d356d55aeeb796f27bbebf7f1372e07f4569a52dfbae51bfd72ba29483975955afb7e7d1cbdd938e41695794728001c5169e94a1f5f8e448375c01127e97cb
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.8.2.ebuild b/dev-python/sqlglot/sqlglot-23.8.2.ebuild
new file mode 100644
index 000000000000..c040bab3734b
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-23.8.2.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/stripe/Manifest b/dev-python/stripe/Manifest
index 0675e097a85c..b6e77e4b41b7 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -2,3 +2,4 @@ DIST stripe-8.10.0.tar.gz 1208587 BLAKE2B 844f220b8d7a5c53fda9d5d11418098dada870
DIST stripe-8.11.0.tar.gz 1215071 BLAKE2B 7e3eec2008582a7ba52bf6c9a9676f5886cb3a52aed06302f2a21c572db01c759f5a48a743ee32d76cd54d28acb507b46ee556a10b277c6727e0737f055506bf SHA512 9d53ed3e253f18de36dfaf3c28fbcba7ef957f35b6f117c0dcb50040e0484f6fde1f3deb816d51aac62ddad64a20ae344acd25d680ec10c7fa7ddde1cf16c0ec
DIST stripe-8.7.0.tar.gz 1080685 BLAKE2B 0d91f852ad88cf09fb5230a421f9b9b5ade3e7617e95f6f0b5ff3bb14e307d272c1d8600a2673d63a408ca24501e71383fa18f527433e9fbc816f6a48fb9c576 SHA512 977c57a4bad1b572dbee566609f28a9b7e3bffea6516ac48b1f69c51a8ee8fb44d342ce886e2809f6c18b633c30f57e35c565817f2dd67d82c23048dc47d66e5
DIST stripe-8.9.0.tar.gz 1124248 BLAKE2B 158b070256404dfa7f5d2a13f076c08834fc0ec5c3f0564912bcd461276d790faf0530260f291f8681c357de727465ab900339b4d53ddf93972ace7411748ff8 SHA512 e4505262720eaccffd5b5e12858df1ca81117bdb9103ac7f9425ae50f93ac621b13587a314edc80546f1f6c4b28c5908fcd34f31dacc8e2c80b4532bf56fb63e
+DIST stripe-9.0.0.tar.gz 1214282 BLAKE2B b96e5dc11eebbd5222bcc21f8767b0ea37d92b72c02a96f1bf368839c03dd4ef7e6844c90c124bb0f921da12718e3ec7246e75b4371a84a89a1ce1fcb25b6b48 SHA512 1af49ac3d9e3c7a041c035ac7766191f7b2aac39afd173a2e5ffdb4678e535dbdad5cfe1ef70f241296740329d75af5a8096d35e85c422bdb3266fa7f49459c9
diff --git a/dev-python/stripe/stripe-9.0.0.ebuild b/dev-python/stripe/stripe-9.0.0.ebuild
new file mode 100644
index 000000000000..2bca72a15700
--- /dev/null
+++ b/dev-python/stripe/stripe-9.0.0.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Stripe python bindings"
+HOMEPAGE="
+ https://github.com/stripe/stripe-python/
+ https://pypi.org/project/stripe/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="telemetry"
+
+RDEPEND="
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+# please bump dev-util/stripe-mock dep to the latest version on every bump
+BDEPEND="
+ test? (
+ >=dev-util/stripe-mock-0.183.0
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ net-misc/curl
+ )
+"
+
+distutils_enable_tests pytest
+
+DOCS=( LONG_DESCRIPTION.rst CHANGELOG.md README.md )
+
+src_prepare() {
+ if ! use telemetry; then
+ sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die
+ fi
+ # https://github.com/stripe/stripe-python/pull/1297
+ sed -e 's:from mock:from unittest.mock:' \
+ -i tests/test_http_client.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests -p anyio -p pytest_mock
+}
+
+src_test() {
+ local stripe_mock_port=12111
+ local stripe_mock_max_port=12121
+ local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log"
+ # Try to start stripe-mock until we find a free port
+ while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do
+ ebegin "Trying to start stripe-mock on port ${stripe_mock_port}"
+ stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" &
+ local stripe_mock_pid=${!}
+ sleep 2
+ # Did stripe-mock start?
+ curl --fail -u "sk_test_123:" \
+ "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null
+ eend ${?} "Port ${stripe_mock_port} unavailable"
+ if [[ ${?} -eq 0 ]]; then
+ einfo "stripe-mock running on port ${stripe_mock_port}"
+ break
+ fi
+ (( stripe_mock_port++ ))
+ done
+ if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then
+ eerror "Unable to start stripe-mock for tests"
+ die "Please see the logfile located at: ${stripe_mock_logfile}"
+ fi
+
+ local -x STRIPE_MOCK_PORT=${stripe_mock_port}
+ distutils-r1_src_test
+
+ # Tear down stripe-mock
+ kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock"
+}
diff --git a/dev-python/trove-classifiers/Manifest b/dev-python/trove-classifiers/Manifest
index a9642de6fa86..7f4ccd7801e9 100644
--- a/dev-python/trove-classifiers/Manifest
+++ b/dev-python/trove-classifiers/Manifest
@@ -1 +1,2 @@
DIST trove-classifiers-2024.3.25.tar.gz 16040 BLAKE2B 001a307d041e76213f3d2d115a10467b8434afecb0dc268ed9a1943aa7961c9021b49794a593102372c41b6776f3e513db44f680dda700c9897f65ef593ec860 SHA512 3b1d0c08d9a90bfe2314b092270677397d5150f0b641dfaf6ffda7a3447b898ea2c1d2dceab0f61ddceeb6b42945aec19e7a1028bf72ac3a119454f66945db7c
+DIST trove-classifiers-2024.4.10.tar.gz 16036 BLAKE2B bfd0ae5e3e1dc2dab67e66dc9cdf90b3ff789d00fff5f13ddf8974736adf3e37c505488d4aea32b0c4b43a6d77617e9a0672def2e66baf813734b1e3bebb8bd3 SHA512 2705ea82869bb3092dd37c817d5263955249b44ad64c0fcedc523ecc78eaeb2a327500adbafe70c5d08b5961bf8095748e34a0daa1a2ba8db3fa27e1a35a645b
diff --git a/dev-python/trove-classifiers/trove-classifiers-2024.4.10.ebuild b/dev-python/trove-classifiers/trove-classifiers-2024.4.10.ebuild
new file mode 100644
index 000000000000..0d1f1265b70e
--- /dev/null
+++ b/dev-python/trove-classifiers/trove-classifiers-2024.4.10.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)"
+HOMEPAGE="
+ https://github.com/pypa/trove-classifiers/
+ https://pypi.org/project/trove-classifiers/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "setuptools' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease hatchling bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "trove-classifiers"
+ version = "${PV}"
+ description = "Canonical source for classifiers on PyPI (pypi.org)."
+ EOF
+}
+
+python_test() {
+ epytest
+ "${EPYTHON}" -m tests.lib || die
+}