summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-10-03 19:10:14 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-10-03 19:10:14 +0000
commit7f196b233e55d9a284397b08440a129559e6d3b3 (patch)
tree7e462ef53adb37cf23716ff5370461d3b139ecbc /dev-python
parentd72ddd7182c5ead3b93ffafc768fbd120f05a332 (diff)
downloadbaldeagleos-repo-7f196b233e55d9a284397b08440a129559e6d3b3.tar.gz
baldeagleos-repo-7f196b233e55d9a284397b08440a129559e6d3b3.tar.xz
baldeagleos-repo-7f196b233e55d9a284397b08440a129559e6d3b3.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/bibtexparser/Manifest1
-rw-r--r--dev-python/bibtexparser/bibtexparser-1.4.2.ebuild30
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.35.32.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.35.32.ebuild76
-rw-r--r--dev-python/fsspec/Manifest1
-rw-r--r--dev-python/fsspec/files/fsspec-2024.9.0-backports.patch128
-rw-r--r--dev-python/fsspec/fsspec-2024.9.0.ebuild63
-rw-r--r--dev-python/huawei-lte-api/Manifest1
-rw-r--r--dev-python/huawei-lte-api/huawei-lte-api-1.9.3.ebuild40
-rw-r--r--dev-python/ipython/Manifest1
-rw-r--r--dev-python/ipython/ipython-8.28.0.ebuild161
-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-type/Manifest1
-rw-r--r--dev-python/parse-type/parse-type-0.6.4.ebuild34
-rw-r--r--dev-python/pycryptodome/Manifest1
-rw-r--r--dev-python/pycryptodome/pycryptodome-3.21.0.ebuild60
-rw-r--r--dev-python/pymongo/Manifest1
-rw-r--r--dev-python/pymongo/pymongo-4.9.2.ebuild228
-rw-r--r--dev-python/pyrqlite/Manifest1
-rw-r--r--dev-python/pyrqlite/files/pyrqlite-2.2.3-test-support.patch50
-rw-r--r--dev-python/pyrqlite/pyrqlite-2.2.2.ebuild30
-rw-r--r--dev-python/pyrqlite/pyrqlite-2.2.3.ebuild1
-rw-r--r--dev-python/qiskit/Manifest1
-rw-r--r--dev-python/qiskit/qiskit-1.2.3.ebuild312
-rw-r--r--dev-python/simsimd/Manifest1
-rw-r--r--dev-python/simsimd/simsimd-5.4.4.ebuild64
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-25.24.2.ebuild129
-rw-r--r--dev-python/tomli/Manifest2
-rw-r--r--dev-python/tomli/tomli-2.0.2.ebuild40
35 files changed, 1462 insertions, 81 deletions
diff --git a/dev-python/bibtexparser/Manifest b/dev-python/bibtexparser/Manifest
index 26ee0e990245..a1b3291cecb1 100644
--- a/dev-python/bibtexparser/Manifest
+++ b/dev-python/bibtexparser/Manifest
@@ -1 +1,2 @@
DIST bibtexparser-1.4.1.gh.tar.gz 97146 BLAKE2B 8040532fe2153ff6ec664631a11b4f61548f99198c565bb554d0fe09d1fa54ee368c08be72bf7e86c5b6ca696deb0210496d4772243a05c5c9b28d73f52e6dc5 SHA512 f8e8f911eac38e98362bbbeff5b4af986e426911db9c54e93ec4a4eee1b1ceed630222c1a51454639566a6b5bad60c86a70b882a1c05084927fcbe7315e837ce
+DIST bibtexparser-1.4.2.gh.tar.gz 81042 BLAKE2B 4522e46c371ae66af933ff6edc3cf1ce37336597c815facd8bbc62cc5b976c66bce45563af18f15a62c5ddf8ddda1bfbfa986eb16f21544aafaef3e22883cf4d SHA512 7aa58cb50c42773b8ae6d0448f817e83cc7445b8e65806430df17f9956219f440116cb227825da3423b40a5815921d1e42e407b236f6e917b3713eee5b8a989b
diff --git a/dev-python/bibtexparser/bibtexparser-1.4.2.ebuild b/dev-python/bibtexparser/bibtexparser-1.4.2.ebuild
new file mode 100644
index 000000000000..9dda02847a9b
--- /dev/null
+++ b/dev-python/bibtexparser/bibtexparser-1.4.2.ebuild
@@ -0,0 +1,30 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="A BibTeX parser written in Python"
+HOMEPAGE="
+ https://github.com/sciunto-org/python-bibtexparser/
+ https://pypi.org/project/bibtexparser/
+"
+SRC_URI="
+ https://github.com/sciunto-org/python-bibtexparser/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/python-${P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/pylatexenc-2.10[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index dea86e91e547..66a423ba9c61 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,3 +2,4 @@ DIST boto3-1.35.19.gh.tar.gz 861578 BLAKE2B 5011df66763e646768232a65022080ffbe3d
DIST boto3-1.35.24.gh.tar.gz 864653 BLAKE2B e2327ae352d17f0cfabdcca6d7db07e0212ea740c66d8f36baf44d0617cdbfdcb018388fed1deeea37bef5e44edb360f2cb77b41085e7a3308f7d4045b0a4aa3 SHA512 e34b02cf141bd77d92a34dbef266e07f6d45d46aa924e3941dbe09a9562253f375b79a6a4f1e3df248d711341e00367a8519f816b2200353a6262de72a40fba0
DIST boto3-1.35.29.gh.tar.gz 867438 BLAKE2B 7a47e8156bd438e94fe2abf9fa978aa243bf131bf7c9afdafeca7f7ada9b014daea410da82417e95bdd57f14bf5a973429cc7b431ba72088f9f9619c59cf9b93 SHA512 7238f353520768576390651a4a90a389b24205b38ff9c58829ff53b6210fb3a4ad5c27301e5be27bb10ed2017ff29691780102af983e16d0b14a4f9add17ba12
DIST boto3-1.35.31.gh.tar.gz 868424 BLAKE2B 28c352784c8af273f29318b788ed2c29b88e2e2deb248849937f7a33d0a0d11132a8ee571bce18486c60e63c5c2972fa041389f8ea41dda7d18fd7ee21a30fd2 SHA512 2f614c8f0fc9631a7c77889e392c789493e836d195d5210fa5a63d10bc67c8879f06251a006c6d398afd71fc646320e4571060174a277538fcba63930d6183a7
+DIST boto3-1.35.32.gh.tar.gz 869127 BLAKE2B a7a269b71f8a784118d0d9092ef95b9eb8344c6791e37a68d1645bf629f7b724e556dba02fad5685af5dff543a3646dda9005cdf0c7a92b47431dd1ba9ce6d26 SHA512 2cd51232be313b407b4a2b799bdd487242f3e61a9bc63df2d59422ea5b7abb2f9c382b151d17efe0dfed31b1d0cf9719a746fd3c8de314e080e774c1c4951ffc
diff --git a/dev-python/boto3/boto3-1.35.32.ebuild b/dev-python/boto3/boto3-1.35.32.ebuild
new file mode 100644
index 000000000000..d91ce27598cf
--- /dev/null
+++ b/dev-python/boto3/boto3-1.35.32.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_{9,10,11,12,13} )
+
+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 08f8a0042a4c..aefe6faab0d7 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,3 +2,4 @@ DIST botocore-1.35.19.gh.tar.gz 13376459 BLAKE2B ba64ff0dc221782ce23592a6d6a146a
DIST botocore-1.35.24.gh.tar.gz 13406391 BLAKE2B ddc1c456e4358b3e28ca8f6a92230fb843309fd6059eaf909a9fb3de0bd580fb52389173187e0794054b9f1bc21a829f457b80067868c13fd7987fc682acd024 SHA512 7a1e8c1a85e8699a811a41b59cdefcee2457c5dfdf01d54f3048f894869c5c4033287909095bf15304e408c268cf772194655afffff280dbb6fd6c6daac1d8cb
DIST botocore-1.35.29.gh.tar.gz 13404400 BLAKE2B 41dab50dbed91c55df3c74cc3c57bd02a770b37445cf26690d199c62642b2d96d1c56d06cfea58ac23e6fa0826be99c684bd98d5e00e0e7aa8bcc0b599f70bce SHA512 c82c942942c5ad7c0b941bf1e89003730bda68fd9a2f623e8db85690f8157f73517b0ff6b7009cb15461bbff41b7ee713c5ab935cc0eb96ba3ef3e3100e363e5
DIST botocore-1.35.31.gh.tar.gz 13414420 BLAKE2B 942455ccd037fb7cd9142a43cbc316ccc0ff8a7bc55f00096bea11527d2701cb6ac89984faca19793dcdbba5163bba330f1cddbbb9427a411d9db0cf50c9cfba SHA512 972a9f72e2d922f95e7df23ee087787962062dc97b1aa1c7732fac7a4de17d8728bad0f38dfa4dd6963c285acdd10a327044e6aba43b54953d8ab9531619b927
+DIST botocore-1.35.32.gh.tar.gz 13422242 BLAKE2B d1b553be9301b5c9aa674e9aa32d15b69e3fd56eb9d906fb979967a1df6fbf69fac6795dad133bcaf63c8c955d3f234087a7285ba7f603de83f015fc7fcea1fa SHA512 174bed147fc9708e2c1e500276597396a4f63d0417bfeb6058296a9aaeb6f21a56e8bd63d06248641e99f0e38e1dbc5c1a3ce8c17c28e1c3eea8044f58ce0642
diff --git a/dev-python/botocore/botocore-1.35.32.ebuild b/dev-python/botocore/botocore-1.35.32.ebuild
new file mode 100644
index 000000000000..2fce84c7e05c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.35.32.ebuild
@@ -0,0 +1,76 @@
+# 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_{9,10,11,12,13} )
+
+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
+ )
+
+ case ${EPYTHON} in
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # memory use tests, probably fragile
+ tests/functional/leak/test_resource_leaks.py::TestDoesNotLeakMemory
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/fsspec/Manifest b/dev-python/fsspec/Manifest
index be76d6abdb8b..c7916ee7a04c 100644
--- a/dev-python/fsspec/Manifest
+++ b/dev-python/fsspec/Manifest
@@ -1 +1,2 @@
DIST filesystem_spec-2024.6.1.gh.tar.gz 409416 BLAKE2B c5b2ba4935dcf0a141c952d611b49c4370a07e3c9ed439ae4d7e98f86e93610a2b1eb8c394eb73ed4494555cca1ac169f1ee7b11144cf0d1ecae7316a46092b6 SHA512 67ecf2bc10c3ae28fa64be5ecb659fc466e97b52b152f3f223d347931b04730e58a48e90d7c546a47c5422831103711037fc268c24984cf77ef65ca4714b0e5e
+DIST filesystem_spec-2024.9.0.gh.tar.gz 413991 BLAKE2B b4dbb17e39481d3d5ee900618b3bea036faec0ce84d95cf2e581feb59d0eb5cb1ecc73730b87bbeb175110db34d52db062bf8d94e82f27a28a6f1693e10c49e7 SHA512 2600f7b020019634ec3f4ffd2a66f458c04423f10c00afbfd99dabad7fca809af28792a5b8a6625c57548f8dc172ab0d9498cbfcd570cd1d04a905c079fe4fb9
diff --git a/dev-python/fsspec/files/fsspec-2024.9.0-backports.patch b/dev-python/fsspec/files/fsspec-2024.9.0-backports.patch
new file mode 100644
index 000000000000..a8f9f965c083
--- /dev/null
+++ b/dev-python/fsspec/files/fsspec-2024.9.0-backports.patch
@@ -0,0 +1,128 @@
+From edf495736a39c0031d5514e8350363dfa229f3d4 Mon Sep 17 00:00:00 2001
+From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
+Date: Sun, 22 Sep 2024 23:48:36 -0400
+Subject: [PATCH] Fix handling of Paths in zip implementation
+
+Fixes #1688
+---
+ fsspec/implementations/zip.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/fsspec/implementations/zip.py b/fsspec/implementations/zip.py
+index aa6a57842..6db3ae278 100644
+--- a/fsspec/implementations/zip.py
++++ b/fsspec/implementations/zip.py
+@@ -1,3 +1,4 @@
++import os
+ import zipfile
+
+ import fsspec
+@@ -48,7 +49,7 @@ def __init__(
+ if mode not in set("rwa"):
+ raise ValueError(f"mode '{mode}' no understood")
+ self.mode = mode
+- if isinstance(fo, str):
++ if isinstance(fo, (str, os.PathLike)):
+ if mode == "a":
+ m = "r+b"
+ else:
+From dc4f5a97d90238b862fa7974a9b8e93602f44540 Mon Sep 17 00:00:00 2001
+From: Martin Durant <martindurant@users.noreply.github.com>
+Date: Mon, 23 Sep 2024 09:42:21 -0400
+Subject: [PATCH] Don't require absolute offsets in zip tests (#1691)
+
+---
+ fsspec/implementations/tests/test_zip.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/fsspec/implementations/tests/test_zip.py b/fsspec/implementations/tests/test_zip.py
+index ecd082f3f..8bf8155d9 100644
+--- a/fsspec/implementations/tests/test_zip.py
++++ b/fsspec/implementations/tests/test_zip.py
+@@ -169,12 +169,16 @@ def _assert_all_except_context_dependent_variables(result, expected_result):
+ result_without_date_time.pop("_raw_time")
+ result_without_date_time.pop("external_attr")
+ result_without_date_time.pop("create_system")
++ result_without_date_time.pop("_end_offset", None)
++ result_without_date_time.pop("header_offset", None)
+
+ expected_result_without_date_time = expected_result[path].copy()
+ expected_result_without_date_time.pop("date_time")
+ expected_result_without_date_time.pop("_raw_time")
+ expected_result_without_date_time.pop("external_attr")
+ expected_result_without_date_time.pop("create_system")
++ expected_result_without_date_time.pop("_end_offset", None)
++ expected_result_without_date_time.pop("header_offset", None)
+ assert result_without_date_time == expected_result_without_date_time
+
+
+From 0021859ff78bbf62e86c330e2dad00c5dd205108 Mon Sep 17 00:00:00 2001
+From: Martin Durant <martin.durant@alumni.utoronto.ca>
+Date: Wed, 2 Oct 2024 11:37:14 -0400
+Subject: [PATCH] Limit fields checked in ZIP tests
+
+---
+ fsspec/asyn.py | 4 +++
+ fsspec/implementations/tests/test_zip.py | 34 +++++++++++++-----------
+ 2 files changed, 23 insertions(+), 15 deletions(-)
+
+diff --git a/fsspec/asyn.py b/fsspec/asyn.py
+index f203fa0a4..de41839ea 100644
+--- a/fsspec/asyn.py
++++ b/fsspec/asyn.py
+@@ -344,6 +344,10 @@ async def _rm(self, path, recursive=False, batch_size=None, **kwargs):
+ async def _cp_file(self, path1, path2, **kwargs):
+ raise NotImplementedError
+
++ async def _mv_file(self, path1, path2):
++ await self._cp_file(path1, path2)
++ await self._rm_file(path1)
++
+ async def _copy(
+ self,
+ path1,
+diff --git a/fsspec/implementations/tests/test_zip.py b/fsspec/implementations/tests/test_zip.py
+index 8bf8155d9..14d00086e 100644
+--- a/fsspec/implementations/tests/test_zip.py
++++ b/fsspec/implementations/tests/test_zip.py
+@@ -164,21 +164,25 @@ def zip_file_fixture(tmp_path):
+ def _assert_all_except_context_dependent_variables(result, expected_result):
+ for path in expected_result.keys():
+ assert result[path]
+- result_without_date_time = result[path].copy()
+- result_without_date_time.pop("date_time")
+- result_without_date_time.pop("_raw_time")
+- result_without_date_time.pop("external_attr")
+- result_without_date_time.pop("create_system")
+- result_without_date_time.pop("_end_offset", None)
+- result_without_date_time.pop("header_offset", None)
+-
+- expected_result_without_date_time = expected_result[path].copy()
+- expected_result_without_date_time.pop("date_time")
+- expected_result_without_date_time.pop("_raw_time")
+- expected_result_without_date_time.pop("external_attr")
+- expected_result_without_date_time.pop("create_system")
+- expected_result_without_date_time.pop("_end_offset", None)
+- expected_result_without_date_time.pop("header_offset", None)
++ fields = [
++ "orig_filename",
++ "filename",
++ "compress_type",
++ "comment",
++ "extra",
++ "CRC",
++ "compress_size",
++ "file_size",
++ "name",
++ "size",
++ "type",
++ ]
++
++ result_without_date_time = {k: result[path][k] for k in fields}
++
++ expected_result_without_date_time = {
++ k: expected_result[path][k] for k in fields
++ }
+ assert result_without_date_time == expected_result_without_date_time
+
+
diff --git a/dev-python/fsspec/fsspec-2024.9.0.ebuild b/dev-python/fsspec/fsspec-2024.9.0.ebuild
new file mode 100644
index 000000000000..ba292b1f6549
--- /dev/null
+++ b/dev-python/fsspec/fsspec-2024.9.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2020-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+MY_P=filesystem_spec-${PV}
+DESCRIPTION="A specification that python filesystems should adhere to"
+HOMEPAGE="
+ https://github.com/fsspec/filesystem_spec/
+ https://pypi.org/project/fsspec/
+"
+# upstream removed tests in 2024.6.0
+SRC_URI="
+ https://github.com/fsspec/filesystem_spec/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+# Note: this package is not xdist-friendly
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+PATCHES=(
+ # https://github.com/fsspec/filesystem_spec/pull/1689
+ # https://github.com/fsspec/filesystem_spec/pull/1691
+ # https://github.com/fsspec/filesystem_spec/pull/1700
+ "${FILESDIR}/${P}-backports.patch"
+)
+
+src_test() {
+ git config --global user.email "you@example.com" || die
+ git config --global user.name "Your Name" || die
+ distutils-r1_src_test
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p pytest_mock -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/huawei-lte-api/Manifest b/dev-python/huawei-lte-api/Manifest
index 0bc4f96c5d70..3b24cca2c156 100644
--- a/dev-python/huawei-lte-api/Manifest
+++ b/dev-python/huawei-lte-api/Manifest
@@ -1,2 +1 @@
DIST huawei-lte-api-1.10.gh.tar.gz 43853 BLAKE2B 568da364ecc709716a040a5f6c32f79b028ceca42ffce29949d064115279a4653544df50e30ac07ad873a1e98ba203093fcf000bca65b4b1ea6f4f009217d4c8 SHA512 7ffe128817bf38d60ee5dcbdb6668516a3ab47a02d34868ab9c9cc6b26cfae10c334a779b4ba63f0ec635b834fce46b12409b913f7c9b45a746ff5ba875e1758
-DIST huawei-lte-api-1.9.3.gh.tar.gz 41344 BLAKE2B 3812c2dd5404320eb24bbe6e1e5819effad06641e96289ac279e5fe96add8880d837bf6770816f1bdce553cbf1aad73d370377c7f0713428d6ac46906d88602c SHA512 4f5f00dd416b017422753940ae69a1c24b424692fdf9e6ea29073035d381b5434462b022ebe44bf4d911eafe07f9ff57b8d349bf7140e0f33daba6384a73cd24
diff --git a/dev-python/huawei-lte-api/huawei-lte-api-1.9.3.ebuild b/dev-python/huawei-lte-api/huawei-lte-api-1.9.3.ebuild
deleted file mode 100644
index d44e7b433fd6..000000000000
--- a/dev-python/huawei-lte-api/huawei-lte-api-1.9.3.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="API For huawei LAN/WAN LTE Modems"
-HOMEPAGE="
- https://github.com/Salamek/huawei-lte-api/
- https://pypi.org/project/huawei-lte-api/
-"
-SRC_URI="
- https://github.com/Salamek/${PN}/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- dev-python/pycryptodome[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
-"
-
-python_prepare_all() {
- # make cryptodome-friendly
- sed -i -e 's:pycryptodomex:pycryptodome:' setup.py || die
- find -name '*.py' -exec \
- sed -i -e 's:Cryptodome:Crypto:g' {} + || die
-
- distutils-r1_python_prepare_all
-}
-
-distutils_enable_tests pytest
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
index 1742c51b1388..7728e280ca9b 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1 +1,2 @@
DIST ipython-8.27.0.tar.gz 5494984 BLAKE2B c896fec5d63bd2c587b218e86dc3be80e125b87c4abb30d5d4b465233a014aa1b94939e293517e1e8eb93ca8098d304872e94a32454f636f6652494e16b4352a SHA512 0bc38bb182fd3342306ed8b9057873eed0554d8cd98ed03be1eb94ff885a39e977d12ceb4eac33fca06229cf7883a7a28f7570f9e698de7554c0533ad094c560
+DIST ipython-8.28.0.tar.gz 5495762 BLAKE2B cd80970486b5c8128fc5f20382cd087ecbe6a1f4566db52030e9825fbd24acbef8b1857dc74592f5fe1f278aabf0b34913e7be53d8851bf6f9cefccc9360662e SHA512 5634b9faf55eec9cf2775587e994b4298ae9ddd6420fbdcc6a9c32c0f9bbe39f5137e6b39a2f5a5c40efa1deba668d81fe39867151480eb4b88f3850d8670719
diff --git a/dev-python/ipython/ipython-8.28.0.ebuild b/dev-python/ipython/ipython-8.28.0.ebuild
new file mode 100644
index 000000000000..3141060317f2
--- /dev/null
+++ b/dev-python/ipython/ipython-8.28.0.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
+
+inherit distutils-r1 optfeature pypi virtualx
+
+DESCRIPTION="Advanced interactive shell for Python"
+HOMEPAGE="
+ https://ipython.org/
+ https://github.com/ipython/ipython/
+ https://pypi.org/project/ipython/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="examples notebook nbconvert qt5 +smp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
+ dev-python/stack-data[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.10)
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.10 3.11)
+"
+
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ app-text/dvipng[truetype]
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
+ dev-python/matplotlib-inline[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pickleshare[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+RDEPEND+="
+ nbconvert? (
+ dev-python/nbconvert[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ $(python_gen_cond_dep '
+ qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
+ ' 'python*')
+ $(python_gen_cond_dep '
+ notebook? (
+ dev-python/notebook[${PYTHON_USEDEP}]
+ dev-python/ipywidgets[${PYTHON_USEDEP}]
+ dev-python/widgetsnbextension[${PYTHON_USEDEP}]
+ )
+ ' 3.{10..12})
+ smp? (
+ >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
+ )
+"
+
+python_prepare_all() {
+ # Rename the test directory to reduce sys.path pollution
+ # https://github.com/ipython/ipython/issues/12892
+ mv IPython/extensions/{,ipython_}tests || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
+ local EPYTEST_DESELECT=(
+ # TODO: looks to be a regression due to a newer dep
+ IPython/core/tests/test_oinspect.py::test_class_signature
+ IPython/core/tests/test_oinspect.py::test_render_signature_long
+ IPython/terminal/tests/test_shortcuts.py::test_modify_shortcut_with_filters
+ )
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # https://github.com/ipython/ipython/issues/14244
+ IPython/lib/tests/test_display.py::TestAudioDataWithoutNumpy
+ )
+ ;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # docstring mismatch?
+ IPython/core/tests/test_debugger.py::IPython.core.tests.test_debugger.test_ipdb_magics
+ )
+ ;;
+ esac
+
+ # nonfatal implied by virtx
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ nonfatal epytest -p asyncio --asyncio-mode=auto ||
+ die "Tests failed on ${EPYTHON}"
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # Create ipythonX.Y symlinks.
+ # TODO:
+ # 1. do we want them for pypy? No. pypy has no numpy
+ # 2. handle it in the eclass instead (use _python_ln_rel).
+ # With pypy not an option the dosym becomes unconditional
+ dosym ../lib/python-exec/${EPYTHON}/ipython \
+ /usr/bin/ipython${EPYTHON#python}
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
+
+pkg_postinst() {
+ optfeature "code formatting" dev-python/black
+ optfeature "sympyprinting" dev-python/sympy
+ optfeature "cythonmagic" dev-python/cython
+ optfeature "%lprun magic command" dev-python/line-profiler
+ optfeature "%matplotlib magic command" dev-python/matplotlib-inline
+
+ if use nbconvert; then
+ if ! has_version virtual/pandoc ; then
+ einfo "Node.js will be used to convert notebooks to other formats"
+ einfo "like HTML. Support for that is still experimental. If you"
+ einfo "encounter any problems, please use app-text/pandoc instead."
+ fi
+ fi
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index 37a64204a00a..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 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
-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 56733bbffc48..eb2586280d80 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..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</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/parse-type/Manifest b/dev-python/parse-type/Manifest
index 09df4f9971c1..6fa94183b175 100644
--- a/dev-python/parse-type/Manifest
+++ b/dev-python/parse-type/Manifest
@@ -1 +1,2 @@
DIST parse_type-0.6.3.tar.gz 78224 BLAKE2B 079930e12abbc5e01ad29a92dfd4eabcd4ab80803084875cf63e8812e75ec4d469496e0416c5699da89e8c4da56c1a3ab10a48f9920a926aa6ab988ca52131e9 SHA512 babcc8e47cb1933fcd07e1860b07cdefe2e236c2900b1a3eac7982d32b0320b02647a813d4d20def7df1fab8ba9621d5a5c02fa2147f6fff880d1449f61ef38f
+DIST parse_type-0.6.4.tar.gz 96480 BLAKE2B 04dbee9a4bc132d395b2d20d8cb99ac016dcab65a9eaa29e3f0d6b40700feeda7255aed869a32ef61ffed820ad7b5d2495513c95c0e55ba9759ec9f58d1e933c SHA512 5012ea47f2a9fbdc4962aa11dedef914228f1ec8c88b725374fd434844e4cf22d069016abb49239419188f0455bae9c79eb0259a178e6c292dd8ed8103c2ebe5
diff --git a/dev-python/parse-type/parse-type-0.6.4.ebuild b/dev-python/parse-type/parse-type-0.6.4.ebuild
new file mode 100644
index 000000000000..1435c7693108
--- /dev/null
+++ b/dev-python/parse-type/parse-type-0.6.4.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extension to the parse module"
+HOMEPAGE="https://pypi.org/project/parse-type/"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/parse[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+DOCS=( CHANGES.txt README.rst )
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # disable unnecessary html test report and its pytest-html dependency
+ sed -i '/^addopts/,/report.xml$/d' pytest.ini || die
+}
diff --git a/dev-python/pycryptodome/Manifest b/dev-python/pycryptodome/Manifest
index 49c39d87d206..842ad2a87c80 100644
--- a/dev-python/pycryptodome/Manifest
+++ b/dev-python/pycryptodome/Manifest
@@ -1 +1,2 @@
DIST pycryptodome-3.20.0.gh.tar.gz 17173888 BLAKE2B 7706a7f512579b4edf080b5074a9f226b2f0ef18a8f1faf74e890cfccff85d0599b4883cd5011a5cc0296b5a10cccce94cb2b948de29d785f6add04e54215a5a SHA512 0d65ccd93f9f78548c04aa3af01cb65b6a39e81bb3dfa4bb08acc5a5a731b17f9c5b07a1d1780739b3f358402a3596b04e446fc7b39345a4c6f03fd5a2de7ff9
+DIST pycryptodome-3.21.0.gh.tar.gz 17464067 BLAKE2B 5fcf62317053ae3d1dddd90bb223e9866944b4c4325ae146c17c48d2345c06c3fc9951dc72c135ec5a61043b7eced92b69c9bc5f43d47e1f512b9c9ce94fa310 SHA512 cfb66b1e53547992b9405bc6a2d90ed3bc3d1857a01ef619069b9d1aa24d809a9d46d8b0d824999588dd6c0de9a5e39db70b572a9954f0ead0dd39f9b7cedbcc
diff --git a/dev-python/pycryptodome/pycryptodome-3.21.0.ebuild b/dev-python/pycryptodome/pycryptodome-3.21.0.ebuild
new file mode 100644
index 000000000000..97428a124bd8
--- /dev/null
+++ b/dev-python/pycryptodome/pycryptodome-3.21.0.ebuild
@@ -0,0 +1,60 @@
+# 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_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="A self-contained cryptographic library for Python"
+HOMEPAGE="
+ https://www.pycryptodome.org/
+ https://github.com/Legrandin/pycryptodome/
+ https://pypi.org/project/pycryptodome/
+"
+SRC_URI="
+ https://github.com/Legrandin/pycryptodome/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2 Unlicense"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+DEPEND="
+ dev-libs/gmp:=
+ >=dev-libs/libtomcrypt-1.18.2-r1:=
+"
+BDEPEND="
+ $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}/pycryptodome-3.10.1-system-libtomcrypt.patch"
+)
+
+python_prepare_all() {
+ # make sure we're unbundling it correctly
+ rm -r src/libtom || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTHONPATH=${S}/test_vectors:${PYTHONPATH}
+ "${EPYTHON}" - <<-EOF || die
+ import sys
+ from Crypto import SelfTest
+ SelfTest.run(verbosity=2, stream=sys.stdout)
+ EOF
+
+ # TODO: run cmake tests from src/test?
+}
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index 6339cc8b4fc9..9506be2c368a 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -3,3 +3,4 @@ DIST mongo-python-driver-4.10.1.gh.tar.gz 1957402 BLAKE2B 66f7c166af7c7467ca7cb2
DIST mongo-python-driver-4.7.2.gh.tar.gz 1548375 BLAKE2B a40dbe153f36cdf2836583aa0116f447d08376ce7980a09d0f21cea37a34ab318e5ff0b34b7fe1721cf7fc5d5443a1dbe0982d59cb941b0da8a4a99abdc7b19d SHA512 1de8bd14301e365eb53252dedaaaf8c9056dd534662543e2a500511e5f5f67a69e1f11a8a8575efdbd8852bb47b632d59762f66024d32973d20dc17c4448b9be
DIST mongo-python-driver-4.8.0.gh.tar.gz 1550149 BLAKE2B 9462480b17f3da54918883fbcb28a4324e6a00a9c2c34b16267ebcd378170f7fd34ec7290f7a0e3c4c38a5f1f803428cb6a0c64a562d956b3a19c37130697012 SHA512 17513a278187424fea1876d288651e385be759f23eebceca8d04a15182b15ffd64956193bb53e4a90e8b2197c2ebbade274737091f5d2e5fb4398539674c41df
DIST mongo-python-driver-4.9.1.gh.tar.gz 1937311 BLAKE2B 9312c7df50f86dad7dd713b34aba0a87dd9f878b115b3c00ae9e0825c883c869f57e0d55d552b1b4bf9715930840a540572b451d296e185085c4c0c707855811 SHA512 e616418c90088bfc328505dea315a225bfcc942fa29dcc348d3b80d0fb329b7e8fe9d6164c0e13a0562e6126535cc7d04c2cf497a39a04071f6db8af3c8ed1f1
+DIST mongo-python-driver-4.9.2.gh.tar.gz 1941838 BLAKE2B 07ba597eae08cd1116e0aa42e5c9e8af0024d69d8ee4acc33cd84a80cd9df77028a2b2bc7a1d6563ca1ebe485851d0483c804bce944dc9f1f5ed48b44fe9ae7a SHA512 40fdb22ef5c602e96f735b948fe61fd1a325f51f264087027d58319eaa382f37638cf1d0dabaaf9c0a4f556698638b26bdc5431c9147a245b7b4e515b7b7aac9
diff --git a/dev-python/pymongo/pymongo-4.9.2.ebuild b/dev-python/pymongo/pymongo-4.9.2.ebuild
new file mode 100644
index 000000000000..1ec18dcacb90
--- /dev/null
+++ b/dev-python/pymongo/pymongo-4.9.2.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} 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 ~loong ~mips ~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="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ 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
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # we do not want hatch-requirements-txt and its ton of NIH deps
+ sed -i -e '/requirements/d' pyproject.toml || die
+}
+
+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
+ export NO_EXT=1
+ else
+ export PYMONGO_C_EXT_MUST_BUILD=1
+ unset NO_EXT
+ 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/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
+ test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
+ test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/test_client.py::ClientUnitTest::test_detected_environment_logging
+ test/test_client.py::ClientUnitTest::test_detected_environment_warning
+ 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
+
+ # fragile to timing? fails because we're getting too many logs
+ test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
+
+ # hangs?
+ test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
+ )
+
+ local run_separately=(
+ # need to run some tests separately and then restart mongodb
+ # to prevent it from crashing
+ # https://bugs.gentoo.org/934389
+ # note that this list must not overlap with EPYTEST_DESELECT
+ test/test_bulk.py
+ test/test_change_stream.py
+ test/test_collection.py
+ test/test_crud_unified.py
+ test/test_gridfs.py
+ test/test_gridfs_bucket.py
+ )
+ local run_separately2=(
+ test/test_command_monitoring.py
+ test/test_connection_monitoring.py
+ test/test_cursor.py
+ test/test_database.py
+ test/test_grid_file.py
+ test/test_monitoring.py
+ )
+ local run_separately_async=(
+ test/asynchronous/test_database.py
+ test/asynchronous/test_grid_file.py
+ )
+
+ 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
+
+ local stage failed=
+ for stage in {1..5}; do
+ # 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 async=( -p asyncio -m default_async )
+ local def=( -p asyncio -m "default or encryption" )
+ case ${stage} in
+ 1)
+ nonfatal epytest "${def[@]}" "${run_separately[@]}" || failed=1
+ ;;
+ 2)
+ nonfatal epytest "${def[@]}" "${run_separately2[@]}" || failed=1
+ ;;
+ 3)
+ EPYTEST_DESELECT+=(
+ "${run_separately[@]}"
+ "${run_separately2[@]}"
+ )
+ nonfatal epytest "${def[@]}" || failed=1
+ ;;
+ 4)
+ nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1
+ ;;
+ 5)
+ EPYTEST_DESELECT+=(
+ "${run_separately_async[@]}"
+ )
+ nonfatal epytest "${async[@]}" || failed=1
+ ;;
+ esac
+
+ mongod --dbpath "${dbpath}" --shutdown || die
+ done
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}" || die
+}
diff --git a/dev-python/pyrqlite/Manifest b/dev-python/pyrqlite/Manifest
index fe7ae7e95276..ef686f56dcf8 100644
--- a/dev-python/pyrqlite/Manifest
+++ b/dev-python/pyrqlite/Manifest
@@ -1,2 +1 @@
-DIST pyrqlite-2.2.2.gh.tar.gz 21302 BLAKE2B 8a16155287f4a4698ca63d4643c9fde0dbf4fc8238b4259f194b66a30846bab9b6420df0cc8049b2ea16d8ffdcd8c99f2b7e49a135af458e2b239b52e3ac4f5b SHA512 6faf6d5b1a264a85247ee5a790bc4e718d0632ee4d4bcd16aed2bce65216f23c0cb44d7c367ae73874bdb618d9c56bbefdaeebb40322f228e0ee50d78e03b91b
DIST pyrqlite-2.2.3.gh.tar.gz 21554 BLAKE2B 1a3c09eaee20a19ab06a4f91a5b12659eafe425f796599ef9abf85f99563a62b40f1f82488611e0bbd1fb18853e2b1e310ecd7f94cb89f5840e34c51a4bd42ef SHA512 063a9072846c31fd34ea5261fe97f1023a95122c39c58292c7ab08ba148e01ab5001adda28c2856f0e29b67be553a8bae011d274edfdd3028aacd22179d309d7
diff --git a/dev-python/pyrqlite/files/pyrqlite-2.2.3-test-support.patch b/dev-python/pyrqlite/files/pyrqlite-2.2.3-test-support.patch
new file mode 100644
index 000000000000..06559446ef12
--- /dev/null
+++ b/dev-python/pyrqlite/files/pyrqlite-2.2.3-test-support.patch
@@ -0,0 +1,50 @@
+From cb5ba83c0ba95eae0026afdc8ae0312b8e51f647 Mon Sep 17 00:00:00 2001
+From: Zac Medico <zmedico@gmail.com>
+Date: Wed, 2 Oct 2024 16:48:38 -0700
+Subject: [PATCH] Eliminate non-public test.support usage
+
+This fixes the "No module named test" issue reported here:
+
+https://bugs.gentoo.org/940579
+---
+ src/test/test_dbapi.py | 17 ++++++-----------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+diff --git a/src/test/test_dbapi.py b/src/test/test_dbapi.py
+index df32f2f..cb756d2 100644
+--- a/src/test/test_dbapi.py
++++ b/src/test/test_dbapi.py
+@@ -24,13 +24,6 @@
+ from __future__ import print_function
+
+ import sys
+-try:
+- import test.support.warnings_helper as test_support
+-except ImportError:
+- try:
+- import test.support as test_support
+- except ImportError:
+- from test import test_support
+ import unittest
+
+ import pyrqlite.dbapi2 as sqlite
+@@ -571,10 +564,12 @@ class ConstructorTests(unittest.TestCase):
+ ts = sqlite.TimestampFromTicks(42)
+
+ def test_CheckBinary(self):
+- with (test_support.check_warnings() if sys.version_info[0] >= 3
+- else test_support.check_py3k_warnings()):
+- b = sqlite.Binary(chr(0).encode() + b"'"
+- if sys.version_info[0] >= 3 else chr(0) + b"'")
++ self.assertEqual(
++ b"\0'",
++ sqlite.Binary(
++ chr(0).encode() + b"'" if sys.version_info[0] >= 3 else chr(0) + b"'"
++ ),
++ )
+
+ class ExtensionTests(unittest.TestCase):
+ @classmethod
+--
+2.45.2
+
diff --git a/dev-python/pyrqlite/pyrqlite-2.2.2.ebuild b/dev-python/pyrqlite/pyrqlite-2.2.2.ebuild
deleted file mode 100644
index 3cab3252607b..000000000000
--- a/dev-python/pyrqlite/pyrqlite-2.2.2.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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_{9,10,11,12,13} )
-inherit distutils-r1
-
-DESCRIPTION="Python client for rqlite"
-HOMEPAGE="
- https://github.com/rqlite/pyrqlite/
- https://pypi.org/project/pyrqlite/
-"
-SRC_URI="
- https://github.com/rqlite/pyrqlite/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-BDEPEND="
- test? (
- >=dev-db/rqlite-6.7.0
- )
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/pyrqlite/pyrqlite-2.2.3.ebuild b/dev-python/pyrqlite/pyrqlite-2.2.3.ebuild
index 3cab3252607b..e0214aabe504 100644
--- a/dev-python/pyrqlite/pyrqlite-2.2.3.ebuild
+++ b/dev-python/pyrqlite/pyrqlite-2.2.3.ebuild
@@ -26,5 +26,6 @@ BDEPEND="
>=dev-db/rqlite-6.7.0
)
"
+PATCHES=("${FILESDIR}/pyrqlite-2.2.3-test-support.patch")
distutils_enable_tests pytest
diff --git a/dev-python/qiskit/Manifest b/dev-python/qiskit/Manifest
index 590cd65ba1de..b7a179a7b3fd 100644
--- a/dev-python/qiskit/Manifest
+++ b/dev-python/qiskit/Manifest
@@ -114,6 +114,7 @@ DIST pyo3-macros-0.21.2.crate 7920 BLAKE2B 60ceb626fd1ffeca7e81ebc721bb4cfebd99b
DIST pyo3-macros-backend-0.21.2.crate 58088 BLAKE2B 05dd49983c8aeddc47cd94f6cd58f10e41ad6f4ec57006908cde4fe3edbcf6814058d7843a88c9dbeb0824f840ad3509414c52e47fffe5ad4b730f791c9a3f19 SHA512 f8488ba0a68f1ae20d053e2323d065f03b40c24231a50b05205b100e973ae50bc7bb9c25e4d37df56f4cfa73d2001655ce9685078d1017a4a90bd7945c01b833
DIST qiskit-1.2.1.gh.tar.gz 10817246 BLAKE2B 3668a77c3ffb31c6fda468cee9c3e7bc17a8b7d38df15cbfa923c72d780b2834c470ad73a79c4e593a4562138cc55f073bfc1e1b09c850b8ceb375d7c20a6fda SHA512 5abf3c331d5f6399056e266b15db0c2e8c6bc9e364293dbe4e26172e3699b70179e1f8e1f67aaadb7cb987d361515a5d91c6baf52b1f9c63123a8f51ee123209
DIST qiskit-1.2.2.gh.tar.gz 10821163 BLAKE2B 049012f08e11e46569f3c5bda2711d02d1d2d23aaba0ae742c2ebfbf25ecda08ca0799b82bd82e42f80d3548a1f1848f4ce0e9f9c83871e0122d2ade926bc9d7 SHA512 98261820dd0ed5f91eb9d87812b4ea5a23fac3097a28f26736a0035ba6eb59f159b26caee699012cd1c2b306c659c60204619abe923af2f8f11b8c8fab1501db
+DIST qiskit-1.2.3.gh.tar.gz 10823967 BLAKE2B 87af2d26904508c680543aa83d22a8a1f3fb6e9b3ed8c8c08b3862300d79f0ee2d3946a861bf30c6d97d119c5ee9d1879629e4fb7ddf748c607c34fbf2059d98 SHA512 19e87981b4ce0b44dbb3c2dda93050a15e9419bcc9eb6392e3853eec0ff4c6567f819f5649e428e59f0984e4a03a2a59ab491f66464e9db19264f1911b249393
DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
DIST ra_ap_limit-0.0.188.crate 1283 BLAKE2B 265a70d088ed76500cdbefa04d1b2778d54985aa978b806e9ebb016348556559799b8ac889c00aeff51d4ff08f3fa86cd3be3742f5896916edbbda49bca1946e SHA512 01d56844fb4437959e93fc3394d674848eaae3365d271c01ba5ff12fc05d4a1d11eb4145ee89a65eb5ba12db4075e8102ee31df55c569c8ee5ad6d383f9f451a
DIST ra_ap_stdx-0.0.188.crate 16911 BLAKE2B 28e11f1a24412ebc7436bd938efb2f9491e5843e13ebacbdee3bc9451274bd29175855e56d41fc4d4b4c1a7868ab59521c41f718f141f7bc6366678662f010e1 SHA512 c8c2582c69668edee1756fec64197a3d4ff70cb3670b8db590b08050e7042ae6f89a0e1d78fc23fbd1b0338173c87cc9c27b5fd15272f6c17b7393c3b77c5d32
diff --git a/dev-python/qiskit/qiskit-1.2.3.ebuild b/dev-python/qiskit/qiskit-1.2.3.ebuild
new file mode 100644
index 000000000000..377e96825a7f
--- /dev/null
+++ b/dev-python/qiskit/qiskit-1.2.3.ebuild
@@ -0,0 +1,312 @@
+# Copyright 2022-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_{9,10,11,12,13} )
+
+CRATES="
+ ahash@0.7.8
+ ahash@0.8.11
+ allocator-api2@0.2.18
+ always-assert@0.1.3
+ approx@0.5.1
+ ariadne@0.3.0
+ autocfg@1.3.0
+ bitflags@1.3.2
+ bitflags@2.6.0
+ block-buffer@0.10.4
+ boolenum@0.1.0
+ bytemuck@1.16.3
+ bytemuck_derive@1.7.0
+ byteorder@1.5.0
+ cfg-if@1.0.0
+ coe-rs@0.1.2
+ concolor-query@0.3.3
+ concolor@0.1.1
+ countme@3.0.1
+ cov-mark@2.0.0
+ cpufeatures@0.2.12
+ crossbeam-channel@0.5.13
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.20
+ crunchy@0.2.2
+ crypto-common@0.1.6
+ dbgf@0.1.2
+ digest@0.10.7
+ drop_bomb@0.1.5
+ dyn-stack@0.10.0
+ either@1.13.0
+ enum-as-inner@0.6.0
+ equator-macro@0.2.1
+ equator@0.2.2
+ equivalent@1.0.1
+ faer-entity@0.19.0
+ faer-ext@0.2.0
+ faer@0.19.1
+ fixedbitset@0.4.2
+ gemm-c32@0.18.0
+ gemm-c64@0.18.0
+ gemm-common@0.18.0
+ gemm-f16@0.18.0
+ gemm-f32@0.18.0
+ gemm-f64@0.18.0
+ gemm@0.18.0
+ generic-array@0.14.7
+ getrandom@0.2.15
+ half@2.4.1
+ hashbrown@0.12.3
+ hashbrown@0.14.5
+ heck@0.4.1
+ hermit-abi@0.3.9
+ indexmap@2.2.6
+ indoc@2.0.5
+ is-terminal@0.4.12
+ itertools@0.10.5
+ itertools@0.11.0
+ itertools@0.13.0
+ jod-thread@0.1.2
+ libc@0.2.155
+ libm@0.2.8
+ lock_api@0.4.12
+ log@0.4.22
+ matrixcompare-core@0.1.0
+ matrixcompare@0.3.0
+ matrixmultiply@0.3.9
+ memchr@2.7.4
+ memoffset@0.9.1
+ miow@0.5.0
+ nano-gemm-c32@0.1.0
+ nano-gemm-c64@0.1.0
+ nano-gemm-codegen@0.1.0
+ nano-gemm-core@0.1.0
+ nano-gemm-f32@0.1.0
+ nano-gemm-f64@0.1.0
+ nano-gemm@0.1.2
+ ndarray@0.15.6
+ npyz@0.8.3
+ num-bigint@0.4.6
+ num-complex@0.4.6
+ num-integer@0.1.46
+ num-traits@0.2.19
+ numpy@0.21.0
+ once_cell@1.19.0
+ oq3_lexer@0.6.0
+ oq3_parser@0.6.0
+ oq3_semantics@0.6.0
+ oq3_source_file@0.6.0
+ oq3_syntax@0.6.0
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ paste@1.0.15
+ pest@2.7.11
+ pest_derive@2.7.11
+ pest_generator@2.7.11
+ pest_meta@2.7.11
+ petgraph@0.6.5
+ portable-atomic@1.7.0
+ ppv-lite86@0.2.19
+ priority-queue@2.0.3
+ proc-macro-error-attr@1.0.4
+ proc-macro-error@1.0.4
+ proc-macro2@1.0.86
+ pulp-macro@0.1.1
+ pulp@0.18.21
+ py_literal@0.4.0
+ pyo3-build-config@0.21.2
+ pyo3-ffi@0.21.2
+ pyo3-macros-backend@0.21.2
+ pyo3-macros@0.21.2
+ pyo3@0.21.2
+ quote@1.0.36
+ ra_ap_limit@0.0.188
+ ra_ap_stdx@0.0.188
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rand_distr@0.4.3
+ rand_pcg@0.3.1
+ raw-cpuid@10.7.0
+ rawpointer@0.2.1
+ rayon-cond@0.3.0
+ rayon-core@1.12.1
+ rayon@1.10.0
+ reborrow@0.5.5
+ redox_syscall@0.5.3
+ rowan@0.15.15
+ rustc-hash@1.1.0
+ rustversion@1.0.17
+ rustworkx-core@0.15.1
+ same-file@1.0.6
+ scopeguard@1.2.0
+ seq-macro@0.3.5
+ serde@1.0.204
+ serde_derive@1.0.204
+ sha2@0.10.8
+ smallvec@1.13.2
+ smol_str@0.2.2
+ syn@1.0.109
+ syn@2.0.72
+ sysctl@0.5.5
+ target-lexicon@0.12.16
+ text-size@1.1.1
+ thiserror-impl@1.0.63
+ thiserror@1.0.63
+ triomphe@0.1.11
+ typenum@1.17.0
+ ucd-trie@0.1.6
+ unicode-ident@1.0.12
+ unicode-properties@0.1.1
+ unicode-width@0.1.13
+ unicode-xid@0.2.4
+ unindent@0.2.3
+ version_check@0.9.5
+ walkdir@2.5.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.8
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.42.0
+ windows-sys@0.45.0
+ windows-sys@0.52.0
+ windows-targets@0.42.2
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.52.6
+ xshell-macros@0.2.6
+ xshell@0.2.6
+ yansi@0.5.1
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+"
+
+inherit cargo distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="An open-source SDK for working with quantum computers"
+HOMEPAGE="
+ https://github.com/Qiskit/qiskit/
+ https://pypi.org/project/qiskit/
+"
+SRC_URI="
+ https://github.com/Qiskit/qiskit/archive/${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 MIT
+ Unicode-DFS-2016
+ || ( LGPL-3+ MPL-2.0 )
+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+visualization"
+
+RDEPEND="
+ >=dev-python/dill-0.3[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.17[${PYTHON_USEDEP}]
+ >=dev-python/python-constraint-1.4[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.0[${PYTHON_USEDEP}]
+ >=dev-python/rustworkx-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.5[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/symengine-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.3[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.10)
+ visualization? (
+ >=dev-python/matplotlib-3.3[${PYTHON_USEDEP}]
+ dev-python/pydot[${PYTHON_USEDEP}]
+ >=dev-python/pillow-4.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pylatexenc-1.4[${PYTHON_USEDEP}]
+ >=dev-python/seaborn-0.9.0[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ >=dev-python/cython-0.27.1[${PYTHON_USEDEP}]
+ test? (
+ app-text/poppler[png]
+ >=dev-python/ddt-1.4.4[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-4.24.3[${PYTHON_USEDEP}]
+ >=dev-python/networkx-2.2[${PYTHON_USEDEP}]
+ >=dev-python/qiskit-aer-0.14[${PYTHON_USEDEP}]
+ >=dev-python/scikit-learn-0.20.0[${PYTHON_USEDEP}]
+ )
+"
+
+# Files built without CFLAGS/LDFLAGS, acceptable for rust
+QA_FLAGS_IGNORED="
+ usr/lib.*/py.*/site-packages/qiskit/_accelerate.*.so
+ usr/lib.*/py.*/site-packages/qiskit/_qasm2.*.so
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip forcing -Werror from tests that also leaks to other packages
+ sed -i -e '/filterwarnings.*error/d' test/utils/base.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/python/circuit/test_equivalence.py::TestEquivalenceLibraryVisualization::test_equivalence_draw
+ test/python/quantum_info/operators/symplectic/test_sparse_pauli_op.py::TestSparsePauliOpConversions::test_to_matrix_zero
+ test/python/transpiler/test_unitary_synthesis_plugin.py::TestUnitarySynthesisPlugin
+ test/python/visualization/test_dag_drawer.py::TestDagDrawer::test_dag_drawer_no_register
+ test/python/circuit/test_scheduled_circuit.py::TestScheduledCircuit::test_fail_to_assemble_circuits_with_unbounded_parameters
+ test/python/circuit/test_scheduled_circuit.py::TestScheduledCircuit::test_schedule_circuit_in_sec_when_no_one_tells_dt
+ test/python/compiler/test_assembler.py::TestCircuitAssembler::test_circuit_with_global_phase
+ test/python/compiler/test_assembler.py::TestPulseAssembler::test_assemble_user_rep_time_delay
+ # tiny image differences, sigh
+ test/python/visualization/test_gate_map.py::TestGateMap::test_plot_error_map_over_100_qubit
+ )
+
+ local EPYTEST_IGNORE=(
+ # Breaks xdist
+ test/python/qasm2/test_parse_errors.py
+ test/python/transpiler/test_preset_passmanagers.py
+ )
+
+ case ${EPYTHON} in
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # docstring mismatches
+ test/python/utils/test_deprecation.py::AddDeprecationDocstringTest::test_add_deprecation_docstring_meta_lines
+ test/python/utils/test_deprecation.py::AddDeprecationDocstringTest::test_add_deprecation_docstring_multiple_entries
+ test/python/utils/test_deprecation.py::AddDeprecationDocstringTest::test_add_deprecation_docstring_no_meta_lines
+ )
+ ;;
+ esac
+
+ rm -rf qiskit || die
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # Run the Python test suite rather than everything under test/ which
+ # includes the 'randomized' suite. Upstream run that in a separate CI job.
+ epytest test/python
+}
diff --git a/dev-python/simsimd/Manifest b/dev-python/simsimd/Manifest
index 7263a89ed26f..d9511a9547b6 100644
--- a/dev-python/simsimd/Manifest
+++ b/dev-python/simsimd/Manifest
@@ -1,3 +1,4 @@
DIST SimSIMD-5.3.0.gh.tar.gz 158052 BLAKE2B 31ef8c66812a53ddeac612dc990ae2181a339369522eb459c9e792641aef3484521352c514fa90795608595ce73b3f7bfe160cf86f318d6910e9544b75d94df4 SHA512 2e8e3e3f00897b3866bc9ee649c060ac3c891365a76be22d6f4c2a9e40755f37be93d713598d18019acf0f5129fab6dadfa68b7b1cbef90c77a9cd60ec18ec4d
DIST SimSIMD-5.4.2.gh.tar.gz 161136 BLAKE2B b5ab3d91fe9361a9982064beded37ccfad806eb9df68f1156ed7530cb40622951cf9b457a8cbb46e5fd21844f60877b4dde7e9627384e8ac75fdf1452383b3f2 SHA512 6b293e530a54b7c59a1e49c3e02dd0306affed762e40838bf3a9e51ea1062d9713d89064dc6f9f9e7e17cd13ad01a48f5d4e59f9615a502dcfa1696275972cec
DIST SimSIMD-5.4.3.gh.tar.gz 161217 BLAKE2B 4f3f6d5d1dcdeef24c9bdb96c35fa8260eb1d32a83dc62f83f6b82f7fa38744d3ea6e94b8ca202a54f80cf6a9d40720cf3efcbe528d70f8d3102fee11ff93688 SHA512 49ed2c6e9566088a9c8a7fc6cd5cf72251cf1f7099677451c194f96e4539a919293000a936ee3b8024e994be3028defa9c2496c69d5eaa57457a9ee8541ab847
+DIST SimSIMD-5.4.4.gh.tar.gz 160825 BLAKE2B b5c82ad45cb5400802d264df407584cc971e6617ab2cd77f503671ae57ee0fd0656e4ac9c881bd9d975591127512222e1fe9d67dda55ca557a32cc3559c28ce0 SHA512 abddc3522f28602c0bfbdcdf3f045b3ffbb88cc9182741333df7a7e6d8fcf523dbd876b30381cdc741b712c42665f65796477ec3c458cdd9ef4ac4e4038b9052
diff --git a/dev-python/simsimd/simsimd-5.4.4.ebuild b/dev-python/simsimd/simsimd-5.4.4.ebuild
new file mode 100644
index 000000000000..abb8c49c671f
--- /dev/null
+++ b/dev-python/simsimd/simsimd-5.4.4.ebuild
@@ -0,0 +1,64 @@
+# Copyright 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 toolchain-funcs
+
+MY_P=SimSIMD-${PV}
+DESCRIPTION="Fastest SIMD-Accelerated Vector Similarity Functions for x86 and Arm"
+HOMEPAGE="
+ https://github.com/ashvardanian/SimSIMD/
+ https://pypi.org/project/simsimd/
+"
+# no sdist, as of 4.3.1
+# https://github.com/ashvardanian/SimSIMD/issues/113
+SRC_URI="
+ https://github.com/ashvardanian/SimSIMD/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp"
+
+BDEPEND="
+ test? (
+ dev-python/pytest-repeat[${PYTHON_USEDEP}]
+ dev-python/tabulate[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+ tc-check-openmp
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+ tc-check-openmp
+ fi
+}
+
+src_prepare() {
+ sed -i -e '/-O3/d' setup.py || die
+ if ! use openmp; then
+ sed -i -e '/-fopenmp/d' setup.py || die
+ fi
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p repeat python/test.py
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 694d51ed95be..7395ba45159e 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-25.23.2.tar.gz 19470352 BLAKE2B 6dd198a1de9d5c240cb6040a55f7afa08abd12021c6768242d955ef959db7a04f5de180b675b4f719a00488784e43a49834f9031a7adbfbed1f58cf607e1051a SHA512 b15e08a894458bb8e423f1d6c4c994eda548f8d2248ea4a46873e709bf0ec7830a5bb8fea9d2a7952c6f4522ef1ddff223b8592ee24e00653e52a121bd821d77
DIST sqlglot-25.24.0.tar.gz 19471462 BLAKE2B 3a173667d307830c79a87723697081bf108285ae7c724f8103f373e95efd9c2c68c98603fc8cc92b4a6ef337d741d88ce94daa9ec749cfb820acf0639c932b02 SHA512 dff3253479665a2b887ff5f7514536f8be0f490142c610821145cc5dc80bddcffa3a9daac0e33802b4057d7f1d624bbfb105645f5006458d7e90bc7b72511ec7
DIST sqlglot-25.24.1.tar.gz 19476850 BLAKE2B 69b7f960a06202f4e926eab3bb088fff949a761389d1c43365c3347763bf657ad9f81e6a4767266bc1cb6523dbc9c9acc4395b6e4af60d924dec14534bff7894 SHA512 f5422cd3f01ea77d2c65115a91a2c2e179253cc054a539443122357347d6ecb445f8300bfa8210cea030c9aa6934057966efed9b84499bff1aaef94ee04d40ef
+DIST sqlglot-25.24.2.tar.gz 19479736 BLAKE2B 3f5caa087ddf72090a5aa9a1b8812d05a97dbfacff8b1895580b713dbd6848ba97058a47c0bf28cd216146ec68006b506d68f5084cc0a4ad6b02b8d977d295f9 SHA512 ca053a9db85bf54888f42666c2cd76e5f7de3087534feadf79f18ad9a089a861a98f6bfd3ec84a896d6c08e8ef33ad6aab88d7a331fbdcd60127531b89ca8d24
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-25.24.2.ebuild b/dev-python/sqlglot/sqlglot-25.24.2.ebuild
new file mode 100644
index 000000000000..3bab78f5b721
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-25.24.2.ebuild
@@ -0,0 +1,129 @@
+# 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_{9,10,11,12,13} )
+
+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}]
+ )
+ test? (
+ dev-python/pytz[${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_DESELECT=(
+ # timing, sigh
+ # https://github.com/tobymao/sqlglot/issues/3961
+ tests/test_generator.py::TestGenerator::test_generate_nested_binary
+ )
+ 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/tomli/Manifest b/dev-python/tomli/Manifest
index b87d6410b6b6..10b08e1fbb6d 100644
--- a/dev-python/tomli/Manifest
+++ b/dev-python/tomli/Manifest
@@ -1,2 +1,4 @@
DIST tomli-2.0.1-py3-none-any.whl.zip 12757 BLAKE2B 0a33773bc0409831aec6ee803ef0ef9d6b6b441213d549184068e218b73d6178d617bc2b58d11db98f0e6284baaf81663723fbc6eb89f7466608f0d89aeb1982 SHA512 b6164b03d3db360093f92e644e87a37a0ce20d63d7e9e271fcafd727f4fdb73ad6b301aaf32b3d2839f6eedbc8ea499dafba7335b8fdfc4667e30ed50c9805b4
DIST tomli-2.0.1.gh.tar.gz 133685 BLAKE2B 0d3a1f4ee4e74eeab6a7e7c3d5e866ce1baf9017136cdc8ce1f6275f8d6d151239e5a00b97b6409872fac0e8558a49120adf16f0ae21f9d92ae630dfd39cd6ff SHA512 a467f8d48cdbd7213bd9b6f85fd48ba142ab7c9656c40bb30785e1c4b37a9e29eaed420f183458ad20112baee8413ebbec87755332795c8f02235d1018c3aa5c
+DIST tomli-2.0.2-py3-none-any.whl.zip 13237 BLAKE2B 642af1b59a2b2bceeee2480208f3680ec699bc9b572bde186ff8c845526e41e2ebc145f78ae4094ae3ee084ebfde561ec635358ff3df9c5609101c96d0b54ded SHA512 ad8278fc99a6913ebb70a618a7cad7acca9737e6ec546c932b4d0c1caddc1e70ef832340a33f2db974235459ff627949308d517b3c3a15b6baf8a4f1b3095e49
+DIST tomli-2.0.2.gh.tar.gz 135227 BLAKE2B 1d61fd26793c4f814ed606a60b85edb388bf97d6fd17c830504971be725c84e9e6e67904170cff305fdb7be8196b56d0cc29dd36f8b202798788f4839ba8ddc6 SHA512 3eeea334d6d225590a9e074685c65d052e2f5d5286ca895ff7e9532d7289f0daa31ae67b5076d803e5adad4f20a9831058a0c4599715f049079904934d3d9c25
diff --git a/dev-python/tomli/tomli-2.0.2.ebuild b/dev-python/tomli/tomli-2.0.2.ebuild
new file mode 100644
index 000000000000..45b763292a93
--- /dev/null
+++ b/dev-python/tomli/tomli-2.0.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=no
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A lil' TOML parser"
+HOMEPAGE="
+ https://pypi.org/project/tomli/
+ https://github.com/hukkin/tomli/
+"
+SRC_URI="
+ https://github.com/hukkin/tomli/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ $(pypi_wheel_url --unpack)
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ app-arch/unzip
+"
+
+distutils_enable_tests unittest
+
+python_compile() {
+ python_domodule src/tomli "${WORKDIR}"/*.dist-info
+}
+
+python_install() {
+ distutils-r1_python_install
+ python_optimize
+}