summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-12-14 18:37:36 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-12-14 18:37:36 +0000
commit9df6239cdd295c4159c939a5219e7916663a2903 (patch)
tree66c8a810bc95347bc58e0e5d9d7a3dff45f1f226 /dev-python
parent5713d5536a947bb350ae6724a03bed75aec44592 (diff)
downloadbaldeagleos-repo-9df6239cdd295c4159c939a5219e7916663a2903.tar.gz
baldeagleos-repo-9df6239cdd295c4159c939a5219e7916663a2903.tar.xz
baldeagleos-repo-9df6239cdd295c4159c939a5219e7916663a2903.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Faker/Faker-21.0.0.ebuild40
-rw-r--r--dev-python/Faker/Manifest1
-rw-r--r--dev-python/Frozen-Flask/Frozen-Flask-1.0.1.ebuild4
-rw-r--r--dev-python/Frozen-Flask/files/Frozen-Flask-1.0.1-hatchling.patch34
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.34.0.ebuild64
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.34.0.ebuild68
-rw-r--r--dev-python/cherrypy/Manifest1
-rw-r--r--dev-python/cherrypy/cherrypy-18.9.0.ebuild67
-rw-r--r--dev-python/coverage/Manifest1
-rw-r--r--dev-python/coverage/coverage-7.3.3.ebuild83
-rw-r--r--dev-python/dep-logic/Manifest1
-rw-r--r--dev-python/dep-logic/dep-logic-0.0.3.ebuild25
-rw-r--r--dev-python/dep-logic/metadata.xml10
-rw-r--r--dev-python/elastic-transport/Manifest1
-rw-r--r--dev-python/elastic-transport/elastic-transport-8.11.0.ebuild64
-rw-r--r--dev-python/fakeredis/Manifest1
-rw-r--r--dev-python/fakeredis/fakeredis-2.20.1.ebuild84
-rw-r--r--dev-python/guessit/Manifest1
-rw-r--r--dev-python/guessit/guessit-3.8.0.ebuild38
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.20.0.ebuild86
-rw-r--r--dev-python/isort/Manifest1
-rw-r--r--dev-python/isort/isort-5.13.2.ebuild76
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/mysqlclient/Manifest1
-rw-r--r--dev-python/mysqlclient/mysqlclient-2.2.1.ebuild92
-rw-r--r--dev-python/pdm/Manifest1
-rw-r--r--dev-python/pdm/pdm-2.11.1.ebuild82
-rw-r--r--dev-python/prompt-toolkit/Manifest1
-rw-r--r--dev-python/prompt-toolkit/prompt-toolkit-3.0.43.ebuild25
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-3.1.15.ebuild76
-rw-r--r--dev-python/pythonfinder/pythonfinder-2.0.6.ebuild5
-rw-r--r--dev-python/readthedocs-sphinx-ext/Manifest1
-rw-r--r--dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.4.ebuild30
-rw-r--r--dev-python/s3transfer/Manifest1
-rw-r--r--dev-python/s3transfer/s3transfer-0.9.0.ebuild43
-rw-r--r--dev-python/sentry-sdk/Manifest1
-rw-r--r--dev-python/sentry-sdk/sentry-sdk-1.39.1.ebuild143
-rw-r--r--dev-python/sounddevice/sounddevice-0.4.6-r3.ebuild (renamed from dev-python/sounddevice/sounddevice-0.4.6-r2.ebuild)1
-rw-r--r--dev-python/trio/Manifest1
-rw-r--r--dev-python/trio/trio-0.23.2.ebuild67
-rw-r--r--dev-python/versioningit/Manifest1
-rw-r--r--dev-python/versioningit/versioningit-3.0.0.ebuild43
-rw-r--r--dev-python/zeroconf/Manifest1
-rw-r--r--dev-python/zeroconf/zeroconf-0.129.0.ebuild56
49 files changed, 1437 insertions, 2 deletions
diff --git a/dev-python/Faker/Faker-21.0.0.ebuild b/dev-python/Faker/Faker-21.0.0.ebuild
new file mode 100644
index 000000000000..974dc4b9560b
--- /dev/null
+++ b/dev-python/Faker/Faker-21.0.0.ebuild
@@ -0,0 +1,40 @@
+# 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="A Python package that generates fake data for you"
+HOMEPAGE="
+ https://github.com/joke2k/faker/
+ https://pypi.org/project/Faker/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
+ !dev-ruby/faker
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
+ epytest
+}
diff --git a/dev-python/Faker/Manifest b/dev-python/Faker/Manifest
index de7ad9b46246..97804bd4b7e7 100644
--- a/dev-python/Faker/Manifest
+++ b/dev-python/Faker/Manifest
@@ -1 +1,2 @@
DIST Faker-20.1.0.tar.gz 1701717 BLAKE2B c213aa69326c80adf2b68b093fb7aa9e9d7aaee06f235d9d8dc3d3b24d9e7b4ad15c7412a9c3539749c58ad47bb63d5f4a0c94dd6318a8539a225450b65ab6b3 SHA512 6241c90d6233e58e763d5de3d6550b9fd9bb33af0f736209edcd60b8d6e0e57eebe3e86fd86c141816ad1817cea949b2a6d16f212413d8748b82370c2bae57b0
+DIST Faker-21.0.0.tar.gz 1701697 BLAKE2B 9f08603101f24b9e245dfa726f38b0e9ee00f208d8f4b06fbc31daa405c5b02779aaf36e2e2177cf8f50f5a63e27f0a63bec166fb3be07269d5a7acae6535ebf SHA512 13cd146ef4c59f1b7318c95be1b637c986d089301d14c46259e6bf3a56f14033f1c3e4a0c813b4b168154be01158b2eee194b204c6eb2930fe5946f357a7ebcb
diff --git a/dev-python/Frozen-Flask/Frozen-Flask-1.0.1.ebuild b/dev-python/Frozen-Flask/Frozen-Flask-1.0.1.ebuild
index 7fa9b6e7dfd4..f374de71d198 100644
--- a/dev-python/Frozen-Flask/Frozen-Flask-1.0.1.ebuild
+++ b/dev-python/Frozen-Flask/Frozen-Flask-1.0.1.ebuild
@@ -25,3 +25,7 @@ RDEPEND="
distutils_enable_sphinx docs \
dev-python/flask-sphinx-themes
distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${P}-hatchling.patch"
+)
diff --git a/dev-python/Frozen-Flask/files/Frozen-Flask-1.0.1-hatchling.patch b/dev-python/Frozen-Flask/files/Frozen-Flask-1.0.1-hatchling.patch
new file mode 100644
index 000000000000..f2c433b0b84f
--- /dev/null
+++ b/dev-python/Frozen-Flask/files/Frozen-Flask-1.0.1-hatchling.patch
@@ -0,0 +1,34 @@
+From 8b2bd9f75deef895e3c9f076419b22a7b1fa63aa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 14 Dec 2023 15:54:39 +0100
+Subject: [PATCH] Fix finding packages witch hatchling >= 1.19.0
+
+Explicitly specify the package name to install, in order to fix
+compatibility with `hatchling >= 1.19.0`. Starting with this version
+(though Frozen-Flask is affected since 1.20.0, due to a bug
+in hatchling), it is necessary to explicitly select packages if they
+do not
+
+As of hatchling >= 1.19.0, it is necessary to explicitly specify
+`packages` to use if they do not fit the default heuristics (i.e. are
+disjoint from the project name).
+
+Since the package is now specified explicitly, the `exclude` rules are
+no longer necessary.
+---
+ pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 2fdfefc..fcf6c1d 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -52,7 +52,7 @@ path = 'flask_frozen/__init__.py'
+ exclude = ['.*']
+
+ [tool.hatch.build.targets.wheel]
+-exclude = ['docs', 'tests']
++packages = ['flask_frozen']
+
+ [tool.hatch.envs.doc]
+ features = ['doc']
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 7592cedc476d..b3b1904223ad 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.33.11.gh.tar.gz 754430 BLAKE2B f206c6eeb9859af85f09bb48298b941fc0c9
DIST boto3-1.33.12.gh.tar.gz 754822 BLAKE2B d21644445c7d95e8aa0ea858cc4cdbe3c88754f1c16b43945e608243b11f7ea557dadf593a8281d895b432eb2f56328c32ce1366086566e2b6b832472757291e SHA512 6e6977e61ceddb1fc4bf7d8c7ba5fbcdcd6028d4aea04327289094d609102e33755f7420eeccc2bbd8e0232ee975d2f2169625c6ff5c98c9428066ca9361cbc5
DIST boto3-1.33.13.gh.tar.gz 754864 BLAKE2B 4dc2900b26610ad10361885ffbdcf2ca55b73a1d665bb2c19f98d0afae619b8cb885d3d5b5fa8e1cda299aab8ac0ccd66a9c85a765c0eeb4fdac2b85d75e7617 SHA512 40489e66fd591c05d58312015a91b5d42485af9d643db163b725a857438ca6b2306b237fd38f685ce4a4380688dcbf734aa8a49c4336bbe5135838bda8e7da82
DIST boto3-1.33.6.gh.tar.gz 752467 BLAKE2B f0f344a9e93ff3ad1dd03b44784a41637d05961855e2cd0700dbb840f98940f387cf81d1eb36cc63579be810f5a7d52c49cdb3831e930f89b1b2026af1e4b357 SHA512 1d3d2dd734621cf94e88015273f6fd4d68ec956145eb2b91fe34920f9abe7786a64e2e7f4057db30e71574e392fff9190944c3d9e6143fd43c5e48f04e9eb2ae
+DIST boto3-1.34.0.gh.tar.gz 754752 BLAKE2B 7044d826916db027af792d7d5026adbdd5424a68500eda40ec6b3d403cd8e712645175c75b1c04a74c57d43be430cab15ff4e06d42c054d5b345089482e440c2 SHA512 c2d8a3325fce8ad8e44847b2214b0b6a64a27fa01ed6982150ae4a59f9fbaf4ee64b15b20323046fb455e1f6de99f355a6503bc2ab9bd0c14bd786cde3307cb4
diff --git a/dev-python/boto3/boto3-1.34.0.ebuild b/dev-python/boto3/boto3-1.34.0.ebuild
new file mode 100644
index 000000000000..ce6135267cf7
--- /dev/null
+++ b/dev-python/boto3/boto3-1.34.0.ebuild
@@ -0,0 +1,64 @@
+# 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"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.9.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 6ed7a7568b1f..07e4b9fdf6e4 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.33.11.gh.tar.gz 12536159 BLAKE2B bce09ad1b93210667e3c1058ab3b435
DIST botocore-1.33.12.gh.tar.gz 12538468 BLAKE2B 1f0008bc523a24ad56fc265d4ce829b078378557280f474f328f235d71522d5bfa898cdce70113309eeb3bedc667fcb27a97093dc89097e94b34bd5a8e6d2594 SHA512 c760dc07e4763bdd24d16ed70e88574e9e95ebe797d6ef362f7a3b3cf0ccae8e3140149cea980884de51fa8d6e8f0bee0b74ab040629cb7f6082e65ce5c4f060
DIST botocore-1.33.13.gh.tar.gz 12542999 BLAKE2B 7a80c3d5bf3a5bcb623eb77447609fbef8efd4391cfe98bbe9c85a4ca10a308bf3b4c9de3340707c392147631318a78c44145a0c2d1457a5c4e79cfb8414aa1f SHA512 9039b6b545ad7fa6f319a9cb20728b9c1ff4e0955e97fd146e580e9b7f6675ba43dc25e90c8222f35c7f24ffa902a8e01cbc0dd5a69daddb7f79cc3e87867023
DIST botocore-1.33.6.gh.tar.gz 12516087 BLAKE2B da3ca22acb5b6ee27eb3c0f7dab4ad43597ab985aa7512f4f4a51c2ca3db80a049e13faaf986dd4a02125f92c088129506651125a826184656250665dc7b7128 SHA512 cae5019d85c9b3afcfd93fe58d0e51c5a6e0769d58b2a8b1285a34ce66be8db34e9c5dc4dc74ff72e0992cdd142d101e3663fa1d68a2779fa9c09de37d2f2001
+DIST botocore-1.34.0.gh.tar.gz 12542563 BLAKE2B 18f92b753f31962672e977aa105a6c59bda845c60c1db4df028e82d3ac77cb59a9430dbd08098b9671ea124652d8e0fa7c67faab061ac109f5a144248c30c46c SHA512 fb537e181129fa073f7e0a68952767f6a219c6ac3a410cbbe774dd3b9339ecc4457a434771b9f47438087215d22423bee33d2e2dfb6b0cf16b16b09c0fe9a793
diff --git a/dev-python/botocore/botocore-1.34.0.ebuild b/dev-python/botocore/botocore-1.34.0.ebuild
new file mode 100644
index 000000000000..9a0240c45f2a
--- /dev/null
+++ b/dev-python/botocore/botocore-1.34.0.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/cherrypy/Manifest b/dev-python/cherrypy/Manifest
index 888526929922..a25017177e9a 100644
--- a/dev-python/cherrypy/Manifest
+++ b/dev-python/cherrypy/Manifest
@@ -1 +1,2 @@
DIST CherryPy-18.8.0.tar.gz 622679 BLAKE2B 673f9a103a901161ee801656fa37fa0a4fcd2d9276a5231e48c1663264eb7f922d5d862018995a345a8485252416fa0229da49b8d265288efce2dccd37d79ff8 SHA512 abacc995c1757b8d0171d57eb59b6e5931c46019d8f0f43479e334bb4f58b61a27541d9d0997d665f81905bc3c89e42d40d8e5a6e3a5f9bf251bc9089ceb5249
+DIST CherryPy-18.9.0.tar.gz 631900 BLAKE2B 5bc0d4315f6b9300ba8fc122858554a6b6476f78ac1fb31b1635707488a4a300e359d2e368dde9996c202a8f42100ef09e298fb923f955e92d7906ed970d2ba9 SHA512 ed2beacedd3417214f45e59567f2a1faf5964745a545360db2f61251a39f50f2a833745832a2c900673029d98062f7e1813db6c342585f8d2bbae0be423edb3a
diff --git a/dev-python/cherrypy/cherrypy-18.9.0.ebuild b/dev-python/cherrypy/cherrypy-18.9.0.ebuild
new file mode 100644
index 000000000000..674388f5579f
--- /dev/null
+++ b/dev-python/cherrypy/cherrypy-18.9.0.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
+PYPI_NO_NORMALIZE=1
+PYPI_PN="CherryPy"
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CherryPy is a pythonic, object-oriented HTTP framework"
+HOMEPAGE="
+ https://cherrypy.dev/
+ https://github.com/cherrypy/cherrypy/
+ https://pypi.org/project/CherryPy/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="ssl test"
+
+RDEPEND="
+ >=dev-python/cheroot-8.2.1[${PYTHON_USEDEP}]
+ >=dev-python/portend-2.1.1[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ dev-python/zc-lockfile[${PYTHON_USEDEP}]
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ ssl? (
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/routes[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ dev-python/objgraph[${PYTHON_USEDEP}]
+ dev-python/path[${PYTHON_USEDEP}]
+ dev-python/requests-toolbelt[${PYTHON_USEDEP}]
+ dev-python/pytest-services[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -i -e '/cov/d' pytest.ini || die
+ # upstream has been using xfail to mark flaky tests, then added
+ # xfail_strict... not a good idea
+ sed -i -e '/xfail_strict/d' pytest.ini || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ [[ ${EPYTHON} == python3.11 ]] && EPYTEST_DESELECT+=(
+ # broken by changes in traceback output
+ cherrypy/test/test_request_obj.py::RequestObjectTests::testErrorHandling
+ cherrypy/test/test_tools.py::ToolTests::testHookErrors
+ )
+
+ epytest
+}
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 532f29c60c90..cc4a89a1f253 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1 +1,2 @@
DIST coverage-7.3.2.tar.gz 764541 BLAKE2B 5301a45a1618582d6b7bc1c887fdfdc7ef612082675b271e5ab840f2adc357c6a01f59ba5571e6dba61db61c85ee66d40af46b3509dfbf5c996fcf9fd6b2a614 SHA512 94e3b0bae2f84d31448a717f105e4f03e485a47d9498e73e86eca2f040d0980e514e3d9264f5349f70ea93fc985161d89156d0faa444d28cc7a07e51db4e1a46
+DIST coverage-7.3.3.tar.gz 768726 BLAKE2B 0de19dc69341ba98b0581be6c6c4844f699689d9e071e3f473a4de65f4f7d1e8bf673a18428f1d5fe23150068636c1e0b7f8e84d9a8626488aba23a998265857 SHA512 758090c46bac90096d5fd732aa447c91d0db0c0cdedbb607a57141c86882c23d42791b75e55436e580dffdd585d87e35a213e94240268c2992c1122246e4df31
diff --git a/dev-python/coverage/coverage-7.3.3.ebuild b/dev-python/coverage/coverage-7.3.3.ebuild
new file mode 100644
index 000000000000..4d6d3b0034f8
--- /dev/null
+++ b/dev-python/coverage/coverage-7.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_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+ https://coverage.readthedocs.io/en/latest/
+ https://github.com/nedbat/coveragepy/
+ https://pypi.org/project/coverage/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.{9..10})
+"
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/addopts/s:-q -n auto::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+test_tracer() {
+ local -x COVERAGE_TEST_TRACER=${1}
+ einfo " Testing with the ${COVERAGE_TEST_TRACER} tracer ..."
+ epytest -p flaky -p hypothesis -p xdist tests
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: fails because of additional "Terminated" print on SIGTERM
+ tests/test_concurrency.py::SigtermTest::test_sigterm_threading_saves_data
+ # broken because of pytest plugins explicity loaded
+ tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
+ )
+ local EPYTEST_IGNORE=(
+ # pip these days insists on fetching build deps from Internet
+ tests/test_venv.py
+ )
+
+ "${EPYTHON}" igor.py zip_mods || die
+
+ local -x COVERAGE_TESTING=True
+ # TODO: figure out why they can't be imported inside test env
+ local -x COVERAGE_NO_CONTRACTS=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+
+ local prev_opt=$(shopt -p nullglob)
+ shopt -s nullglob
+ local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+ ${prev_opt}
+
+ if [[ -n ${c_ext} ]]; then
+ cp "${c_ext}" \
+ coverage/ || die
+ test_tracer c
+ rm coverage/*.so || die
+ else
+ test_tracer py
+ fi
+}
diff --git a/dev-python/dep-logic/Manifest b/dev-python/dep-logic/Manifest
new file mode 100644
index 000000000000..e0d5a2ee21e5
--- /dev/null
+++ b/dev-python/dep-logic/Manifest
@@ -0,0 +1 @@
+DIST dep_logic-0.0.3.tar.gz 27138 BLAKE2B 647473a3a14236e1103994936012f6a19602d1c33bb0a0dd595859fdcdba319b45f60adc244633fb01a805deda5250a03ff96f09651b68e98eb525b96cb02e4f SHA512 d69811e15412824c43a14cb58ae4ae38ae213ee927adb2ca01980c5ca90aab55d82096e53eab0b3a337b229943001c2df6c03c1817296f9b2cb4b21d28d23e4c
diff --git a/dev-python/dep-logic/dep-logic-0.0.3.ebuild b/dev-python/dep-logic/dep-logic-0.0.3.ebuild
new file mode 100644
index 000000000000..b25a50af109a
--- /dev/null
+++ b/dev-python/dep-logic/dep-logic-0.0.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 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} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python dependency specifications supporting logical operations"
+HOMEPAGE="
+ https://github.com/pdm-project/dep-logic/
+ https://pypi.org/project/dep-logic/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/packaging-22[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/dep-logic/metadata.xml b/dev-python/dep-logic/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/dep-logic/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/elastic-transport/Manifest b/dev-python/elastic-transport/Manifest
index 00992c931f13..afc5bb6d7276 100644
--- a/dev-python/elastic-transport/Manifest
+++ b/dev-python/elastic-transport/Manifest
@@ -1 +1,2 @@
DIST elastic-transport-python-8.10.0.gh.tar.gz 71836 BLAKE2B 1be9a93b6b8cb9b7987de721e65ce532fb247fca931179f99dcdee197cec314a8b3626e0db569a494bab45a194530abccbfd8946d66d03c6bedfb17252a8fb3b SHA512 a883509ec8f0000c4a8aeb435d4dee1cbc4563157668c5e1378e16be9d1a5f5a16927de4df9c5244ca6f1c6f2f273ad513c2d29beaa081b11b34416da2883359
+DIST elastic-transport-python-8.11.0.gh.tar.gz 71944 BLAKE2B 9f5199b171f57169e2ca9d77f225a7ad1d67cc28550a41648f37305342f2cddb2c570e0b314057e49d4a5948ceacdbfbe3d928a456ef47fd334abebbf8c6c718 SHA512 b2ab09c63e5824d8cb59ed78728e4670115eee56bb07310e4d8a083b86eace4bc2dfc0dbefc4346906338acf195b193c0f2fc99a0dc1190ac30950fbe6fbcc70
diff --git a/dev-python/elastic-transport/elastic-transport-8.11.0.ebuild b/dev-python/elastic-transport/elastic-transport-8.11.0.ebuild
new file mode 100644
index 000000000000..82c91f48d325
--- /dev/null
+++ b/dev-python/elastic-transport/elastic-transport-8.11.0.ebuild
@@ -0,0 +1,64 @@
+# 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
+
+MY_P=elastic-transport-python-${PV}
+DESCRIPTION="Transport classes and utilities shared among Python Elastic client libraries"
+HOMEPAGE="
+ https://github.com/elastic/elastic-transport-python/
+ https://pypi.org/project/elastic-transport/
+"
+SRC_URI="
+ https://github.com/elastic/elastic-transport-python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.26.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-httpserver[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/furo \
+ dev-python/sphinx-autodoc-typehints
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e 's:, *<[0-9.]*::' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # fragile to random warnings
+ tests/node/test_http_aiohttp.py::TestAiohttpHttpNode::test_uses_https_if_verify_certs_is_off
+ tests/node/test_urllib3_chain_certs.py::test_assert_fingerprint_in_cert_chain
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -o addopts=
+}
diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest
index 69a01305f1b7..073adb9ec77f 100644
--- a/dev-python/fakeredis/Manifest
+++ b/dev-python/fakeredis/Manifest
@@ -1 +1,2 @@
DIST fakeredis-2.20.0.tar.gz 122679 BLAKE2B 2fd982761fe6e8bd66d2d93b7140b9b97e20d33e40827ac9ab7d050d6e9814891e8a1f95a4f789bc78a1589fe215b40834876da5a3dd0a0ea6f8f7a3489ba400 SHA512 3c71a42df92a92b02c4774cf120c697a5e7f376768923b74561fb4cbe10605b4d57ea826d2b8c4d304ff1e12cf4c84d0fbebc34edd0afa0b0241ff7cb707e5de
+DIST fakeredis-2.20.1.tar.gz 122874 BLAKE2B 65404806c15c9fb9b1a59f04ef64804fae9034ce53658058edea03fc9ca5b3348129a143d6f86566eebcb3b052316ce120d8d04b6ad52d8c5ede81db6906713e SHA512 7ead4a7b5eed318380471ef421a0c59a33142067a104f5e0530e066b62a12f26011233366619ea068cfa71eaf4c617e89a94d62f1a2cda366783e7614e5aa32e
diff --git a/dev-python/fakeredis/fakeredis-2.20.1.ebuild b/dev-python/fakeredis/fakeredis-2.20.1.ebuild
new file mode 100644
index 000000000000..63109e21e629
--- /dev/null
+++ b/dev-python/fakeredis/fakeredis-2.20.1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 2020-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Fake implementation of redis API for testing purposes"
+HOMEPAGE="
+ https://github.com/cunla/fakeredis-py/
+ https://pypi.org/project/fakeredis/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.2[${PYTHON_USEDEP}]
+ <dev-python/sortedcontainers-3[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # also lupa
+ test/test_aioredis2.py::test_failed_script_error
+ # TODO
+ "test/test_fakeredis.py::test_set_get_nx[StrictRedis]"
+ "test/test_fakeredis.py::test_lpop_count[StrictRedis]"
+ "test/test_fakeredis.py::test_rpop_count[StrictRedis]"
+ "test/test_fakeredis.py::test_zadd_minus_zero[StrictRedis]"
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_channels[StrictRedis]"
+ test/test_mixins/test_set_commands.py::test_smismember_wrong_type
+ # new redis-server?
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[StrictRedis]"
+ # json ext
+ test/test_json/test_json.py
+ test/test_json/test_json_arr_commands.py
+ )
+ local EPYTEST_IGNORE=(
+ # these tests fail a lot...
+ test/test_hypothesis.py
+ )
+ local args=(
+ # tests requiring lupa (lua support)
+ -k 'not test_eval and not test_lua and not test_script'
+ )
+ # Note: this package is not xdist-friendly
+ epytest "${args[@]}"
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1
+ EOF
+
+ # Run the tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/guessit/Manifest b/dev-python/guessit/Manifest
index 01f39379ffeb..42bf09285949 100644
--- a/dev-python/guessit/Manifest
+++ b/dev-python/guessit/Manifest
@@ -1 +1,2 @@
DIST guessit-3.7.1.tar.gz 161488 BLAKE2B 66851898aad5386692bd3535e01e74918b31c59d56c2b2a4ead3d126f0ce30c4f7388bcaa0acd06652f3b72bba99aacf29bd7d9d8abbc38d38f2d259a77bbe17 SHA512 4932407ca3a283a756291a69ef4cd4dcd96ea9c37b6d30331f134b2285960afb1f6adecdb299474ef7dfdea4b6e2e029ddab0789998efe7aea13d0e5bb8c54d6
+DIST guessit-3.8.0.tar.gz 271285 BLAKE2B 67ff29739839c79b95ad6022ad0329698af62abcbbbed7e9f52ba1c2e60f5c69defda5e87d97607d3eaeeb7668a9f4b82de05140f23555c800731c2236b0f7e6 SHA512 968e8f27dd41dcaece27444cd5117990726ef73467cedbc008dcf0fe2d1f2010209253e2fa6d645e30d9eaffe613080f1c2d77bda772227c1e6e04910d58f7ad
diff --git a/dev-python/guessit/guessit-3.8.0.ebuild b/dev-python/guessit/guessit-3.8.0.ebuild
new file mode 100644
index 000000000000..5da0cfe8d159
--- /dev/null
+++ b/dev-python/guessit/guessit-3.8.0.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="Python library for guessing information from video filenames"
+HOMEPAGE="
+ https://github.com/guessit-io/guessit/
+ https://pypi.org/project/guessit/
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/babelfish-0.5.5[${PYTHON_USEDEP}]
+ >=dev-python/rebulk-3.2.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # Disable benchmarks as they require unavailable pytest-benchmark.
+ guessit/test/test_benchmark.py
+)
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index a7c0e2d173bd..e9031a1342fd 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1,3 +1,4 @@
DIST hatch-hatchling-v1.18.0.gh.tar.gz 386992 BLAKE2B 9597d139ca0d59b82862a4b89208bf61ceb0859ed37e2f62c14f7f26550638716cd375082cae6ce0e233f92297b97015af5587144c2d801ecacdb15a07f32cf2 SHA512 e71e51fdace9b9aa276c2efba3a81a030ed934c21283057f83a6ce4a09f8feed8cd4386088280c9fe1381dd92e574daeda8c845a6a2cf6a015708126ca9788d7
DIST hatch-hatchling-v1.19.0.gh.tar.gz 601176 BLAKE2B 1625e8a3da1158328c5aba5fbec6282cd6603ad34ed48ec4fd2ca3e5bd79141f4bb98f631d50cf9796fb1cbbd1274e4948d0a535a65499f7d0209111c323f043 SHA512 eacbe002e5905468c4374c72dd53fdc5ab4b22d8ea0ce6ca56a12c6bf97b67d5d711dbbaa85cf1a11995fac9fe42c99cf870cb6a46705ea738081ec689ac6468
DIST hatch-hatchling-v1.19.1.gh.tar.gz 761441 BLAKE2B 622cf0c799758506c2f13840103d886e739dade12362bd21bd8c6336f5bb7da235517b94cfece8835e5dd476dbac7f035a77b055ca0e11f2cee513572fc9a20e SHA512 4ccc857771fa7d0aad05e8023b4f7c021dd919d92385e23684261f83d6323149f1b347900ddbe664af97d377e329f6ea3a8ad011b1834057a699186743493e08
+DIST hatch-hatchling-v1.20.0.gh.tar.gz 761937 BLAKE2B 7e413a98d21fde46676ecb4264875f6addcd18efcf73d208cfb2ce36bc07ff7889c5a0884ac9f0c1537801f7ac6ec73f0fc74f18ca202b2b4d8ee13328ee912a SHA512 5b4c31825238fa21002fb72fea726a4bd2f16d39f1b4026506ab662df20a03e49eff912d39c34091335aeea448bf2a1b07e6a1d723a26a16794792ed0b17f2b1
diff --git a/dev-python/hatchling/hatchling-1.20.0.ebuild b/dev-python/hatchling/hatchling-1.20.0.ebuild
new file mode 100644
index 000000000000..88c67270ca27
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.20.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1
+
+TAG=${P/-/-v}
+MY_P=hatch-${TAG}
+DESCRIPTION="Modern, extensible Python build backend"
+HOMEPAGE="
+ https://pypi.org/project/hatchling/
+ https://github.com/pypa/hatch/
+"
+SRC_URI="
+ https://github.com/pypa/hatch/archive/${TAG}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/backend
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+# deps are listed in backend/src/hatchling/ouroboros.py
+RDEPEND="
+ >=dev-python/editables-0.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.3[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-1.2.2[${PYTHON_USEDEP}]
+ ' 3.10)
+ dev-python/trove-classifiers[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/atomicwrites[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x EPYTEST_DESELECT=(
+ # these run pip to install stuff
+ tests/backend/dep/test_core.py::test_dependency_found
+ tests/backend/dep/test_core.py::test_extra_met
+ tests/backend/dep/test_core.py::test_extra_no_dependencies
+ tests/backend/dep/test_core.py::test_extra_unmet
+ tests/backend/dep/test_core.py::test_unknown_extra
+ tests/backend/dep/test_core.py::test_version_unmet
+ # broken if CARGO is set
+ tests/backend/builders/test_app.py::TestBuildBootstrap::test_no_cargo
+ )
+
+ # top-level "tests" directory contains tests both for hatch
+ # and hatchling
+ cd "${WORKDIR}/${MY_P}" || die
+ local -x PYTHONPATH="src:${PYTHONPATH}"
+ # sigh; standalone test suites are overrated, right?
+ echo "__version__ = '${PV}'" > src/hatch/_version.py || die
+ # tests mock cargo subprocess call but the backend raises if CARGO
+ # is not set and shutil.which() can't find it
+ local -x CARGO=cargo
+ epytest tests/backend
+}
diff --git a/dev-python/isort/Manifest b/dev-python/isort/Manifest
index b0354b09e387..268effa60bae 100644
--- a/dev-python/isort/Manifest
+++ b/dev-python/isort/Manifest
@@ -1,3 +1,4 @@
DIST isort-5.12.0.gh.tar.gz 743141 BLAKE2B a7f8deef02b57162eebe15b35e71382c654372a80dedba7eee63d0c9b0899c053fb517401585af17014db3cf9ed44089f6cbd1e2b0ed17393cc667de06bfbddd SHA512 ceb861d1a077be6fecd82fde775bded1fb676c77135e2004c92a6221762e0b3ff6c1071d17957e1add4062ec26ba6c9264e4905724f2c659339cbd0601f4b45e
DIST isort-5.13.0.gh.tar.gz 753826 BLAKE2B 074e8b762b304618a2291d96dc9e18061e5303f3e6772479e8eda42c687cf289c12c73ce585c869df754b244bf14d59c6d2eba10877756287d88f27a3d470939 SHA512 3c5a170b1526ec58f1c774e4b55e2227df0af23eebd7a387d61cd3eaa0a698b5ad22a0be81a87d4e6a026030ffbdaea0f23331a43e28b5df98bf33b7afe2a42d
DIST isort-5.13.1.gh.tar.gz 754890 BLAKE2B 53168670d38efa9fba549a32235c47781e200e7ee36289514acc19b127fa5a99d9d97305fbeff1afa9dd6f8f57385f0b01ce57b4bd0ee64e255bcfe144fadbbf SHA512 23a5f7579e327f109575454e5443ee039c207aa0b6f6ad35509cf514b45a7a3fcae116fd8ee40c96d717694cfd85bd7f431481b1a456b7390f914abec2460f42
+DIST isort-5.13.2.gh.tar.gz 755256 BLAKE2B 4cc8a0209ba954d93c030e6ad038933b50aa2f17b173762f598bc8038f36f72ecd1e7a3f6e73398bbfc99f464d14927f77044ca68126815023a8d456497985a1 SHA512 fe2bd27f0aa6219d44c3124782d400338a801a911d6a09ad51e7f80cbcbce250838350ad6cc80a35f641e0a319778ddcfb4dc61c8c76999ebc63a5147953e378
diff --git a/dev-python/isort/isort-5.13.2.ebuild b/dev-python/isort/isort-5.13.2.ebuild
new file mode 100644
index 000000000000..dd9ddefcc563
--- /dev/null
+++ b/dev-python/isort/isort-5.13.2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A python utility/library to sort imports"
+HOMEPAGE="
+ https://github.com/PyCQA/isort/
+ https://pypi.org/project/isort/
+"
+SRC_URI="
+ https://github.com/PyCQA/isort/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/black[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/natsort[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unbundle tomli
+ sed -i -e 's:from ._vendored ::' isort/settings.py || die
+ rm -r isort/_vendored || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ cp -a "${BUILD_DIR}"/{install,test} || die
+ local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
+
+ # Install necessary plugins
+ local p
+ for p in example*/; do
+ pushd "${p}" >/dev/null || die
+ distutils_pep517_install "${BUILD_DIR}"/test
+ popd >/dev/null || die
+ done
+
+ local EPYTEST_IGNORE=(
+ # Excluded from upstream's test script
+ tests/unit/test_deprecated_finders.py
+ )
+
+ if ! has_version "dev-python/pylama[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/unit/test_importable.py
+ tests/unit/test_pylama_isort.py
+ )
+ fi
+
+ epytest tests/unit
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..e9da2ac43cac 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 493 BLAKE2B 0df8bce19bc80f79f8e76bcef5a4c2caf333365fe0cb9a3c076b7858bceded5a3e58921474f866a2709dd657b7ed330c1ec4a7f9d7bab0fcf1bc92d77cabc32d SHA512 ea2a1adcb133ac5fc951ba1aa90ef1ce3dfcc424e59727591763d4875aa044a74188be2d15fd89c6b2e83ed6ea04ec3d9851ed584ae79d2c2c127bde7d994b48
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 736a1167c898..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
-
- <origin>gentoo-guru-overlay</origin>
+ <maintainer type="person">
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/mysqlclient/Manifest b/dev-python/mysqlclient/Manifest
index d46a11d00ae7..cb6466c28227 100644
--- a/dev-python/mysqlclient/Manifest
+++ b/dev-python/mysqlclient/Manifest
@@ -1 +1,2 @@
DIST mysqlclient-2.2.0.tar.gz 89543 BLAKE2B 1e75d37825b81300103d980174d12986d7d02fa2f958ebbdb3d8a2ecea498a8afd9f43c2e3d46a88109364bc0ba172f91c7d5853ed4bd173ef34bc451d31c7b3 SHA512 c392bfc173c2a2e20821b862c3f23621bcd0c20884f58623c345921aaa4f0557b3f75e75e5577a0df150adf119ec008af5ad1fcbfe11248d73918c0a211e8df9
+DIST mysqlclient-2.2.1.tar.gz 89966 BLAKE2B b5098ea4afe8ba720c40eda2f0f5da043622bed51a123e225530d505edfef2f02efba477238d73f343a6cc4969bf021156e15528f05a12d905ea6231e47d65bd SHA512 3ff3823cef4662268387e5c13d006595219c5a3371201eb251d84db5eec028b32fd7b672dbdac9f4dffa906fddcfc9a5ee130e3b03e4dc0cfb060411ad75eea8
diff --git a/dev-python/mysqlclient/mysqlclient-2.2.1.ebuild b/dev-python/mysqlclient/mysqlclient-2.2.1.ebuild
new file mode 100644
index 000000000000..90e0876302d0
--- /dev/null
+++ b/dev-python/mysqlclient/mysqlclient-2.2.1.ebuild
@@ -0,0 +1,92 @@
+# 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 pypi
+
+DESCRIPTION="Python interface to MySQL"
+HOMEPAGE="
+ https://pypi.org/project/mysqlclient/
+ https://github.com/PyMySQL/mysqlclient/
+"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+ dev-db/mysql-connector-c:0=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-db/mariadb[server]
+ )
+"
+
+distutils_enable_sphinx doc
+distutils_enable_tests pytest
+
+src_test() {
+ rm -r src || die
+
+ local datadir="${T}/mysql" \
+ install_log="${T}/mysqld_install.log" \
+ pidfile="${T}/mysqld.pid" \
+ socket="${T}/mysqld.sock" \
+ log="${T}/mysqld.log"
+ einfo "Creating test MySQL instance ..."
+ if ! mysql_install_db \
+ --no-defaults \
+ --auth-root-authentication-method=normal \
+ --basedir="${EPREFIX}/usr" \
+ --datadir="${datadir}" >& "${install_log}"
+ then
+ cat "${install_log}"
+ die "Failed to create database"
+ fi
+
+ einfo "Starting test MySQL instance ..."
+ mysqld \
+ --no-defaults \
+ --character-set-server=utf8 \
+ --pid-file="${pidfile}" \
+ --socket="${socket}" \
+ --skip-networking \
+ --datadir="${datadir}" >& "${log}" &
+
+ local i timeout=10
+ einfo "Waiting for MySQL to start for up to ${timeout} seconds ..."
+ for i in seq 1 ${timeout}; do
+ [[ -S "${socket}" ]] && break
+ sleep 1
+ done
+ if [[ ! -S "${socket}" ]]; then
+ cat "${log}"
+ die "MySQL failed to start in ${timeout} seconds"
+ fi
+
+ cat > "${T}/mysql.cnf" <<- EOF
+ [MySQLdb-tests]
+ socket = ${socket}
+ user = root
+ database = test
+ EOF
+
+ distutils-r1_src_test
+
+ einfo "Stopping test MySQL instance ..."
+ pkill -F "${pidfile}" &>/dev/null
+}
+
+python_test() {
+ local -x TESTDB="${T}/mysql.cnf"
+ epytest
+}
diff --git a/dev-python/pdm/Manifest b/dev-python/pdm/Manifest
index 77481561e6f2..f520532b57ba 100644
--- a/dev-python/pdm/Manifest
+++ b/dev-python/pdm/Manifest
@@ -1 +1,2 @@
DIST pdm-2.10.4.tar.gz 2589461 BLAKE2B 83366412f8b222067b33386a1a8fb0759945d22814da96b4c20e3a9bc459d6ad37f51e87720032249090c13e333becc33f4da482338c494af5fa49a578d4c308 SHA512 7e165f497a1cf1993554277ccf347410893f7635748d8d5a43dba1bc6156ea7655045c6ac865b96ff2e44d736b963fde5921a4710628201dd88c20d4fa7014f2
+DIST pdm-2.11.1.tar.gz 2595425 BLAKE2B cebaf5a86045a9826a8d6a77985a064fe3e05af403818a4629f7a978a58a4fd07e4d12ba4a69542cd4cf2a090d28a826ebadf0d703543b0551f49b61039d6d38 SHA512 e62bd64b1b302bffe0f7f18a68244b108a10969108ce98df028bd56662b336db8bf019fb1d516cc1dc579b838c674ef8601b8f7056e8547a89c5d3311cd037d9
diff --git a/dev-python/pdm/pdm-2.11.1.ebuild b/dev-python/pdm/pdm-2.11.1.ebuild
new file mode 100644
index 000000000000..40acfe22cc44
--- /dev/null
+++ b/dev-python/pdm/pdm-2.11.1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 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 pypi
+
+DESCRIPTION="Python package and dependency manager supporting the latest PEP standards"
+HOMEPAGE="
+ https://pdm-project.org/
+ https://github.com/pdm-project/pdm/
+ https://pypi.org/project/pdm/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ <dev-python/dep-logic-1.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ dev-python/truststore[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ dev-python/requests-toolbelt[${PYTHON_USEDEP}]
+ >=dev-python/unearth-0.12.1[${PYTHON_USEDEP}]
+ <dev-python/findpython-1[${PYTHON_USEDEP}]
+ >=dev-python/findpython-0.4.0[${PYTHON_USEDEP}]
+ dev-python/tomlkit[${PYTHON_USEDEP}]
+ dev-python/shellingham[${PYTHON_USEDEP}]
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+ >=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
+ dev-python/installer[${PYTHON_USEDEP}]
+ dev-python/cachecontrol[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-httpserver[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ 'tests/cli/test_build.py::test_build_with_no_isolation[False]'
+ tests/test_project.py::test_access_index_with_auth
+ tests/cli/test_others.py::test_build_distributions
+ 'tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/artifacts/demo-0.0.1.tar.gz]'
+ 'tests/models/test_candidates.py::test_expand_project_root_in_url[-e file:///${PROJECT_ROOT}/tests/fixtures/projects/demo-#-with-hash#egg=demo]'
+ # hangs on interactive keyring prompts
+ tests/cli/test_config.py::test_repository_overwrite_default
+ tests/cli/test_config.py::test_hide_password_in_output_repository
+ tests/cli/test_config.py::test_hide_password_in_output_pypi
+ # junk output, sigh
+ tests/cli/test_others.py::test_info_command_json
+ # why does it try to use python 2.7?!
+ tests/cli/test_run.py::test_import_another_sitecustomize
+ )
+ [[ ${EPYTHON} != python3.10 ]] && EPYTEST_DESELECT+=(
+ # test seems hardcoded to 3.10
+ tests/test_project.py::test_project_packages_path
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -m "not network and not integration and not path" \
+ -p pytest_mock
+}
diff --git a/dev-python/prompt-toolkit/Manifest b/dev-python/prompt-toolkit/Manifest
index b0114d627711..0d4ae474d976 100644
--- a/dev-python/prompt-toolkit/Manifest
+++ b/dev-python/prompt-toolkit/Manifest
@@ -1 +1,2 @@
DIST prompt_toolkit-3.0.41.tar.gz 424620 BLAKE2B 03224acf95a5937996bfdb9692b719752fab693923e5dab7f3aa1c960a9bcf2bc135c0deee25982a16937d5c12f55be9d3b70c4d0d400ba9f6ccb0070a66bf7a SHA512 ac8782b06275df01b32ccfaf6055b3b1bf4ff4aecfa76599b143025d79a7459f2722c659363d288361953105ef617337de1c5a71b693f7c28716d0c3df0e2c75
+DIST prompt_toolkit-3.0.43.tar.gz 425733 BLAKE2B 663b3f675e004de9f2d6dce09320bc0bbd6a47f5a581d5b49bb5fe36f0d3eee2022522eac09dccc5bceaf6227e17abe475f133c53b912b3b84f940877aaa6b9a SHA512 833666da9bc7259eec2ee357cb936001880ac1f88c33a1e346ef5e4b8c3fcd37ff7d7102e590d509b0b0ac1e046fcd9d2a7046857c9e95dc3890f1b70c62544c
diff --git a/dev-python/prompt-toolkit/prompt-toolkit-3.0.43.ebuild b/dev-python/prompt-toolkit/prompt-toolkit-3.0.43.ebuild
new file mode 100644
index 000000000000..9f65b83da4ba
--- /dev/null
+++ b/dev-python/prompt-toolkit/prompt-toolkit-3.0.43.ebuild
@@ -0,0 +1,25 @@
+# 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 pypi
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="
+ https://pypi.org/project/prompt-toolkit/
+ https://github.com/prompt-toolkit/python-prompt-toolkit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-python/wcwidth[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index 7d3748a9b737..032deab5bf2a 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -2,5 +2,6 @@ DIST psycopg-3.1.10.gh.tar.gz 490875 BLAKE2B 26b82aa34f0eecc3e15943390b74d82e838
DIST psycopg-3.1.12.gh.tar.gz 496491 BLAKE2B df70ae76cb740cbeb313925fafd23650a5d9cb584cb79409eb55ab73260c698758c78878bfa0fbe6c6f1b6f8e55fb91290403246360776176be1fdb758d7361d SHA512 52489337ee4bfc4fe3070a731661264238646f50c86ecf9b4c902da1ab050b2ba6a8f8d1322b0f57f368d3c93f7ec3dd59f7970319e2df8eb52c728a5d7fecc1
DIST psycopg-3.1.13.gh.tar.gz 500475 BLAKE2B c00176335808ba0fb15dc23fd93e394926517cb2c7e072a35ba909b0b1b128bdecf8305ae1d4e494a5b1f04fee28e98b862ef9f10bd152de6eb9a8e73cf8b5dc SHA512 489ea9f562be6aaaa81b8c96e47b65a1ec0f2f59587f7dc931744d9f6faede1b068fd6e464f530096cac276e1f73e99f069aaab5bd2c3955aa2e0511699659f3
DIST psycopg-3.1.14.gh.tar.gz 502307 BLAKE2B 848d1174beb6ec78eaf300f19465c0e2c90829e51e38a8a526271e082a37add32d4e5781f84536fc3c4db6d1c29af5da70bf0374f1b011c10fa65f1c86487b25 SHA512 af96bc4a79944872049bfb0b1d45ad2ec55e8bfbbf729bdbe76eeeaaffc925c448ca5571214d6865129fd17feeb447e896e46e3d4a1e0b9649802761ae28efb4
+DIST psycopg-3.1.15.gh.tar.gz 502669 BLAKE2B 21fa50d7b314d2e71e5938346145ce8cf2582e8e756e96b64c08f3f48c07d0bef765d3e96edb9e39b479a94488de878185d2303f8cd5767cdb00372ebd3ae479 SHA512 655812616d7ff2d5338f719016db1500496f8e4eeb4559ab10b109e7c1331e5d0a814205217845caed16dc19e68f58ac5e3a4d6d2138b5db6bf079c396644c5d
DIST psycopg2-2.9.4.tar.gz 384017 BLAKE2B 4bc0afcc890c8a257c1ccd5c6e4e5301857a80f8b1428aa46c1473c9e18f5d2914a2e592c13336b06106217bb334d9b0321835bdd123f1627cbeb29dedf97bf7 SHA512 259088e42e0ab0d8a1a0ccf04f5e560f32c6179b4a0a0059e91bcf269baa8f4b0f1f949c332c640a2438c927a29b2c144078a861f8e18ba9c764da7c93c73b8d
DIST psycopg2-2.9.9.tar.gz 384926 BLAKE2B 8418fca1329703cedfc86be74d85cae5133a0604bb8a21fa43e5359a46626d38ef227d0cd8fbbeb497e2db517a469d7f3e86b74ef9163617a547e999073a6b4c SHA512 a691fd09762221e854861dedce37b05e5354e0701feea470a6d5046960056ef02a8c9ecfa751adeba485271ea7d5834643b7d3a3c3f3270087f5ed9c68509f5f
diff --git a/dev-python/psycopg/psycopg-3.1.15.ebuild b/dev-python/psycopg/psycopg-3.1.15.ebuild
new file mode 100644
index 000000000000..4d6fb5352ac1
--- /dev/null
+++ b/dev-python/psycopg/psycopg-3.1.15.ebuild
@@ -0,0 +1,76 @@
+# 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="PostgreSQL database adapter for Python"
+HOMEPAGE="
+ https://www.psycopg.org/psycopg3/
+ https://github.com/psycopg/psycopg/
+ https://pypi.org/project/psycopg/
+"
+SRC_URI="
+ https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S=${WORKDIR}/${P}/psycopg
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+DEPEND="
+ >=dev-db/postgresql-8.1:*
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-db/postgresql-8.1[server]
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/dnspython[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_test() {
+ # tests are lurking in top-level directory
+ cd .. || die
+
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" test || die
+
+ local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for the psycopg_pool package
+ tests/pool
+ # some broken mypy magic
+ tests/test_module.py::test_version
+ tests/test_module.py::test_version_c
+ tests/test_typing.py
+ tests/crdb/test_typing.py
+ # TODO, relying on undefined ordering in Python?
+ tests/test_dns_srv.py::test_srv
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # leak and timing tests are fragile whereas slow tests are slow
+ epytest -p anyio -k "not leak" -m "not timing and not slow"
+}
diff --git a/dev-python/pythonfinder/pythonfinder-2.0.6.ebuild b/dev-python/pythonfinder/pythonfinder-2.0.6.ebuild
index eb12a92eb11b..cad9a2350d38 100644
--- a/dev-python/pythonfinder/pythonfinder-2.0.6.ebuild
+++ b/dev-python/pythonfinder/pythonfinder-2.0.6.ebuild
@@ -21,6 +21,11 @@ KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
>=dev-python/pydantic-2[${PYTHON_USEDEP}]
"
+BDEPEND="
+ test? (
+ dev-python/click[${PYTHON_USEDEP}]
+ )
+"
distutils_enable_tests pytest
diff --git a/dev-python/readthedocs-sphinx-ext/Manifest b/dev-python/readthedocs-sphinx-ext/Manifest
index 9efa517bc8e6..b935b3c6573f 100644
--- a/dev-python/readthedocs-sphinx-ext/Manifest
+++ b/dev-python/readthedocs-sphinx-ext/Manifest
@@ -1 +1,2 @@
DIST readthedocs-sphinx-ext-2.2.3.tar.gz 12176 BLAKE2B 9467e3d08baa15fe64ce0a718e922e4f8dc6c0bd76fd8a53f4bae66114bbd043bbcca71a2b7b152a162d7ca89b102668ccdc9ab9b0904e0caf2e0ff953fc489c SHA512 f8c9b2b62c73307906fc61a2dacc0c9079c1b81920718fbd2c60a45e22da7e581b9fa60aca83003081753603cb904187cae6075922a62616554c8fcc4c1d7991
+DIST readthedocs-sphinx-ext-2.2.4.tar.gz 12474 BLAKE2B 1911f2a161d38c89b96d194bc5eaa1d015f2a9ef1350e9f01d50a2f575f8486618ae79f12b3b6a15a61ffe85a0c6d9f1f1560fa663ba1faa6aeda916a6cc9f05 SHA512 010116cb842cbf0a389d7e94196bf6122422584a843ff549d96384a8424f12458aec6493e412e28c9158082ca624fa2ff8d8cbbfc7d7c3e7e61aa69bef40c4b2
diff --git a/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.4.ebuild b/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.4.ebuild
new file mode 100644
index 000000000000..41db74e52435
--- /dev/null
+++ b/dev-python/readthedocs-sphinx-ext/readthedocs-sphinx-ext-2.2.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2020-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="Code specific for Read the Docs and Sphinx"
+HOMEPAGE="
+ https://github.com/readthedocs/readthedocs-sphinx-ext/
+ https://pypi.org/project/readthedocs-sphinx-ext/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/jinja-2.9[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+"
+
+# unittest should be sufficient but tests are very verbose, so pytest's
+# output capture is most welcome
+distutils_enable_tests pytest
diff --git a/dev-python/s3transfer/Manifest b/dev-python/s3transfer/Manifest
index 68515f49b1f7..bfa75f5d0baa 100644
--- a/dev-python/s3transfer/Manifest
+++ b/dev-python/s3transfer/Manifest
@@ -2,3 +2,4 @@ DIST s3transfer-0.7.0.tar.gz 132904 BLAKE2B cdb1315d4c6ca2ae36199f3a7c0796a1460c
DIST s3transfer-0.8.0.tar.gz 138839 BLAKE2B 9c4d9eae115faa3f6da426bf7659e5852dd408e9a848819edb1b1ec77598fa1cd5a971f7f41f269e302fc5c6f9ba73c233b6910583066d09e6942538d508896c SHA512 32eb258fff438f20c8ee3d7ed0b65d35745b4580c9c747af93262d7a4994e60b6ddcbfd498efd42766c544ab2e14e0e2a757bb99958e990033e8fd99018b4fc6
DIST s3transfer-0.8.1.tar.gz 139496 BLAKE2B fd7269fe76b92c9ba05cf7c69cc63074b1563eeae0bdc7b04430acfc5b8a07cb5bf794b1790362ff3d2f52ab2cb02d3543dcdeae7f3a60c3d94640fa73966367 SHA512 62daa54121fde2de55a9c35bbf006f1d1d74cbb7120d51e0fc533719c22d617239b82834437341a29c307ed1bcb881e40ac14eae812d29ccf957eacf16c341f2
DIST s3transfer-0.8.2.tar.gz 139536 BLAKE2B e8897fb295c633dbceb43908f441b92adfe90265c18c3da1154e66074ca19e3a645ba166fbe9456c1a6b884bc6f81fa7b72f76004f2acb84fb92356146e7bae6 SHA512 cbba2ce0a8bf3f110a369137e2aa154012631c6fa2638885afcd2dd668a96715e50af8e720f6460447adc1e2ad241e95f7fa8554334b135777be768d892baaf9
+DIST s3transfer-0.9.0.tar.gz 143015 BLAKE2B b65233f20e9486ab2d8228405e367d4eeac3260773e7b0082fd47d3017aa67e48c8f52d882dea9eb16f14040c550926e0fc8d702794537a5137077d5fc5aba0b SHA512 abc46ed9278b27883af9e20ca033e08c594e667ef72dcd39b140f625c9da80cc60247c491e693d41fd67855ed850d53c4b39daa371375989977d6ff6badc3b39
diff --git a/dev-python/s3transfer/s3transfer-0.9.0.ebuild b/dev-python/s3transfer/s3transfer-0.9.0.ebuild
new file mode 100644
index 000000000000..9a8d2627b27f
--- /dev/null
+++ b/dev-python/s3transfer/s3transfer-0.9.0.ebuild
@@ -0,0 +1,43 @@
+# 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="An Amazon S3 Transfer Manager"
+HOMEPAGE="
+ https://github.com/boto/s3transfer/
+ https://pypi.org/project/s3transfer/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-1.33.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # 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_src_prepare
+}
+
+python_test() {
+ epytest tests/{unit,functional}
+}
diff --git a/dev-python/sentry-sdk/Manifest b/dev-python/sentry-sdk/Manifest
index 7ff78b681bfe..cc2460487116 100644
--- a/dev-python/sentry-sdk/Manifest
+++ b/dev-python/sentry-sdk/Manifest
@@ -1,2 +1,3 @@
DIST sentry-python-1.37.1.gh.tar.gz 447142 BLAKE2B 16e495a69e4757520e4fa9854248f7fdd31056489b016d86a0f087b7a709fa70a1f9cf655c4e319e8a69cdedd138c34864d03907a7423be329dbd00f66a2c568 SHA512 193d20949ce87dc530bbc97a522fd0c8566ccd2d2f14287c8e903dd39bb8a19af7aa59de0bcb90f06375353c79cbc19af704a17844b2073860bc879d2b551542
DIST sentry-python-1.38.0.gh.tar.gz 448517 BLAKE2B de047d20e8dd90018a7ce8dd102efc7ce970bb269c04d643c67e9fb46a9ad9eebcd89b08dfe1f0782dc51f61478c6e472ed25262e8a2bca7cfb7e0d9936abe78 SHA512 dbdcb7f53ee8da6071befec7a619324c0baabb383bb000875992e82bca97d0f49c7a8836c91a2ae20ae814ed55bf485d01c4762a82761083a19b1db8557d6983
+DIST sentry-python-1.39.1.gh.tar.gz 451286 BLAKE2B ff81f800f41d5f2c6a8ae0007338a394a176de4705753839e6bd4b74ac9aa21eb340582d6bc33e3a482c020fdc8307e472b9278ff101899f44a1a42429e158bd SHA512 0b162cc677b1e59434b6c58ccced4d84f6679b5ff733271938b07302e0e9a9d706304334282bd7b7e1c1f4026ed98fae3e5635cfac306e08a3aee801d75e1d7c
diff --git a/dev-python/sentry-sdk/sentry-sdk-1.39.1.ebuild b/dev-python/sentry-sdk/sentry-sdk-1.39.1.ebuild
new file mode 100644
index 000000000000..6bbb0516e8b3
--- /dev/null
+++ b/dev-python/sentry-sdk/sentry-sdk-1.39.1.ebuild
@@ -0,0 +1,143 @@
+# 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/test_utils.py::test_installed_modules
+ # flaky hypothesis stuff
+ tests/test_serializer.py::test_bytes_serialization_repr_many
+ # TODO
+ tests/integrations/aiohttp/test_aiohttp.py::test_basic
+ tests/tracing/test_decorator_py3.py::test_trace_decorator_{,a}sync_py3
+ # crashes Python
+ tests/integrations/grpc/test_grpc_aio.py
+ # hangs
+ tests/integrations/threading/test_threading.py::test_propagates_threadpool_hub
+ # TODO
+ tests/test_utils.py::test_default_release
+ tests/integrations/sqlalchemy/test_sqlalchemy.py::test_orm_queries
+ tests/integrations/sqlalchemy/test_sqlalchemy.py::test_transactions
+ tests/integrations/sqlalchemy/test_sqlalchemy.py::test_query_source
+ tests/integrations/stdlib/test_subprocess.py::test_subprocess_basic
+ tests/integrations/threading/test_threading.py
+ tests/integrations/wsgi/test_wsgi.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p aiohttp -p pytest_forked
+}
diff --git a/dev-python/sounddevice/sounddevice-0.4.6-r2.ebuild b/dev-python/sounddevice/sounddevice-0.4.6-r3.ebuild
index ca8e05777e3e..2daadec72a86 100644
--- a/dev-python/sounddevice/sounddevice-0.4.6-r2.ebuild
+++ b/dev-python/sounddevice/sounddevice-0.4.6-r3.ebuild
@@ -3,6 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1
DESCRIPTION="Python bindings for PortAudio"
diff --git a/dev-python/trio/Manifest b/dev-python/trio/Manifest
index f3d7406ac47e..59f0a7b69372 100644
--- a/dev-python/trio/Manifest
+++ b/dev-python/trio/Manifest
@@ -1 +1,2 @@
DIST trio-0.23.1.gh.tar.gz 585734 BLAKE2B 07a03f9ddd26f4e69bda651bc0821bb02895a244400cc5ec829b82e027304722248f7cf608bad8afb928e54736034349d736ca1aaa40b470cbbc3c1a74e3c77c SHA512 e7348cefb364689060c32987120c50081c677531fb4082a68956c431112b9966af6db09ebdca036980af660e48c2bc8addd05b58d62678d45ed7ffa1ce862dcc
+DIST trio-0.23.2.gh.tar.gz 592068 BLAKE2B 4f985c03528343f6091988984b081399f4a661f73896af13b4face0c7eab242d763d4ae964d36f8c9d0fcce797518283a492edd556a83af10502c8fc617cdb91 SHA512 a77b2a20459eb4989e9db6d21b06472b3cce51f4cb28cc6f3ab2f3e1684b3ccb37775e0d60af1f121c63a54fb92d62955f76109c922879234f0a21ce8c9f20c1
diff --git a/dev-python/trio/trio-0.23.2.ebuild b/dev-python/trio/trio-0.23.2.ebuild
new file mode 100644
index 000000000000..4525d6029b97
--- /dev/null
+++ b/dev-python/trio/trio-0.23.2.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} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for async concurrency and I/O"
+HOMEPAGE="
+ https://github.com/python-trio/trio/
+ https://pypi.org/project/trio/
+"
+SRC_URI="
+ https://github.com/python-trio/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/attrs-20.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/exceptiongroup[${PYTHON_USEDEP}]
+ ' 3.10)
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/outcome[${PYTHON_USEDEP}]
+ >=dev-python/sniffio-1.3.0[${PYTHON_USEDEP}]
+ dev-python/sortedcontainers[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/astor-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/immutables-0.6[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+# Bug https://bugs.gentoo.org/916756
+# distutils_enable_sphinx docs/source \
+# dev-python/immutables \
+# dev-python/sphinxcontrib-trio \
+# dev-python/sphinx-rtd-theme \
+# dev-python/towncrier
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Times out on slower arches (ia64 in this case)
+ # https://github.com/python-trio/trio/issues/1753
+ tests/test_unix_pipes.py::test_close_at_bad_time_for_send_all
+ # requires ruff
+ _tests/tools/test_gen_exports.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ rm -rf trio || die
+ epytest -p trio._tests.pytest_plugin \
+ -m "not redistributors_should_skip" \
+ --pyargs trio \
+ --skip-optional-imports
+}
diff --git a/dev-python/versioningit/Manifest b/dev-python/versioningit/Manifest
index afe7064efe85..d59e0f63fde6 100644
--- a/dev-python/versioningit/Manifest
+++ b/dev-python/versioningit/Manifest
@@ -1 +1,2 @@
DIST versioningit-2.3.0.tar.gz 209785 BLAKE2B 392706b969a3a94be6dee2bbd8935cf97e3f0ab0b102c5ae1ef2d65b25d6e44faf9e50301639aca77c8d81e0265875c548a9d28d331cbc07aaae7ed589c6ab04 SHA512 2e91ab8bf7be333b4783e8e7ad6cf4897694a5d3e14f41cad0f3683291078fb88845d629ee1e41885408bf07d5ea6250588af6e6cf6d6596df1bae4bee5ddf0b
+DIST versioningit-3.0.0.tar.gz 203693 BLAKE2B 8253e367eea67711f2381bf6484f18b26d356c48872cb2f3b135c42c08d0e03114bfea4d02eb50e404094167609b24bab37f1bb7cc73ba877777f524e564f5db SHA512 162cbe50d22be03c20e5d6efad0672264544fa918d706cdf158b30befe429f8ba0621b664c91ccad2f13d24176f7a3a1a36a8dc2b7a0263c8585d06b4f98bc41
diff --git a/dev-python/versioningit/versioningit-3.0.0.ebuild b/dev-python/versioningit/versioningit-3.0.0.ebuild
new file mode 100644
index 000000000000..db8205b331f6
--- /dev/null
+++ b/dev-python/versioningit/versioningit-3.0.0.ebuild
@@ -0,0 +1,43 @@
+# 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="A setuptools plugin for versioning based on git tags"
+HOMEPAGE="
+ https://github.com/jwodder/versioningit/
+ https://pypi.org/project/versioningit/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-17.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ <dev-python/tomli-3[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # Tries to do wheel/pip installs
+ test/test_end2end.py
+)
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/zeroconf/Manifest b/dev-python/zeroconf/Manifest
index 2f3c58226de8..479c0a9de1b7 100644
--- a/dev-python/zeroconf/Manifest
+++ b/dev-python/zeroconf/Manifest
@@ -1,3 +1,4 @@
DIST zeroconf-0.127.0.tar.gz 161143 BLAKE2B ee560845016ab1de0b065aaae8cd6791ddc847417241c7f2477301948945e938a2ff68206d30166a6049a7ad5919d15bcc6acac9fd9d33d17d5e77154b9f9c0c SHA512 7c8aef766dcc0f3411c4230decd5a0af18ae795e0e4253be2dc69af6ba314271a336807ace1458bb0a081455afa8cc9d8769413bbc97f024e3d3e877cd1e6f2f
DIST zeroconf-0.128.0.tar.gz 161199 BLAKE2B 7526c6f4a242e7ab0035ea3f2b29b3b43bbb6235950e7b2899472986e4186584275a39e6341c661203499528f47b2d255d4df3e2e092b0c864a1cf6b5c09a379 SHA512 d058828691a97c7634319fedcf688401d01ae372521d48b3749570975a5afbde839d14a4e34463c20fd267d006bf708c098a4f180844398a64fd96d1538edfa4
DIST zeroconf-0.128.4.tar.gz 162384 BLAKE2B cd8b60d0f0bdf01835fc1bf3c9bc74311ea4cc353ba1e0825264e850d070c8cee3565ec9942d825c404406623c7e65851688b447afbe1bf9884da077993a77de SHA512 d0781c1c5752eda31806826475cee0e7032e4bae9612adf0f8b7dab21d15be2762fb37af17a34f93f2f5f27ee936fcf4d7e58ce1d9b42af3e8681d5e8eb326ee
+DIST zeroconf-0.129.0.tar.gz 163756 BLAKE2B 13ac698352fd18d2025ed60d6906e7add6726a07c0e5e29f4fbf5bdd9f666a17d0401acbab70197182e7112e98e03eceb8a5d64f927a15f52b592b669615a4ad SHA512 51e6edf5474e8bfcd63c31b13abc5ef382c4eab1e4d41e2d4f454615e1cc09aab63dc13f29c1a1126d3ae131c6d8df762748f0c5bdf2149c968517a0a15fc0ff
diff --git a/dev-python/zeroconf/zeroconf-0.129.0.ebuild b/dev-python/zeroconf/zeroconf-0.129.0.ebuild
new file mode 100644
index 000000000000..e45ecfa2e75e
--- /dev/null
+++ b/dev-python/zeroconf/zeroconf-0.129.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.0.5[${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=
+}