summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-04-27 18:22:59 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-04-27 18:22:59 +0000
commit5424e93068da1445bb82e7ac49e96ff0abde74cf (patch)
tree27b632da38f27ee257d9bab43dd6874702b185ed /dev-python
parent730cad15d51fcfaaadad59de47a6c9b0132e0dac (diff)
downloadbaldeagleos-repo-5424e93068da1445bb82e7ac49e96ff0abde74cf.tar.gz
baldeagleos-repo-5424e93068da1445bb82e7ac49e96ff0abde74cf.tar.xz
baldeagleos-repo-5424e93068da1445bb82e7ac49e96ff0abde74cf.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/ConfigArgParse/ConfigArgParse-1.5.3.ebuild2
-rw-r--r--dev-python/Faker/Faker-18.6.0.ebuild34
-rw-r--r--dev-python/Faker/Manifest1
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.26.121.ebuild66
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.29.121.ebuild72
-rw-r--r--dev-python/django-auth-ldap/Manifest1
-rw-r--r--dev-python/django-auth-ldap/django-auth-ldap-4.3.0.ebuild44
-rw-r--r--dev-python/dogpile-cache/Manifest1
-rw-r--r--dev-python/dogpile-cache/dogpile-cache-1.2.0.ebuild33
-rw-r--r--dev-python/ensurepip-pip/Manifest1
-rw-r--r--dev-python/ensurepip-pip/ensurepip-pip-23.1.2.ebuild24
-rw-r--r--dev-python/github3-py/Manifest1
-rw-r--r--dev-python/github3-py/github3-py-4.0.1.ebuild45
-rw-r--r--dev-python/jellyfish/jellyfish-0.10.0.ebuild2
-rw-r--r--dev-python/josepy/josepy-1.13.0.ebuild2
-rw-r--r--dev-python/nbclassic/Manifest1
-rw-r--r--dev-python/nbclassic/nbclassic-0.5.5.ebuild2
-rw-r--r--dev-python/nbclassic/nbclassic-0.5.6.ebuild85
-rw-r--r--dev-python/notebook-shim/Manifest (renamed from dev-python/notebook_shim/Manifest)1
-rw-r--r--dev-python/notebook-shim/metadata.xml (renamed from dev-python/notebook_shim/metadata.xml)0
-rw-r--r--dev-python/notebook-shim/notebook-shim-0.2.2-r1.ebuild (renamed from dev-python/notebook_shim/notebook_shim-0.2.2-r1.ebuild)0
-rw-r--r--dev-python/notebook-shim/notebook-shim-0.2.3.ebuild44
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-1.1.0.ebuild84
-rw-r--r--dev-python/parsedatetime/parsedatetime-2.6-r1.ebuild2
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.13.11.ebuild39
-rw-r--r--dev-python/pip/Manifest1
-rw-r--r--dev-python/pip/pip-23.1.2.ebuild127
-rw-r--r--dev-python/platformdirs/Manifest1
-rw-r--r--dev-python/platformdirs/platformdirs-3.4.0.ebuild49
-rw-r--r--dev-python/pyrfc3339/pyrfc3339-1.1-r1.ebuild2
-rw-r--r--dev-python/pytz/pytz-2023.3-r1.ebuild2
-rw-r--r--dev-python/reportlab/Manifest1
-rw-r--r--dev-python/reportlab/reportlab-3.6.13.ebuild62
-rw-r--r--dev-python/send2trash/Manifest1
-rw-r--r--dev-python/send2trash/send2trash-1.8.2.ebuild23
-rw-r--r--dev-python/sqlalchemy/Manifest1
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.11.ebuild114
-rw-r--r--dev-python/tldextract/Manifest1
-rw-r--r--dev-python/tldextract/tldextract-3.4.1.ebuild35
-rw-r--r--dev-python/tomlkit/Manifest1
-rw-r--r--dev-python/tomlkit/tomlkit-0.11.8.ebuild43
-rw-r--r--dev-python/tox/Manifest1
-rw-r--r--dev-python/tox/tox-4.5.1.ebuild80
-rw-r--r--dev-python/urllib3/Manifest1
-rw-r--r--dev-python/urllib3/urllib3-2.0.0.ebuild63
-rw-r--r--dev-python/werkzeug/Manifest1
-rw-r--r--dev-python/werkzeug/werkzeug-2.3.1.ebuild64
-rw-r--r--dev-python/zeroconf/Manifest1
-rw-r--r--dev-python/zeroconf/zeroconf-0.58.2.ebuild56
53 files changed, 1315 insertions, 7 deletions
diff --git a/dev-python/ConfigArgParse/ConfigArgParse-1.5.3.ebuild b/dev-python/ConfigArgParse/ConfigArgParse-1.5.3.ebuild
index d96b390d68f8..79d3c16edcb5 100644
--- a/dev-python/ConfigArgParse/ConfigArgParse-1.5.3.ebuild
+++ b/dev-python/ConfigArgParse/ConfigArgParse-1.5.3.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
BDEPEND="
test? (
diff --git a/dev-python/Faker/Faker-18.6.0.ebuild b/dev-python/Faker/Faker-18.6.0.ebuild
new file mode 100644
index 000000000000..9fd3af59256e
--- /dev/null
+++ b/dev-python/Faker/Faker-18.6.0.ebuild
@@ -0,0 +1,34 @@
+# 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_{7,8,9,10,11} )
+
+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 ~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
diff --git a/dev-python/Faker/Manifest b/dev-python/Faker/Manifest
index f97beaa574df..a7a48dd7e532 100644
--- a/dev-python/Faker/Manifest
+++ b/dev-python/Faker/Manifest
@@ -1,2 +1,3 @@
DIST Faker-18.4.0.tar.gz 1664014 BLAKE2B daf3ea7f05bdaab27a70d72b26042a0a205963d56848b97d45ad8a4e04dfbbffecc1ffb94dc0570fca7ea339df9e28a6cde85b879589f4619eccddd71fc5b686 SHA512 a0c0d1b5eb087dfe160248c4ecc0fe7ea037aad715f62621f9d4764cadc684741db025b39af511b38577818f9087ba11950962f618dfd18d08f30b18d89b1b56
DIST Faker-18.5.1.tar.gz 1664745 BLAKE2B c6b02b9827a0cda7ac37bdc12882e879b8b981b6fcf734fa887a36cef62bf7605c8d66158efc673ecc937b907370002f1f3b3a35f33daf24c4a13cbbb6061ca7 SHA512 735343cfd081f1328f4ce5eddd22d226a9a01529d6e9975d1cc23a54ce0e9786903daa59ab3aaa1575fd8869406c709c7b51a5f364a7b3010e11473cb477be45
+DIST Faker-18.6.0.tar.gz 1664811 BLAKE2B d73d0e5c1c0c0a59765b9dff8e1ed3a07b66ba83c714e8bc9005df6e92c8916ba7d68de1ca6c12367555f5e498677e488f9e72888715f06deae86ccdb5675b45 SHA512 bbf50a36a78b071bd32d523ede6f132a62106741f5dfe14a4d237ff17280d9207a75725870b45a91888c36ac94f7833d2364dd1e48ec2738949a04c5cbd306a4
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index a65918522d1c..9a19f8c807f1 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,3 +2,4 @@ DIST boto3-1.26.114.gh.tar.gz 637000 BLAKE2B 06f74ac214f4c2161ebe464e1c8fc42c74c
DIST boto3-1.26.118.gh.tar.gz 639685 BLAKE2B 45ba98f4a1b72c45caef8f04e1b5f5fe5a35e8e8fd4248f77889f780e9909caebb3d5715d0de5bb5f25ee353352e0860745643ddee503ffb8d1f99c8e42658c6 SHA512 cd62f9a9b087db2b2805e672c9e938da230390980d2163e06549b03cc3f009dbdad1e80205c392c24af5c4d98cefe3f2354244e9e9d20d706a8c69e34caa07ea
DIST boto3-1.26.119.gh.tar.gz 640125 BLAKE2B c2a1e954c09b4322d6d369205a11013e5b84786cf3c1193ecb80792f215eeb9c6d96fd56c99fd2845c25bc8ab1a99a8f075dad142be79d2e5eb57f0bd20a7942 SHA512 21e3f5750d91de981cbfd0d7cd4dd6a7bacae56391544889ab683e686c2cdb843e1c67d67f62dfe1465e46eb59efe503eb4d626241c2372988bf40d5cfc66f23
DIST boto3-1.26.120.gh.tar.gz 639240 BLAKE2B 835fb02e44ccdb7d2b7aa2604d3605db9efa454ca455a52e67861b218523acc6737260c9d860639195a4d4181f4be9eaab0acf2b80e33416274cd99d65a74c80 SHA512 426aed9ba45cdc0d584fa0a571104b6f17dfb32c78da17a85b0dbe9f6c77c84a70533b4affa4728758a9d3a339d5d72b54186eb08dc2bd319b3d1e75374adbd0
+DIST boto3-1.26.121.gh.tar.gz 639340 BLAKE2B 3f8224aa4659d6b0581ce1b6f48367f15ba6d69520462251c5ee88922afa8af661471ad5058ea54bf75871081dce5feec027050f09222f63168362e3db05dcd1 SHA512 d0e4ada1ddd1198d1d964cb2c4a629c72f7931d35b27d8a0c71c04d605b750b725e31b3713047df817b3b12ad090e33e8b3ece650e0a87041261df5534ce4a90
diff --git a/dev-python/boto3/boto3-1.26.121.ebuild b/dev-python/boto3/boto3-1.26.121.ebuild
new file mode 100644
index 000000000000..2a4a7643203e
--- /dev/null
+++ b/dev-python/boto3/boto3-1.26.121.ebuild
@@ -0,0 +1,66 @@
+# 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_{10..11} )
+
+inherit distutils-r1 multiprocessing
+
+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.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+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() {
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 1704589b113c..e304b6e6f159 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,3 +2,4 @@ DIST botocore-1.29.114.gh.tar.gz 11388772 BLAKE2B 6c9ce892cccf2f85ba4bcd49b31309
DIST botocore-1.29.118.gh.tar.gz 11412916 BLAKE2B b70359e5082728993c231ce73932899eb5c748c27f565f5a99e422bb28cba7034712cd62fb56a3c1bf3fcb027e004443878b94a7d43861e16af87fc594bd542a SHA512 7db596dfb7d620889e5001b089529bfa5611e06a0035e8c67f649aebfc9b537de07e8ca33068e5d4545ae0a5ade0588dcac5ce84232d7fd3f1f13a429fb3078b
DIST botocore-1.29.119.gh.tar.gz 11417029 BLAKE2B 341d2ddf0b1e2feac1093022922b9d57ab23f2222a365599b114860e59fb471ee8043b17e85b0be82a15075781deaf3d8d46caef55d53a59ddb0eb634d4aa071 SHA512 af67d9b377bc52c6ac30449ad0ab0be232a778b6edb29332fb61a6fb90bf1bba92b95bfd8867a750bf50afe2728a3747a20ea45992a79dd5b22ea88433b143d4
DIST botocore-1.29.120.gh.tar.gz 11429491 BLAKE2B b3853ba0af6e037848af7d7bd545a0348558ede8e852b0fbc18a7dd35e85c0d80be4cedc17f5ad7d5b690777108ae6050c57d1e02045b61d17861da32fa07174 SHA512 3e80d761c747fcfb0d974f41a66c7e5f012e961e5d471dc1b4bef73722be8757f8622186bec1749c521946438f998380ba3914ad095a0839aed7022f01841390
+DIST botocore-1.29.121.gh.tar.gz 11437186 BLAKE2B 8fdfad5592e2b8aec5a8d4b94c82e47c5de32f8080db404c96c5f78d855f5437ab786b33abc67a43bb9730c52bcf963cfeedfcb958a12d649752e196f14fd7c1 SHA512 60a2339e2908d5490c660f28ff894c4b0539949f30674deb209bca3df26eed26b5601daa3c338eadcddbf48a5e23940152186ce0f6b92920b2fe3f2f0346927b
diff --git a/dev-python/botocore/botocore-1.29.121.ebuild b/dev-python/botocore/botocore-1.29.121.ebuild
new file mode 100644
index 000000000000..491b6bbc21f2
--- /dev/null
+++ b/dev-python/botocore/botocore-1.29.121.ebuild
@@ -0,0 +1,72 @@
+# 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_{10..11} )
+
+inherit distutils-r1 multiprocessing
+
+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}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+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
+ # fails on unrelated warnings
+ tests/unit/test_client.py::TestAutoGeneratedClient::test_BOTO_DISABLE_COMMONNAME
+ tests/unit/test_client.py::TestClientErrors::test_BOTO_DISABLE_COMMONNAME
+ # TODO
+ tests/functional/test_credentials.py::SSOSessionTest::test_token_chosen_from_provider
+ )
+
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/django-auth-ldap/Manifest b/dev-python/django-auth-ldap/Manifest
index 36de0fb7472c..7f1b97901740 100644
--- a/dev-python/django-auth-ldap/Manifest
+++ b/dev-python/django-auth-ldap/Manifest
@@ -1 +1,2 @@
DIST django-auth-ldap-4.2.0.gh.tar.gz 49572 BLAKE2B e33241897a2ad6ec3cefe4d8bc6cfea322f478b3db7c2e8b7726b55f9e030f10ae25ee049842322f11939523df06af81a57122d4d3c8115416a253672c43dd39 SHA512 a37500c850b3cf49d6bc7324d721c05279570972547ebd69521033e4cd6aa340948829edb3ae94d3280a8142a42d88ce77f85bf4a8c9f32753a860881b3c5d90
+DIST django-auth-ldap-4.3.0.tar.gz 53474 BLAKE2B b3f74739fd195b7a2e2cc785fa6493feaef8917b8473fad386da1569a158f13d7c765a32bd0d83ba02d20d7b50e845d3a5cda8b5fbbf5524576c62b84690705b SHA512 6a7826af60087a25970c6ae96b9bce40212cdfbe5e2d2ee0d903ff53f02edcd361eb56a0c5db9406e8525ee6be86e18d5c13db7e4ae6f2dd5d0adc7c593a8117
diff --git a/dev-python/django-auth-ldap/django-auth-ldap-4.3.0.ebuild b/dev-python/django-auth-ldap/django-auth-ldap-4.3.0.ebuild
new file mode 100644
index 000000000000..67c5e95d93ba
--- /dev/null
+++ b/dev-python/django-auth-ldap/django-auth-ldap-4.3.0.ebuild
@@ -0,0 +1,44 @@
+# 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_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Django LDAP authentication backend"
+HOMEPAGE="
+ https://github.com/django-auth-ldap/django-auth-ldap/
+ https://pypi.org/project/django-auth-ldap/
+"
+
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+LICENSE="BSD-2"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/django-2.2[${PYTHON_USEDEP}]
+ >=dev-python/python-ldap-3.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_impl_dep sqlite)
+ net-nds/openldap[-minimal]
+ )
+"
+
+distutils_enable_sphinx docs --no-autodoc
+
+python_test() {
+ # for slapd and slapdtest
+ local -x SBIN=/usr/sbin:/usr/$(get_libdir)/openldap
+ "${EPYTHON}" -m django test -v 2 --settings tests.settings ||
+ die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/dogpile-cache/Manifest b/dev-python/dogpile-cache/Manifest
index e3817311cf28..6a46a138d8c2 100644
--- a/dev-python/dogpile-cache/Manifest
+++ b/dev-python/dogpile-cache/Manifest
@@ -1 +1,2 @@
DIST dogpile.cache-1.1.8.tar.gz 394499 BLAKE2B 3371e6ffceb6629200a18095a20a313952b8a246d2ec7580e6409bde0f16851f8332922647b92383b47276933cfeb818dde6df48efd2534df0f94cbbc511e01c SHA512 2bacc111e17ecc706b3389f5c40ded888cc893f6d01c34a4e1e0d8d94c4592369b0c283aa80eb6ebec90dde7a89fd3b7fb9bbcbdd8010f90ad7de4501db13ace
+DIST dogpile.cache-1.2.0.tar.gz 258021 BLAKE2B 1173023866891a003314df7999ebe2d5a81836bdef0d495c0f6a635ba76678805866c4acdbc42ffaf18a548a298ea41cfbd649c2638e1ce5c4d8d1014d609730 SHA512 a97b851bd9c541004d701e4564cc641e479d40ab60aa08a48c4617f42ee444cf19e4d7551b76ecbfc16ceef1097d3334d15bd1d0a9b3b6ad15ed4e17149e0864
diff --git a/dev-python/dogpile-cache/dogpile-cache-1.2.0.ebuild b/dev-python/dogpile-cache/dogpile-cache-1.2.0.ebuild
new file mode 100644
index 000000000000..1fd73411dc78
--- /dev/null
+++ b/dev-python/dogpile-cache/dogpile-cache-1.2.0.ebuild
@@ -0,0 +1,33 @@
+# 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=${PN/-/.}
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A locking API for expiring values while a single thread generates a new value"
+HOMEPAGE="
+ https://github.com/sqlalchemy/dogpile.cache/
+ https://pypi.org/project/dogpile.cache/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/decorator-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-3.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mako[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/ensurepip-pip/Manifest b/dev-python/ensurepip-pip/Manifest
index 90f0a1e0f459..74db7a68596e 100644
--- a/dev-python/ensurepip-pip/Manifest
+++ b/dev-python/ensurepip-pip/Manifest
@@ -2,3 +2,4 @@ DIST pip-22.3.1-py3-none-any.whl 2051534 BLAKE2B b15f5eac6b3d8d12b382aabfb7fc920
DIST pip-23.0.1-py3-none-any.whl 2055563 BLAKE2B 1b7a2f007c44a0e3aa6c9ecbc3b4b55c3f88c6504fef0d55d2a23fa369393d481dd6e28eb8898aa0015a9744d2faa3ef985e720456d1011c08b0889416e6b51d SHA512 6bad5536c30a0b2d5905318a1592948929fbac9baf3bcf2e7faeaf90f445f82bc2b656d0a89070d8a6a9395761f4793c83187bd640c64b2656a112b5be41f73d
DIST pip-23.1-py3-none-any.whl 2064542 BLAKE2B 32357e85a6c827dc423d91b8d7201d20a0ce610213de8b3b352336203224646137a487779789f7b91e50da8965ca2dca96f88e805ed507c329b28d58c83925a5 SHA512 a15bae4a0c1548cfdf1b886157018b31c723aeefe68794cccf83b16e51d4b1874f885e33117172cb36b42613ec03d4aa82cc4318f042e2b7dcd4e39293e91a94
DIST pip-23.1.1-py3-none-any.whl 2064386 BLAKE2B 22c30379689760ef57d4fb4a0cd0d5653d7fe02fbfa6ae475fc43b20f820e9042a6c28dd943e611f053a1e9179bc1adfca84c8a915f1582994abbc42a965f2eb SHA512 c52fbbaf2d7f1ee8b9aab07d0540c79543caf6a814e41748d6219167957d4e797e7f8a4901a694c2205681981638684bad6a71cb6b156a4599fcdc9e653468de
+DIST pip-23.1.2-py3-none-any.whl 2064688 BLAKE2B 85c19cc80a59404867e7212c442e60ed6735da35d544bd23ee4cf5a1bffad4c0fab1f34a652417a181cbcb4afc9baf94682b0ec6e1fd9457eb77bc971d29e459 SHA512 a5a8feab25f01a96c2d8c4e15a001cb38c4a0a9d88563da6653239f3966324fdbe86ae0c5172cbdb1d03b863b37a37358b80e8bb9c8112bd7809fd16fb2ec776
diff --git a/dev-python/ensurepip-pip/ensurepip-pip-23.1.2.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-23.1.2.ebuild
new file mode 100644
index 000000000000..8a4b916f03bd
--- /dev/null
+++ b/dev-python/ensurepip-pip/ensurepip-pip-23.1.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pypi
+
+DESCRIPTION="Shared pip wheel for ensurepip Python module"
+HOMEPAGE="https://pypi.org/project/pip/"
+SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
+S=${DISTDIR}
+
+LICENSE="Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MIT MPL-2.0 PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ !<dev-python/ensurepip-wheels-100
+"
+
+src_install() {
+ insinto /usr/lib/python/ensurepip
+ doins "${A}"
+}
diff --git a/dev-python/github3-py/Manifest b/dev-python/github3-py/Manifest
index fbabf8c9e925..86155fedea54 100644
--- a/dev-python/github3-py/Manifest
+++ b/dev-python/github3-py/Manifest
@@ -1,2 +1,3 @@
DIST github3.py-3.2.0.gh.tar.gz 35522134 BLAKE2B ef263dc7e97bb7acccddc538cf812abc8554395865832ac993fbd7f965fd008607d0a682b35be5bdfc1b46618dcb3391e924f57d841a30ab732df9b3c76774b3 SHA512 2b15524df9289d2139178b4a92914458276cf347ff7e41c55eb6b7b9ad705ced4a9f64eb025aa9334a38611b87147a8ed118a6958a9924f75ad272fc868d196f
DIST github3.py-4.0.0.gh.tar.gz 36319768 BLAKE2B 7e602c0c2e7e7561ffe274dbafe469b48b0d77ae6c37e2be6cdb482da645cfe2953cc762fb8c5126aed951b33e71334f5ddfd965ac3855adcdfc33d69d7a4488 SHA512 1fb555c242a15a6198e33875470054b9b7f9558c5078b01003aa7fd6ba2c2944572eaecc83a2f4292bb41de2487429a3d61ba48964fd04aed2ff154e24443ef7
+DIST github3.py-4.0.1.tar.gz 36214038 BLAKE2B 04647fd53b0ad236891bb0fab359a326d82f8fb90c186618459013ab32f7c7c148374ad0dfc891220b839b2d9be7231e15dac8048bd767c33a1513558b3b16d1 SHA512 a79f7e4c48405318bd61d03c7a8b2dc3629f6e2d8e954e316fba319115dd12c6e5e2fd69a00743e86078367b083841dbc494704e66ffda8582fb48c614ecf5b2
diff --git a/dev-python/github3-py/github3-py-4.0.1.ebuild b/dev-python/github3-py/github3-py-4.0.1.ebuild
new file mode 100644
index 000000000000..9f456354f7ac
--- /dev/null
+++ b/dev-python/github3-py/github3-py-4.0.1.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=hatchling
+PYPI_NO_NORMALIZE=1
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A wrapper for the GitHub API written in python"
+HOMEPAGE="
+ https://github.com/sigmavirus24/github3.py/
+ https://pypi.org/project/github3.py/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/pyjwt-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.18[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+"
+# via PyJWT[crypto]
+RDEPEND+="
+ >=dev-python/cryptography-3.3.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/betamax-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/betamax-matchers-0.3.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/jellyfish/jellyfish-0.10.0.ebuild b/dev-python/jellyfish/jellyfish-0.10.0.ebuild
index f962139836dc..38d426b0e921 100644
--- a/dev-python/jellyfish/jellyfish-0.10.0.ebuild
+++ b/dev-python/jellyfish/jellyfish-0.10.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~ppc64 ~riscv ~x86"
distutils_enable_tests pytest
diff --git a/dev-python/josepy/josepy-1.13.0.ebuild b/dev-python/josepy/josepy-1.13.0.ebuild
index 9e2bd308f851..f709370fa171 100644
--- a/dev-python/josepy/josepy-1.13.0.ebuild
+++ b/dev-python/josepy/josepy-1.13.0.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
>=dev-python/cryptography-0.8[${PYTHON_USEDEP}]
diff --git a/dev-python/nbclassic/Manifest b/dev-python/nbclassic/Manifest
index ed0a0bb42636..a8514687f183 100644
--- a/dev-python/nbclassic/Manifest
+++ b/dev-python/nbclassic/Manifest
@@ -1 +1,2 @@
DIST nbclassic-0.5.5.tar.gz 20200594 BLAKE2B 43de88221af5461e2814f7d8963d7f9f675463f116092d1fb40648a8a14065aa5888ad207b1d845884f9b5b6d6a65a8f6197e94661b7a255c84d5b34ea0c5c99 SHA512 54e22ee41a2cb497c3792b74213c13dfbcef7a8a6fb42e48a06aa6969987cec39bf0cfa835e24062e8181bd732cf6b6855f9e834a586b15c584b47df06455b34
+DIST nbclassic-0.5.6.tar.gz 20201214 BLAKE2B 07643a35e0167af860ce382212685b988e8ec979cfe6e3436998e467f36a1f4381343c7e2513bc3a08d3cd384d6e6369cae20f77c9b0636559ce8f66b4ee2f63 SHA512 e259edb862a870c2b992c6c2c2d8ead64fc69f98298bd1830d63f1db001f8b36ab9509a693b5e425dcc2a43eb72b256f1082b1f0c66757bdbf35968175eb58c7
diff --git a/dev-python/nbclassic/nbclassic-0.5.5.ebuild b/dev-python/nbclassic/nbclassic-0.5.5.ebuild
index 32c174194f50..e68990dd0336 100644
--- a/dev-python/nbclassic/nbclassic-0.5.5.ebuild
+++ b/dev-python/nbclassic/nbclassic-0.5.5.ebuild
@@ -29,7 +29,7 @@ RDEPEND="
>=dev-python/nbconvert-5[${PYTHON_USEDEP}]
dev-python/nbformat[${PYTHON_USEDEP}]
>=dev-python/nest_asyncio-1.5[${PYTHON_USEDEP}]
- >=dev-python/notebook_shim-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.1.0[${PYTHON_USEDEP}]
dev-python/prometheus_client[${PYTHON_USEDEP}]
>=dev-python/send2trash-1.8.0[${PYTHON_USEDEP}]
>=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
diff --git a/dev-python/nbclassic/nbclassic-0.5.6.ebuild b/dev-python/nbclassic/nbclassic-0.5.6.ebuild
new file mode 100644
index 000000000000..2ebb4a503908
--- /dev/null
+++ b/dev-python/nbclassic/nbclassic-0.5.6.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+DISTUTILS_USE_PEP517=jupyter
+
+inherit distutils-r1 pypi xdg-utils
+
+DESCRIPTION="Jupyter Notebook as a Jupyter Server Extension"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/nbclassic/
+ https://pypi.org/project/nbclassic/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/argon2-cffi[${PYTHON_USEDEP}]
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/ipython_genutils[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-6.1.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-4.6.1[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-5[${PYTHON_USEDEP}]
+ dev-python/nbformat[${PYTHON_USEDEP}]
+ >=dev-python/nest_asyncio-1.5[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2.3[${PYTHON_USEDEP}]
+ dev-python/prometheus_client[${PYTHON_USEDEP}]
+ >=dev-python/send2trash-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.1[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-4.2.1[${PYTHON_USEDEP}]
+"
+PDEPEND="
+ <dev-python/notebook-7[${PYTHON_USEDEP}]
+"
+
+# dev-python/nbval is missing impls
+BDEPEND="
+ test? (
+ dev-python/jupyter-server-terminals[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-unixsocket[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+ doc? (
+ virtual/pandoc
+ )
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs/source \
+ dev-python/sphinx-rtd-theme \
+ dev-python/nbsphinx \
+ dev-python/sphinxcontrib-github-alt \
+ dev-python/myst-parser \
+ dev-python/ipython_genutils
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_tornasync.plugin
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # move /usr/etc stuff to /etc
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/dev-python/notebook_shim/Manifest b/dev-python/notebook-shim/Manifest
index e9a73821a6b4..4a62ab819254 100644
--- a/dev-python/notebook_shim/Manifest
+++ b/dev-python/notebook-shim/Manifest
@@ -1 +1,2 @@
DIST notebook_shim-0.2.2.tar.gz 12947 BLAKE2B 5a04944be3f8de7bd7b1c10f59d73869b7aed670c3afebf79e7780d5992f9af2929529498604c1a5c0d164467681ffa0e8924e1c9a7945e52ae353bdb710c7bc SHA512 42cf9153495e4ab8230ef560d36381a5aa1d9bbd583ed140e04e9850f4a82bab06ecf36e45b88595e8686d8122c9a52eee8133a7f1b622d75d326ebf36519d30
+DIST notebook_shim-0.2.3.tar.gz 13082 BLAKE2B 5e988605ee01a49f31bf2dcdbe86d2f8e12f3e314d962f619068c57b13ed144643db1b08d5afed7a91ddfcde82497e49fe643d9fdd1c43a9535d7468794dfe7e SHA512 87114ea915ab5160b11023dddcc622aafba315fe07de21cedbed1e374ec2406eba378575e903377dbb9cc69e7449eb184cb0420513b7dc05078af0e91bc5f884
diff --git a/dev-python/notebook_shim/metadata.xml b/dev-python/notebook-shim/metadata.xml
index f779b78a9efd..f779b78a9efd 100644
--- a/dev-python/notebook_shim/metadata.xml
+++ b/dev-python/notebook-shim/metadata.xml
diff --git a/dev-python/notebook_shim/notebook_shim-0.2.2-r1.ebuild b/dev-python/notebook-shim/notebook-shim-0.2.2-r1.ebuild
index 23fbdfcd612c..23fbdfcd612c 100644
--- a/dev-python/notebook_shim/notebook_shim-0.2.2-r1.ebuild
+++ b/dev-python/notebook-shim/notebook-shim-0.2.2-r1.ebuild
diff --git a/dev-python/notebook-shim/notebook-shim-0.2.3.ebuild b/dev-python/notebook-shim/notebook-shim-0.2.3.ebuild
new file mode 100644
index 000000000000..d969ec9350f3
--- /dev/null
+++ b/dev-python/notebook-shim/notebook-shim-0.2.3.ebuild
@@ -0,0 +1,44 @@
+# 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_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A shim layer for notebook traits and config"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/notebook_shim/
+ https://pypi.org/project/notebook-shim/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-1.8[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/pytest-tornasync[${PYTHON_USEDEP}]
+ dev-python/pytest-jupyter[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_tornasync.plugin
+}
+
+src_install() {
+ distutils-r1_src_install
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 9b7af53c798c..05eab448d174 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -1 +1,2 @@
DIST openstacksdk-1.0.1.tar.gz 1118637 BLAKE2B d4677a3a5595bf871fc0b380f1cadfd56ebba14bc2255fcc6a6a4813c5c79807a1a0a76263844728f256704b2966b82be9bd6e968de9e7e85f411402f428cb78 SHA512 9871a262113b4396b3a5181e93d2e00312c5a80933c3ff6efa501a4b4d7d145985f54203eeb6e1f50c5593ba491b13a631b9293759e0615bf0eda393c247a4d3
+DIST openstacksdk-1.1.0.tar.gz 1141513 BLAKE2B f4c052ffa1efc36dfb355b50853d75ceddc5a3a361a8a8749bc51d55530dba465df451c7bf7154081130ca4d2d798e8c96b7230d4317bb9ebb96a9add410b501 SHA512 3c91a6a797c966bbf08dc51f013004c8ab9148dcd3a6fad4584fb40c256696a7ea02f241bc7ea1a3fbc56a7ec790dfd1900c0da54081c3d64f5077273d4e0835
diff --git a/dev-python/openstacksdk/openstacksdk-1.1.0.ebuild b/dev-python/openstacksdk/openstacksdk-1.1.0.ebuild
new file mode 100644
index 000000000000..8312031c5ba2
--- /dev/null
+++ b/dev-python/openstacksdk/openstacksdk-1.1.0.ebuild
@@ -0,0 +1,84 @@
+# 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_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A collection of libraries for building applications to work with OpenStack"
+HOMEPAGE="
+ https://opendev.org/openstack/openstacksdk/
+ https://github.com/openstack/openstacksdk/
+ https://pypi.org/project/openstacksdk/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+ >=dev-python/appdirs-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/requestsexceptions-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-1.20[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.18.0[${PYTHON_USEDEP}]
+ >=dev-python/decorator-4.4.1[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-2.7.0[${PYTHON_USEDEP}]
+ dev-python/importlib-metadata[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus_client-0.4.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Internet?
+ sed -e 's:test_create_dynamic_large_object:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+
+ # TODO
+ sed -e 's:test_generate_form:_&:' \
+ -e 's:test_create_static_large_object:_&:' \
+ -e 's:test_object_segment_retries:_&:' \
+ -e 's:test_object_segment_retry_failure:_&:' \
+ -e 's:test_slo_manifest_retry:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+
+ # unhappy about paths due to test runner
+ sed -e 's:test_method_not_supported:_&:' \
+ -i openstack/tests/unit/test_exceptions.py || die
+ sed -e 's:test_repr:_&:' \
+ -i openstack/tests/unit/test_resource.py || die
+
+ # requires hacking
+ rm openstack/tests/unit/test_hacking.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstack/tests/unit
+}
diff --git a/dev-python/parsedatetime/parsedatetime-2.6-r1.ebuild b/dev-python/parsedatetime/parsedatetime-2.6-r1.ebuild
index 69c147a2586c..3378c898a799 100644
--- a/dev-python/parsedatetime/parsedatetime-2.6-r1.ebuild
+++ b/dev-python/parsedatetime/parsedatetime-2.6-r1.ebuild
@@ -17,6 +17,6 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
distutils_enable_tests pytest
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 38e2af5d6c2d..703d4b2aefdb 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,3 +1,4 @@
DIST python-phonenumbers-8.13.10.gh.tar.gz 4910354 BLAKE2B c78fc4159fe6758e9fd1afb9acfb6d0d29878b599b0c151e5ad02221fcedd7cbafb3ceb479dc95549776da9fa896a09871677efbaafb5d5fde2bfb19db9c4780 SHA512 08b09903e3a84324b6128b007c1a805d8c9e5216afd4c72b25d71d2b62719032c373e53b663303b9ae2b90465214e36141050467a860d187e826ee76b1a80445
+DIST python-phonenumbers-8.13.11.gh.tar.gz 4910723 BLAKE2B 270ded8f0c009feb0ffe70bdcec089f400d1ea18ae24e3837b8f3a659657b82fb5912577eba22cb7c28a297dcbb55d402213c576857c514eb08c241af8bc1e4e SHA512 688b5440538cd6d636b645474dff51e4ba9a080708e4d3a9bdd5560701a9effbb26b9a669c632917101ea2e27a6f2ebe1f468fc0a881625ef33a4e30885ae30b
DIST python-phonenumbers-8.13.8.gh.tar.gz 4910864 BLAKE2B 33babe7aa0f487398311817fa901a56ac8a7470f2e4338700529f35c7622cf9b663bd404f6c1087600c03fd2844a1c777ed81d2e61d9cc2f0ff78e68a0276624 SHA512 6e2ee96aa9c20188b276cdeac1365fddb339feb63e8d5e9f61ae82f6aa19cc6564a5f1dbf687d6cc69c2cfa21fbb14892f880677ac7ba734a949183711faca5a
DIST python-phonenumbers-8.13.9.gh.tar.gz 4910883 BLAKE2B 596010af1526a4058f3db8ac1bb087d59dd93d1223ad54c50444740c3b6eb0d0ee4da83ec2882140f3325740575bd808ecd9726b9d583420283c25285cdd32c3 SHA512 24ae70a9d6b5830261d719c5a003ab6909ef9b759c53bfe7e78d7ad7062ad878bc2109b92041266ecd798b92d94392b53d02c6f51446e88d8c20dc4b48a10b4f
diff --git a/dev-python/phonenumbers/phonenumbers-8.13.11.ebuild b/dev-python/phonenumbers/phonenumbers-8.13.11.ebuild
new file mode 100644
index 000000000000..4ef52501be16
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.13.11.ebuild
@@ -0,0 +1,39 @@
+# 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_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+MY_P=python-${P}
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+SRC_URI="
+ https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/python
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf-python[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( ../README.md )
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest
index a835b1c287b1..eabf71a1d61b 100644
--- a/dev-python/pip/Manifest
+++ b/dev-python/pip/Manifest
@@ -1,6 +1,7 @@
DIST pip-22.3.1.gh.tar.gz 9326504 BLAKE2B b125599a9f77e49414dae13ca3fe0ac27c9b7e127f6ca7f467f3af4e0b51d835f2790f8311b2ec616966c299fb431403b456f7b38ea1f3fe1e7f769f7d5a78e5 SHA512 c7865c4ce79b0fea7ba469fe593af3be205b3bdb574a6ae019842e0f82a0af406ec905d8c6ff02fbbafe01630c8899a398d071ce74501ca830249160f2f6df98
DIST pip-23.0.1.gh.tar.gz 9336422 BLAKE2B 1781b0340ba7f76299fa8e37f0509f15a08cc599d196c74b90a2cb79321de570240ed9f12bc64d45ede2182ec8a3eead44ce1b840eaa83931d089ecc07923203 SHA512 ed14ce37293e749b4fd93d7f93d81356c77428b1fb14dfd760b59aea720ebb3cce5a49c2d32ab600e73b37389937830ff4dee04750e83078c8ab9d57513f294c
DIST pip-23.1.1.gh.tar.gz 9345830 BLAKE2B 4b566507189bed38de572d3641f4f1cdf795a928462fbdb43f6d03f98a5efdce31c3c6ffb8ac0761eb8dd7667f02f195241aacbebc06b26f8e4d22d1ca4a8fb9 SHA512 9cc8d414625a59d98e485251fdc3707edd30a94b597954e9d03b42076f3adaca6f7e3f1ef80e37e7fb12b51941ac359114b23aae4722588bb7f4b44813397db5
+DIST pip-23.1.2.gh.tar.gz 9345911 BLAKE2B 511ac1a9405e377ccb2525e89676f4a63f138aa526d40e76f4d9681139d94db1f92772beab1a647654c17abc6bee09f52cf4c4f4484716874194565fda07d056 SHA512 b33070cb59a1258904a60b48ec8abfd9e316c5f87681fea13d89ddf6d516afac10965ae1db54fea299a0a72f98602ce02e8b3be46f239e857db84866045730e1
DIST pip-23.1.gh.tar.gz 9346045 BLAKE2B 2d4e0dcfa730fe68b6b73d87fb3706a5c68f8eb497fe84c15a8a4ed5aa436a5ef07949d3c3d1393aa836bc8d2f67dbfad25609f807519a3d36b3aed34aff4756 SHA512 ba1417811d69462b1e858d6a431abdafdf66a217f9fb25ad9c8430b3ea5289c631a282f3c399f607539d2ce9e2a71b556926f6ebf30be18d86ccda192afe0dfb
DIST setuptools-62.3.2-py3-none-any.whl 1225929 BLAKE2B 608952e201f749ebf557e3962ba9856d5bdcbc534f3a25598cab0d6c53282cfb3b9f007ba135497a8addf49db4c02bc4387c486d95a4529d01ce4114154ec28a SHA512 366d69dc44e326dd7549cdacd8dec481a14dce4feef4338adc38b9de5c4c338f04d61696e13ce8603be1315f2e8734100f92d3fe4b4b11843e19f550c9631978
DIST virtualenv-16.7.12.gh.tar.gz 8906590 BLAKE2B a1f206769e4e5797562906162e492e44c4a72720e4f88a0362dc802ce2df20c65aaab6a72dce2238445601a10fae59bd90cd362217994d30911f105afd71c5fa SHA512 0278b33fb19f6553e70ad3dcffa6ea1a455ff435b216ac9b4fadff216b2932714faa2bb6027af3058010111d8511a5c2fcd424f31c9645be361603971f111c8e
diff --git a/dev-python/pip/pip-23.1.2.ebuild b/dev-python/pip/pip-23.1.2.ebuild
new file mode 100644
index 000000000000..ae30fc33f9e2
--- /dev/null
+++ b/dev-python/pip/pip-23.1.2.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# please bump dev-python/ensurepip-pip along with this package!
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{7,8,9,10,11} )
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit bash-completion-r1 distutils-r1 multiprocessing
+
+DESCRIPTION="The PyPA recommended tool for installing Python packages"
+HOMEPAGE="
+ https://pip.pypa.io/en/stable/
+ https://pypi.org/project/pip/
+ https://github.com/pypa/pip/
+"
+SRC_URI="
+ https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+# bundled deps
+LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+SLOT="0"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ )
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/pip-23.1-no-coverage.patch"
+ )
+
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ local wheels=(
+ "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
+ )
+ mkdir tests/data/common_wheels/ || die
+ cp "${wheels[@]}" tests/data/common_wheels/ || die
+ fi
+}
+
+python_compile_all() {
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
+ "${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
+ "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return 0
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/functional/test_inspect.py::test_inspect_basic
+ tests/functional/test_install.py::test_double_install_fail
+ # Internet
+ tests/functional/test_install.py::test_install_dry_run
+ tests/functional/test_install.py::test_editable_install__local_dir_setup_requires_with_pyproject
+ tests/functional/test_install.py::test_install_8559_wheel_package_present
+ tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
+ tests/functional/test_install.py::test_link_hash_in_dep_fails_require_hashes
+ # TODO
+ tests/unit/test_network_auth.py::test_keyring_cli_get_password
+ tests/unit/test_network_auth.py::test_keyring_cli_set_password
+ # wants to install keyring from Internet, sigh
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ )
+
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/functional/test_install.py::test_install_sends_client_cert
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ )
+ fi
+
+ local -x SETUPTOOLS_USE_DISTUTILS=stdlib
+ local -x PIP_DISABLE_PIP_VERSION_CHECK=1
+ epytest -m "not network" -n "$(makeopts_jobs)"
+}
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ newbashcomp completion.bash pip
+
+ insinto /usr/share/zsh/site-functions
+ newins completion.zsh _pip
+}
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index c7f74ef45c62..39174b9e18d3 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1,2 +1,3 @@
DIST platformdirs-3.2.0.tar.gz 15017 BLAKE2B ce9f180965e0736ae83170b3a055dbb58e2ce59b84a414cd212f0f2f27a6a0a194636d315a30e344046ee1da85f2de3d2e7c58c02a329c4a36129fa617d8feb6 SHA512 2e4613f563b7014b526e1f81f561726a0060983b0e998ce46d070b2f4f4ec26ad46d6a3cd242fb14a420e6439207b9c9eeb31daac7ec65005abc3a74131e5cf8
DIST platformdirs-3.3.0.tar.gz 15459 BLAKE2B 46b59ce32b262feef1e045803b79c64ade18917dac34b11bd34ec8a6c872e9871df948532e10a8c4ebfbfddf2592243d8f8be6b24a84e75c08c5948068337f94 SHA512 c7530daf27072b0dea2d9bdb2fd764fb1f19daa735b199d3361579ffed709ba55392502600f73b8433e2651d36711dc264cf60a6fa50f29d9249b1e9808e35a3
+DIST platformdirs-3.4.0.tar.gz 15735 BLAKE2B 6297b04dd8720ffa0af1899c2c8081c836d23d0526e6510a81fa727ca42d5006709d6e8bd583f09aade09f603c4489e21468b8c66d848220c8c6f1de37535e97 SHA512 e98648b5065cdb3b75c183548b4143c6564292e4ec283710490fd019a2e72f6207ac6af6617e192aadf17b521eebc18126bf4b69fac227ac3cda4b768ce109da
diff --git a/dev-python/platformdirs/platformdirs-3.4.0.ebuild b/dev-python/platformdirs/platformdirs-3.4.0.ebuild
new file mode 100644
index 000000000000..2c65d0f2dfcc
--- /dev/null
+++ b/dev-python/platformdirs/platformdirs-3.4.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE="
+ https://pypi.org/project/platformdirs/
+ https://github.com/platformdirs/platformdirs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? (
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "hatchling' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "${PN}"
+ version = "${PV}"
+ description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
+ EOF
+ # sigh
+ cat > src/platformdirs/version.py <<-EOF || die
+ __version__ = version = '${PV}'
+ __version_tuple__ = version_tuple = (${PV//./, })
+ EOF
+}
diff --git a/dev-python/pyrfc3339/pyrfc3339-1.1-r1.ebuild b/dev-python/pyrfc3339/pyrfc3339-1.1-r1.ebuild
index 671a49dac26d..1fcda8cad04f 100644
--- a/dev-python/pyrfc3339/pyrfc3339-1.1-r1.ebuild
+++ b/dev-python/pyrfc3339/pyrfc3339-1.1-r1.ebuild
@@ -17,7 +17,7 @@ S=${WORKDIR}/pyRFC3339-${PV}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="dev-python/pytz[${PYTHON_USEDEP}]"
diff --git a/dev-python/pytz/pytz-2023.3-r1.ebuild b/dev-python/pytz/pytz-2023.3-r1.ebuild
index 2f4a0773264a..e52173de09cd 100644
--- a/dev-python/pytz/pytz-2023.3-r1.ebuild
+++ b/dev-python/pytz/pytz-2023.3-r1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/reportlab/Manifest b/dev-python/reportlab/Manifest
index 2b7b4e626192..40c4b5bc14ff 100644
--- a/dev-python/reportlab/Manifest
+++ b/dev-python/reportlab/Manifest
@@ -1,2 +1,3 @@
DIST pfbfer-20070710.zip 677333 BLAKE2B 100214476a361a5e5d1f3da0999591345f6e3a3f8c6bc3f6a3e9eca734190c6259758a43302c6e41254d33491fe535eb7d5dd07aa9727c912424bebc31fc18df SHA512 6fd4a5d955464b10d13a7b748703450c1fe120d5ed09e8cfa1b4dfa9c183c59fe001df29433af551796b0df62544b7ddc364f9bb1bdcc2cd300434340ffcc4f2
DIST reportlab-3.6.12.tar.gz 4519536 BLAKE2B 106e0ede2b3c039152ae5a39e0aa5b3bf0239789ba08630f751260b75305973bff13730e3f7419340514a4f0174223dddf522cd9408b8dd04fbe39b84979b152 SHA512 99e6ab1cf27cc9e661b3bfd8c71290d94189db6de5e71b2429cccd48bfee5659d5fb46dfc5709e6616877b48bc17241c74282e0d2ecddda2ead16df4c1b6818f
+DIST reportlab-3.6.13.tar.gz 4035524 BLAKE2B 638b670b76b4cfb88c0a66db484f5b4d042fd935798316d02303932503e353a6035419d7ef1c4dccd8ef94b3cc2e13a576fd3cb5461fca17122a800f1140945a SHA512 059c3acf2c995ebdd3ffe005bd98640bc9c063c2fb9b3115351b9c1a4f7cfdabf4ffe61123342de2e84773005d46cf6d44410042206222df0700259e31ec7aae
diff --git a/dev-python/reportlab/reportlab-3.6.13.ebuild b/dev-python/reportlab/reportlab-3.6.13.ebuild
new file mode 100644
index 000000000000..b3326f822ff5
--- /dev/null
+++ b/dev-python/reportlab/reportlab-3.6.13.ebuild
@@ -0,0 +1,62 @@
+# 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_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Tools for generating printable PDF documents from any data source"
+HOMEPAGE="
+ https://www.reportlab.com/
+ https://pypi.org/project/reportlab/
+"
+SRC_URI+="
+ https://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+ media-libs/freetype
+ media-libs/libart_lgpl
+ sys-libs/zlib:=
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/pillow[tiff,truetype,jpeg(+),${PYTHON_USEDEP}]
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.6.9-paths.patch
+ "${FILESDIR}"/${PN}-3.6.11-correct-srclen-type-in-gstate__aapixbuf.patch
+)
+
+distutils_enable_sphinx docs/source
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cd ${P}/src/reportlab/fonts || die
+ unpack pfbfer-20070710.zip
+}
+
+src_configure() {
+ cat > local-setup.cfg <<-EOF || die
+ [OPTIONS]
+ no-download-t1-files = 1
+ use-system-libart = 1
+ EOF
+}
+
+python_test() {
+ pushd tests >/dev/null || die
+ "${EPYTHON}" runAll.py -v || die "Testing failed with ${EPYTHON}"
+ popd >/dev/null || die
+}
diff --git a/dev-python/send2trash/Manifest b/dev-python/send2trash/Manifest
index 75ff09ca0389..b593457ef3ab 100644
--- a/dev-python/send2trash/Manifest
+++ b/dev-python/send2trash/Manifest
@@ -1 +1,2 @@
+DIST Send2Trash-1.8.2.tar.gz 17487 BLAKE2B 3362a7e0c70f0e3f0f7a64676174d6c6f28290079590e08e4a746c0e19f96deca028aa521df58afa7f0ab47d78f286df01f98e903dfd771063af0ff40b4f6c08 SHA512 378107c8175e8d08566258daa13d3000e66ec03f732698180a2eb7f862c39d3c458be66ecf3f8864f559b961e29b777b8e7f5169468219e19723def62a69bb9c
DIST send2trash-1.8.0.gh.tar.gz 15040 BLAKE2B 06f6b0b9e4e9316bc60332ea76426922db6d35fa5d4e0602e91a58996bb55a2344d7d56547bdf21151641c5ec710b78b2b11c8fda158eb911155994c86d10078 SHA512 9dc15fbd262eb5a05a355b436c0e582e5ef9b484f859b53faafe6af5bd08ef88b9aa5121485c2fffb7dbe5aeeef29f6719035e08c61da273fd4fa51383b062fe
diff --git a/dev-python/send2trash/send2trash-1.8.2.ebuild b/dev-python/send2trash/send2trash-1.8.2.ebuild
new file mode 100644
index 000000000000..9a7eb7d49c62
--- /dev/null
+++ b/dev-python/send2trash/send2trash-1.8.2.ebuild
@@ -0,0 +1,23 @@
+# 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=Send2Trash
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Sends files to the Trash (or Recycle Bin)"
+HOMEPAGE="
+ https://github.com/arsenetar/send2trash/
+ https://pypi.org/project/Send2Trash/
+"
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+distutils_enable_tests pytest
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index 162ca56ff73f..05181e24886c 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,5 +1,6 @@
DIST SQLAlchemy-1.4.47.tar.gz 8559530 BLAKE2B 051e6f0114162f5525e756d8762281464020a3c4e1751df8432f76ce3281ea1004fbf842e92bdd310e3a736fc87d25db12a1566720c76bde7960d51c22a483da SHA512 702cbae848bc662b686db43b2d2dbd18b503b3aacac6f5960bcd260cc5bd7058536ff2207f1780cb8425c228a82796490088c3ec32f24637edd2cf1cdac7a8bb
DIST SQLAlchemy-2.0.10.tar.gz 9364115 BLAKE2B 0a058eb179e08fa04083eb75aeffff7a50b6e379ea9b5b31d568a88c8ceaa208c0df613d5b3054d477af25e65566b8d413a3be694744e96609f74ab5ac102365 SHA512 f672eec34851e85f1ba41778104a379a37f833804e549ed12cd5b2d5e3cdfb5578e05aa61a61264aee1985d03af19c81b950977ae2b458161dfc8320db371b69
+DIST SQLAlchemy-2.0.11.tar.gz 9260972 BLAKE2B a23f65e9014884d8edaa9285a9749bc02ba412e33fc648da2eff611829931a951107f941a77b00352226be5b3e62f4e6b99434a5657793ca462d1094b6a34788 SHA512 8ca9b3dd1a825b8adb788e0110fe65cf14808de8554fb9b733e27e83f77da148a36f4ebb845a81d9260d464827b5deece657d58cd34bc08262808d7964b2b11e
DIST SQLAlchemy-2.0.4.tar.gz 9250723 BLAKE2B c3cec648a527e7beb349b2bbb6924a4e794a1fe4d1563ba7573afdc28ed24fce149c5b3c08fa419e85713b68080b2a805e1999e312f59ed7fae55f9aee6a966e SHA512 098004c594ff00a47a66850b0661f673e4d7a6f168fce72ca37a65ecfe04b3d291b9a6fb9393f7671c9a7c5c128ab6ba2035d18cef28736df1207e689cd8c412
DIST SQLAlchemy-2.0.7.tar.gz 9298301 BLAKE2B abedb2805cad489e68fdec383eaf1bc65ef92777230317911a9351fce7c9159f746629197f7443a37495c23cd8d3cdd1015d8417f00227f28b8af1468a8327ef SHA512 94f5c4262741986456a9de435a81d9df8d5eed16417cc8c07321cb28030c99ea347c33a2054f2961e3b794bd5f75da19b0879675e2c1106fc5030382895caf75
DIST SQLAlchemy-2.0.8.tar.gz 9314926 BLAKE2B bc54ba9be9f68cc2995bf5328cc5268e0890262efb162a94bd36713f3f3d2f1ddffa95b4d1d8ab140f865c2788d1a913f6c104f21809a695faa132686d77cf3c SHA512 66408768ff702b16ad1365931b254d72976313a3369a74e5a81326d83540ee274805b01d449010ea8e8750312e26dc91aad3b724c4cbdf037e7314b204f6908a
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.11.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.11.ebuild
new file mode 100644
index 000000000000..bb61df05d876
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.11.ebuild
@@ -0,0 +1,114 @@
+# 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_{7,8,9,10,11} pypy3 )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 optfeature pypi
+
+MY_PN="SQLAlchemy"
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="
+ https://www.sqlalchemy.org/
+ https://pypi.org/project/SQLAlchemy/
+ https://github.com/sqlalchemy/sqlalchemy/
+"
+SRC_URI="$(pypi_sdist_url --no-normalize "${MY_PN}")"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="examples +sqlite test"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_impl_dep sqlite)
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/greenlet/d' setup.cfg || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ test/ext/mypy/test_mypy_plugin_py3k.py
+ # hardcode call counts specific to Python versions
+ test/aaa_profiling
+ )
+ local EPYTEST_DESELECT=(
+ # warning tests are unreliable
+ test/base/test_warnings.py
+ # TODO
+ test/orm/test_versioning.py::ServerVersioningTest_sqlite+pysqlite_3_40_1::test_sql_expr_w_mods_bump
+ test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_0::test_pickle_rows_other_process
+ )
+ local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
+ [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=(
+ test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access
+ test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg
+ test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg
+ test/engine/test_processors.py::PyDateProcessorTest::test_date_invalid_string
+ test/engine/test_processors.py::PyDateProcessorTest::test_datetime_invalid_string
+ test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string
+ "test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message"
+ "test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"::test_{delete,insert,update}_single
+ test/base/test_utils.py::ImmutableDictTest::test_pep584
+ )
+ if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution
+ test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]"
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]"
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]"
+ "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]"
+ "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]"
+ "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]"
+ )
+ fi
+
+ # upstream's test suite is horribly hacky; it relies on disabling
+ # the warnings plugin and turning warnings into errors; this also
+ # means that any DeprecationWarnings from third-party plugins cause
+ # everything to explode
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=
+ # upstream automagically depends on xdist when it is importable
+ # note that we can't use xdist because it causes nodes to randomly
+ # crash on init
+ if has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"; then
+ PYTEST_PLUGINS+=xdist.plugin
+ fi
+ epytest
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "asyncio support" dev-python/greenlet
+ optfeature "MySQL support" \
+ dev-python/mysqlclient \
+ dev-python/pymysql \
+ dev-python/mysql-connector-python
+ optfeature "postgresql support" dev-python/psycopg:2
+}
diff --git a/dev-python/tldextract/Manifest b/dev-python/tldextract/Manifest
index bd5bdeccd7e2..ef943c08079c 100644
--- a/dev-python/tldextract/Manifest
+++ b/dev-python/tldextract/Manifest
@@ -1 +1,2 @@
DIST tldextract-3.4.0.tar.gz 111437 BLAKE2B 94a3a77144fcaddebdf2129cea8fd43e971f0ac9b40029c6c1735ee06f499f4bf48823fc61540d99f71fd62192742c10168ef8f25b534eec9e2a04d3879be63a SHA512 6cd6b079c35af62e4f8da67c687630471d1a57ebfab7d982abe411b03fb6673dd238a1f676de5624d13bd2eb42b91ae0a97708e33579217916d88bca4db218db
+DIST tldextract-3.4.1.tar.gz 104202 BLAKE2B 24e6f5a4af1718fdf3b52b2c12146849033b80fc0ba0320ccf72735fd0e39c36678660a70a203964ebd92acb3911e037b899b1796a941731735fa1e028999cd1 SHA512 6b63ba8f800e1adc836ecee43947fc0ee5198eefe7d3f64a267c7e0a4d18a44c60454ba67636a4b19e00a125f8b37f1f816f782976a9a335e5500a333c8e07aa
diff --git a/dev-python/tldextract/tldextract-3.4.1.ebuild b/dev-python/tldextract/tldextract-3.4.1.ebuild
new file mode 100644
index 000000000000..8ed1050e7c1f
--- /dev/null
+++ b/dev-python/tldextract/tldextract-3.4.1.ebuild
@@ -0,0 +1,35 @@
+# 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_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Accurately separate the TLD from the registered domain and subdomains of a URL"
+HOMEPAGE="
+ https://github.com/john-kurkowski/tldextract/
+ https://pypi.org/project/tldextract/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-file[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/tomlkit/Manifest b/dev-python/tomlkit/Manifest
index 3312e8b2e158..13182ef443e9 100644
--- a/dev-python/tomlkit/Manifest
+++ b/dev-python/tomlkit/Manifest
@@ -1,2 +1,3 @@
DIST tomlkit-0.11.6.tar.gz 188290 BLAKE2B c0fc64177dff2254ab4d377f15bada1093e69ed66f815b04f698359f096b123b256949e871344276e6fcda26e43ac22c505460c4f906505ea9676774cbfb0c5f SHA512 692f2facb18440609b63995f690f4ba29e82d696f5ce612f872499b4a42bb0ab33fcbf52abf36057c25448b3e29f30955dbc7e0ba34f10d21cb9b5d36e9ad9bf
DIST tomlkit-0.11.7.tar.gz 188555 BLAKE2B 1958ace56c37746585879f1b657af53f36d1b3e741a5e41438a9806897e252bfbf42040c65a05df6c1921413da3e68be6d5d6ef9ce0a0c5d457b170f1cce6528 SHA512 456de2047fe1da1905ebf6eed99bdbd7d565fab2ecb50b9c06655188271d52b3680882ce0db2beb69fa9e7d18548b8045a99c4897e12e1d92d9cf92a937864ab
+DIST tomlkit-0.11.8.tar.gz 188825 BLAKE2B 3b3b31f0243592ae28d3fc7c23bc6cd61eaa0d9907f4c7afc838e816783ac4ce28a0491c15c31649749272c8d65dd51b7a0160c8f0bf1e209115ebcb5ba13906 SHA512 538851d5460770000a1263fb2384dc8283f9fe56364ccebac2cef31be85c51056bbaf59c96134ceae624b978334c29b54653c28838567cd2806e70ec6e3e5856
diff --git a/dev-python/tomlkit/tomlkit-0.11.8.ebuild b/dev-python/tomlkit/tomlkit-0.11.8.ebuild
new file mode 100644
index 000000000000..6f23d40c90c0
--- /dev/null
+++ b/dev-python/tomlkit/tomlkit-0.11.8.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=flit
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Style preserving TOML library"
+HOMEPAGE="
+ https://github.com/sdispater/tomlkit/
+ https://pypi.org/project/tomlkit/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "poetry' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "tomlkit"
+ version = "${PV}"
+ description = "Style preserving TOML library"
+ EOF
+}
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 0fccf8c13413..676e200f1ec1 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -5,3 +5,4 @@ DIST tox-4.4.6.gh.tar.gz 304337 BLAKE2B 2c157fe5febf1eb131d767ade87484880201bb37
DIST tox-4.4.7.tar.gz 168261 BLAKE2B 276842bb82d01c9e3b66f633e79974790b7d1852f831ab954172ddc1d3c50c861a39e959fb0a990a7102a1cc0840238ef3ac84c7b41f9f45ce502b1245e21988 SHA512 58989ecc0a555ee225614d9b7a718b22f6dd1555a0209a0c1428259fbfc7d336a58753fbfa85f1b9aa160c8489587999425437e71f9d4728631d5cd5b50ca159
DIST tox-4.4.8.tar.gz 169460 BLAKE2B 5353c489d5051b23b39c23fcbad1455556c23572b504ba241f9942a01f5ae5f1459d3b3837680aa9631dcd8a081c0f3b8acce1b18e85daeab3e2084ec966e451 SHA512 a6e5ceb19ebf1adcfe5cd093a2710da88c1552f2129211175990b7b7fb6b53716fdccd7592e9c6696bf13ce584443c9a266e40ed50953999883fa1a68ea6aec6
DIST tox-4.5.0.tar.gz 170132 BLAKE2B fbde455d90791b81ba8fb47b2c00a0c931e56bef39749a324e16b12f2955441371c74983d3c77b98f04f5a0e95ddf78678ff96fc2f99f42a87bd0058a3aefb98 SHA512 79e3fd7308a3da0df5859437ff7842a343578a98211a6a936f72caec857dbdb5e0bd4b80fd68a3a48fb0891d4608875ccc1b09d7127416aaa7109a8aa314979c
+DIST tox-4.5.1.tar.gz 170137 BLAKE2B 38ab00eb577e66211db0ecf8931087a8c5a14f8219eb7ebecb7be9938221d1c680edc09a38a5c72b9ec63825d4cbb2d4fd9157a52aed8cdb0d22a1c1bbb70cba SHA512 75d495d6dba134c3fe537fc190c1f428ff188ee67c346911c02ee151a8369425b22956eea52be5d434735e1590edce57b3487d5f4b277022bf8cfe8bf4660cf8
diff --git a/dev-python/tox/tox-4.5.1.ebuild b/dev-python/tox/tox-4.5.1.ebuild
new file mode 100644
index 000000000000..5369b90d97a4
--- /dev/null
+++ b/dev-python/tox/tox-4.5.1.ebuild
@@ -0,0 +1,80 @@
+# 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_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/cachetools-5.3[${PYTHON_USEDEP}]
+ >=dev-python/chardet-5.1[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.11[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.1[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.2[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1[${PYTHON_USEDEP}]
+ >=dev-python/pyproject-api-1.5.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
+ ' 3.8 3.9 3.10)
+ >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/hatch-vcs-0.3[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/build-0.10[${PYTHON_USEDEP}]
+ >=dev-python/distlib-0.3.6[${PYTHON_USEDEP}]
+ >=dev-python/flaky-3.7[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.9.4[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-3.2.1[${PYTHON_USEDEP}]
+ >=dev-python/re-assert-1.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/time-machine-2.9[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=(
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]'
+ 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]'
+ )
+
+ epytest
+}
diff --git a/dev-python/urllib3/Manifest b/dev-python/urllib3/Manifest
index b6b7559208f3..1aab9e8b5da9 100644
--- a/dev-python/urllib3/Manifest
+++ b/dev-python/urllib3/Manifest
@@ -1 +1,2 @@
DIST urllib3-1.26.15.tar.gz 301444 BLAKE2B 2681f0290a4f8b335dcdf384a0c0692cf51e88ea829f80c8c857be328b00c618978a84957da4e23826e4597fe90764eb36ab9acbbc33f9a6ec8df3e3ff3f4d48 SHA512 b6ddb29c15b2d729605a6acb7c602f18c75a937cdfe9649d35d790a59fbb1d96a8d68975ba0a4c073c9f1750e383c67b7566dbcd81b3e8611501e9f4153e9a2b
+DIST urllib3-2.0.0.tar.gz 276792 BLAKE2B 3f5966ea97f1ddbf73ef4d1d292b426f502a211fef6e2bc354a88dc95766faf99a5dd34cb891147c580a03b8c5fb2dd7fdee22988bd603db046c03245c850904 SHA512 24e1b34d266983cf4e1556cbe026cc62d7fdb14c5ec5dace800e0b40e0a4f898d4df1679de351d14598ab0f72eb1bec74b6d2976df628b786f4bab4cb4380044
diff --git a/dev-python/urllib3/urllib3-2.0.0.ebuild b/dev-python/urllib3/urllib3-2.0.0.ebuild
new file mode 100644
index 000000000000..e96d48691eb9
--- /dev/null
+++ b/dev-python/urllib3/urllib3-2.0.0.ebuild
@@ -0,0 +1,63 @@
+# 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_{7,8,9,10,11} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1 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 ~mips ~ppc ~ppc64 ~riscv ~x86 ~x64-cygwin ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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}]
+ dev-python/six[${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/tornado-4.2.1[\${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.18.0[\${PYTHON_USEDEP}]
+ " "${PYTHON_TESTED[@]}")
+ )
+"
+
+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
+ )
+
+ epytest
+}
diff --git a/dev-python/werkzeug/Manifest b/dev-python/werkzeug/Manifest
index d2594910d702..cf18b93ee249 100644
--- a/dev-python/werkzeug/Manifest
+++ b/dev-python/werkzeug/Manifest
@@ -1,2 +1,3 @@
DIST werkzeug-2.2.3.gh.tar.gz 847768 BLAKE2B 7d0b891a2b15e4fc469c3d331cfb2565f452ae77f772f7ab8e6254aedd172f9115cd3ebd9c82e951ea7505c0e58d6b6f07fb643a8e87af505e04686cccf56cd4 SHA512 3968e663f67e41da5148a4aa1d8e047ffd88416fa8df665e359bbe87992e4e723e1c915eed59ae86b53dd18817e41cdcef059483bce7aa8ed7b388dd4add1482
DIST werkzeug-2.3.0.gh.tar.gz 831666 BLAKE2B 2d4c792deab6e153794695e249ca97f24b5d70c7f912f7a6fd34b653a7e6e9e0fadb6178c3f388986d0c0dfc55fdbad9809894b70b38f32b3a6c7aaf4d1b4c3f SHA512 ec2bce1ae4311e99d931b96bb05fe98714e317e1d838edec1fd79a05e260ac544f680656b8d5957d123a59a94b40393eb12c3ca8d83e800cc46041b0c0968aea
+DIST werkzeug-2.3.1.gh.tar.gz 832058 BLAKE2B d92836c168339e4dfb07c27d8379548a6805e9aec884cb41b76b9b4196f982ec6d05a6e505bb2ad70e591e54a4a2cecd683b5b6b78a058f90adab704da154d1f SHA512 02b5feb1e4d5c7b24d7b890c579cd3211eb430101d14800ca6c1e2a244da90fee4d5c0cd4819ead58a2885df0c736c796720fd9a3378a1eabaf417aefaa5a919
diff --git a/dev-python/werkzeug/werkzeug-2.3.1.ebuild b/dev-python/werkzeug/werkzeug-2.3.1.ebuild
new file mode 100644
index 000000000000..431373578fd5
--- /dev/null
+++ b/dev-python/werkzeug/werkzeug-2.3.1.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_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of various utilities for WSGI applications"
+HOMEPAGE="
+ https://palletsprojects.com/p/werkzeug/
+ https://pypi.org/project/Werkzeug/
+ https://github.com/pallets/werkzeug/
+"
+SRC_URI="
+ https://github.com/pallets/werkzeug/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/markupsafe-2.1.1[${PYTHON_USEDEP}]
+"
+# NOTE: remove the loong mask after greenlet gains support for loong
+# see https://github.com/python-greenlet/greenlet/pull/257
+BDEPEND="
+ test? (
+ dev-python/ephemeral-port-reserve[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xprocess[${PYTHON_USEDEP}]
+ >=dev-python/watchdog-2.3[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ )
+ !hppa? ( !ia64? ( !loong? (
+ $(python_gen_cond_dep '
+ dev-python/greenlet[${PYTHON_USEDEP}]
+ ' 'python3*')
+ ) ) )
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ "tests/test_serving.py::test_server[https]"
+ tests/test_serving.py::test_ssl_dev_cert
+ tests/test_serving.py::test_ssl_object
+ )
+ fi
+
+ # the default portage tempdir is too long for AF_UNIX sockets
+ local -x TMPDIR=/tmp
+ epytest -p no:django -p no:httpbin tests
+}
diff --git a/dev-python/zeroconf/Manifest b/dev-python/zeroconf/Manifest
index 18d00f39ba4f..602476bd80b0 100644
--- a/dev-python/zeroconf/Manifest
+++ b/dev-python/zeroconf/Manifest
@@ -1,2 +1,3 @@
DIST zeroconf-0.56.0.tar.gz 140060 BLAKE2B 3199ebb995754f4c7a2b4881564664d95d2483f6307cd898ec1beb7e12fed0bc3ce501a0f4732a3f1e019db1641d08804d2f38ad769277c95a41b8c266860126 SHA512 8ba2cabc58ae5586b6e89f2771e4483a488bf4ef5201fe8684befc2930d34f96f5fd07040da7ec850f9450b2166ad22ef571821a56e33222cf5708c11f5f4aba
DIST zeroconf-0.58.0.tar.gz 140418 BLAKE2B 4e080fb18cf1823b1e32670bd1bce2ec4870055abdf8c7a200a536c77c07f58ce3cac48f255441480cff982c0d8a06001a8d39826c2c95e7666e79ed3da92fdf SHA512 112c7d83acdc40453a82f0ad76457aa1f5b467e11b8b545d60f1301738d8801c6de43a2d076937b01f2ab53aca38e4430a4bdbfb4dc0d606521d96e5b9a2b42d
+DIST zeroconf-0.58.2.tar.gz 140567 BLAKE2B 674f5d3cec4d1f5bf7c185e9224e8e5b3d21018898720461e670c1d65708c06855325b0fa8d20e822b3a7d35b2a17771b3c635f3cb60ee1e3d62c0d84be1bc02 SHA512 2a32a33fa1f66a3baa51a47d8c1c2679c0176ae1e9acbffa563d044679b842fd62d37d7813ca87b8b9bff719fd5e977d7df168310a57d0aa604f643150dbebc5
diff --git a/dev-python/zeroconf/zeroconf-0.58.2.ebuild b/dev-python/zeroconf/zeroconf-0.58.2.ebuild
new file mode 100644
index 000000000000..25239136be56
--- /dev/null
+++ b/dev-python/zeroconf/zeroconf-0.58.2.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_{7,8,9,10,11} )
+
+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.{9..10})
+"
+# the build system uses custom build script that uses distutils to build
+# C extensions, sigh
+BDEPEND="
+ >=dev-python/cython-0.29.32[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-65.6.3[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ 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
+ tests/test_core.py::Framework::test_launch_and_close_v4_v6
+ tests/test_core.py::Framework::test_launch_and_close_v6_only
+ tests/services/test_types.py::ServiceTypesQuery::test_integration_with_listener_ipv6
+
+ # 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=
+}