summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-11-14 06:38:43 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-11-14 06:38:43 +0000
commit8c9139c9de4e595fc53890c6126dac67eaf609d5 (patch)
treeacd20b96294238c70cf53718ee8c9e80909c351d /dev-python
parent1682ca532595c03dcbd39af633387746cc9d43f3 (diff)
downloadbaldeagleos-repo-8c9139c9de4e595fc53890c6126dac67eaf609d5.tar.gz
baldeagleos-repo-8c9139c9de4e595fc53890c6126dac67eaf609d5.tar.xz
baldeagleos-repo-8c9139c9de4e595fc53890c6126dac67eaf609d5.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aioresponses/Manifest1
-rw-r--r--dev-python/aioresponses/aioresponses-0.7.5.ebuild38
-rw-r--r--dev-python/apsw/Manifest1
-rw-r--r--dev-python/apsw/apsw-3.44.0.0.ebuild51
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.28.85.ebuild67
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.31.85.ebuild68
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-0.83.2.ebuild70
-rw-r--r--dev-python/cloudpickle/cloudpickle-3.0.0.ebuild2
-rw-r--r--dev-python/elasticsearch/Manifest1
-rw-r--r--dev-python/elasticsearch/elasticsearch-8.11.0.ebuild71
-rw-r--r--dev-python/griffe/Manifest1
-rw-r--r--dev-python/griffe/griffe-0.38.0.ebuild45
-rw-r--r--dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.8.3.ebuild2
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.88.4.ebuild90
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.10.0-r1.ebuild75
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.10.0.ebuild74
-rw-r--r--dev-python/kombu/Manifest1
-rw-r--r--dev-python/kombu/kombu-5.3.3.ebuild83
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/numpy/Manifest1
-rw-r--r--dev-python/numpy/numpy-1.26.2.ebuild169
-rw-r--r--dev-python/pikepdf/Manifest2
-rw-r--r--dev-python/pikepdf/pikepdf-8.7.0.ebuild62
-rw-r--r--dev-python/pikepdf/pikepdf-8.7.1.ebuild62
-rw-r--r--dev-python/pydantic/Manifest1
-rw-r--r--dev-python/pydantic/pydantic-2.5.0.ebuild55
-rw-r--r--dev-python/pytest-httpx/Manifest1
-rw-r--r--dev-python/pytest-httpx/pytest-httpx-0.27.0.ebuild32
-rw-r--r--dev-python/pytest-testinfra/Manifest1
-rw-r--r--dev-python/pytest-testinfra/pytest-testinfra-10.0.0.ebuild57
-rw-r--r--dev-python/sentry-sdk/Manifest1
-rw-r--r--dev-python/sentry-sdk/sentry-sdk-1.35.0.ebuild128
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-19.4.0.ebuild36
-rw-r--r--dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch252
-rw-r--r--dev-python/time-machine/time-machine-2.13.0.ebuild2
-rw-r--r--dev-python/trove-classifiers/Manifest1
-rw-r--r--dev-python/trove-classifiers/trove-classifiers-2023.11.13.ebuild31
-rw-r--r--dev-python/urllib3/Manifest1
-rw-r--r--dev-python/urllib3/urllib3-2.1.0.ebuild87
-rw-r--r--dev-python/wcwidth/Manifest1
-rw-r--r--dev-python/wcwidth/wcwidth-0.2.10.ebuild37
-rw-r--r--dev-python/zeroconf/Manifest1
-rw-r--r--dev-python/zeroconf/zeroconf-0.126.0.ebuild56
50 files changed, 1824 insertions, 12 deletions
diff --git a/dev-python/aioresponses/Manifest b/dev-python/aioresponses/Manifest
index e7ce7ecf310f..f2ca88e292df 100644
--- a/dev-python/aioresponses/Manifest
+++ b/dev-python/aioresponses/Manifest
@@ -1 +1,2 @@
DIST aioresponses-0.7.4.tar.gz 35248 BLAKE2B e3046de1db4911429ff2bb50b011c7cdb33ad8460771bbe7cce969e29a74f29e5fe86b1ed488cbd9462706ce31e84a3bef08aec0e83ac6175c803d2e81900fbc SHA512 00392f8481e600e2c18563193aaf5b75a324ea49e90606e43a28ea787f75c55712bc2caff0a70411f51a9615b01a252fca1ebb9efd2cc314f6358eeeef6d1e59
+DIST aioresponses-0.7.5.tar.gz 35676 BLAKE2B 4d42137f67e27b0a91d3452630a7353db453c970a5689ab5f98aecfdf0877217b174d807f260c3d9736ceaadbab5fe84b7a025fc6233410029aeb5e5785925a1 SHA512 bae24aced48702f7971ba2ebb9268bbabf820270f321a87e840aa33421bdcf339d3c5375cc6df587889462f5d77276f8b1fd8e1f97da7f5d215247c0a58c85bb
diff --git a/dev-python/aioresponses/aioresponses-0.7.5.ebuild b/dev-python/aioresponses/aioresponses-0.7.5.ebuild
new file mode 100644
index 000000000000..f5352053c644
--- /dev/null
+++ b/dev-python/aioresponses/aioresponses-0.7.5.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Helper to mock/fake web requests in Python's aiohttp package"
+HOMEPAGE="
+ https://github.com/pnuckowski/aioresponses/
+ https://pypi.org/project/aioresponses/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aiohttp-3.3.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ddt[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # These tests require Internet access
+ tests/test_aioresponses.py::AIOResponsesTestCase::test_address_as_instance_of_url_combined_with_pass_through
+ tests/test_aioresponses.py::AIOResponsesTestCase::test_pass_through_with_origin_params
+)
diff --git a/dev-python/apsw/Manifest b/dev-python/apsw/Manifest
index 3dcd42f6e307..fa0c99d07f33 100644
--- a/dev-python/apsw/Manifest
+++ b/dev-python/apsw/Manifest
@@ -3,3 +3,4 @@ DIST apsw-3.43.0.0.gh.tar.gz 887997 BLAKE2B ce74eaed990cdf4742ce39743abf0dc112ee
DIST apsw-3.43.1.0.gh.tar.gz 901289 BLAKE2B 3f463896ce587326421ae78a26b5cccbc5c43a2c54b9502c166f599705fc9afe867c3be5f2ea4de8bc4d2da2f3bf09e034a27744d2114a5bc9b5c622bd852543 SHA512 a3343af87638f04786086c282cf50bfce3074e2a3165ebf172740be13021138a83356e594969791029879dfef12149775b48e0912eb14817358434b3b72ada67
DIST apsw-3.43.1.1.gh.tar.gz 901590 BLAKE2B 0fb1942aebf60443c12901e1b21bb7b9fce1e90d406bca80580563cee2d8aaf45b9c2294317cf374484fccd8b595439e13df01b14512514f78ec60ae1e905990 SHA512 3121e594a9d4c358ecb2f90becadc06fe987a3e7d6897fd655d5ae9aff6c8d1521257c2a34a68a8e6114cf7a71479544433e599522bee93e3fb729ee9763a112
DIST apsw-3.43.2.0.gh.tar.gz 908230 BLAKE2B e583cbb5c636b9d38762668d8cc664c7342e50a4330d3714a93679043e322ea03cf7c9bf09396ea5025e74ab66747fc509790e4f17fd722a654d6f8d1774949d SHA512 760ebef288bec4e08a06fc8e1e720e9c51ada19196efb7491988c7cab31dc54f9082c5cc668acf04d28818dbcd41a8a45df66c1fd78d2716862ec9a2faa022ed
+DIST apsw-3.44.0.0.gh.tar.gz 899926 BLAKE2B ce162d757fbf5510355419dd279ea33235e8cdbd7a8b03f0288f730b66cad9d6aa09c91a3fe97f930422a1b8158c9b22d9ae8d5ee03dec657319a3bf6f24a04f SHA512 4cc4cacdbc03e522d149507bb875ae880bcd5b0130bb3babda7d873c52b3db362c8347ce6af412dc3a73b1fb8362d1c1fe9a51b2343b0c52ff1812582d91c564
diff --git a/dev-python/apsw/apsw-3.44.0.0.ebuild b/dev-python/apsw/apsw-3.44.0.0.ebuild
new file mode 100644
index 000000000000..ba100e11e586
--- /dev/null
+++ b/dev-python/apsw/apsw-3.44.0.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="APSW - Another Python SQLite Wrapper"
+HOMEPAGE="
+ https://github.com/rogerbinns/apsw/
+ https://pypi.org/project/apsw/
+"
+SRC_URI="
+ https://github.com/rogerbinns/apsw/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
+IUSE="doc"
+
+DEPEND="
+ >=dev-db/sqlite-${PV%.*}:3
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+src_configure() {
+ cat >> setup.cfg <<-EOF || die
+ [build_ext]
+ enable=load_extension
+ use_system_sqlite_config=True
+ EOF
+}
+
+python_test() {
+ esetup.py build_test_extension
+ cd "${T}" || die
+ "${EPYTHON}" -m apsw.tests -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 66147a00e5b0..7ceb4ee77ad7 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -7,3 +7,4 @@ DIST boto3-1.28.80.gh.tar.gz 725109 BLAKE2B ba34c01f64817f437a2cf85f3de3672c01ed
DIST boto3-1.28.82.gh.tar.gz 726369 BLAKE2B 757445a7af86182d6bd3143bbf576e24a1a4608929bafb641ed678d444364d2948d07ebc0ef434a53a0349a8a286dc818d757ee3c59545f8550ff39dcd745147 SHA512 ccfd72a6988565c884232a64ee33e01cf54a03e8f0f77990cc5bf633e60b92cad7562d1603726488e723813671e8931b1386ef06069074fea0611728aea06f96
DIST boto3-1.28.83.gh.tar.gz 727298 BLAKE2B 3a3130cad3db6a3ec02bdf35b33c8983f385bdd835d34eaf2fb5aca3b6d31dc6324e41faf81aba4c475464c4dcffc1ad2f5b5859587e294b4f222efcb3f68c24 SHA512 98521afdc3b9a8f6b742f3c84591aeae0efef50b80f4577594ff78d270db28a610ee5db3f9c5da056ac291decec7746a12af592d44208e9b899ad94c74f765de
DIST boto3-1.28.84.gh.tar.gz 728124 BLAKE2B 2fcc553a4a109b0bc92cdf0b08fe77fcef54792ee606b6b9ed7cde1ae92accabb9f9ce005d9ccd391601efac31eec407345471542c5b7298689ab1037ed8f41f SHA512 1b7f1fe951a9f3655a71bd51e9328f4474f9b320df82914b9ad0d64a32043aacf16fc5df1989304fd4d35430ddf6f58d0676fdb3985944d955c169a0ec58ce7b
+DIST boto3-1.28.85.gh.tar.gz 728751 BLAKE2B bfbc9b26b45e034949f13492987fdd43476d428d84da8b15e1ac67647acb410823bcc5e8710126a062a40779357ea49b5b4e1038831d38239515a793c6601dd4 SHA512 96165e6e5bd5673a364be445ab21916115e4f58c9e499f58bf0098d37fb7ba6ef28d5a6046f452e26618a305eb9713f5b5e5f10fd0c22868c499a9870fea4bef
diff --git a/dev-python/boto3/boto3-1.28.85.ebuild b/dev-python/boto3/boto3-1.28.85.ebuild
new file mode 100644
index 000000000000..09d8c6679458
--- /dev/null
+++ b/dev-python/boto3/boto3-1.28.85.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/boto3"
+ inherit git-r3
+ BOTOCORE_PV=${PV}
+else
+ SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+ # botocore is x.(y+3).z
+ BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.7.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 6173784f55be..c72d08f93c77 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -7,3 +7,4 @@ DIST botocore-1.31.80.gh.tar.gz 12043936 BLAKE2B 447c88e82f9e73fd683045c0e05e1f2
DIST botocore-1.31.82.gh.tar.gz 12051646 BLAKE2B e474bab929f7b16b37f71e261230014585c10cf30d36f2b241e6aae4845356e373db811de9158e1e074568e02d481bb83bf7f5aaaeece4bd196d49443574b3f1 SHA512 ecfa4dc060ee961def1cec0ab55739673fa04fda0a3154ea609526928eb16811a7cbc8d3d15b33aaa8c1a1606943f07935d9df06619517117e9392cbac6eeaf8
DIST botocore-1.31.83.gh.tar.gz 12061713 BLAKE2B c5abfed142c9dbf8f717c392d0405b202e8d1935ad98dfdd6fe452b564904ca1c61a3481814b0db87ab0e2a129f6fde8299655a02a1f2c5c23aa25d4f352892b SHA512 88cd3fe95cdbacc65e51abaaf08bef460e8b981d9cd1a74c52d6ff46fe297874466212ec35af54b4c57d45c43f22d9d0873dd2ee470c4a6f6c1d02ea0032ff4d
DIST botocore-1.31.84.gh.tar.gz 12065719 BLAKE2B 2098241de47aa1f59c45287c2be66fa3562c2e549da081b1cd86626f1df5f3f175eebea1197396f39045aaebda241d37b1d47ebb378a0fb17e43c16215f89680 SHA512 097a25b4450513cf9c2722d7582cdfb969da8c083c05603f6a28eb65d1d69920106c745cb4f5e5b3bee1989eee64c89fe69c379f01df938edf2a92946c614cdf
+DIST botocore-1.31.85.gh.tar.gz 12070341 BLAKE2B b4867e351d209511db263654873f5a804f941c44d10af563eec656b041830c8543f2ec1f8d831a0aec2cce4d9b7dfc80bd3e73fd5fc456cf5e3ca00ab193b11d SHA512 0e26b6ad06e1075ec90f04d653873592fcc2ae4bdbec5bbbe4b38e368824bf000724551ac2598938b827ce81e3b327ffa9d5d23da0ccb915686a70e0f37ba161
diff --git a/dev-python/botocore/botocore-1.31.85.ebuild b/dev-python/botocore/botocore-1.31.85.ebuild
new file mode 100644
index 000000000000..9a0240c45f2a
--- /dev/null
+++ b/dev-python/botocore/botocore-1.31.85.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/botocore"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x EPYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index f0e942de9dcc..add956e906cf 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,2 +1,3 @@
DIST cfn-lint-0.82.2.tar.gz 3714901 BLAKE2B 76077d606ac645953f71fadf5b096e3a8e4a6e7c71b25af9647e0c155f40790ded2d96af93b959c00641475481758abc7af215cfe1004aeb05c90f3e85210bde SHA512 91f93ffcf39883dfe8bb8e15298bf9bfec4c952762b9fec162107ecf70f5a11c44baa1ea3121db9f710375b3ab5afe11dca7142251ba070835c80accf0e41d9d
DIST cfn-lint-0.83.1.tar.gz 3656263 BLAKE2B 337352a7ba725267974ec41a5d7b6088fbf817e019429baca48feb7f19c0a5963d23df396b3c018194642068a569c995a7ae63a77ba17b66685a02b59eba1fcd SHA512 a97968a46180550f71ffca7bfb22b4e2a90eba186dd2f426ba7b3812cb457ad8bfbdc359182fd6d93b27b2937c15567c90e47d06285898bbc63baea50b4d293f
+DIST cfn-lint-0.83.2.tar.gz 3676910 BLAKE2B 058a2590c5c7bffa5144e6ce0c2dd1fbc63c999253d249e5425d0b87b12baf77dd94e1f11387516b01ffbbcffafe9a08f1d43e5025168c1c9c5bef726eafbd10 SHA512 dd20dabfb2a1132085570a0cbdad5899953d0780d569eda0f403ded0dead919de3125094f7bfc36d2b4fc69826767ebca67a8393a4e21d2a3e33313766b2b697
diff --git a/dev-python/cfn-lint/cfn-lint-0.83.2.ebuild b/dev-python/cfn-lint/cfn-lint-0.83.2.ebuild
new file mode 100644
index 000000000000..b5c2d87b1c4d
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-0.83.2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2023 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 multiprocessing pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.79.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.15.0[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+ # TODO: it looks as if AWS_DEFAULT_REGION didn't work
+ test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
+ test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_template_config
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}
diff --git a/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild b/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild
index 3a6f8ea82ee2..2197808701d4 100644
--- a/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild
+++ b/dev-python/cloudpickle/cloudpickle-3.0.0.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
inherit distutils-r1
diff --git a/dev-python/elasticsearch/Manifest b/dev-python/elasticsearch/Manifest
index 152d85e65714..7ad2255bc415 100644
--- a/dev-python/elasticsearch/Manifest
+++ b/dev-python/elasticsearch/Manifest
@@ -1,2 +1,3 @@
DIST elasticsearch-py-8.10.0.gh.tar.gz 896444 BLAKE2B 7cadd9d23e31b42ba309345f228193a856ceac0c6b64786ae84668ff361f750d0413609b753b6faa113835eddb6b212b79bee0ee6e25025f2829b92b9109701d SHA512 2e72b726447f4fe139a7b1bb1a95e0eca613f53bb0c6d758b646203676835b56fedff418feca386d1300f8eb6ac2f14a5a99d7d7716bad286641ab43c9abcbc4
DIST elasticsearch-py-8.10.1.gh.tar.gz 889458 BLAKE2B 4e47a76743c48e8c9e34a8169d99d85139f3c395c643080a039dfe5e64fa0059f485c155a56ebb4769f9632c2dd0db3f7583f3db0a62d7180967f0515caf4092 SHA512 9e212584b86959330c65e1cb00b0eec4afc4a8daed59c7e6a2b918dbfb4c872e025b5ef65c299da5ca74afb53ca9c1a4d628f6fce96c7140b85aff83c6a09ecf
+DIST elasticsearch-py-8.11.0.gh.tar.gz 897889 BLAKE2B de1821f17c16198c8b85b863e06468715fb080b4e9354499bd4fc5c485dc81bb3747ee73bd5e26edcab71922d67699cbaba79b35a900b80020532bac805e5727 SHA512 914e909f5f2d6ee980d3cff981d1d605d9380211014381e9e998af46d52e0fc0568524c7c9e8d8fed710b855acdb15b1eeb0bcdb59607b67f2f8f99546a1bda8
diff --git a/dev-python/elasticsearch/elasticsearch-8.11.0.ebuild b/dev-python/elasticsearch/elasticsearch-8.11.0.ebuild
new file mode 100644
index 000000000000..51db75a5648c
--- /dev/null
+++ b/dev-python/elasticsearch/elasticsearch-8.11.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+MY_P="elasticsearch-py-${PV}"
+DESCRIPTION="Official Elasticsearch client library for Python"
+HOMEPAGE="
+ https://ela.st/es-python
+ https://github.com/elastic/elasticsearch-py/
+ https://pypi.org/project/elasticsearch/
+"
+SRC_URI="
+ https://github.com/elastic/elasticsearch-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/aiohttp-4[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-3[${PYTHON_USEDEP}]
+ <dev-python/elastic-transport-9[${PYTHON_USEDEP}]
+ >=dev-python/elastic-transport-8[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/mapbox-vector-tile[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ dev-python/unasync[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # REST api tests are a black hole for effort. It downloads the tests
+ # so its an ever moving target. It also requires effort to blacklist
+ # tests for apis which are license restricted.
+ "test_elasticsearch/test_server/test_rest_api_spec.py"
+ # Counting deprecation warnings from python is bound to fail even
+ # if all are fixed in this package. Not worth it.
+ "test_elasticsearch/test_client/test_deprecated_options.py"
+ # Running daemon for tests is finicky and upstream CI fails at it
+ # as well.
+ "test_elasticsearch/test_server/"
+ "test_elasticsearch/test_async/test_server/"
+)
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p asyncio
+}
diff --git a/dev-python/griffe/Manifest b/dev-python/griffe/Manifest
index 292daee99285..6e6f1116d680 100644
--- a/dev-python/griffe/Manifest
+++ b/dev-python/griffe/Manifest
@@ -1,2 +1,3 @@
DIST griffe-0.36.9.gh.tar.gz 197054 BLAKE2B 0351e72bf119bd98c392c56f254bf632552077d340c0c27b51780934c8baff1e6d33712f65bf31fefd2a8864d110790a78de3d77e2f5cf19429c9b68a5a01b9c SHA512 1b4cdfcfe6c1946183d3445e16b6f689cecec259842c97793af7fb60be3b885da82fddcfba74bed3ba82a8f475fb0321c2ebb03fe02feca80888c244cc4493df
DIST griffe-0.37.0.gh.tar.gz 200702 BLAKE2B 763c30608c7b7ba9cb514f99d19c3fff17811c71325416e9c810b45f4d61778c3d7630789635d6373694b5930532f297edc4f1f8109cc2b6f3273825e7a9be13 SHA512 c042d5fa7b1ecc474137006d54f7b0d68e84abe9db853083e2af9c2e144e1d9216e02ada31cfe8de8d278e892b100cf9e060609acb441c6b25c28a53400b9e2d
+DIST griffe-0.38.0.gh.tar.gz 200933 BLAKE2B f7c6ac0761cbb0ed71009e67311022725c3f9417065216abb1a7b49faf4b4fbe89ce70e46ed0261cf0209d48e135b571ecd1462fca747386b52b382784231a3a SHA512 cef4fb0b575e5a9343ce8090112e83be3d7127b8d5320b99a33b42aec8b38c2bf450ccadbeb23c5c371d528096ee02652d4e7c4d3ed458817794c32d6740aa91
diff --git a/dev-python/griffe/griffe-0.38.0.ebuild b/dev-python/griffe/griffe-0.38.0.ebuild
new file mode 100644
index 000000000000..75ad175b0c49
--- /dev/null
+++ b/dev-python/griffe/griffe-0.38.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Signature generator for Python programs"
+HOMEPAGE="
+ https://mkdocstrings.github.io/griffe/
+ https://github.com/mkdocstrings/griffe/
+ https://pypi.org/project/griffe/
+"
+# Tests need files absent from the PyPI tarballs
+SRC_URI="
+ https://github.com/mkdocstrings/griffe/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+
+RDEPEND="
+ >=dev-python/colorama-0.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/jsonschema-4.17[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-2.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+export PDM_BUILD_SCM_VERSION=${PV}
+
+EPYTEST_DESELECT=(
+ # fragile to installed packages
+ # (failed on PySide2 for me)
+ tests/test_stdlib.py::test_fuzzing_on_stdlib
+)
diff --git a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.8.3.ebuild b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.8.3.ebuild
index e89a623c2663..69efaf212a98 100644
--- a/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.8.3.ebuild
+++ b/dev-python/hatch-jupyter-builder/hatch-jupyter-builder-0.8.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/hatchling[${PYTHON_USEDEP}]
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 72e09b4bbf89..8ff376334122 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,2 +1,3 @@
DIST hypothesis-6.88.1.gh.tar.gz 9391389 BLAKE2B 0d258ff3e662bdef1c8321119c49ae4a8f1191edb316ab6262023c7da667f553b94386c28fcc40bfe06d545ae33a28b907750d4caaee8be7614a1ad578370f25 SHA512 e9376aaacd5cf405f0a28b9a9e63fc1d83506ad286579e1ae2165006cd87af1aefac68e34dd5164159f86bffa3f1da29ce86fc3254dcb11183d653b71377c41d
DIST hypothesis-6.88.3.gh.tar.gz 9391730 BLAKE2B 439b5d4aca9f8163bebb7b0ba632fc1d7eb49a61e656c3849287b700bb92c5aea02a30d816029152243c03050e67351a8a6c4dd87ed6eaadd5a81f5a72c8c139 SHA512 780a83928ffdc976c581df43874a1d1e4ec82d9c27f6bc151e5a4103dd9e4d18de0609af8964136cc041ebec258b1fd2c6438b66636e9cd8e7f81a88381bf5ce
+DIST hypothesis-6.88.4.gh.tar.gz 9392092 BLAKE2B d33e764fc02111f37efa678927d48f1de7097156c401ab85c7a3fc16f22ff3582bfaec8fef60e010d9a9953bcdbbd8f212b5a7765a7967b93d6dd4bb1d6e5915 SHA512 420dd525abb56dad8983b16767cb4d7f4b411ee68439e2317d7be5582fcf9a8735929b4746bbfc37b286d389dcd36c38da797466bd6c4c555d108a56b30511ad
diff --git a/dev-python/hypothesis/hypothesis-6.88.4.ebuild b/dev-python/hypothesis/hypothesis-6.88.4.ebuild
new file mode 100644
index 000000000000..f0d092b67f0b
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.88.4.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 multiprocessing optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ !!<dev-python/requests-toolbelt-0.10.1
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,pytest_forked,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -n "$(makeopts_jobs)" --dist=worksteal \
+ tests/cover tests/pytest tests/quality
+}
+
+python_install() {
+ distutils-r1_python_install
+ if ! use cli || ! has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ rm -r "${ED}/usr/bin" "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index 86eb3ef0b175..b89a5f18a0ba 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1,3 +1,4 @@
+DIST jupyter_server-2.10.0.tar.gz 709151 BLAKE2B 6b5c41d00efbe06e47f1ee9146cfd5670774be84982fc24ed7c27bc420c9a9667ff193d272670fdd7d0a0b2dc1414fa271c0b08e2eeddd3dc08dc901e93594aa SHA512 8238dca7314303ffcf8424f9c997d68c06fc4cf05128146ffe0d3ce495b4c2a8cf260858da8ec0ceb138f0b6789f57fc740b0c5a0bdb977c1311460def0fbf8a
DIST jupyter_server-2.7.3.tar.gz 705798 BLAKE2B d5655968f17b2a5536539858769124650f41985d5d99b782e70d99140a7e61820b913b525fc10041a56b6946ec4feb7e05015a10970786d024628e8c840fae94 SHA512 ad9be38208ef4196417561355a62889e34d657f3114b710f13f974f4b453b465b7d473ced46eba873ee980d631d2648e0d4b29267011ed444247a33325f959e9
DIST jupyter_server-2.8.0.tar.gz 708394 BLAKE2B 2beaba510b0e841203c58316db8507c8c503fdeacfbe7de1287d1ecf0740334c02b430ad7111043e21da45669cc1bd13bb313b5cd45f999490fa07c9057b1bea SHA512 e2ec60994737a9979545aaba3de1f846eb68c809cb952bfba6ce22c061f1e644a712f4b7b069ebfc393e8dd7a7bf723b2c3530a7a1b103eb1dbf42a60a59e6e6
DIST jupyter_server-2.9.0.tar.gz 709038 BLAKE2B 68569f323087c55427d2d0b5fe7df55082809a76b25102cf08f62393c1c943bf5527ed461e392f45751f6c4182fd6423056d3719aed6681cd85ca2f4e7fca0b7 SHA512 5d695f72cc02c73345a811739e2a7006313d37b5c05894b5da7792b0174537bfe962456d996605abc4f8ec2a4e1337b1d5817b667b4b5708c599e1a96452d597
diff --git a/dev-python/jupyter-server/jupyter-server-2.10.0-r1.ebuild b/dev-python/jupyter-server/jupyter-server-2.10.0-r1.ebuild
new file mode 100644
index 000000000000..79fd9b3724b5
--- /dev/null
+++ b/dev-python/jupyter-server/jupyter-server-2.10.0-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/jupyter_server/
+ https://pypi.org/project/jupyter-server/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
+ dev-python/argon2-cffi[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
+ dev-python/jupyter-server-terminals[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-events-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
+ dev-python/overrides[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/prometheus-client[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24[${PYTHON_USEDEP}]
+ >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}]
+ dev-python/websocket-client[${PYTHON_USEDEP}]
+
+"
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # This fails if your terminal is zsh (and maybe other non-bash as well?)
+ tests/test_terminal.py
+ # Fails because above is ignored
+ tests/auth/test_authorizer.py
+ # Fails with additional extensions installed
+ tests/extension/test_app.py::test_stop_extension
+ )
+
+ # FIXME: tests seem to be affected by previously installed version
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest \
+ -p pytest_tornasync.plugin \
+ -p jupyter_server.pytest_plugin \
+ -p pytest_console_scripts \
+ -p pytest_timeout
+}
diff --git a/dev-python/jupyter-server/jupyter-server-2.10.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.10.0.ebuild
new file mode 100644
index 000000000000..212d96acc3cb
--- /dev/null
+++ b/dev-python/jupyter-server/jupyter-server-2.10.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/jupyter_server/
+ https://pypi.org/project/jupyter-server/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
+ dev-python/argon2-cffi[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
+ dev-python/jupyter-server-terminals[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-events-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
+ dev-python/overrides[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/prometheus-client[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24[${PYTHON_USEDEP}]
+ >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}]
+ dev-python/websocket-client[${PYTHON_USEDEP}]
+
+"
+BDEPEND="
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # This fails if your terminal is zsh (and maybe other non-bash as well?)
+ tests/test_terminal.py
+ # Fails because above is ignored
+ tests/auth/test_authorizer.py
+ # Fails with additional extensions installed
+ tests/extension/test_app.py::test_stop_extension
+ )
+
+ # FIXME: tests seem to be affected by previously installed version
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest \
+ -p pytest_tornasync.plugin \
+ -p jupyter_server.pytest_plugin \
+ -p pytest_console_scripts \
+ -p pytest_timeout
+}
diff --git a/dev-python/kombu/Manifest b/dev-python/kombu/Manifest
index 24291f2d4cce..b626eb5ba0ab 100644
--- a/dev-python/kombu/Manifest
+++ b/dev-python/kombu/Manifest
@@ -1 +1,2 @@
DIST kombu-5.3.2.tar.gz 431102 BLAKE2B d617868a851382055acb44313f928aa2f1458700c29ee008f6eb7226010537bfbda6b306907e4901db1e51300abee969d574842a65f049f50507376103dbc670 SHA512 2960b3a2c8ef067d2cd82c8930ff00ffa8ce17d40a3b73597d274a289dec4ea24a2f250b19f4f02198be8cb5da067b9b45b7d07f4b15632ef96e9919bab739ea
+DIST kombu-5.3.3.tar.gz 436079 BLAKE2B 4ebc4fa529ff232a871b3c0ec2c200c88186785eb7beaa2abb1ddd87f67b74708b7af10a38babac6bd29c465c5e89ac2ae7325216f1e68e50a02f6636b6d4e47 SHA512 9f34d9f57383b8791cf3c625562c273232d24a32aadb60a8fdac26c0c3afa968eeb1b9523dcb5f498360820828203e570fda4f98940521d753a93691ab16de44
diff --git a/dev-python/kombu/kombu-5.3.3.ebuild b/dev-python/kombu/kombu-5.3.3.ebuild
new file mode 100644
index 000000000000..24d49c42cee2
--- /dev/null
+++ b/dev-python/kombu/kombu-5.3.3.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="
+ https://github.com/celery/kombu/
+ https://pypi.org/project/kombu/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="examples"
+
+RDEPEND="
+ >=dev-python/amqp-5.1.1[${PYTHON_USEDEP}]
+ <dev-python/amqp-6.0.0[${PYTHON_USEDEP}]
+ dev-python/vine[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ app-arch/brotli[python,${PYTHON_USEDEP}]
+ >=dev-python/boto3-1.22.2[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3.0[${PYTHON_USEDEP}]
+ dev-python/pycurl[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-4.1.1[${PYTHON_USEDEP}]
+ dev-python/pytest-freezegun[${PYTHON_USEDEP}]
+ dev-python/zstandard[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.2.2[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs \
+ dev-python/sphinx-celery
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ t/unit/transport/test_redis.py::test_Channel::test_connparams_health_check_interval_supported
+ )
+ local EPYTEST_IGNORE=(
+ # obsolete Pyro4
+ t/unit/transport/test_pyro.py
+ # unpackaged azure
+ t/unit/transport/test_azurestoragequeues.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Amazon SQS backend" "dev-python/boto3 dev-python/pycurl"
+ optfeature "Etcd backend" dev-python/python-etcd
+ optfeature "MongoDB backend" dev-python/pymongo
+ optfeature "Redis backend" dev-python/redis
+ optfeature "sqlalchemy backend" dev-python/sqlalchemy
+ optfeature "yaml backend" dev-python/pyyaml
+ optfeature "MessagePack (de)serializer for Python" dev-python/msgpack
+ optfeature "brotli compression" "app-arch/brotli[python]"
+ optfeature "zstd compression" dev-python/zstandard
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index e9da2ac43cac..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 493 BLAKE2B 0df8bce19bc80f79f8e76bcef5a4c2caf333365fe0cb9a3c076b7858bceded5a3e58921474f866a2709dd657b7ed330c1ec4a7f9d7bab0fcf1bc92d77cabc32d SHA512 ea2a1adcb133ac5fc951ba1aa90ef1ce3dfcc424e59727591763d4875aa044a74188be2d15fd89c6b2e83ed6ea04ec3d9851ed584ae79d2c2c127bde7d994b48
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..736a1167c898 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,12 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
index b5bcb73a461f..434fc9bc0606 100644
--- a/dev-python/numpy/Manifest
+++ b/dev-python/numpy/Manifest
@@ -1 +1,2 @@
DIST numpy-1.26.1.tar.gz 15651806 BLAKE2B 2b7fe13675b6f11b8f19c2dc671c84418fa959f403ff32c15ae6da37ae8137d062bb47db0180031c90f54451d69d640ec4ebfad0a4eefb32afc55df45c6824ab SHA512 abe5919029fc66961e8f44fdd503b54c291ce75b0d95e3f8bb61ee39a25d62142fbece5734fd7e9cbf65511f9d746fa61796f0d68e6dc2816c0e7747e286e505
+DIST numpy-1.26.2.tar.gz 15664248 BLAKE2B 006e511e27c009f27bf4bf6c8c30c84a4bf0e8b1ff53f4e031089f28c1cfd168ec0d037952fe8f377f9a1d6e1ab642a84c095edeee5696b18053fd5cb7550586 SHA512 9986cd34dda921fbc152c3be0e39f003035787ea1e055452b9259d02c423d413080a0c7e4e19fd38d9e28f66d428719d6ebe784c24ae17249ff56494950daf4b
diff --git a/dev-python/numpy/numpy-1.26.2.ebuild b/dev-python/numpy/numpy-1.26.2.ebuild
new file mode 100644
index 000000000000..1cf392da09ce
--- /dev/null
+++ b/dev-python/numpy/numpy-1.26.2.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 flag-o-matic fortran-2 pypi toolchain-funcs
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="
+ https://numpy.org/
+ https://github.com/numpy/numpy/
+ https://pypi.org/project/numpy/
+"
+
+LICENSE="BSD"
+SLOT="0"
+# +lapack because the internal fallbacks are pretty slow. Building without blas
+# is barely supported anyway, see bug #914358.
+IUSE="+lapack"
+if [[ ${PV} != *_[rab]* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+RDEPEND="
+ lapack? (
+ >=virtual/cblas-3.8
+ >=virtual/lapack-3.8
+ )
+"
+BDEPEND="
+ ${RDEPEND}
+ >=dev-util/meson-1.1.0
+ >=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
+ lapack? (
+ virtual/pkgconfig
+ )
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ )
+"
+PATCHES=( "${FILESDIR}/${PN}-1.26.1-alpha.patch" )
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ append-flags -fno-strict-aliasing
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ -Dallow-noblas=$(usex !lapack true false)
+ -Dblas=$(usev lapack cblas)
+ -Dlapack=$(usev lapack lapack)
+ # TODO: cpu-* options
+ )
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Very disk-and-memory-hungry
+ lib/tests/test_io.py::TestSaveTxt::test_large_zip
+ lib/tests/test_io.py::TestSavezLoad::test_closing_fid
+ lib/tests/test_io.py::TestSavezLoad::test_closing_zipfile_after_load
+
+ # Precision problems
+ core/tests/test_umath_accuracy.py::TestAccuracy::test_validate_transcendentals
+
+ # Runs the whole test suite recursively, that's just crazy
+ core/tests/test_mem_policy.py::test_new_policy
+
+ typing/tests/test_typing.py
+ # Uses huge amount of memory
+ core/tests/test_mem_overlap.py
+
+ # TODO: crashes
+ lib/tests/test_histograms.py::TestHistogram::test_big_arrays
+
+ # likely a test problem
+ # https://github.com/numpy/numpy/issues/25135
+ core/tests/test_cython.py::test_conv_intp
+
+ # flaky
+ f2py/tests/test_crackfortran.py
+ f2py/tests/test_data.py::TestDataF77::test_crackedlines
+ )
+
+ if use arm && [[ $(uname -m || echo "unknown") == "armv8l" ]] ; then
+ # Degenerate case of arm32 chroot on arm64, bug #774108
+ EPYTEST_DESELECT+=(
+ core/tests/test_cpu_features.py::Test_ARM_Features::test_features
+ )
+ fi
+
+ if use x86 ; then
+ EPYTEST_DESELECT+=(
+ # https://github.com/numpy/numpy/issues/18388
+ core/tests/test_umath.py::TestRemainder::test_float_remainder_overflow
+ # https://github.com/numpy/numpy/issues/18387
+ random/tests/test_generator_mt19937.py::TestRandomDist::test_pareto
+ # more precision problems
+ core/tests/test_einsum.py::TestEinsum::test_einsum_sums_int16
+ )
+ fi
+
+ if use hppa ; then
+ EPYTEST_DESELECT+=(
+ # TODO: Get selectedrealkind updated!
+ # bug #907228
+ # https://github.com/numpy/numpy/issues/3424 (https://github.com/numpy/numpy/issues/3424#issuecomment-412369029)
+ # https://github.com/numpy/numpy/pull/21785
+ f2py/tests/test_kind.py::TestKind::test_real
+ f2py/tests/test_kind.py::TestKind::test_quad_precision
+ )
+ fi
+
+ if [[ $(tc-endian) == "big" ]] ; then
+ # https://github.com/numpy/numpy/issues/11831 and bug #707116
+ EPYTEST_DESELECT+=(
+ 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[s1]'
+ 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[t1]'
+ 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[s1]'
+ 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[t1]'
+ f2py/tests/test_kind.py::TestKind::test_int
+ )
+ fi
+
+ case "${ABI}" in
+ alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86)
+ EPYTEST_DESELECT+=(
+ # too large for 32-bit platforms
+ core/tests/test_ufunc.py::TestUfunc::test_identityless_reduction_huge_array
+ 'core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ 'core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ if ! has_version -b "~${CATEGORY}/${P}[${PYTHON_USEDEP}]" ; then
+ # depends on importing numpy.random from system namespace
+ EPYTEST_DESELECT+=(
+ 'random/tests/test_extending.py::test_cython'
+ )
+ fi
+
+ rm -rf numpy || die
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest --pyargs numpy
+}
+
+python_install_all() {
+ local DOCS=( LICENSE.txt README.md THANKS.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pikepdf/Manifest b/dev-python/pikepdf/Manifest
index f573b81621f9..d2afe56b915a 100644
--- a/dev-python/pikepdf/Manifest
+++ b/dev-python/pikepdf/Manifest
@@ -3,3 +3,5 @@ DIST pikepdf-8.5.1.tar.gz 2854559 BLAKE2B 70bca735461d0234cd43cc757a1e8137f9cc30
DIST pikepdf-8.5.2.tar.gz 2854729 BLAKE2B 276d96d21e0d5d58177776257286560771896424dd49145cf5daf32bd6344a0d18b22ca4a0ee806d1aabdef3310a751a091f9a6f4725199d04dab689ea678546 SHA512 7f107ed1535e876c1892d3ffdae57fca85c140ff2fdd981937600b310692248c53a3539dc8c1c1c5ce6e35349692d67c6c4e2f31a3a74ead246faaa212bd70d4
DIST pikepdf-8.5.3.tar.gz 2854900 BLAKE2B 6dfd458b96b60cbd2cbd5491353c98710bec458b11f92b8e5abdad05a83567f98e0c21eeafd47650de0d6600f958417d92f62d76034db6663555fc76d8c4714b SHA512 dd7c6d131f1bf61c0cb285c06629c44a5e8436fa368832aacac7d5fcd8ab3b19b96d0d1005b02dd5084a1d9a4200f3fb27f66b60e9625f3cd9bfb32a649f497c
DIST pikepdf-8.6.0.tar.gz 2855625 BLAKE2B f9f0867b72e531c54bd65e0ce74eeea3b5379b04c073863b1e690e989f9d05061635eadb10ca0bb6f79f64e3d16d619b7c1200a35dfbfc8808831960c889e474 SHA512 d272b7f8c334a7c803594a6d7ace2d53a971da0ec1e814d16f20564af5075dbff35e1e28e129dcc2168d1c9b83047a9ea1905b163b24d14179cbd2dc874f84d7
+DIST pikepdf-8.7.0.tar.gz 2860417 BLAKE2B bc11b2f1e2023cd25103e78522429cd50a6deae4e598653f6b9e35c82ac2069403c0fd8d17e56597c7189b207dd41dc8ecf23a940095625e19c453695e0290df SHA512 445c6cbd1b311ebfc96924cb5f381fe05ab549826029a796d7b744b93265880b27fe17e9f9cba212c5ed289a5fe6efa5e6457d0912f0ca13109c345d40e20ec7
+DIST pikepdf-8.7.1.tar.gz 2860480 BLAKE2B fa06667947d0166e8597e4fa757ffa96eb69ed3fe2dfd4a54e515678f55afd15a0e2dfcd571fabc933423f0696725d623b0fb9f95cb8ca8633a6581a7957c25d SHA512 3adc075244eb66e0aa4b18882c2ede598b26a40c56497628a8262f82c8ec72af25b4c97ded0771a8e0ec7bb1e7537ec4e172505fd30271a995491361bf17277f
diff --git a/dev-python/pikepdf/pikepdf-8.7.0.ebuild b/dev-python/pikepdf/pikepdf-8.7.0.ebuild
new file mode 100644
index 000000000000..a91aad65a17b
--- /dev/null
+++ b/dev-python/pikepdf/pikepdf-8.7.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library to work with pdf files based on qpdf"
+HOMEPAGE="
+ https://github.com/pikepdf/pikepdf/
+ https://pypi.org/project/pikepdf/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
+# https://qpdf.readthedocs.io/en/stable/release-notes.html.
+DEPEND="
+ >=app-text/qpdf-11.5.0:0=
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/deprecated[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pybind11-2.10.1[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-20.2.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.36[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-5.0.0[${PYTHON_USEDEP},jpeg,lcms,tiff]
+ >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
+ >=dev-python/pytest-timeout-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
+ >=dev-python/python-xmp-toolkit-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fragile to system load
+ tests/test_image_access.py::test_random_image
+)
+
+src_prepare() {
+ sed -e '/-n auto/d' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pikepdf/pikepdf-8.7.1.ebuild b/dev-python/pikepdf/pikepdf-8.7.1.ebuild
new file mode 100644
index 000000000000..a91aad65a17b
--- /dev/null
+++ b/dev-python/pikepdf/pikepdf-8.7.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library to work with pdf files based on qpdf"
+HOMEPAGE="
+ https://github.com/pikepdf/pikepdf/
+ https://pypi.org/project/pikepdf/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
+# https://qpdf.readthedocs.io/en/stable/release-notes.html.
+DEPEND="
+ >=app-text/qpdf-11.5.0:0=
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/deprecated[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pybind11-2.10.1[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7.0.5[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-20.2.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.36[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-5.0.0[${PYTHON_USEDEP},jpeg,lcms,tiff]
+ >=dev-python/psutil-5.9[${PYTHON_USEDEP}]
+ >=dev-python/pytest-timeout-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
+ >=dev-python/python-xmp-toolkit-2.0.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fragile to system load
+ tests/test_image_access.py::test_random_image
+)
+
+src_prepare() {
+ sed -e '/-n auto/d' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pydantic/Manifest b/dev-python/pydantic/Manifest
index 3ce1158b12b7..8412b144f986 100644
--- a/dev-python/pydantic/Manifest
+++ b/dev-python/pydantic/Manifest
@@ -1,3 +1,4 @@
DIST pydantic-1.10.13.gh.tar.gz 766572 BLAKE2B 3d4f4453469f960467ddf3512be8e97f0abf40406d441a1bc8909df1ebc0e7deaa5e84640d8614395e36d619e87f9d47327cd71526dae203046488d114ade49f SHA512 7ae96c08080e9d3bf3b66ee8ee77efc0b89b6630d4f0c37679e27a28a6433b3628fd342991cf38412ff6d1034c4a907841f74759c2e6b4d51d413d76625d5bfd
DIST pydantic-2.3.0.tar.gz 623866 BLAKE2B 77fe2d9ce385946e13ffeb5827c29bc7473667af6b53b7b3ec2432380dc792f9ce54b1cb5af68f0a548880516c763ac8c29b129d821da074b63a9a50f9ebc5c3 SHA512 19c9c066a69c8406ccf5537e62b4b5112a5cf1c32bb68498bb73b739c4525fe115348c4c4e5ef9c074dc46fd2b51ca09bcb1d4fa792dbdd2387e51aadae9e528
DIST pydantic-2.4.2.tar.gz 654020 BLAKE2B 2f91b6bf89f87230976a2e777541bb7418382fb3534f5e61e1dc74a18e5e939508a2440d6bee9a09030beb5f2b6a60fd62c3bf30ee0ee2c7d3f71575920a47f3 SHA512 f0e0d90ead4ba754974b38f8e3d24bc017696674ca1ed3300104389d149baa41c495218a118f5e7f98bf20d34b3c17439921eaff0ccd7bf76cac96a16e592b4e
+DIST pydantic-2.5.0.tar.gz 677119 BLAKE2B 5b53df61af19d64909313195a623cf30e3343fb5404853ec61ed56a87d9ba2b554a8c8f758c72f43f325fae75f64a1d3cc9489a67356fad28c2e4f4f4c95f222 SHA512 a31fd740e2272316cecb41477a1246d5555daa2897b13efbd79c002e46891283bb50a1fc653182e05039d5fbeb34f4a9b5d44c5c27c1ec60da3af30c333855bc
diff --git a/dev-python/pydantic/pydantic-2.5.0.ebuild b/dev-python/pydantic/pydantic-2.5.0.ebuild
new file mode 100644
index 000000000000..b6f501a456e3
--- /dev/null
+++ b/dev-python/pydantic/pydantic-2.5.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2023 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="Data parsing and validation using Python type hints"
+HOMEPAGE="
+ https://github.com/pydantic/pydantic/
+ https://pypi.org/project/pydantic/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/annotated-types-0.4.0[${PYTHON_USEDEP}]
+ ~dev-python/pydantic-core-2.14.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.6.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/dirty-equals[${PYTHON_USEDEP}]
+ >=dev-python/email-validator-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/Faker-18.13.0[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/benchmark/d' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ local EPYTEST_IGNORE=(
+ # require pytest-examples
+ tests/test_docs.py
+ # benchmarks
+ tests/benchmarks
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_mock
+}
diff --git a/dev-python/pytest-httpx/Manifest b/dev-python/pytest-httpx/Manifest
index 323df10db75a..0cc85135bc06 100644
--- a/dev-python/pytest-httpx/Manifest
+++ b/dev-python/pytest-httpx/Manifest
@@ -1 +1,2 @@
DIST pytest_httpx-0.26.0.tar.gz 33490 BLAKE2B 27c267374a575aff2ecbaec4855b733318568d73368a103f93606cc8833be4d4e664418e2f4b67df2d39a8830dd32d75d3a00656e58824b6beb18c4cc0bf3a14 SHA512 b671984714e8958361a773ef5e3f7430736b01556c6af58aac4ca740a679b5c2e316e2d041e1594cc16e7e13cee9692f57dcbbf374ca15924685250f73cc7853
+DIST pytest_httpx-0.27.0.tar.gz 33905 BLAKE2B 352812df060f878044a628dee62ab36f15d17080afc0367b6331c2e5e13600eefff7a3668f4a9364d437394ad8f8354f41619ec4f6b8bc5ac14b1cd652357802 SHA512 e2834313f507d02b9df96a47f8be6f46b451972e88ed9c9bfcb8bdb92545cc44064b11a1160a5d9d900381181918611d5d5a9efaf60f4e491f33182e9bd884dd
diff --git a/dev-python/pytest-httpx/pytest-httpx-0.27.0.ebuild b/dev-python/pytest-httpx/pytest-httpx-0.27.0.ebuild
new file mode 100644
index 000000000000..3e8689efb08c
--- /dev/null
+++ b/dev-python/pytest-httpx/pytest-httpx-0.27.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2022-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} )
+
+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 ~x86"
+
+RDEPEND="
+ =dev-python/httpx-0.25*[${PYTHON_USEDEP}]
+ <dev-python/pytest-8[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-testinfra/Manifest b/dev-python/pytest-testinfra/Manifest
index 15f6385581e6..010879cf0106 100644
--- a/dev-python/pytest-testinfra/Manifest
+++ b/dev-python/pytest-testinfra/Manifest
@@ -1 +1,2 @@
+DIST pytest-testinfra-10.0.0.tar.gz 84667 BLAKE2B 10c62340af7cb0a07cbc3c8099f0d22bbf8e3623e8c5f80dd45acef23ec178a2b090aa012e5602c7b67d0ef61ca9922d05e412e8db62384589080455326c8abc SHA512 3f289fccc3ba38ed1aa316adbb05ef74f51fbd1130ab7a39c5d56a11124de96c048aecef3a19438cd0d50d4891ed843671d9daf50fc5c3fb5c834164b276529d
DIST pytest-testinfra-9.0.0.tar.gz 83896 BLAKE2B 8d75bf051ec91916dcb9bc727409eefbf53f8635b5dd953d2c1d05a1d4daa37ade01a23bcc004f77ced37d8fb30684df211d16d95839c1a8d8e5d5c4df5336ca SHA512 bbf66597c473b868f0dde0437d666f8235e835a35bfd12b4a86f9970e26c1963d83101e7e0e3b3817e23798bee342f47ac7666041f0e09038236f9ddca4afecf
diff --git a/dev-python/pytest-testinfra/pytest-testinfra-10.0.0.ebuild b/dev-python/pytest-testinfra/pytest-testinfra-10.0.0.ebuild
new file mode 100644
index 000000000000..f6284c3dba51
--- /dev/null
+++ b/dev-python/pytest-testinfra/pytest-testinfra-10.0.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2023 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="Write unit tests in Python to test actual state of your servers"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-testinfra/
+ https://pypi.org/project/pytest-testinfra/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+
+RDEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+"
+# Ansible is called via its CLI
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ app-admin/ansible
+ $(python_gen_cond_dep '
+ app-admin/salt[${PYTHON_USEDEP}]
+ ' python3_10)
+ dev-python/paramiko[${PYTHON_USEDEP}]
+ dev-python/pywinrm[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x EPYTEST_DESELECT=()
+
+ # This is the only test which actually fails if salt cannot be imported
+ if ! has_version "dev-python/salt[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ test/test_backends.py::test_backend_importables
+ )
+ fi
+
+ epytest
+}
+
+pkg_postinst() {
+ elog "For the list of available connection back-ends and their dependencies,"
+ elog "please consult https://testinfra.readthedocs.io/en/latest/backends.html"
+}
diff --git a/dev-python/sentry-sdk/Manifest b/dev-python/sentry-sdk/Manifest
index d3b5dad5dce1..a9f6831d1db8 100644
--- a/dev-python/sentry-sdk/Manifest
+++ b/dev-python/sentry-sdk/Manifest
@@ -2,3 +2,4 @@ DIST sentry-python-1.31.0.gh.tar.gz 399341 BLAKE2B e5162a619335bd7e089ed01c938d2
DIST sentry-python-1.32.0.gh.tar.gz 422326 BLAKE2B f2753d958599462a3b6134872072ccfbca0e2dbeedffeffb2c430c46c3ea19cdbd9add0789cd77b0971444edcc1d87f2082f33b5bd8798c81ca226ac92d565c6 SHA512 ff29adb1b0fdec3864c2291ddea533e4aa5b8cd1d5ba7381954cd4d3f873a47c58fd7b6997479552e43e229a5e282d61c926185b79266801f731a3c4289c83c0
DIST sentry-python-1.33.1.gh.tar.gz 431232 BLAKE2B 8f08e2ae58fa7d55384be9102a6f2f70eea550c6b53794013ff7326a0dd32358782db1e0c15b9837c688a85dae36f16538bc2d7c1516c1de4e75aa5c1ee35d55 SHA512 e86d20f1d8736175340bfd850560055342fd234709d1c4c5f931274e2e0d31b6bc0bb559593aff2ec4aaf508aefb0d8e1025d8eedc1dbb2d13c41b019721ce9f
DIST sentry-python-1.34.0.gh.tar.gz 432143 BLAKE2B d5a1376e88b4377ee0f416229364586cd69d76a72a31f1d7a5128c5aba6988d5cbfaf405afa39d52926ba64c0b29b48577d8e102427aec08dead41356a3dbbf5 SHA512 b4d6d4751bde829aca7cec418d46fb5ac44d59bcfd71e4b6e3057b70ea38e96dc3eeaa3b8ce61f9d7d0ccc9845ba741c9aacdc58e6fea56c1f33b5c39118c35f
+DIST sentry-python-1.35.0.gh.tar.gz 438978 BLAKE2B 84d016fd24895eab240d97d99c5ac11f332f72c487b82205680513103d5a684ad25b4dbb6fe7863d681c965239079f1208b660a48bc21e508b57db04466e91b7 SHA512 fb136cb0542a9ca7db7e5bbcfe6178cdee90b80c634c9f1f54ad769b403fbe48ab9f23f66e33c1b7cc0f22d53811c0b1ae767604df5f2209c3568eebdc643b6a
diff --git a/dev-python/sentry-sdk/sentry-sdk-1.35.0.ebuild b/dev-python/sentry-sdk/sentry-sdk-1.35.0.ebuild
new file mode 100644
index 000000000000..83b4f6b5f21c
--- /dev/null
+++ b/dev-python/sentry-sdk/sentry-sdk-1.35.0.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+MY_P=sentry-python-${PV}
+DESCRIPTION="Python client for Sentry"
+HOMEPAGE="
+ https://sentry.io/
+ https://github.com/getsentry/sentry-python/
+ https://pypi.org/project/sentry-sdk/
+"
+SRC_URI="
+ https://github.com/getsentry/sentry-python/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/asttokens[${PYTHON_USEDEP}]
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/executing[${PYTHON_USEDEP}]
+ dev-python/fakeredis[${PYTHON_USEDEP}]
+ dev-python/flask-login[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/pyrsistent[${PYTHON_USEDEP}]
+ dev-python/pytest-aiohttp[${PYTHON_USEDEP}]
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+ dev-python/pytest-forked[${PYTHON_USEDEP}]
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ dev-python/python-socks[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zope-event[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/sentry-sdk-1.21.0-ignore-warnings.patch"
+)
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # tests require Internet access
+ tests/integrations/httpx/test_httpx.py
+ tests/integrations/requests/test_requests.py
+ tests/integrations/stdlib/test_httplib.py
+ tests/integrations/flask/test_flask.py
+ tests/integrations/django/test_basic.py
+ tests/integrations/socket/test_socket.py
+ # wtf is it supposed to do?!
+ tests/integrations/gcp/test_gcp.py
+ # broken by rq-1.10.1 (optional dep)
+ tests/integrations/rq/test_rq.py
+ # fastapi is not packaged
+ tests/integrations/asgi/test_fastapi.py
+ # TODO
+ tests/integrations/bottle
+ # TODO: causes breakage in other tests
+ tests/integrations/starlette
+ # TODO
+ tests/integrations/tornado
+ # requires mockupdb
+ tests/integrations/pymongo
+ # requires AWS access
+ tests/integrations/aws_lambda
+ )
+
+ local EPYTEST_DESELECT=(
+ # hangs
+ 'tests/test_transport.py::test_transport_works'
+ # TODO
+ 'tests/test_basics.py::test_auto_enabling_integrations_catches_import_error'
+ tests/test_client.py::test_databag_depth_stripping
+ tests/test_client.py::test_databag_string_stripping
+ tests/test_client.py::test_databag_breadth_stripping
+ tests/integrations/asgi/test_asgi.py::test_auto_session_tracking_with_aggregates
+ tests/integrations/asgi/test_asgi.py::test_websocket
+ tests/integrations/aiohttp/test_aiohttp.py::test_transaction_style
+ tests/integrations/aiohttp/test_aiohttp.py::test_traces_sampler_gets_request_object_in_sampling_context
+ tests/integrations/django/test_data_scrubbing.py::test_scrub_django_custom_session_cookies_filtered
+ # incompatible version?
+ tests/integrations/falcon/test_falcon.py
+ tests/integrations/sqlalchemy/test_sqlalchemy.py::test_large_event_not_truncated
+ tests/integrations/django/test_data_scrubbing.py::test_scrub_django_session_cookies_{filtered,removed}
+ # test_circular_references: apparently fragile
+ 'tests/integrations/threading/test_threading.py::test_circular_references'
+ # test for new feature, fails with IndexError
+ tests/integrations/wsgi/test_wsgi.py::test_session_mode_defaults_to_request_mode_in_wsgi_handler
+ # TODO
+ tests/integrations/wsgi/test_wsgi.py::test_auto_session_tracking_with_aggregates
+ tests/integrations/wsgi/test_wsgi.py::test_profile_sent_when_profiling_enabled
+ tests/test_profiler.py::test_sample_buffer
+ tests/test_profiler.py::test_thread_scheduler_takes_first_samples
+ tests/test_profiler.py::test_thread_scheduler_takes_more_samples
+ tests/test_profiler.py::test_thread_scheduler_single_background_thread
+ # broken with py3.11, *shrug*
+ tests/test_profiler.py::test_extract_stack_with_max_depth
+ # TODO
+ tests/integrations/sqlalchemy/test_sqlalchemy.py::test_long_sql_query_preserved
+ tests/integrations/sqlalchemy/test_sqlalchemy.py::test_engine_name_not_string
+ tests/test_scrubber.py::test_breadcrumb_extra_scrubbing
+ tests/test_scrubber.py::test_span_data_scrubbing
+ # this is not even funny
+ tests/integrations/modules/test_modules.py::test_installed_modules
+ # flaky hypothesis stuff
+ tests/test_serializer.py::test_bytes_serialization_repr_many
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p aiohttp -p pytest_forked
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 8cfe0bec16b3..62023e9e4a9f 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -6,3 +6,4 @@ DIST sqlglot-19.1.2.tar.gz 9032813 BLAKE2B 5ed47175decfcdcdf116a5c8676a25f2682ea
DIST sqlglot-19.1.3.tar.gz 9039849 BLAKE2B e60834db439b8b6d5d98d1b0cc25a67815b7961b255c2dc6f88072975fec209731f206611143a7287be6d1ef144722367cbbb35f4b7160df5158f5a4a1f2a8c8 SHA512 0d14a9ad56c10972a4141a7f185585d7cb9127f439313ccaca66a0ff225495c3d814747c66d427aaf6ee7c2de7d9959e8544d10071aa5ae05cf1f99018c642e2
DIST sqlglot-19.2.0.tar.gz 9042951 BLAKE2B fd9b70c76f7bcc1ba57bb935d5896de794a981214c23af48b20948d04b7110841ab5fb931aa541101635d723bdb6c395d983a856d598118586d1bc582e341be8 SHA512 4c50f8e7faac643f95c9f9fec6a9ecf797d5f1fa8d8dea10496a320a2a78ab1ba6a3349a47ab1bfca8adc3cb2ad795e56a27d6de7b77256dae65d8ce1a3a9c56
DIST sqlglot-19.3.1.tar.gz 9054462 BLAKE2B ae44c5398cf976e5a624b01e2b9078275da43dfa6e0c4a112a1c5dcc6a2e5a6c5c84d0005911651b920c4e2ff09a668c10d55a56c843c2ba423fc456897647b5 SHA512 46375ff738bf2cd454e24dd789afff4318cb186c87c232613c5ec70694db526ec28dae853b59014eeef34a2b746e19cb418965c1bd55066bb1eee278f12895ea
+DIST sqlglot-19.4.0.tar.gz 9056050 BLAKE2B 23d5a9bdd7bfa27128e624406f52488e90ec475c355fde6e5e7ac77bee5ae84dd1abeb2c87896f3fbc418dbe0b818e66f1d76b7e24514315e194b6bd58677203 SHA512 f0f6f4d4eca3d97ac9cd200e6a5e8df5a2c2b9e6d84dd87f19ab29b1af0c6cb55c62e28c9c7faa34425a6cfb0583b02d387b7cd744fec40419927016cd05d51e
diff --git a/dev-python/sqlglot/sqlglot-19.4.0.ebuild b/dev-python/sqlglot/sqlglot-19.4.0.ebuild
new file mode 100644
index 000000000000..ac53f7b0ad7d
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-19.4.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 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} )
+
+inherit 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/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+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"
+)
+
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch b/dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch
new file mode 100644
index 000000000000..b7fa55c2e267
--- /dev/null
+++ b/dev-python/time-machine/files/time-machine-2.13.0-backport-pr400.patch
@@ -0,0 +1,252 @@
+https://bugs.gentoo.org/show_bug.cgi?id=912709
+https://github.com/adamchainz/time-machine/pull/400
+
+From b489a478193982c17cf7847d32cae2b53a904222 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Thu, 9 Nov 2023 13:03:49 -0500
+Subject: [PATCH 1/2] Fix tests on platforms with low clock resolution
+
+On platforms without a high-resolution clock, such as Alpha and PA-RISC
+is is likely that two sequential calls to time.time() will return the
+same value if the execution time is not sufficient to allow one full
+clock resolution cycle to pass. This adds sleeps of one cycle to
+enforce that the minimum amount of time to guarantee a clock change has
+passed.
+
+On systems with high-resolution clocks, clock_getres() will return 1ns;
+in reality the sleep will take longer than 1ns to execute but should
+still be a negligible amount of time.
+---
+ tests/test_time_machine.py | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/tests/test_time_machine.py b/tests/test_time_machine.py
+index fe98fb7..7b5abbe 100644
+--- a/tests/test_time_machine.py
++++ b/tests/test_time_machine.py
+@@ -155,8 +155,10 @@ def test_time_clock_gettime_realtime():
+ @py_have_clock_gettime
+ def test_time_clock_gettime_monotonic_unaffected():
+ start = time.clock_gettime(time.CLOCK_MONOTONIC)
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ with time_machine.travel(EPOCH + 180.0):
+ frozen = time.clock_gettime(time.CLOCK_MONOTONIC)
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert isinstance(frozen, float)
+ assert frozen > start
+
+@@ -169,6 +171,7 @@ def test_time_clock_gettime_monotonic_unaffected():
+ def test_time_clock_gettime_ns_realtime():
+ with time_machine.travel(EPOCH + 190.0):
+ first = time.clock_gettime_ns(time.CLOCK_REALTIME)
++ time.sleep(time.clock_getres(time.CLOCK_REALTIME))
+ assert isinstance(first, int)
+ assert first == int((EPOCH + 190.0) * NANOSECONDS_PER_SECOND)
+ second = time.clock_gettime_ns(time.CLOCK_REALTIME)
+@@ -182,8 +185,10 @@ def test_time_clock_gettime_ns_realtime():
+ @py_have_clock_gettime
+ def test_time_clock_gettime_ns_monotonic_unaffected():
+ start = time.clock_gettime_ns(time.CLOCK_MONOTONIC)
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ with time_machine.travel(EPOCH + 190.0):
+ frozen = time.clock_gettime_ns(time.CLOCK_MONOTONIC)
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert isinstance(frozen, int)
+ assert frozen > start
+
+@@ -279,6 +284,7 @@ def test_time_strftime_format_t():
+ def test_time_time():
+ with time_machine.travel(EPOCH):
+ first = time.time()
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert isinstance(first, float)
+ assert first == EPOCH
+ second = time.time()
+@@ -300,6 +306,7 @@ def test_time_time():
+ def test_time_time_windows():
+ with time_machine.travel(EPOCH):
+ first = time.time()
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert isinstance(first, float)
+ assert first == windows_epoch_in_posix
+
+@@ -316,6 +323,7 @@ def test_time_time_no_tick():
+ def test_time_time_ns():
+ with time_machine.travel(EPOCH + 150.0):
+ first = time.time_ns()
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert isinstance(first, int)
+ assert first == int((EPOCH + 150.0) * NANOSECONDS_PER_SECOND)
+ second = time.time_ns()
+@@ -561,6 +569,7 @@ def test_method_decorator(self):
+ @time_machine.travel(EPOCH + 95.0)
+ class UnitTestClassTests(TestCase):
+ def test_class_decorator(self):
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert EPOCH + 95.0 < time.time() < EPOCH + 96.0
+
+ @time_machine.travel(EPOCH + 25.0)
+@@ -578,6 +587,7 @@ def setUpClass(cls):
+ cls.custom_setupclass_ran = True
+
+ def test_class_decorator(self):
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert EPOCH + 95.0 < time.time() < EPOCH + 96.0
+ assert self.custom_setupclass_ran
+
+@@ -639,6 +649,7 @@ def test_move_to_datetime():
+ traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME)
+
+ first = time.time()
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert first == EPOCH_PLUS_ONE_YEAR
+
+ second = time.time()
+@@ -706,6 +717,7 @@ def test_move_to_datetime_change_tick_on():
+ with time_machine.travel(EPOCH, tick=False) as traveller:
+ traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME, tick=True)
+ assert time.time() == EPOCH_PLUS_ONE_YEAR
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert time.time() > EPOCH_PLUS_ONE_YEAR
+
+
+@@ -756,6 +768,7 @@ def test_fixture_used_tick_false(time_machine):
+ def test_fixture_used_tick_true(time_machine):
+ time_machine.move_to(EPOCH, tick=True)
+ original = time.time()
++ time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
+ assert original == EPOCH
+ assert original < time.time() < EPOCH + 10.0
+
+
+From 9e84584325ec06eb997716b6a0f42e9ca6540994 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Fri, 10 Nov 2023 11:06:23 -0500
+Subject: [PATCH 2/2] Wrap sleep calls in "sleep_one_cycle" function
+
+---
+ tests/test_time_machine.py | 30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/tests/test_time_machine.py b/tests/test_time_machine.py
+index 7b5abbe..163ec2b 100644
+--- a/tests/test_time_machine.py
++++ b/tests/test_time_machine.py
+@@ -38,6 +38,10 @@
+ )
+
+
++def sleep_one_cycle(clock: int) -> None:
++ time.sleep(time.clock_getres(clock))
++
++
+ @contextmanager
+ def change_local_timezone(local_tz: str | None) -> typing.Iterator[None]:
+ orig_tz = os.environ["TZ"]
+@@ -155,10 +159,10 @@ def test_time_clock_gettime_realtime():
+ @py_have_clock_gettime
+ def test_time_clock_gettime_monotonic_unaffected():
+ start = time.clock_gettime(time.CLOCK_MONOTONIC)
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ with time_machine.travel(EPOCH + 180.0):
+ frozen = time.clock_gettime(time.CLOCK_MONOTONIC)
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert isinstance(frozen, float)
+ assert frozen > start
+
+@@ -171,7 +175,7 @@ def test_time_clock_gettime_monotonic_unaffected():
+ def test_time_clock_gettime_ns_realtime():
+ with time_machine.travel(EPOCH + 190.0):
+ first = time.clock_gettime_ns(time.CLOCK_REALTIME)
+- time.sleep(time.clock_getres(time.CLOCK_REALTIME))
++ sleep_one_cycle(time.CLOCK_REALTIME)
+ assert isinstance(first, int)
+ assert first == int((EPOCH + 190.0) * NANOSECONDS_PER_SECOND)
+ second = time.clock_gettime_ns(time.CLOCK_REALTIME)
+@@ -185,10 +189,10 @@ def test_time_clock_gettime_ns_realtime():
+ @py_have_clock_gettime
+ def test_time_clock_gettime_ns_monotonic_unaffected():
+ start = time.clock_gettime_ns(time.CLOCK_MONOTONIC)
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ with time_machine.travel(EPOCH + 190.0):
+ frozen = time.clock_gettime_ns(time.CLOCK_MONOTONIC)
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert isinstance(frozen, int)
+ assert frozen > start
+
+@@ -284,7 +288,7 @@ def test_time_strftime_format_t():
+ def test_time_time():
+ with time_machine.travel(EPOCH):
+ first = time.time()
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert isinstance(first, float)
+ assert first == EPOCH
+ second = time.time()
+@@ -306,7 +310,7 @@ def test_time_time():
+ def test_time_time_windows():
+ with time_machine.travel(EPOCH):
+ first = time.time()
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert isinstance(first, float)
+ assert first == windows_epoch_in_posix
+
+@@ -323,7 +327,7 @@ def test_time_time_no_tick():
+ def test_time_time_ns():
+ with time_machine.travel(EPOCH + 150.0):
+ first = time.time_ns()
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert isinstance(first, int)
+ assert first == int((EPOCH + 150.0) * NANOSECONDS_PER_SECOND)
+ second = time.time_ns()
+@@ -569,7 +573,7 @@ def test_method_decorator(self):
+ @time_machine.travel(EPOCH + 95.0)
+ class UnitTestClassTests(TestCase):
+ def test_class_decorator(self):
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert EPOCH + 95.0 < time.time() < EPOCH + 96.0
+
+ @time_machine.travel(EPOCH + 25.0)
+@@ -587,7 +591,7 @@ def setUpClass(cls):
+ cls.custom_setupclass_ran = True
+
+ def test_class_decorator(self):
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert EPOCH + 95.0 < time.time() < EPOCH + 96.0
+ assert self.custom_setupclass_ran
+
+@@ -649,7 +653,7 @@ def test_move_to_datetime():
+ traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME)
+
+ first = time.time()
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert first == EPOCH_PLUS_ONE_YEAR
+
+ second = time.time()
+@@ -717,7 +721,7 @@ def test_move_to_datetime_change_tick_on():
+ with time_machine.travel(EPOCH, tick=False) as traveller:
+ traveller.move_to(EPOCH_PLUS_ONE_YEAR_DATETIME, tick=True)
+ assert time.time() == EPOCH_PLUS_ONE_YEAR
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert time.time() > EPOCH_PLUS_ONE_YEAR
+
+
+@@ -768,7 +772,7 @@ def test_fixture_used_tick_false(time_machine):
+ def test_fixture_used_tick_true(time_machine):
+ time_machine.move_to(EPOCH, tick=True)
+ original = time.time()
+- time.sleep(time.clock_getres(time.CLOCK_MONOTONIC))
++ sleep_one_cycle(time.CLOCK_MONOTONIC)
+ assert original == EPOCH
+ assert original < time.time() < EPOCH + 10.0
+
diff --git a/dev-python/time-machine/time-machine-2.13.0.ebuild b/dev-python/time-machine/time-machine-2.13.0.ebuild
index b3e01e000660..6ec797655377 100644
--- a/dev-python/time-machine/time-machine-2.13.0.ebuild
+++ b/dev-python/time-machine/time-machine-2.13.0.ebuild
@@ -27,4 +27,6 @@ RDEPEND="
dev-python/python-dateutil[${PYTHON_USEDEP}]
"
+PATCHES=( "${FILESDIR}/${PN}-2.13.0-backport-pr400.patch" )
+
distutils_enable_tests pytest
diff --git a/dev-python/trove-classifiers/Manifest b/dev-python/trove-classifiers/Manifest
index 04184e641833..60e2c5ae5ed4 100644
--- a/dev-python/trove-classifiers/Manifest
+++ b/dev-python/trove-classifiers/Manifest
@@ -1,3 +1,4 @@
DIST trove-classifiers-2023.10.18.tar.gz 15862 BLAKE2B 9d634e0b9674c1b9e249999c1722217fae5ca9d8aec348706859a73f599b62a003d5ff3344e361930b9182bcf4153bd5fb40ee93a53e50b1df0430b1fec4bb7c SHA512 6f8449411b8fc82ed798901701a72f3051bb46c189ee95276dcb77a2ee9b26a61c4304b03be20f7e2bc6dc5f8db1021bf02575cadd021fe43f96fd73540bae99
+DIST trove-classifiers-2023.11.13.tar.gz 15895 BLAKE2B 2e1a615c2d39c89471427ee1a9dce95acdc9ee68a1299fca5603b710ed8867d00f72ea913c4b548962bb83eff9fda93871914bd02a1ff428e2aeafe8f060dd1f SHA512 4598a2163d0c9a4bcee1b10d7f285fe03b38efe19d279a346f18a12c4adf564a617492663d822658cb542293bffcd54270c05cfccc351509def2e0574c0aad90
DIST trove-classifiers-2023.11.7.tar.gz 15869 BLAKE2B 5c1229b7684699d560a12030cbd6be2de699d2c91902bde2f2144bd3a7718fd610596ea473a8a5a2be0f31296bb5b410a778455e3feccc5b11ac87b98f79ef38 SHA512 445a1e3482ff970a219b6323de8ab8547cb78adf5bc17db3c8cc242e5a12dc9ea93fa241da161139724f751b49f7ff80f579612d7b61a5868422e80db6c87d17
DIST trove-classifiers-2023.11.9.tar.gz 15893 BLAKE2B 10bdefc15abdb14e9dbfb2b8181b1f5478d1498c5168266cbaa0f4b6c7d9a7c42cf31f2c8cddfd3f9c63047f6c64b1429bc62c710b522acb05485f9ec8d8fcf7 SHA512 c7d3f7ebe06a1f8b0d7d7d7abe5d00f29fdab35e4577c726f2a3e279e0863c43cc0ceaa29b46bf2856becbead5a2468fc80f0200f199f9821e3336356425e693
diff --git a/dev-python/trove-classifiers/trove-classifiers-2023.11.13.ebuild b/dev-python/trove-classifiers/trove-classifiers-2023.11.13.ebuild
new file mode 100644
index 000000000000..729db4e896ab
--- /dev/null
+++ b/dev-python/trove-classifiers/trove-classifiers-2023.11.13.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)"
+HOMEPAGE="
+ https://github.com/pypa/trove-classifiers/
+ https://pypi.org/project/trove-classifiers/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ dev-python/calver[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest
+ "${EPYTHON}" -m tests.lib || die
+}
diff --git a/dev-python/urllib3/Manifest b/dev-python/urllib3/Manifest
index d618c2a37e71..58647582f1a5 100644
--- a/dev-python/urllib3/Manifest
+++ b/dev-python/urllib3/Manifest
@@ -2,3 +2,4 @@ DIST urllib3-1.26.17.tar.gz 305031 BLAKE2B 616b183168a78737988428efa52516586b66c
DIST urllib3-1.26.18.tar.gz 305687 BLAKE2B f2f673761a8d80eee715a8726ba36ab6b09800fd4a4f03f27438553c36072e2abb5ff26cff71dcf30fd114f4d28c4ad9907533965b83c8a0581d3d4661904b70 SHA512 c89e93a032bf6b11375c06ef7c5abc1868f93e7655cfdca09e9bd939ad415d206ea159fe151ecd2e5f725e0e18a831c7a5382ad01dbc32264154fc8af7aec156
DIST urllib3-2.0.6.tar.gz 281846 BLAKE2B 3af632a77f07d5c686e6412b06d67df5c62517239431ead7d0c7e7bbb5efe06c298db0afda1a84fb314f3e3936edd16aef693ac316a923f67232abf8789b6201 SHA512 872a5899ad4486b45fe7a327f029beb5f7d3dd8447b58b861922b32bd15f1cff68d12136f262c2d2d3740047976bc6cff16a54590c1eab19949149e7dae2956a
DIST urllib3-2.0.7.tar.gz 282546 BLAKE2B d4fbb9e1d0b6d1f3c3d71efc3fc479c7b1c49f87ca849c387701fb0c8b4124082de6d83d958c8b2afc225a84b80e7665df857e7b0918ba50e4ad1431f8facc4d SHA512 ca21dd330cfc7f53e6f00a92be1df1d24acbe61b6ca31c52a272dccd6f50d1bb797eece9132860adc84c21a9bebc3030a12816081451fcb8384c11a6cd2d1e8b
+DIST urllib3-2.1.0.tar.gz 263900 BLAKE2B 9e0438a11b7178c5004c1253179bb6bfcb1fa8711db47084377bb14c5834f7b88b04a5560b99bf6fff5f1f4622d4b1998d19dd517ab6b7453fd53c832ee7fefa SHA512 33d6eafd9b6ecd97ee2dca8a4f1612a6fcc584961bcfd3a0a188f557a73f4c1576f98dc525c3b2feecb2d676f4bf4364aafeef093d6686e4b3ef2043726561a8
diff --git a/dev-python/urllib3/urllib3-2.1.0.ebuild b/dev-python/urllib3/urllib3-2.1.0.ebuild
new file mode 100644
index 000000000000..88d8aae10ff1
--- /dev/null
+++ b/dev-python/urllib3/urllib3-2.1.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2023 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=hatchling
+PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="
+ https://github.com/urllib3/urllib3/
+ https://pypi.org/project/urllib3/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="brotli test zstd"
+RESTRICT="!test? ( test )"
+
+# [secure] extra is deprecated and slated for removal, we don't need it:
+# https://github.com/urllib3/urllib3/issues/2680
+RDEPEND="
+ >=dev-python/PySocks-1.5.8[${PYTHON_USEDEP}]
+ <dev-python/PySocks-2.0[${PYTHON_USEDEP}]
+ brotli? ( >=dev-python/brotlicffi-0.8.0[${PYTHON_USEDEP}] )
+ zstd? ( >=dev-python/zstandard-0.18.0[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep "
+ ${RDEPEND}
+ dev-python/brotlicffi[\${PYTHON_USEDEP}]
+ dev-python/freezegun[\${PYTHON_USEDEP}]
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[\${PYTHON_USEDEP}]
+ >=dev-python/tornado-4.2.1[\${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.18.0[\${PYTHON_USEDEP}]
+ " "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ # upstream considers 0.5 s to be "long" for a timeout
+ # we get tons of test failures on *fast* systems because of that
+ sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x CI=1
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # take forever
+ test/contrib/test_pyopenssl.py::TestSocketSSL::test_requesting_large_resources_via_ssl
+ test/with_dummyserver/test_socketlevel.py::TestSSL::test_requesting_large_resources_via_ssl
+ # stupid test, next bump please verify if they fixed it
+ test/test_poolmanager.py::TestPoolManager::test_deprecated_no_scheme
+ # fails with newer secure SSL configuration, which removes TLS 1.1
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1::test_verify_none_and_good_fingerprint
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_1::test_verify_none_and_good_fingerprint
+ test/with_dummyserver/test_https.py::TestHTTPS_TLSv1::test_verify_none_and_good_fingerprint
+ test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_1::test_verify_none_and_good_fingerprint
+ # TODO: timeouts
+ test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries
+ test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries
+ # warnings, sigh
+ test/with_dummyserver/test_connectionpool.py::TestConnectionPool::test_request_chunked_is_deprecated
+ )
+
+ # plugins make tests slower, and more fragile
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # some tests are very fragile to timing
+ epytest -p rerunfailures --reruns=10 --reruns-delay=2 \
+ -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}
diff --git a/dev-python/wcwidth/Manifest b/dev-python/wcwidth/Manifest
index af7860f86ee5..fda859daf7c8 100644
--- a/dev-python/wcwidth/Manifest
+++ b/dev-python/wcwidth/Manifest
@@ -1,2 +1,3 @@
+DIST wcwidth-0.2.10.gh.tar.gz 92276 BLAKE2B 69347446b6571feb68871a6195bfe6718f23d8a21332cda839bb41f2a540d222265065a1194e26d22a166d1d90fb4d5237703af96a8f1737c2f09d126ec2d623 SHA512 207e0086080e33f1e42728eb81c4543ebb21f08e2a743fbd29d64f3f5ee21a1f12c9b298fcc64df6eae646900c7858ba4a845a9b510d525f2582359b7c6a50aa
DIST wcwidth-0.2.8.tar.gz 61713 BLAKE2B ca3d0c58e2ccab0fbb5493aacc8df81e9dc1faf7572543b7aa277875d617e0d4dc0c5ff6032f5f0f3846f52f26c407ddc5dd941780411572bce8ddc467a33dd7 SHA512 4a9ac4a3068c8ac25a7073d6c5e5782c3915184929ee191a2169eca510668e6e0b15856e71bd8b8d4c580767542d695b25a370329e95da317295104b962737f1
DIST wcwidth-0.2.9.tar.gz 66133 BLAKE2B 7df656c139c228324427e6be9cefe3496b7b5e55d7353f062ae4cb3d7d5988f1e5e03e11122c0e045b7a93abd95139fc2ac8a81a4d079518cc8c6fa747d2ff00 SHA512 8aff2ce67d8f331c4c75907f14ec602f4829d39e3f89af640d598e075165a011e41a5451a333bc2f6c95f33a4b9ca8ae1a5d02efe4f79acc988d60b85bf5929b
diff --git a/dev-python/wcwidth/wcwidth-0.2.10.ebuild b/dev-python/wcwidth/wcwidth-0.2.10.ebuild
new file mode 100644
index 000000000000..4041ace67702
--- /dev/null
+++ b/dev-python/wcwidth/wcwidth-0.2.10.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Measures number of Terminal column cells of wide-character codes"
+HOMEPAGE="
+ https://pypi.org/project/wcwidth/
+ https://github.com/jquast/wcwidth/
+"
+# missing test files in 0.2.10
+#
+SRC_URI="
+ https://github.com/jquast/wcwidth/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
+
+python_install_all() {
+ docinto docs
+ dodoc docs/intro.rst
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/zeroconf/Manifest b/dev-python/zeroconf/Manifest
index f3f4129ab171..19d837c08243 100644
--- a/dev-python/zeroconf/Manifest
+++ b/dev-python/zeroconf/Manifest
@@ -5,3 +5,4 @@ DIST zeroconf-0.122.0.tar.gz 158314 BLAKE2B 0c580b0f447c1fa38635a4687a6b1bfd1146
DIST zeroconf-0.122.3.tar.gz 158519 BLAKE2B f62d36234c4f1cd988bbf8b1d1e6f706498bc4c745ef1c60c5346db3b550aa1c6f4dccda9705464dca5136fd19958eac946deb04e37b99aaf41fef8dafc40683 SHA512 3f81b9678cc71a3444d1240609d48ddb4c6e5fa0d144a8241fab3e7df71e79508a1537bc504c6d52018a11bbba24477b90302013ebe9d0663e5b5aeb330b333c
DIST zeroconf-0.123.0.tar.gz 158902 BLAKE2B d940e9558e781d614d623701e8baf3c9a2feb292bcb0ad8241fc28e1bdf103a154cf178b37dfc9f9ae1805ee6e6d1601cd41574755fe9849243832c3bd57821e SHA512 65947861a76776a1e34807ca5b0570f93c026b8fa36456ae6bfdec747c484107ba2c2e12712ce1a81a05c6c817215f7f72aa40a48e6634f1b1be886349f8c73f
DIST zeroconf-0.125.0.tar.gz 160220 BLAKE2B aa84106acc07d19766a1ecdb4db36367ff9d80b1f88b81c665499c59dfc95cdb3123d5252f53fb488d4f632afdff862cf138a763106da652facb4e43bc404b8b SHA512 ba24b9dbcf91090404906df0127b0ba94fe3af65aae86788ff703b14b8f4dcffe9e08bc6be3b122a16036bc87df6307066ad291f74b02846a5b79279e24c150b
+DIST zeroconf-0.126.0.tar.gz 160628 BLAKE2B 09ff7d4ccde02d258b26f0a1e72ac7fbaf61a4a6513fa7c216e0015afa07107f52469a403cf8866aa38a55b7e96dbf1ef6cecd698e3b5b8902030e02cb7aa600 SHA512 7ceaeb39e292426fcfafd62d3a34bea40ba1ff2570489d6b9de2c3be9d8e27cbbbad90fbe6de45f0be1a0d769b0756c299a2c7358bb3689c163bca1373656bc5
diff --git a/dev-python/zeroconf/zeroconf-0.126.0.ebuild b/dev-python/zeroconf/zeroconf-0.126.0.ebuild
new file mode 100644
index 000000000000..287607fcea05
--- /dev/null
+++ b/dev-python/zeroconf/zeroconf-0.126.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)"
+HOMEPAGE="
+ https://github.com/python-zeroconf/python-zeroconf/
+ https://pypi.org/project/zeroconf/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/ifaddr-0.1.7[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/async-timeout-3.0.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+# the build system uses custom build script that uses distutils to build
+# C extensions, sigh
+BDEPEND="
+ >=dev-python/cython-3[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-65.6.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+export REQUIRE_CYTHON=1
+
+python_test() {
+ local -x SKIP_IPV6=1
+ local EPYTEST_DESELECT=(
+ # network
+ tests/test_core.py::Framework::test_close_multiple_times
+ tests/test_core.py::Framework::test_launch_and_close
+ tests/test_core.py::Framework::test_launch_and_close_context_manager
+
+ # fragile to timeouts (?)
+ tests/services/test_browser.py::test_service_browser_expire_callbacks
+ tests/utils/test_asyncio.py::test_run_coro_with_timeout
+ )
+
+ epytest -o addopts=
+}