summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-02-22 08:43:10 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-02-22 08:43:10 +0000
commit140a577a33f6653414e784496d233764a23ef5d0 (patch)
treed0d251887af61de05cdf569a4dd95ea3ad815632 /dev-python
parent95012a2959343104f7d292a436b5b8292034ea09 (diff)
downloadbaldeagleos-repo-140a577a33f6653414e784496d233764a23ef5d0.tar.gz
baldeagleos-repo-140a577a33f6653414e784496d233764a23ef5d0.tar.xz
baldeagleos-repo-140a577a33f6653414e784496d233764a23ef5d0.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.47.ebuild58
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.47.ebuild67
-rw-r--r--dev-python/docstring-to-markdown/Manifest1
-rw-r--r--dev-python/docstring-to-markdown/docstring-to-markdown-0.15.ebuild32
-rw-r--r--dev-python/dogpile-cache/Manifest1
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-1.3.2.ebuild36
-rw-r--r--dev-python/google-auth/Manifest1
-rw-r--r--dev-python/google-auth/google-auth-2.28.1.ebuild59
-rw-r--r--dev-python/httpx/Manifest1
-rw-r--r--dev-python/httpx/httpx-0.27.0.ebuild83
-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/parse/Manifest1
-rw-r--r--dev-python/parse/parse-1.20.0.ebuild17
-rw-r--r--dev-python/pymongo/Manifest1
-rw-r--r--dev-python/pymongo/pymongo-4.6.2.ebuild154
-rw-r--r--dev-python/pyside6-tools/Manifest1
-rw-r--r--dev-python/pyside6-tools/pyside6-tools-6.6.1.ebuild76
-rw-r--r--dev-python/pyside6/Manifest1
-rw-r--r--dev-python/pyside6/pyside6-6.6.1.ebuild247
-rw-r--r--dev-python/pytest-httpx/Manifest1
-rw-r--r--dev-python/pytest-httpx/pytest-httpx-0.30.0.ebuild34
-rw-r--r--dev-python/pytest-jupyter/Manifest1
-rw-r--r--dev-python/pytest-jupyter/pytest-jupyter-0.9.0.ebuild35
-rw-r--r--dev-python/shiboken6/Manifest1
-rw-r--r--dev-python/shiboken6/shiboken6-6.6.1.ebuild174
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-21.2.0.ebuild121
-rw-r--r--dev-python/twisted/Manifest1
-rw-r--r--dev-python/twisted/twisted-24.2.0_rc1.ebuild152
-rw-r--r--dev-python/virtualenv/Manifest1
-rw-r--r--dev-python/virtualenv/virtualenv-20.25.1.ebuild122
36 files changed, 976 insertions, 536 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index b8910c31caf1..c9d1beb33167 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.34.39.gh.tar.gz 773491 BLAKE2B 69256649eb3bc5a856adffe4fb1e0e3f1e14
DIST boto3-1.34.44.gh.tar.gz 775883 BLAKE2B 97648819e48af3bbdec76ca47f5532cf9f0a99845f90515cbc7bec02bd5cc04ed5cc842b55cd589a8fb1cd8852edf4d12d3e8a23320e23fd4c5920854ef588d3 SHA512 310689dd7fc3a08c3a8ed6e223381870f028ee07354f74654abafc893f8230fee82bcd136c9e04a675a06bad496458f6778e6d571e75f6541130b3e06cdf324a
DIST boto3-1.34.45.gh.tar.gz 776142 BLAKE2B 0fc27d192ab356e4dad6faaf6ed33d32b728efdbfdb4b662db1269de8eaac7b8f966b45167eb29c4f94abacfe01173f71eb792df2dea9f03d10df6e7d7753406 SHA512 ddfdd97643dbdf139783c03625b8d4d652a4d83c485a1c1cdba9b09fc214f8ff5ed75f51b5498449ec3c69f69c92127ad6ca79a8db8e951e528d6cabe3d57ada
DIST boto3-1.34.46.gh.tar.gz 776383 BLAKE2B 94fcc2899d6d8a02acdf4e293dd9ad7f29b03be88ad40714e295eae9c0d34fe9d063b7ad186787755d87e127ef4f693a7c02a3f6c0cd31f45cad1cd0ffea216e SHA512 24882634ea2b5c8ee5d7b50b5ea8543fc74dd853524fd70c3897feebe45c99f26f6244de512b5a857ac07062db1d3ea4249198778dfb13799fdf4ef223793aca
+DIST boto3-1.34.47.gh.tar.gz 776642 BLAKE2B c9c315b43e09f0fcdff3e50ea7c4b1f7d501ca6855d3e7f581a4fa2ad49f78237e98f9696d174a4163c94105a09c83a29021a9ce294e1a9a2eeb33f150d6711a SHA512 3c84d2f26567389f76cdf7802a310991ddbce71d5a17bef41d85cdbf254ab95ba921472b573cfb8cf087af401ec0b9c8a51b52065adea174926df01ea7fe116d
diff --git a/dev-python/boto3/boto3-1.34.47.ebuild b/dev-python/boto3/boto3-1.34.47.ebuild
new file mode 100644
index 000000000000..c6201d2c5818
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.47.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 575b2c93a062..0ca3c8ead5d3 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.34.39.gh.tar.gz 12697404 BLAKE2B d8670c591c06cf5b02562adb234225d
DIST botocore-1.34.44.gh.tar.gz 12716767 BLAKE2B 335d59ae57ae5a5a1bdb44c3e196dff18cb24dd4a4d3beb59e7b8e887d5cc56f0716b2e4fead0c9a4c96978d661308fb0f1e045300e7af69c94ed799bb25a2ef SHA512 12893173c0123711f496448e661bb8e463fcc29ac95c500fe427e2dcf9810659b92de1d38ec3192e1e20a92ca01a5315733f34d0ffe61f2c9b69763e427ee96f
DIST botocore-1.34.45.gh.tar.gz 12726866 BLAKE2B c5095199626afcd7d83ff62623593f1863aa068a05347adcc738b1b168e8f0f224d6370bd05f71f8fa72dd0f2180067016d37956b332d6cfa42ea5e68c4d9bb3 SHA512 2aff40aa39a431bd9ee99ee30e136051e2b9039dc2bbdd6a36bd1108e470f6dbda5ad23534b9b148799b27d4c7eb0806698ae2f05dbee94a6ff6ee3fe087dcf1
DIST botocore-1.34.46.gh.tar.gz 12726577 BLAKE2B 0c1574bd5e045bc478e44f300d64d5d56489246ad7cddc1ae19e2ad9080abbf30985330e435b833acfb1f1ded46e60ee2e70e1273568a93b69a47018df68ff4a SHA512 9ff234090e3a315612cd97e36ec5eb577d799465c4bb99ef1a5b2efbd83ce3cd5de94300996381c704896efd6bbb612a9b76831040dfd68f9cf86a821680b24b
+DIST botocore-1.34.47.gh.tar.gz 12728346 BLAKE2B c1b596764ebb5c02cc9ae925e1b8610e4eb425a8adfd55434790f187c80470a78a670c4d78af15cbb08bacd35d4ff118a5eda379d086ae721510d08670984a79 SHA512 d65db0a8cd4d1e3558a493c067e894c40ca9a0cd514e488bc8f346d745b2b81d7b77f2f2161f2c14e69f7a22b891eb81465f637669df9ca8bd8f8ab73ac2e2ed
diff --git a/dev-python/botocore/botocore-1.34.47.ebuild b/dev-python/botocore/botocore-1.34.47.ebuild
new file mode 100644
index 000000000000..857224b496b7
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.47.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/docstring-to-markdown/Manifest b/dev-python/docstring-to-markdown/Manifest
index 0a9403f5db27..03b34ff9d564 100644
--- a/dev-python/docstring-to-markdown/Manifest
+++ b/dev-python/docstring-to-markdown/Manifest
@@ -1,2 +1,3 @@
DIST docstring-to-markdown-0.13.gh.tar.gz 27375 BLAKE2B db68b5c90ef46a765baa41b5d3e286008cea3602d397d246c7ae3907afabf387c2b551affa3f39102fb0d2ca1479126051f49163918fa5c1cfa503ba6c40c107 SHA512 adaeff9c9c4359889757e80d91cbca1c85c6aa888b66824802828d247c09919877e416367f7334db5c944312b3c3468256c159e598c837718806f314aa11b8db
DIST docstring-to-markdown-0.14.gh.tar.gz 29619 BLAKE2B 5aa56a332408c7945cda35255b71096f4fbe2981a4496b90abd31f1e642b4daa80a76eca7dec8efb3e4b95ee4531b8438f66a55e319dc928d31ee79743336a61 SHA512 4317357ff0046e2d3a3b9a43c779dcf66a3dce473d9a9d21d9ef9b23ac7949e85e9fbb2408b58836706bcd099f63018be4907d2af773dbdf7ba944caab1ceddd
+DIST docstring-to-markdown-0.15.gh.tar.gz 29806 BLAKE2B 424cc74feb3e42bbd546495a998aba92b4df02b9d259c8b3e0fe704d860bb789825b5c1fde79211b675cee82e8c560359f54bf5311eb940a51c0b7c58dcbcf99 SHA512 100d84b6071609d774f2b3426804a32d88eb6e0a463d63003d8cee67f8e0ffb93dad54cfa2f18647dd5d1439459e4c217589c89737bc98e2ee2e11bb9f0871f6
diff --git a/dev-python/docstring-to-markdown/docstring-to-markdown-0.15.ebuild b/dev-python/docstring-to-markdown/docstring-to-markdown-0.15.ebuild
new file mode 100644
index 000000000000..ea658eb90f28
--- /dev/null
+++ b/dev-python/docstring-to-markdown/docstring-to-markdown-0.15.ebuild
@@ -0,0 +1,32 @@
+# 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
+
+DESCRIPTION="On the fly conversion of Python docstrings to markdown"
+HOMEPAGE="
+ https://github.com/python-lsp/docstring-to-markdown/
+ https://pypi.org/project/docstring-to-markdown/
+"
+SRC_URI="
+ https://github.com/python-lsp/docstring-to-markdown/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # Do not depend on pytest-cov/pytest-flake8
+ sed -e '/--cov/d' -e '/--flake8/d' -i setup.cfg || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/dogpile-cache/Manifest b/dev-python/dogpile-cache/Manifest
index 5b3ab27eb718..5cef4a743e20 100644
--- a/dev-python/dogpile-cache/Manifest
+++ b/dev-python/dogpile-cache/Manifest
@@ -1,2 +1,3 @@
DIST dogpile.cache-1.3.0.tar.gz 265984 BLAKE2B 80aba607dad31b1ddb4e8b706f40c2ed47c7c2a4f074b7d115737ed934ed2b97c900e8ff5f01fa52c3177ebd364d4bac585cca4dd1d6aa5830cf42cdade52070 SHA512 fb00e114b2107d4ee27d699c62581554758f9ff2121ccade8f5c5aee5240adc0c6a1ae734f5d64b06f25493bfe19c40cffe1393d361be484433baaec74791b5a
DIST dogpile.cache-1.3.1.tar.gz 266542 BLAKE2B ba639266dceed9fa55fa2e0045c8a73181da7620a4f06a032d41409933d7ed68c8b88a55bbf2711722507eb19a894cb6147bdc98ab714c0fb7b00e6d6ad6f149 SHA512 de7ab320e0173c302befd13751d89d1f1bcc024c210b3167b79b232306a835f2a51b6f09c449a7a401f4aa2b5e95d26039afbb57bbd17f0f0c4b962f8109d499
+DIST dogpile.cache-1.3.2.tar.gz 269742 BLAKE2B 9656ec20cecccc03c101fe23fd2fa9879bf34cbf52f5232677c357690e55185b6fdeeefc8f820e48a1e39f4d3f2ab106705c717edc3fb0245b8d66f2845bc0cb SHA512 4cdc77f5c58ac26dbedd32580ac03a3b1c9ebc7e0526dbc980307704b2a41be604682a24084149e0d09caf535eed3a555a97e47142676b42fdb68276aa04d1a3
diff --git a/dev-python/dogpile-cache/dogpile-cache-1.3.2.ebuild b/dev-python/dogpile-cache/dogpile-cache-1.3.2.ebuild
new file mode 100644
index 000000000000..7d4db6d29616
--- /dev/null
+++ b/dev-python/dogpile-cache/dogpile-cache-1.3.2.ebuild
@@ -0,0 +1,36 @@
+# 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} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A locking API for expiring values while a single thread generates a new value"
+HOMEPAGE="
+ https://github.com/sqlalchemy/dogpile.cache/
+ https://pypi.org/project/dogpile.cache/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/decorator-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-3.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0.1[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index 55fd84938bce..83e3f372c5e6 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -1,2 +1,3 @@
DIST google-auth-2.27.0.tar.gz 239688 BLAKE2B 3fa3c3c3da41b6337140e0ae474ab5b3a2da5aad3d18be64959c90339e03279594af97033faf406c0e76a923686b89a8f55ce5f7dff3bf3ad4510aca85189240 SHA512 a352cfced15d3e312410d382170909024d00cc27c34c3ec166af36aacf37ea9ac76b5c8bafc6e1379e2ddf3e422c27ce996474338d4efd17c21c9e79f3756994
DIST google-auth-2.28.0.tar.gz 240460 BLAKE2B f7275d8ff1eb80871914a27a4cdcb7143d3d5de9d6217b74b2acfb64a95e7953dc076cd0d3796f81be62b174ea574a0ff7f557cc2372e475c08f095c8f299833 SHA512 b9c31ab425dc2e934443123cc5666e69ca7736e029f68b12b1a297c8818e28806671dd4ea01344213565718474182e4f2e1639f49ac408fb7913e8af4399daae
+DIST google-auth-2.28.1.tar.gz 240469 BLAKE2B 5bb74863eceddb7e0a1cdd6adb52a7467fcbd23a913177d20910194458721c3abcaa5d2f1f93324fae08aff91c8dc9fb65ba786ea8ed698daebb440505f17b2e SHA512 013c90dbeb6868406f56de87b72277a7932795ae3b806442bf07e90d34143e9a8035d2481f8c46a707a2bb0ed4285a1cb249613eff0da0b28b1aced783ce6a08
diff --git a/dev-python/google-auth/google-auth-2.28.1.ebuild b/dev-python/google-auth/google-auth-2.28.1.ebuild
new file mode 100644
index 000000000000..0dd347cc1e65
--- /dev/null
+++ b/dev-python/google-auth/google-auth-2.28.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google Authentication Library"
+HOMEPAGE="
+ https://github.com/googleapis/google-auth-library-python/
+ https://pypi.org/project/google-auth/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/cachetools-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ dev-python/pyu2f[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # these are compatibility tests with oauth2client
+ # disable them to unblock removal of that package
+ tests/test__oauth2client.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/httpx/Manifest b/dev-python/httpx/Manifest
index 13a3cd1369da..6f5e65aebcad 100644
--- a/dev-python/httpx/Manifest
+++ b/dev-python/httpx/Manifest
@@ -1 +1,2 @@
DIST httpx-0.26.0.gh.tar.gz 2164373 BLAKE2B 1de507dd1a0a4f5c87187645f7928f37f29e9a6cdcaacfbefe0e324cda5ad7f86a29efe99b496629a2e2f14851b8a6312d8be4595cfc61a97ce302b284dd1939 SHA512 76838d5c191700f5fd4c6afcc9d129f3809811f6ce40d45edf89518457a9497cdd94c11a68a9c42494780c579eaa43760a8bd85313d7864a8f5ae1c1b9912d61
+DIST httpx-0.27.0.gh.tar.gz 2168004 BLAKE2B 2bfe58ffa9bd75b602acf844967d399c2173499981e73296bfc0726ee738219031ac3ac04517dd027f769966b77bf225287490c55435a53aec44b9784a0c4b2e SHA512 9db19cced6554effdb5fb0b442cbe05dc66cbfbdb23e8fbc19f43e1acc81028bca9e0fba5d2dae617b19be9f64baa0f02e727e92fef3f3f1288aa19ae07f35c6
diff --git a/dev-python/httpx/httpx-0.27.0.ebuild b/dev-python/httpx/httpx-0.27.0.ebuild
new file mode 100644
index 000000000000..d61986b2328c
--- /dev/null
+++ b/dev-python/httpx/httpx-0.27.0.ebuild
@@ -0,0 +1,83 @@
+# Copyright 2022-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="Fully-featured HTTP client which provides sync and async APIs"
+HOMEPAGE="
+ https://www.python-httpx.org/
+ https://github.com/encode/httpx/
+ https://pypi.org/project/httpx/
+"
+SRC_URI="
+ https://github.com/encode/httpx/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="cli"
+
+RDEPEND="
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ =dev-python/httpcore-1*[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/sniffio[${PYTHON_USEDEP}]
+ cli? (
+ =dev-python/click-8*[${PYTHON_USEDEP}]
+ =dev-python/pygments-2*[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ test? (
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/h2[${PYTHON_USEDEP}]
+ dev-python/socksio[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/uvicorn[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ if ! use cli; then
+ sed -i -e '/^httpx =/d' pyproject.toml || die
+ fi
+ sed -i -e '/rich/s:,<14::' pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/client/test_proxies.py::test_async_proxy_close
+ tests/client/test_proxies.py::test_sync_proxy_close
+ )
+
+ use cli || EPYTEST_IGNORE+=(
+ tests/test_main.py
+ )
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "HTTP/2 support" dev-python/h2
+ optfeature "SOCKS proxy support" dev-python/socksio
+ optfeature "Decoding for brotli compressed responses" dev-python/brotlicffi
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..e9da2ac43cac 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
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
deleted file mode 100644
index 637368d2f237..000000000000
--- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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 630fe63c6f53..c09b7356f549 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-2024 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,6 +19,4 @@ 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 736a1167c898..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
-
- <origin>gentoo-guru-overlay</origin>
+ <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>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/parse/Manifest b/dev-python/parse/Manifest
index 8543f4ae80f1..c292fa58c18c 100644
--- a/dev-python/parse/Manifest
+++ b/dev-python/parse/Manifest
@@ -1,2 +1 @@
-DIST parse-1.20.0.tar.gz 28871 BLAKE2B a6635641cb780c246053ddd7ecd397e994964086d3e5191356e425bb837b0e1c201c6b4e92755b4c4351589ff9055826964fa9eaac756e98bac90766a4703e06 SHA512 40ba63f62138c2273ec9bb603b7d8f74b471d9b143a49062a0f9979f8d84a7acce9d56ac046d38c6900fe07e9b5b3fdd3de7f2e78708e85234ec56b86410b14a
DIST parse-1.20.1.tar.gz 29122 BLAKE2B b201f0cc491c964909bf0e4f0b406922ad7dcc0f1e232785efdf434e4c7643aaff53ac46b24c893eaa262d35021fd86001541fcb5e289a10e5163e7c2626e02f SHA512 6aee92558496e9eca2fc1647131671dd88934687fbb23a04a99213b7885f4da776235cd380a7ea237b5f5b018522f92b6d702bd58858a0957a2213baca0e2a5c
diff --git a/dev-python/parse/parse-1.20.0.ebuild b/dev-python/parse/parse-1.20.0.ebuild
deleted file mode 100644
index 11b65e178ed2..000000000000
--- a/dev-python/parse/parse-1.20.0.ebuild
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2021-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 pypi
-
-DESCRIPTION="Parse strings using a specification based on the Python format() syntax"
-HOMEPAGE="https://github.com/r1chardj0n3s/parse/"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
-
-distutils_enable_tests pytest
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index 61576c304c32..c65ce2d22ec7 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1 +1,2 @@
DIST mongo-python-driver-4.6.1.gh.tar.gz 1493790 BLAKE2B dd59001536ed5d84553350fe8c93fa5082acd1af23ca2850cb2ba8d69e1e69e2ad250da9f62b4f86e6e9013434cd1d2ed38e44bda946ff5fe0ab74935668bbf1 SHA512 7a6fe18b409961b796dfd403dc100a898b282e0abfd9995f20541b7c5f0f2dbc047c25b45a2bb9ae229954d1cd804918dc4f7487f87e311863452bab41a19414
+DIST mongo-python-driver-4.6.2.gh.tar.gz 1494123 BLAKE2B 3bf24c26ad2e97e6d23b01b1074baa7420e2d8197d5bc618cd851c148b38b68afaa3943448030692f358b7500b65d0576aaf4fdc6a49cb41e9a8ecd9e58ea0a5 SHA512 931b0632bc5764c160d6da8645f2e2e851b0ddf409390264a69fae8a9309d03271f50e6c3e3e5aae78df9b6203ab2de0471b2c8e50e4883c05b473e6c90bf9c4
diff --git a/dev-python/pymongo/pymongo-4.6.2.ebuild b/dev-python/pymongo/pymongo-4.6.2.ebuild
new file mode 100644
index 000000000000..faa001a3e66b
--- /dev/null
+++ b/dev-python/pymongo/pymongo-4.6.2.ebuild
@@ -0,0 +1,154 @@
+# 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 check-reqs distutils-r1
+
+MY_P=mongo-python-driver-${PV}
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="
+ https://github.com/mongodb/mongo-python-driver/
+ https://pypi.org/project/pymongo/
+"
+SRC_URI="
+ https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc kerberos +native-extensions +test-full"
+
+RDEPEND="
+ <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
+ kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ test-full? (
+ >=dev-db/mongodb-2.6.0
+ )
+ )
+"
+
+distutils_enable_sphinx doc
+distutils_enable_tests pytest
+
+reqcheck() {
+ if use test && use test-full; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+python_compile() {
+ # causes build errors to be fatal
+ local -x TOX_ENV_NAME=whatever
+ local DISTUTILS_ARGS=()
+ # unconditionally implicitly disabled on pypy3
+ if ! use native-extensions; then
+ DISTUTILS_ARGS+=( --no_ext )
+ else
+ export PYMONGO_C_EXT_MUST_BUILD=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ rm -rf bson pymongo || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local EPYTEST_DESELECT=(
+ # network-sandbox
+ test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/test_client.py::TestClient::test_service_name_from_kwargs
+ test/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
+ test/test_srv_polling.py
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
+
+ # broken regularly by changes in mypy
+ test/test_typing.py::TestMypyFails::test_mypy_failures
+ )
+
+ if ! use test-full; then
+ # .invalid is guaranteed to return NXDOMAIN per RFC 6761
+ local -x DB_IP=mongodb.invalid
+ epytest
+ return
+ fi
+
+ # Yes, we need TCP/IP for that...
+ local -x DB_IP=127.0.0.1
+ local -x DB_PORT=27000
+
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ # Now, the hard part: we need to find a free port for mongod.
+ # We're just trying to run it random port numbers and check the log
+ # for bind errors. It shall be noted that 'mongod --fork' does not
+ # return failure when it fails to bind.
+
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ LC_ALL=C \
+ mongod --dbpath "${dbpath}" --nojournal \
+ --bind_ip ${DB_IP} --port ${DB_PORT} \
+ --unixSocketPrefix "${TMPDIR}" \
+ --logpath "${logpath}" --fork \
+ && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ local failed
+ nonfatal epytest || failed=1
+
+ mongod --dbpath "${dbpath}" --shutdown || die
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}" || die
+}
diff --git a/dev-python/pyside6-tools/Manifest b/dev-python/pyside6-tools/Manifest
index 6e0eca01cd41..298f1ca3db15 100644
--- a/dev-python/pyside6-tools/Manifest
+++ b/dev-python/pyside6-tools/Manifest
@@ -1,2 +1 @@
-DIST pyside-setup-everywhere-src-6.6.1.tar.xz 13887704 BLAKE2B 14a75cb6d20dced9b1edf79b8bb40ce44ecb7642f45743e59bc2d55b3e6fa5a742a0a0e5712b8f8cd4d908cc0f5103ac823390db968f42d0782818242c6f77e5 SHA512 3516f3e4595f1ba4ebbc680c5a94f9f939e04c0a3257720ebdd7ed12307bb007d1c73824029f51ec71c41a335268f34834250a5e87b3c4356d9e0a6f1d6b1f71
DIST pyside-setup-everywhere-src-6.6.2.tar.xz 13975896 BLAKE2B b4572e58613e5446692e8c4cef28156fd0126ecda0c6334652ce49c6c7ce4614dbf2400c693addaa38e9b6cca9e331b9fe84c83ddb26e7014b8603afe2c54ad6 SHA512 1d23d27a4cbe74434ec5d391172416d324b4c92181401444821b456b4e27dabbdb3dcaad685a22b62c09f750555a4e626bbb6406a2fbde1cf4ec5c8bbb64cda5
diff --git a/dev-python/pyside6-tools/pyside6-tools-6.6.1.ebuild b/dev-python/pyside6-tools/pyside6-tools-6.6.1.ebuild
deleted file mode 100644
index 69a33589d002..000000000000
--- a/dev-python/pyside6-tools/pyside6-tools-6.6.1.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# TODO: Add PyPy once officially supported. See also:
-# https://bugreports.qt.io/browse/PYSIDE-535
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-LLVM_COMPAT=( {15..17} )
-
-inherit cmake llvm-r1 python-r1
-
-MY_PN="pyside-setup-everywhere-src"
-
-DESCRIPTION="PySide development tools (pyside6-lupdate with support for Python)"
-HOMEPAGE="https://wiki.qt.io/PySide6"
-SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_PN}-${PV}.tar.xz"
-S="${WORKDIR}/${MY_PN}-${PV}/sources/pyside-tools"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="${PYTHON_DEPS}
- ~dev-python/shiboken6-${PV}[${PYTHON_USEDEP},${LLVM_USEDEP}]
- ~dev-python/pyside6-${PV}[quick,${PYTHON_USEDEP},${LLVM_USEDEP}]
-"
-DEPEND="${RDEPEND}
- $(llvm_gen_dep '
- sys-devel/clang:${LLVM_SLOT}
- sys-devel/llvm:${LLVM_SLOT}
- ')
-"
-
-src_prepare() {
- cmake_src_prepare
-
- python_copy_sources
-}
-
-src_configure() {
- pyside-tools_configure() {
- local mycmakeargs=(
- # If this is enabled cmake just makes copies of /lib64/qt6/bin/*
- -DNO_QT_TOOLS=yes
- )
- cmake_src_configure
- }
-
- python_foreach_impl pyside-tools_configure
-}
-
-src_compile() {
- pyside-tools_compile() {
- cmake_src_compile
- }
-
- python_foreach_impl pyside-tools_compile
-}
-
-src_install() {
- pyside-tools_install() {
- # This replicates the contents of the PySide6 pypi wheel
- DESTDIR="${BUILD_DIR}" cmake_build install
- cp __init__.py "${BUILD_DIR}/usr/bin" || die
- rm -r "${BUILD_DIR}/usr/bin/qtpy2cpp_lib/tests" || die
- python_moduleinto PySide6/scripts
- python_domodule "${BUILD_DIR}/usr/bin/."
- }
-
- python_foreach_impl pyside-tools_install
-
- einstalldocs
-}
diff --git a/dev-python/pyside6/Manifest b/dev-python/pyside6/Manifest
index 6e0eca01cd41..298f1ca3db15 100644
--- a/dev-python/pyside6/Manifest
+++ b/dev-python/pyside6/Manifest
@@ -1,2 +1 @@
-DIST pyside-setup-everywhere-src-6.6.1.tar.xz 13887704 BLAKE2B 14a75cb6d20dced9b1edf79b8bb40ce44ecb7642f45743e59bc2d55b3e6fa5a742a0a0e5712b8f8cd4d908cc0f5103ac823390db968f42d0782818242c6f77e5 SHA512 3516f3e4595f1ba4ebbc680c5a94f9f939e04c0a3257720ebdd7ed12307bb007d1c73824029f51ec71c41a335268f34834250a5e87b3c4356d9e0a6f1d6b1f71
DIST pyside-setup-everywhere-src-6.6.2.tar.xz 13975896 BLAKE2B b4572e58613e5446692e8c4cef28156fd0126ecda0c6334652ce49c6c7ce4614dbf2400c693addaa38e9b6cca9e331b9fe84c83ddb26e7014b8603afe2c54ad6 SHA512 1d23d27a4cbe74434ec5d391172416d324b4c92181401444821b456b4e27dabbdb3dcaad685a22b62c09f750555a4e626bbb6406a2fbde1cf4ec5c8bbb64cda5
diff --git a/dev-python/pyside6/pyside6-6.6.1.ebuild b/dev-python/pyside6/pyside6-6.6.1.ebuild
deleted file mode 100644
index 13d711636034..000000000000
--- a/dev-python/pyside6/pyside6-6.6.1.ebuild
+++ /dev/null
@@ -1,247 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# TODO: Add PyPy once officially supported. See also:
-# https://bugreports.qt.io/browse/PYSIDE-535
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-LLVM_COMPAT=( {15..17} )
-
-inherit cmake llvm-r1 python-r1 virtualx
-
-# TODO: Add conditional support for "QtRemoteObjects" via a new "remoteobjects"
-# USE flag after an external "dev-qt/qtremoteobjects" package has been created.
-# TODO: Add conditional support for apidoc generation via a new "doc" USE flag.
-# Note that doing so requires the Qt source tree, sphinx, and graphviz. Once
-# ready, pass the ${QT_SRC_DIR} variable to cmake to enable this support.
-# TODO: Disable GLES support if the "gles2-only" USE flag is disabled. Note
-# that the "PySide6/QtGui/CMakeLists.txt" and
-# "PySide6/QtOpenGLFunctions/CMakeLists.txt" files test for GLES support by
-# testing whether the "Qt5::Gui" list property defined by
-# "/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake" at "dev-qt/qtgui" installation
-# time contains the substring "opengles2". Since cmake does not permit
-# properties to be overridden from the command line, these files must instead
-# be conditionally patched to avoid these tests. An issue should be filed with
-# upstream requesting a CLI-settable variable to control this.
-
-MY_PN="pyside-setup-everywhere-src"
-
-DESCRIPTION="Python bindings for the Qt framework"
-HOMEPAGE="https://wiki.qt.io/PySide6"
-SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_PN}-${PV}.tar.xz"
-S="${WORKDIR}/${MY_PN}-${PV}/sources/pyside6"
-
-# See "sources/pyside6/PySide6/licensecomment.txt" for licensing details.
-# Shall we allow essential modules to be disabled? They are:
-# (core), gui, widgets, printsupport, sql, network, testlib, concurrent,
-# x11extras (for X)
-LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 )"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="
- 3d bluetooth charts +concurrent +dbus designer gles2-only +gui help location
- multimedia +network network-auth nfc positioning +opengl pdfium positioning
- +printsupport qml quick quick3d serialport scxml sensors spatialaudio speech
- +sql svg test +testlib webchannel webengine websockets +widgets +xml
-"
-
-# Manually reextract these requirements on version bumps by running the
-# following one-liner from within "${S}":
-# $ grep 'set.*_deps' PySide6/Qt*/CMakeLists.txt
-# Note that the "designer" USE flag corresponds to the "Qt6UiTools" module.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- 3d? ( gui network )
- charts? ( gui widgets )
- designer? ( widgets )
- gles2-only? ( gui )
- gui? ( dbus opengl )
- help? ( network sql widgets )
- location? ( gui network positioning quick )
- multimedia? ( gui network )
- network-auth? ( network )
- opengl? ( gui )
- pdfium? ( gui )
- printsupport? ( widgets )
- qml? ( network )
- quick? ( gui network opengl qml )
- quick3d? ( gui network opengl qml quick )
- spatialaudio? ( multimedia )
- speech? ( multimedia )
- sql? ( widgets )
- svg? ( gui )
- testlib? ( widgets )
- webchannel? ( qml )
- webengine? ( network gui printsupport quick webchannel )
- websockets? ( network )
- widgets? ( gui )
-"
-
-# Tests fail pretty bad and I'm not fixing them right now
-RESTRICT="test"
-
-# Minimal supported version of Qt.
-QT_PV="$(ver_cut 1-3)*:6"
-
-RDEPEND="${PYTHON_DEPS}
- ~dev-python/shiboken6-${PV}[${PYTHON_USEDEP},${LLVM_USEDEP}]
- =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
- 3d? ( =dev-qt/qt3d-${QT_PV}[qml?,gles2-only=] )
- bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
- charts? ( =dev-qt/qtcharts-${QT_PV} )
- designer? ( =dev-qt/qttools-${QT_PV}[designer] )
- gui? (
- =dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
- x11-libs/libxkbcommon
- )
- help? ( =dev-qt/qttools-${QT_PV}[assistant] )
- location? ( =dev-qt/qtlocation-${QT_PV} )
- multimedia? ( =dev-qt/qtmultimedia-${QT_PV} )
- network-auth? ( =dev-qt/qtnetworkauth-${QT_PV} )
- nfc? ( =dev-qt/qtconnectivity-${QT_PV}[nfc] )
- pdfium? ( =dev-qt/qtwebengine-${QT_PV}[pdfium(-),widgets?] )
- positioning? ( =dev-qt/qtpositioning-${QT_PV} )
- printsupport? ( =dev-qt/qtbase-${QT_PV}[gui,widgets] )
- qml? ( =dev-qt/qtdeclarative-${QT_PV}[widgets?] )
- quick3d? ( =dev-qt/qtquick3d-${QT_PV} )
- scxml? ( =dev-qt/qtscxml-${QT_PV} )
- sensors? ( =dev-qt/qtsensors-${QT_PV}[qml?] )
- speech? ( =dev-qt/qtspeech-${QT_PV} )
- serialport? ( =dev-qt/qtserialport-${QT_PV} )
- svg? ( =dev-qt/qtsvg-${QT_PV} )
- testlib? ( =dev-qt/qtbase-${QT_PV}[gui] )
- webchannel? ( =dev-qt/qtwebchannel-${QT_PV} )
- webengine? ( || (
- =dev-qt/qtwebengine-${QT_PV}[alsa,widgets?]
- =dev-qt/qtwebengine-${QT_PV}[pulseaudio,widgets?]
- )
- )
- websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
-"
-DEPEND="${RDEPEND}
- $(llvm_gen_dep '
- sys-devel/clang:${LLVM_SLOT}
- sys-devel/llvm:${LLVM_SLOT}
- ')
- test? ( =dev-qt/qtbase-${QT_PV}[gui] )
-"
-# testlib is toggled by the gui flag on qtbase
-
-PATCHES=(
- "${FILESDIR}/${PN}-6.3.1-no-strip.patch"
- # References files not present in our dev-qt/qtbase
- "${FILESDIR}/${PN}-6.6.0-no-qtexampleicons.patch"
-)
-
-src_configure() {
- # See collect_module_if_found macros in PySideHelpers.cmake
- local mycmakeargs=(
- -DBUILD_TESTS=$(usex test)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DAnimation=$(usex !3d)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DCore=$(usex !3d)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DExtras=$(usex !3d)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DInput=$(usex !3d)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DLogic=$(usex !3d)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DRender=$(usex !3d)
- #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6AxContainer=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Bluetooth=$(usex !bluetooth)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Charts=$(usex !charts)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Concurrent=$(usex !concurrent)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6DataVisualization=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6DBus=$(usex !dbus)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Designer=$(usex !designer)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Gui=$(usex !gui)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Help=$(usex !help)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6HttpServer=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Location=$(usex !location)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Multimedia=$(usex !multimedia)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6MultimediaWidgets=$(usex !multimedia yes $(usex !widgets))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6NetworkAuth=$(usex !network-auth)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Network=$(usex !network)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Nfc=$(usex !nfc)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6OpenGL=$(usex !opengl)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6OpenGLWidgets=$(usex !opengl yes $(usex !widgets))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Pdf=$(usex !pdfium)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6PdfWidgets=$(usex !pdfium yes $(usex !widgets))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Positioning=$(usex !positioning)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6PrintSupport=$(usex !printsupport)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Qml=$(usex !qml)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick3D=$(usex !quick3d)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick=$(usex !quick)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickControls2=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickWidgets=$(usex !quick yes $(usex !widgets))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6RemoteObjects=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Scxml=$(usex !scxml)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Sensors=$(usex !sensors)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SerialPort=$(usex !serialport)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SpatialAudio=$(usex !spatialaudio)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Sql=$(usex !sql)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6StateMachine=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Svg=$(usex !svg)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SvgWidgets=$(usex !svg yes $(usex !widgets))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Test=$(usex !testlib)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6TextToSpeech=$(usex !speech)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6UiTools=$(usex !designer)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebChannel=$(usex !webchannel)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineCore=$(usex !webengine)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineQuick=$(usex !webengine yes $(usex !quick))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineWidgets=$(usex !webengine yes $(usex !widgets))
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebSockets=$(usex !websockets)
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Widgets=$(usex !widgets)
- #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6WinExtras=yes
- -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Xml=$(usex !xml)
- # try to avoid pre-stripping
- -DQFP_NO_OVERRIDE_OPTIMIZATION_FLAGS=yes
- -DQFP_NO_STRIP=yes
-
- )
-
- pyside6_configure() {
- local mycmakeargs=(
- "${mycmakeargs[@]}"
- -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
- -DPYTHON_EXECUTABLE="${PYTHON}"
- -DPYTHON_SITE_PACKAGES="$(python_get_sitedir)"
- -DSHIBOKEN_PYTHON_SHARED_LIBRARY_SUFFIX="-${EPYTHON}"
- )
- cmake_src_configure
- }
- python_foreach_impl pyside6_configure
-}
-
-src_compile() {
- python_foreach_impl cmake_src_compile
-}
-
-src_test() {
- local -x PYTHONDONTWRITEBYTECODE
- python_foreach_impl virtx cmake_src_test
-}
-
-src_install() {
- pyside6_install() {
- cmake_src_install
- python_optimize
-
- # Uniquify the shiboken6 pkgconfig dependency in the PySide6 pkgconfig
- # file for the current Python target. See also:
- # https://github.com/leycec/raiagent/issues/73
- sed -i -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
- "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}.pc || die
-
- # Uniquify the PySide6 pkgconfig file for the current Python target,
- # preserving an unversioned "pyside6.pc" file arbitrarily associated
- # with the last Python target. (See the previously linked issue.)
- cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
- }
- python_foreach_impl pyside6_install
-
- # CMakeLists.txt installs a "PySide6Targets-gentoo.cmake" file forcing
- # downstream consumers (e.g., pyside6-tools) to target one
- # "libpyside6-*.so" library linked to one Python interpreter. See also:
- # https://bugreports.qt.io/browse/PYSIDE-1053
- # https://github.com/leycec/raiagent/issues/74
- sed -i -e 's~pyside6-python[[:digit:]]\+\.[[:digit:]]\+~pyside6${PYTHON_CONFIG_SUFFIX}~g' \
- "${ED}/usr/$(get_libdir)/cmake/PySide6/PySide6Targets-${CMAKE_BUILD_TYPE,,}.cmake" || die
-}
diff --git a/dev-python/pytest-httpx/Manifest b/dev-python/pytest-httpx/Manifest
index 0c4447db80e5..1e87ce872f33 100644
--- a/dev-python/pytest-httpx/Manifest
+++ b/dev-python/pytest-httpx/Manifest
@@ -1 +1,2 @@
+DIST pytest-httpx-0.30.0.tar.gz 36959 BLAKE2B b56f0e51558ffa6eb0c0af61aa3633a8e358f8c78916d101f1de853f683136a68e195bf0af099bbc6766198b4136a560ffd2676d9a49f0b350882896a61d935a SHA512 6aadb544bda5003156bf9c0fa309a166636dc87aea033d9a48ee10e1e8b77e6cb52350930e97cab89cff7c10111d5e26d1d74cd33f0a6c54e34c3fb7ef72ea05
DIST pytest_httpx-0.29.0.tar.gz 34103 BLAKE2B b8ee299ce17861732050f0059905193ee964ca375734584356b26a179979f2f967b69d134b8fc9c0fd4ae75172c404dc8e9ec27bb50e6bed58f8e7e76a4aa9e6 SHA512 ada6f5f419de3fbe835a5ce9fba9e5d368cbb01d1826d61cd4bb5a7f2941030d40afa17e582eca20743a546bf98699ecc2d8a0c640efa69b390dc32f2349bb13
diff --git a/dev-python/pytest-httpx/pytest-httpx-0.30.0.ebuild b/dev-python/pytest-httpx/pytest-httpx-0.30.0.ebuild
new file mode 100644
index 000000000000..fe7b5477cb9f
--- /dev/null
+++ b/dev-python/pytest-httpx/pytest-httpx-0.30.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
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Send responses to HTTPX using pytest"
+HOMEPAGE="
+ https://colin-b.github.io/pytest_httpx/
+ https://github.com/Colin-b/pytest_httpx/
+ https://pypi.org/project/pytest-httpx/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ =dev-python/httpx-0.27*[${PYTHON_USEDEP}]
+ <dev-python/pytest-9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-jupyter/Manifest b/dev-python/pytest-jupyter/Manifest
index 1d696d8c8ceb..136f4b06cd30 100644
--- a/dev-python/pytest-jupyter/Manifest
+++ b/dev-python/pytest-jupyter/Manifest
@@ -1 +1,2 @@
DIST pytest_jupyter-0.8.0.tar.gz 15716 BLAKE2B 9000be141466553346737596e80c5208aa9c1bdd9a72c8b1ae9fa1b8d994dc33f6e237a2eb16e60fa9c1a9040e6711ac45b0420aa865b6c27c48455cc1a11c34 SHA512 7789d4e92a1da254c8ef161a58b63fc494e4b59ce7721d5c501fdce0975452ed53700292e1554c247f5fa58cbe1f87489403f0f5ae97c5260cc3d7c9fc1c3418
+DIST pytest_jupyter-0.9.0.tar.gz 15520 BLAKE2B 59c80b3fc3a6a48c071a3fbf4068b5a3bbef888677f89db5f9e9a573a7de2ad34658a4543978bc747488fdc5f3720104af00fb2878b360bd503d01e851a5b65e SHA512 46e223754f5c36df7783207e8d9589d6c5525adf22b2c476fb7017d5cfac50d9ecdeadf4a7fcfb58e418ba84ee1f966d2655100e5b1c65ed780d34a02580fb7e
diff --git a/dev-python/pytest-jupyter/pytest-jupyter-0.9.0.ebuild b/dev-python/pytest-jupyter/pytest-jupyter-0.9.0.ebuild
new file mode 100644
index 000000000000..31b0ede81f83
--- /dev/null
+++ b/dev-python/pytest-jupyter/pytest-jupyter-0.9.0.ebuild
@@ -0,0 +1,35 @@
+# 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="Pytest plugin for testing Jupyter libraries and extensions"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/pytest-jupyter/
+ https://pypi.org/project/pytest-jupyter/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/ipykernel-6.14[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.7[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-1.21[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/shiboken6/Manifest b/dev-python/shiboken6/Manifest
index 6e0eca01cd41..298f1ca3db15 100644
--- a/dev-python/shiboken6/Manifest
+++ b/dev-python/shiboken6/Manifest
@@ -1,2 +1 @@
-DIST pyside-setup-everywhere-src-6.6.1.tar.xz 13887704 BLAKE2B 14a75cb6d20dced9b1edf79b8bb40ce44ecb7642f45743e59bc2d55b3e6fa5a742a0a0e5712b8f8cd4d908cc0f5103ac823390db968f42d0782818242c6f77e5 SHA512 3516f3e4595f1ba4ebbc680c5a94f9f939e04c0a3257720ebdd7ed12307bb007d1c73824029f51ec71c41a335268f34834250a5e87b3c4356d9e0a6f1d6b1f71
DIST pyside-setup-everywhere-src-6.6.2.tar.xz 13975896 BLAKE2B b4572e58613e5446692e8c4cef28156fd0126ecda0c6334652ce49c6c7ce4614dbf2400c693addaa38e9b6cca9e331b9fe84c83ddb26e7014b8603afe2c54ad6 SHA512 1d23d27a4cbe74434ec5d391172416d324b4c92181401444821b456b4e27dabbdb3dcaad685a22b62c09f750555a4e626bbb6406a2fbde1cf4ec5c8bbb64cda5
diff --git a/dev-python/shiboken6/shiboken6-6.6.1.ebuild b/dev-python/shiboken6/shiboken6-6.6.1.ebuild
deleted file mode 100644
index 6a7c30b84b70..000000000000
--- a/dev-python/shiboken6/shiboken6-6.6.1.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# TODO: Split the "/usr/bin/shiboken6" binding generator from the
-# "/usr/lib64/libshiboken6-*.so" family of shared libraries. The former
-# requires everything (including Clang) at runtime; the latter only requires
-# Qt and Python at runtime. Note that "pip" separates these two as well. See:
-# https://doc.qt.io/qtforpython/shiboken6/faq.html#is-there-any-runtime-dependency-on-the-generated-binding
-# Once split, the PySide6 ebuild should be revised to require
-# "/usr/bin/shiboken6" at build time and "libshiboken6-*.so" at runtime.
-# TODO: Add PyPy once officially supported. See also:
-# https://bugreports.qt.io/browse/PYSIDE-535
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-LLVM_COMPAT=( {15..17} )
-
-inherit cmake llvm-r1 python-r1 toolchain-funcs
-
-MY_PN="pyside-setup-everywhere-src"
-
-DESCRIPTION="Python binding generator for C++ libraries"
-HOMEPAGE="https://wiki.qt.io/PySide6"
-SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_PN}-${PV}.tar.xz"
-S="${WORKDIR}/${MY_PN}-${PV}/sources/shiboken6"
-
-# The "sources/shiboken6/libshiboken" directory is triple-licensed under the
-# GPL v2, v3+, and LGPL v3. All remaining files are licensed under the GPL v3
-# with version 1.0 of a Qt-specific exception enabling shiboken6 output to be
-# arbitrarily relicensed. (TODO)
-LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 ) GPL-3"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="+docstrings numpy test vulkan"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# Tests fail pretty bad and I'm not fixing them right now
-RESTRICT="test"
-
-# Minimal supported version of Qt.
-QT_PV="$(ver_cut 1-3)*:6"
-
-# Since Clang is required at both build- and runtime, BDEPEND is omitted here.
-RDEPEND="${PYTHON_DEPS}
- =dev-qt/qtbase-${QT_PV}
- $(llvm_gen_dep '
- sys-devel/clang:${LLVM_SLOT}
- sys-devel/llvm:${LLVM_SLOT}
- ')
- docstrings? (
- >=dev-libs/libxml2-2.6.32
- >=dev-libs/libxslt-1.1.19
- )
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- vulkan? ( dev-util/vulkan-headers )
-"
-DEPEND="${RDEPEND}
- test? ( =dev-qt/qtbase-${QT_PV}[gui] )
-"
-# testlib is toggled by the gui flag on qtbase
-
-DOCS=( AUTHORS )
-
-PATCHES=(
- "${FILESDIR}/${PN}-6.3.1-no-strip.patch"
-)
-
-src_prepare() {
- # TODO: File upstream issue requesting a sane way to disable NumPy support.
- if ! use numpy; then
- sed -i -e '/\bprint(os\.path\.realpath(numpy))/d' \
- libshiboken/CMakeLists.txt || die
- fi
-
- # Shiboken6 assumes Vulkan headers live under either "$VULKAN_SDK/include"
- # or "$VK_SDK_PATH/include" rather than "${EPREFIX}/usr/include/vulkan".
- if use vulkan; then
- sed -i -e "s~\bdetectVulkan(&headerPaths);~headerPaths.append(HeaderPath{QByteArrayLiteral(\"${EPREFIX}/usr/include/vulkan\"), HeaderType::System});~" \
- ApiExtractor/clangparser/compilersupport.cpp || die
- fi
-
- local clangver="$(CPP=clang clang-major-version)"
-
- # Clang 15 and older used the full version as a directory name.
- if [[ ${clangver} -lt 16 ]]; then
- clangver="$(CPP=clang clang-fullversion)"
- fi
-
- # Shiboken6 assumes the "/usr/lib/clang/${CLANG_NEWEST_VERSION}/include/"
- # subdirectory provides Clang builtin includes (e.g., "stddef.h") for the
- # currently installed version of Clang, where ${CLANG_NEWEST_VERSION} is
- # the largest version specifier that exists under the "/usr/lib/clang/"
- # subdirectory. This assumption is false in edge cases, including when
- # users downgrade from newer Clang versions but fail to remove those
- # versions with "emerge --depclean". See also:
- # https://github.com/leycec/raiagent/issues/85
- #
- # Sadly, the clang-* family of functions exported by the "toolchain-funcs"
- # eclass are defective, returning nonsensical placeholder strings if the
- # end user has *NOT* explicitly configured their C++ compiler to be Clang.
- # PySide6 does *NOT* care whether the end user has done so or not, as
- # PySide6 unconditionally requires Clang in either case. See also:
- # https://bugs.gentoo.org/619490
- sed -i -e 's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${clangver}"'/include"))~' \
- ApiExtractor/clangparser/compilersupport.cpp || die
-
- cmake_src_prepare
-}
-
-src_configure() {
- # Minimal tests for now, 2 failing with the extended version
- # FIXME Subscripted generics cannot be used with class and instance checks
- local mycmakeargs=(
- -DBUILD_TESTS=$(usex test)
- -DDISABLE_DOCSTRINGS=$(usex !docstrings)
- )
-
- shiboken6_configure() {
- local mycmakeargs=(
- "${mycmakeargs[@]}"
- -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
- -DPYTHON_EXECUTABLE="${PYTHON}"
- -DUSE_PYTHON_VERSION="${EPYTHON#python}"
- )
- # CMakeLists.txt expects LLVM_INSTALL_DIR as an environment variable.
- local -x LLVM_INSTALL_DIR="$(get_llvm_prefix)"
- cmake_src_configure
- }
- python_foreach_impl shiboken6_configure
-}
-
-src_compile() {
- python_foreach_impl cmake_src_compile
-}
-
-src_test() {
- python_foreach_impl cmake_src_test
-}
-
-src_install() {
- shiboken6_install() {
- cmake_src_install
- python_optimize
-
- # Uniquify the "shiboken6" executable for the current Python target,
- # preserving an unversioned "shiboken6" file arbitrarily associated
- # with the last Python target.
- cp "${ED}"/usr/bin/${PN}{,-${EPYTHON}} || die
-
- # Uniquify the Shiboken6 pkgconfig file for the current Python target,
- # preserving an unversioned "shiboken6.pc" file arbitrarily associated
- # with the last Python target. See also:
- # https://github.com/leycec/raiagent/issues/73
- cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
- }
- python_foreach_impl shiboken6_install
-
- # CMakeLists.txt installs a "Shiboken6Targets-gentoo.cmake" file forcing
- # downstream consumers (e.g., PySide6) to target one "libshiboken6-*.so"
- # library and one "shiboken6" executable linked to one Python interpreter.
- # See also:
- # https://bugreports.qt.io/browse/PYSIDE-1053
- # https://github.com/leycec/raiagent/issues/74
- sed -i \
- -e 's~shiboken6-python[[:digit:]]\+\.[[:digit:]]\+~shiboken6${PYTHON_CONFIG_SUFFIX}~g' \
- -e 's~/bin/shiboken6~/bin/shiboken6${PYTHON_CONFIG_SUFFIX}~g' \
- "${ED}/usr/$(get_libdir)"/cmake/Shiboken6/Shiboken6Targets-${CMAKE_BUILD_TYPE,,}.cmake || die
-
- # Remove the broken "shiboken_tool.py" script. By inspection, this script
- # reduces to a noop. Moreover, this script raises the following exception:
- # FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/../shiboken_tool.py': '/usr/bin/../shiboken_tool.py'
- rm "${ED}"/usr/bin/shiboken_tool.py || die
-}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 3dbdf3bec6f3..3148e0faadef 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -30,6 +30,7 @@ DIST sqlglot-21.0.2.tar.gz 9504238 BLAKE2B 3b3f268ca46bcb0596454bab95abf6b5d61a0
DIST sqlglot-21.1.0.tar.gz 9507449 BLAKE2B afe9db7f50e3367a9ce91b6acf82004ffd6b3c661485b876873ad52656629c88e092cd82c4cd6adbda1a4747b0988f7bfcd21f4db9fcca6a3b152d0870f17b28 SHA512 395c84a2cc5af7f19d649fd422782483fbfaa06716bc8352cbef6a393d3f029c4f11076097eccbfc0918cc6bff2c6a7c43227546c2a3ce4af2e79eb7287107f0
DIST sqlglot-21.1.1.tar.gz 9524438 BLAKE2B eeb815879c968bb2cafcbd2cb44466c654f9aa25cf071b6c77586c756d8ff8514ef28d39c8ca47c015034e79958646efcd18d744a3852cd19331fcafe9b17aeb SHA512 ff9c58351cd3cdd7b8cd62b6bd4b5a1822867db2465a0cd40e444c061c640de8c4cad83ec36abc7a5e57a77ee9428532f7420923c59a3a3fa2ad522fe5d6f257
DIST sqlglot-21.1.2.tar.gz 17531031 BLAKE2B 24fa7a13ae5cd1260cea297fdaf0276bbbaba50627d5e6a471e23ca832cf1cbb9f0e687eb29708579ad6887262a92ee5b54f85fe361d30dc2d04a40222487e68 SHA512 f61d7732fb577aa16f928652fc5633b1e4fcb98e6f061d5d24054b5693087be2fbca525e4af4541614ece992d13066c367abe05e1fede8daba936617fb66866c
+DIST sqlglot-21.2.0.tar.gz 17675110 BLAKE2B c9c2eba7ffb180dc53937a00881111c3ddd2d51ca8411880dd2d56f26cfd5b6d96595c3e9d8e1bbff99f3699e1063ca721e8c226b0e0ece1be0f0c6ce785e145 SHA512 5ee534c5765bb92880df62cca0f9cab932ae9599b939cd737ee496c8f16eaab0c1a8730f79df666c612a1c0bb44a821a5f8bf1948e35a5aa17fd584d6ca0d033
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-21.2.0.ebuild b/dev-python/sqlglot/sqlglot-21.2.0.ebuild
new file mode 100644
index 000000000000..c040bab3734b
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-21.2.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/twisted/Manifest b/dev-python/twisted/Manifest
index 8afc2594cc98..27dffda63d2a 100644
--- a/dev-python/twisted/Manifest
+++ b/dev-python/twisted/Manifest
@@ -1,2 +1,3 @@
DIST twisted-23.10.0.tar.gz 3495627 BLAKE2B 3b5c2dc56686203cfe7c863211f0be34f49b26273af7b0f54a891851cf5f32096da880f35dd549b8ff82c6885fda2f644ef747fc9574e830da4fe2ddb588e70f SHA512 da6cc663005776fca716503ec53ae367576e9c89ec2b90a367e73afb1e63c51a24dfad39b9ed1edb597e77e1d805dcbd179cefc1685faddd4044efc8f6c82d5f
+DIST twisted-24.2.0rc1.tar.gz 3500738 BLAKE2B d286b8bbd8e3c9bef82bf3b6a3ea3714358f4447a2bd4b3e82a0f4be0bda89c9a0804f807592dd951b6bb4ff74076b4a35a13b98d9d99e4334a644fe668f7802 SHA512 6f8946e65ec6affce5cac79a6b6019a48ba6bb9c2eb42bc2a251a50bd33eb429dd6aec570ed51ce98c618cc220451a935f8e32c93281953ef4b2a9e658793b68
DIST twisted-regen-cache.gz 911 BLAKE2B ffd3fcda6c67ffe6fd3ef581c8d507548396b66ed0708e9a5c790095e579c0d5f0f71596acf05712989da2ddef2b8d437eca973bc4d80ef8a9fa852915f38305 SHA512 95a9b931c73017d16d1b5e6b41345dddffe62b6af1a8e93b5e40d06d3d15be17b0dd0181c767ffeeb791534d463764ef9e066fa6c2ee2ac4b53c86d1da8fce03
diff --git a/dev-python/twisted/twisted-24.2.0_rc1.ebuild b/dev-python/twisted/twisted-24.2.0_rc1.ebuild
new file mode 100644
index 000000000000..bb8156f8cacc
--- /dev/null
+++ b/dev-python/twisted/twisted-24.2.0_rc1.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="An asynchronous networking framework written in Python"
+HOMEPAGE="
+ https://twisted.org/
+ https://github.com/twisted/twisted/
+ https://pypi.org/project/Twisted/
+"
+SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="conch http2 serial ssl test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/automat-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/constantly-15.1[${PYTHON_USEDEP}]
+ >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}]
+ >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-5[${PYTHON_USEDEP}]
+ conch? (
+ >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.3[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ )
+ http2? (
+ <dev-python/h2-5.0[${PYTHON_USEDEP}]
+ >=dev-python/h2-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/priority-2.0[${PYTHON_USEDEP}]
+ >=dev-python/priority-1.1.0[${PYTHON_USEDEP}]
+ )
+ serial? (
+ >=dev-python/pyserial-3.0[${PYTHON_USEDEP}]
+ )
+ ssl? (
+ >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}]
+ >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.4[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
+ >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}]
+ <dev-python/cython-test-exception-raiser-2[${PYTHON_USEDEP}]
+ >=dev-python/cython-test-exception-raiser-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.4[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.56[${PYTHON_USEDEP}]
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ >=dev-python/pyhamcrest-2[${PYTHON_USEDEP}]
+ >=dev-python/pyserial-3.0[${PYTHON_USEDEP}]
+ virtual/openssh
+ ssl? (
+ >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}]
+ >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}]
+ )
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+python_prepare_all() {
+ # upstream test for making releases; not very useful and requires
+ # sphinx (including on py2)
+ rm src/twisted/python/test/test_release.py || die
+
+ # multicast tests fail within network-sandbox
+ sed -e 's:test_joinLeave:_&:' \
+ -e 's:test_loopback:_&:' \
+ -e 's:test_multiListen:_&:' \
+ -e 's:test_multicast:_&:' \
+ -i src/twisted/test/test_udp.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ # the test suite handles missing file & failing ioctl()s gracefully
+ # but not permission errors from sandbox
+ addwrite /dev/net/tun
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON} (xfail)"
+ return
+ fi
+
+ # breaks some tests by overriding empty environment
+ local -x SANDBOX_ON=0
+ "${EPYTHON}" -m twisted.trial twisted ||
+ die "Tests failed with ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # own the dropin.cache so we don't leave orphans
+ > "${D}$(python_get_sitedir)"/twisted/plugins/dropin.cache || die
+
+ python_doscript "${WORKDIR}"/twisted-regen-cache
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newconfd "${FILESDIR}/twistd.conf" twistd
+ newinitd "${FILESDIR}/twistd.init" twistd
+}
+
+python_postinst() {
+ twisted-regen-cache || die
+}
+
+pkg_postinst() {
+ if [[ -z ${ROOT} ]]; then
+ python_foreach_impl python_postinst
+ fi
+}
+
+python_postrm() {
+ rm -f "${ROOT}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die
+}
+
+pkg_postrm() {
+ # if we're removing the last version, remove the cache file
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ python_foreach_impl python_postrm
+ fi
+}
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index f2d613806161..8ad169eb3f00 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1 +1,2 @@
DIST virtualenv-20.25.0.tar.gz 7150307 BLAKE2B ebe36d523d23aa6e29b53cf49e536aa0f2ab6bb2edcfaed3ba89456893a0cb9fb7bf8f97c61f12725a57023a6b565a0de797f988714469e2166da5d63652d54e SHA512 f4d8acff9d5837aa40eea18810517d4f1b9936b567395d6216bbda36e84b24f8efc584586cd2d168491139b346513d924e371b6b1396833fbbfedebef8620b94
+DIST virtualenv-20.25.1.tar.gz 7152341 BLAKE2B 7d3ecaca89cb4106f97fb5565331b257017d756742f9c90972a01a86296e81d509d2f4a7869d3bc7a299c1c2f01cc08999eddc258f1bd46acf88999d0732794e SHA512 c0791de2aed7893658316199696906b1aed650460f3b53e0dbd13e695d16bc14d8974cd72fc8dcc010ff7ba10036121929ce9a608f97d7d2cd9f972144a3a1f0
diff --git a/dev-python/virtualenv/virtualenv-20.25.1.ebuild b/dev-python/virtualenv/virtualenv-20.25.1.ebuild
new file mode 100644
index 000000000000..ea928722eb7c
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-20.25.1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
+ ' pypy3)
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:<[0-9.]*,::' pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ tests/unit/activation/test_xonsh.py
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ tests/unit/create/test_creator.py::test_cross_major
+ # tests failing without python2 installed
+ "tests/unit/create/test_creator.py::test_py_pyc_missing[True-False]"
+ "tests/unit/create/test_creator.py::test_py_pyc_missing[False-False]"
+ )
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-pypy3-posix-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-pypy3-posix-copies-global]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-pypy3-posix-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-pypy3-posix-copies-global]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-venv-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[root-venv-copies-global]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-venv-copies-isolated]'
+ 'tests/unit/create/test_creator.py::test_create_no_seed[venv-venv-copies-global]'
+ 'tests/unit/create/test_creator.py::test_zip_importer_can_import_setuptools'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.9-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.9--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.10-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7.10--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3.7--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[PyPy-3--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.9-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.9--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.10-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7.10--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3.7--bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3-64-bin-]'
+ 'tests/unit/discovery/py_info/test_py_info_exe_based_of.py::test_discover_ok[python-3--bin-]'
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ tests/unit/create/via_global_ref/test_build_c_ext.py
+ )
+ ;&
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+ local plugins=( -p flaky -p pytest_mock )
+ if [[ ${EPYTHON} == pypy3 ]]; then
+ plugins+=( -p freezegun )
+ else
+ plugins+=( -p time_machine )
+ fi
+ epytest "${plugins[@]}" -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}