summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-05-21 10:47:44 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-05-21 10:47:44 +0000
commit10c8dfd3134343aaf5f2fdaac75fea3d51239f1c (patch)
treece1c09d52703e3e69bab7cdce69a63c6f85f710f /dev-python
parentfdb35d780cf6ca8e6775e73427ead65b47f991f0 (diff)
downloadbaldeagleos-repo-10c8dfd3134343aaf5f2fdaac75fea3d51239f1c.tar.gz
baldeagleos-repo-10c8dfd3134343aaf5f2fdaac75fea3d51239f1c.tar.xz
baldeagleos-repo-10c8dfd3134343aaf5f2fdaac75fea3d51239f1c.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/bibtexparser/bibtexparser-1.2.0-r2.ebuild (renamed from dev-python/bibtexparser/bibtexparser-1.2.0-r1.ebuild)14
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.23.5.ebuild65
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.26.5.ebuild70
-rw-r--r--dev-python/botocore/botocore-9999.ebuild1
-rw-r--r--dev-python/cloudpickle/Manifest1
-rw-r--r--dev-python/cloudpickle/cloudpickle-2.1.0.ebuild36
-rw-r--r--dev-python/dill/Manifest1
-rw-r--r--dev-python/dill/dill-0.3.5.1.ebuild35
-rw-r--r--dev-python/et_xmlfile/et_xmlfile-1.1.0-r1.ebuild10
-rw-r--r--dev-python/exceptiongroup/Manifest1
-rw-r--r--dev-python/exceptiongroup/exceptiongroup-1.0.0_rc7.ebuild34
-rw-r--r--dev-python/extras/extras-1.0.0-r2.ebuild28
-rw-r--r--dev-python/fixtures/fixtures-4.0.0.ebuild8
-rw-r--r--dev-python/flask-babelex/flask-babelex-0.9.4-r1.ebuild49
-rw-r--r--dev-python/flask-mail/flask-mail-0.9.1-r2.ebuild38
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.2.0.ebuild74
-rw-r--r--dev-python/keystoneauth/Manifest1
-rw-r--r--dev-python/keystoneauth/keystoneauth-4.6.0.ebuild62
-rw-r--r--dev-python/kgb/kgb-7.0-r1.ebuild (renamed from dev-python/kgb/kgb-7.0.ebuild)6
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-0.8.ebuild49
-rw-r--r--dev-python/objgraph/objgraph-3.5.0-r1.ebuild47
-rw-r--r--dev-python/openpyxl/Manifest1
-rw-r--r--dev-python/openpyxl/openpyxl-3.0.10.ebuild35
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-0.99.0.ebuild85
-rw-r--r--dev-python/osc-lib/Manifest1
-rw-r--r--dev-python/osc-lib/osc-lib-2.6.0.ebuild47
-rw-r--r--dev-python/pbr/pbr-5.9.0.ebuild20
-rw-r--r--dev-python/pydiffx/pydiffx-1.0.1-r1.ebuild (renamed from dev-python/pydiffx/pydiffx-1.0.1.ebuild)6
-rw-r--r--dev-python/pyglet/Manifest1
-rw-r--r--dev-python/pyglet/pyglet-1.5.26.ebuild73
-rw-r--r--dev-python/pytest-localserver/pytest-localserver-0.6.0-r1.ebuild (renamed from dev-python/pytest-localserver/pytest-localserver-0.6.0.ebuild)6
-rw-r--r--dev-python/pytest-shell-utilities/Manifest1
-rw-r--r--dev-python/pytest-shell-utilities/pytest-shell-utilities-1.2.0.ebuild42
-rw-r--r--dev-python/python-glanceclient/Manifest1
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-4.0.0.ebuild48
-rw-r--r--dev-python/python-keystoneclient/Manifest1
-rw-r--r--dev-python/python-keystoneclient/python-keystoneclient-4.5.0.ebuild52
-rw-r--r--dev-python/python-novaclient/Manifest1
-rw-r--r--dev-python/python-novaclient/python-novaclient-18.0.0.ebuild59
-rw-r--r--dev-python/python-swiftclient/Manifest1
-rw-r--r--dev-python/python-swiftclient/python-swiftclient-4.0.0.ebuild40
-rw-r--r--dev-python/pytools/Manifest1
-rw-r--r--dev-python/pytools/pytools-2022.1.9.ebuild34
-rw-r--r--dev-python/speaklater/Manifest1
-rw-r--r--dev-python/speaklater/metadata.xml4
-rw-r--r--dev-python/speaklater/speaklater-1.4.ebuild24
-rw-r--r--dev-python/utidylib/Manifest1
-rw-r--r--dev-python/utidylib/utidylib-0.8.ebuild36
-rw-r--r--dev-python/virtualenv-clone/Manifest1
-rw-r--r--dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild31
-rw-r--r--dev-python/weasyprint/Manifest1
-rw-r--r--dev-python/weasyprint/weasyprint-54.3.ebuild2
-rw-r--r--dev-python/weasyprint/weasyprint-55.0.ebuild44
58 files changed, 1310 insertions, 26 deletions
diff --git a/dev-python/bibtexparser/bibtexparser-1.2.0-r1.ebuild b/dev-python/bibtexparser/bibtexparser-1.2.0-r2.ebuild
index 10f2e91cd34f..c3a867b6b788 100644
--- a/dev-python/bibtexparser/bibtexparser-1.2.0-r1.ebuild
+++ b/dev-python/bibtexparser/bibtexparser-1.2.0-r2.ebuild
@@ -5,10 +5,14 @@ EAPI=8
PYTHON_COMPAT=( python3_{7,8,9,10} )
DISTUTILS_USE_PEP517=setuptools
+
inherit distutils-r1
-DESCRIPTION="A BibTeX parser written in python"
-HOMEPAGE="https://github.com/sciunto-org/python-bibtexparser"
+DESCRIPTION="A BibTeX parser written in Python"
+HOMEPAGE="
+ https://github.com/sciunto-org/python-bibtexparser/
+ https://pypi.org/project/bibtexparser/
+"
SRC_URI="
https://github.com/sciunto-org/python-bibtexparser/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
@@ -19,7 +23,9 @@ LICENSE="|| ( BSD LGPL-3 )"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-RDEPEND="dev-python/pyparsing[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+"
distutils_enable_tests pytest
@@ -27,5 +33,7 @@ src_prepare() {
# fixed in upstream 5f98bac62e8ff3c8ab6b956f288f1c61b99c6a5d
sed -e 's:unittest2:unittest:' \
-i bibtexparser/tests/test_crossref_resolving.py || die
+ # remove obsolete dep
+ sed -i -e "s:'future>=0.16.0'::" setup.py || die
distutils-r1_src_prepare
}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 06bb2febcd89..d78d2c9a7ee5 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,3 +4,4 @@ DIST boto3-1.23.1.tar.gz 499867 BLAKE2B 1ea53a7bf5f453a202347f29f0278d5397d6d10c
DIST boto3-1.23.2.tar.gz 500287 BLAKE2B b997f18cfb2b5c03eab7decd14a60d70546eb60fb2d52f02d94ee478686bd520e4e8111757e9e073f17f7f415d9eb7243fdcd9ac2e0f2b98f6bd6d34473dc794 SHA512 6a774199b719496143af79b1a8a0612441a4f1d9ce426dfc3d495679bb0fda3856b7b0e81e8403d050de52bf8363dec9f0242cca6b32cf39d172d559d6ddf548
DIST boto3-1.23.3.tar.gz 501196 BLAKE2B 8fbe6ec091e249bf675b9245a3ad73416bfae77de8c197f6b5bc6d919e7082aa36b53a93034d5658d7f27c928c932b0f077fc9beea6bbc9015c26e925cc565c2 SHA512 96fa0382a4841901eb961a1135799823710af24c236c4be6def180597bdb53a852fa2c0ea34cf6d1b8cfba0e5c5a2b10f361677a993b733bc14729ee68af16f2
DIST boto3-1.23.4.tar.gz 501445 BLAKE2B f38c963558c99fade5b55c0b8d96221de7af7a215f7be2a4863285152720318f05cbaf996f8f0910f68830fdbb214b242d2e8e2e538ae345e4877a0ed733c148 SHA512 85298ddbb4a305354c50f4f63e9e6d0a1c821ac18e15dfaaf3d8ea3e03fd86fb6ea913402c6ac5cde4305895f387cf25eca928b7f00403198ad2eb5efe965eb7
+DIST boto3-1.23.5.tar.gz 501625 BLAKE2B 5a996b4dffd325ea2d6582450b027767ca9845e8096193ef4a8a63ecd61999c67a83cc3b5bc4e77d1f50035188f97003942f1b64293adb36a9cd6e71781b2279 SHA512 5496de026313e9a767f3ba42fe903093ce69777627835a00d75dac4aa966c803a46682b4d766002af793c7e8c95be141cd0d0bbbf27961bd020ac18ef64f5175
diff --git a/dev-python/boto3/boto3-1.23.5.ebuild b/dev-python/boto3/boto3-1.23.5.ebuild
new file mode 100644
index 000000000000..b62a1bd2ec8f
--- /dev/null
+++ b/dev-python/boto3/boto3-1.23.5.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2022 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} )
+
+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/${PN}/archive/${PV}.tar.gz -> ${P}.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.3.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/source \
+ 'dev-python/guzzle_sphinx_theme'
+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 a1cfe77263dc..cd146cc1acc5 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,3 +4,4 @@ DIST botocore-1.26.1.tar.gz 8972136 BLAKE2B cf5d18d87fe5e78f6bb623e82dea9ec71286
DIST botocore-1.26.2.tar.gz 8990271 BLAKE2B 95ddae48b54ba0455959a95eb4dc992bf1a28b5b0004c8004298bea30eb729cc20d0bf7b189a0e62a12939365fd106ccfc06a00092b3229077b665bdcaebd86f SHA512 df478a29511a9436bcab16dca448d4d196988402a326fd8be8f0dd4fbfab0b97ef16b31f241c44e9f9973bbeafc99d79f317838e0e6a83f25299218fd5fce1ac
DIST botocore-1.26.3.tar.gz 8992054 BLAKE2B 74937d1a12f4c7509e0835ad273850a6de6df2f67d594cc30ea4bac7ef0b920e8d606aa39e4f47ec3a08fd0e47867cf7832db9218d9eebf4f2a08194ece63f4a SHA512 aae80723446a9f3ac4beb1fdd3690f62c2eb87cf41c2d5106d5ad1679507c7ac82da8b375a5c67a773057f7c1692e85d723952edb4ba62fe378788324b758b55
DIST botocore-1.26.4.tar.gz 8993009 BLAKE2B 4d968ed094a8581efa08ce7b51ea8967937e41192e1d7ef71a8d26220250c1534f3c9f4753913ce2763c3bb90305a31823507a7ff9f1c318b4c7b0fff06a59dc SHA512 80f2205e86e36e7c5ae7e29626fc5ff9b6e92741d752b68e37d835255d0a58663169232a7a57b57eb09dc84c6050b2d96fb1d17f571f894fe7a2f31135cc2a4f
+DIST botocore-1.26.5.tar.gz 8994964 BLAKE2B 472bc20b1a579674b97fa42f5b7bba2f06f1bcc40b11d5d5fa31b283a1d8648be82db4ee7e7170097d2e695bad2d1f9e398dfa7e4b85381134f151010f212be2 SHA512 a696c241989f6754596f69577c4e4f5d92df87e9b6488533e930b28b85e02fae8af1ac73d907790a75496a46824b45beb7df220c72be3bfc0bee8153b4846939
diff --git a/dev-python/botocore/botocore-1.26.5.ebuild b/dev-python/botocore/botocore-1.26.5.ebuild
new file mode 100644
index 000000000000..97701266bf61
--- /dev/null
+++ b/dev-python/botocore/botocore-1.26.5.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2022 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} )
+
+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="mirror://pypi/${PN:0:1}/${PN}/${P}.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}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/botocore-1.26.0-py311.patch"
+)
+
+distutils_enable_sphinx docs/source \
+ 'dev-python/guzzle_sphinx_theme'
+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
+ )
+
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/botocore/botocore-9999.ebuild b/dev-python/botocore/botocore-9999.ebuild
index 1556c4f3687e..97701266bf61 100644
--- a/dev-python/botocore/botocore-9999.ebuild
+++ b/dev-python/botocore/botocore-9999.ebuild
@@ -38,7 +38,6 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}/1.8.6-tests-pass-all-env-vars-to-cmd-runner.patch"
"${FILESDIR}/botocore-1.26.0-py311.patch"
)
diff --git a/dev-python/cloudpickle/Manifest b/dev-python/cloudpickle/Manifest
index bbab8c1d0b39..9c6afa809dbc 100644
--- a/dev-python/cloudpickle/Manifest
+++ b/dev-python/cloudpickle/Manifest
@@ -1 +1,2 @@
DIST cloudpickle-2.0.0.tar.gz 60038 BLAKE2B 21f3c170c21c5b5c44fbe5317d788e7b09cc4d15789d91227cfcf736807ee11cbbc003ea66dae4fb90de99ea5fd1c6096827efe4d438b92b8b73ec981e12e784 SHA512 4f2c0019a9b6b7ca4c8749b0c2b600ac502450f6fec9c23fe5b9ddece34c77105c86666274e24c6672d405c3e0e800b0a7da055a95ada8fcc060a63214aa9666
+DIST cloudpickle-2.1.0.tar.gz 60093 BLAKE2B b6d210f9da7c16be66f3538109207a652331fdb5389361acfccb414bf36865ecafea15fd57ab24741f9e01d362c188f2c246388688c38a4d09a670053b0f9c4f SHA512 c38bf1044e18e673a89676c78d2f49422a36f6ccbcd29719aa9adfd157210e38e84befcc44b4b6ffcd60537748fccd3e384ed52aa4e1b939d84d127c302e2bb1
diff --git a/dev-python/cloudpickle/cloudpickle-2.1.0.ebuild b/dev-python/cloudpickle/cloudpickle-2.1.0.ebuild
new file mode 100644
index 000000000000..bff4e19559b3
--- /dev/null
+++ b/dev-python/cloudpickle/cloudpickle-2.1.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Extended pickling support for Python objects"
+HOMEPAGE="
+ https://github.com/cloudpipe/cloudpickle/
+ https://pypi.org/project/cloudpickle/
+"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTHONPATH=${PYTHONPATH}:tests/cloudpickle_testpkg
+ # -s unbreaks some tests
+ # https://github.com/cloudpipe/cloudpickle/issues/252
+ epytest -s
+}
diff --git a/dev-python/dill/Manifest b/dev-python/dill/Manifest
index 8ed203cb53cf..ed0c4d1b654d 100644
--- a/dev-python/dill/Manifest
+++ b/dev-python/dill/Manifest
@@ -1,2 +1,3 @@
DIST dill-0.3.4.gh.tar.gz 152875 BLAKE2B 61c638f0459b94f5cc0dabd9d5fd224c3c010ab6ccc9b7e47943922e7e139bd74c7a5173657febb028fc79632792f807586e271316ad87bb505520163f85a300 SHA512 1b1991909a9782382ecdb2ada13249c8b446d3558de69501280c816f7cd6c6728f9d3303c826461245ab9e42c43c02e4605142f25e09244bb7ccc9ca68a4b565
+DIST dill-0.3.5.1.gh.tar.gz 161203 BLAKE2B 2f778f3d2792d5606f8a5d7fd7d993490592da5ade701a38a270f756d129ad49f2aa44277fcb1f69a14779fe2541e2a720dc643ebd0fad258725d5d9452c048f SHA512 3dcf5e262110031412d9dfaee5548fed80bfc4d6b404cddbc2d9a6f65e2b80fae45a622ef73768e7996d2fc9e8d2757ac04e2a73f3700c526037dbabaa8adf15
DIST dill-0.3.5.gh.tar.gz 161213 BLAKE2B 305aabe868b7718b57199a29fdb3ec4a28c797d36be458bb182f909ef39f15bc016779b2f08a1804c0eab6c940a2d5baef26d1c34bb4c9a0d0687674265bff96 SHA512 3bcaf692e98f2495aad9af44815c33ac9c64ea7c946f41a8d37851b63fc2c94bbcbc4a923559e2433971a900a34daf404f9461ba28b38657dd908a84b9f0b8d6
diff --git a/dev-python/dill/dill-0.3.5.1.ebuild b/dev-python/dill/dill-0.3.5.1.ebuild
new file mode 100644
index 000000000000..de7b124120a5
--- /dev/null
+++ b/dev-python/dill/dill-0.3.5.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Serialize all of Python (almost)"
+HOMEPAGE="
+ https://github.com/uqfoundation/dill/
+ https://pypi.org/project/dill/
+"
+SRC_URI="
+ https://github.com/uqfoundation/dill/archive/${P}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S=${WORKDIR}/${PN}-${P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+python_test() {
+ local fail= t
+ for t in tests/test_*.py; do
+ ebegin "\t${t}"
+ "${EPYTHON}" "${t}"
+ eend ${?} || fail=1
+ done
+
+ [[ ${fail} ]] && die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/et_xmlfile/et_xmlfile-1.1.0-r1.ebuild b/dev-python/et_xmlfile/et_xmlfile-1.1.0-r1.ebuild
index 99949deb4bd4..43200d9c8c39 100644
--- a/dev-python/et_xmlfile/et_xmlfile-1.1.0-r1.ebuild
+++ b/dev-python/et_xmlfile/et_xmlfile-1.1.0-r1.ebuild
@@ -14,16 +14,20 @@ MY_P=${PN}-${MY_PV}
DESCRIPTION="An implementation of lxml.xmlfile for the standard library"
HOMEPAGE="
https://pypi.org/project/et-xmlfile/
- https://foss.heptapod.net/openpyxl/et_xmlfile/"
+ https://foss.heptapod.net/openpyxl/et_xmlfile/
+"
SRC_URI="
- https://foss.heptapod.net/openpyxl/et_xmlfile/-/archive/${MY_PV}/${MY_P}.tar.gz"
+ https://foss.heptapod.net/openpyxl/et_xmlfile/-/archive/${MY_PV}/${MY_P}.tar.gz
+"
S=${WORKDIR}/${MY_P}
SLOT="0"
LICENSE="MIT"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-RDEPEND="dev-python/lxml[${PYTHON_USEDEP}]"
+RDEPEND="
+ dev-python/lxml[${PYTHON_USEDEP}]
+"
distutils_enable_tests pytest
distutils_enable_sphinx doc
diff --git a/dev-python/exceptiongroup/Manifest b/dev-python/exceptiongroup/Manifest
index 8d5ef4647b1c..6f00ff32de32 100644
--- a/dev-python/exceptiongroup/Manifest
+++ b/dev-python/exceptiongroup/Manifest
@@ -1,2 +1,3 @@
DIST exceptiongroup-1.0.0rc5.gh.tar.gz 16454 BLAKE2B 55af4d2240e4a5567f5669d15e8507c454d47c1f7d8f72212afeecfa37e0c4a6b36f9176a87a48d3f9edf0628a8c99863670d24aca3770dd88abaa463784c731 SHA512 dd5ee895b4531524c4f0dfaedf818ac76a1b6fe74cd75bbce824b6a0d2b981673ffd6ba36f71b5dacf3e17c89d196a258400d04a64c71f28c221d7fb0f934ab7
DIST exceptiongroup-1.0.0rc6.gh.tar.gz 17184 BLAKE2B 75a1a07d683cbd4d23c25156f4ff3fbda3f08e7df3be67320b08e995f469a9cbd66ca90391fb586972c5c601aff60d44eba3ec5c2d3cccbc791a0482600caea2 SHA512 f74fe5b5df5c7ceb09076db4b7327e2a22202f61fbbfcaeef4f2ce7fb0725a8f57756473db6b2d92d3ee044e26c7ad135d8366944e0858439c4a77ed8b5b7362
+DIST exceptiongroup-1.0.0rc7.gh.tar.gz 17323 BLAKE2B fc96a1a7978c4ac403132fbb9fba57cd61e8078e1d99e7103e37d7273737c2d8fbf84441a9cfc3c21a355713b13ec78f9befedcc05a74d9bb954ca80965dc789 SHA512 272675f3322f904b6270689696b2a770d8a96f195d8b142986f574e9c67735865afbde8bba0c5bdd43d299fc1f44a3360d273f9b15097efdcfa46f21f40d62bf
diff --git a/dev-python/exceptiongroup/exceptiongroup-1.0.0_rc7.ebuild b/dev-python/exceptiongroup/exceptiongroup-1.0.0_rc7.ebuild
new file mode 100644
index 000000000000..c41a06ffb7ca
--- /dev/null
+++ b/dev-python/exceptiongroup/exceptiongroup-1.0.0_rc7.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit_scm
+PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
+
+inherit distutils-r1
+
+MY_P=${P/_}
+DESCRIPTION="Backport of PEP 654 (exception groups)"
+HOMEPAGE="
+ https://github.com/agronholm/exceptiongroup/
+ https://pypi.org/project/exceptiongroup/
+"
+SRC_URI="
+ https://github.com/agronholm/exceptiongroup/archive/${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT PSF-2.4"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV/_}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/extras/extras-1.0.0-r2.ebuild b/dev-python/extras/extras-1.0.0-r2.ebuild
new file mode 100644
index 000000000000..fa186b2f7a6b
--- /dev/null
+++ b/dev-python/extras/extras-1.0.0-r2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2022 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} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Useful extra bits for Python that should be in the standard library"
+HOMEPAGE="
+ https://github.com/testing-cabal/extras/
+ https://pypi.org/project/extras/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/fixtures/fixtures-4.0.0.ebuild b/dev-python/fixtures/fixtures-4.0.0.ebuild
index 7e7e4f1cc7f3..ff615708e0bb 100644
--- a/dev-python/fixtures/fixtures-4.0.0.ebuild
+++ b/dev-python/fixtures/fixtures-4.0.0.ebuild
@@ -18,8 +18,6 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="|| ( Apache-2.0 BSD )"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
-IUSE="test"
-RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/pbr-5.7.0[${PYTHON_USEDEP}]
@@ -31,10 +29,8 @@ BDEPEND="
)
"
+distutils_enable_tests unittest
+
PATCHES=(
"${FILESDIR}"/${P}-pypy39.patch
)
-
-python_test() {
- emake check
-}
diff --git a/dev-python/flask-babelex/flask-babelex-0.9.4-r1.ebuild b/dev-python/flask-babelex/flask-babelex-0.9.4-r1.ebuild
new file mode 100644
index 000000000000..ba35a32d3581
--- /dev/null
+++ b/dev-python/flask-babelex/flask-babelex-0.9.4-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+MY_PN="Flask-BabelEx"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Adds i18n/l10n support to Flask applications"
+HOMEPAGE="
+ https://github.com/mrjoes/flask-babelex/
+ https://pypi.org/project/Flask-BabelEx/
+"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/flask[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1[${PYTHON_USEDEP}]
+ >=dev-python/speaklater-1.2[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.5[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+distutils_enable_sphinx docs \
+ dev-python/flask-sphinx-themes
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.9.3-tests-fix.patch"
+)
+
+src_prepare() {
+ # remove speaklater dep to allow speaklater3
+ sed -i -e '/speaklater/d' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ cd tests || die
+ eunittest
+}
diff --git a/dev-python/flask-mail/flask-mail-0.9.1-r2.ebuild b/dev-python/flask-mail/flask-mail-0.9.1-r2.ebuild
new file mode 100644
index 000000000000..813e36957ab9
--- /dev/null
+++ b/dev-python/flask-mail/flask-mail-0.9.1-r2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+MY_PN="Flask-Mail"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="Flask extension for sending email"
+HOMEPAGE="
+ https://pythonhosted.org/Flask-Mail/
+ https://github.com/mattupstate/flask-mail/
+ https://pypi.org/project/Flask-Mail/
+"
+SRC_URI="mirror://pypi/${MY_P:0:1}/${MY_PN}/${MY_P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/blinker[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/speaklater[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs
+distutils_enable_tests unittest
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index 399213bd1916..0e99c9cad0f1 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -2,3 +2,4 @@ DIST hatch-hatchling-v0.24.0.tar.gz 212154 BLAKE2B fc0fcdd20eb1a1040298a4c959911
DIST hatch-hatchling-v0.25.0.tar.gz 216944 BLAKE2B 298f284bc05bbba6c463d4c22ddbbd1438a3a068de2a14300343803f706f2bc3a69be83bdbb1876f4f2474e7cb1ac4e98226108ad290c5097bbc1135367b7183 SHA512 1cfc8ea27e46e316efeeee321e17770995e495f0b6a722b89d9632af7902e3a7ee7c5a729b8ca27e490a94b7ddcda9b4e03dd7274b305f928b0e31a469a1643f
DIST hatch-hatchling-v1.0.0.tar.gz 216365 BLAKE2B cb6b648d103c7e9848b1a15cd62aaf3ab39c458f83f6c56cf039a136b39ae6c59ba487c36860582f98fb1ede6b3c2dab148b023499b5e4a30de9d063379118c3 SHA512 e16b0c53705fe090713f40d661e4ac9a4d0c2ae22f9193fcbaa1eb4ba146a36642b5e188574ad00b6ddd06c60537db0eba18fe9f2676cc988effc9d74e0dffc4
DIST hatch-hatchling-v1.1.0.tar.gz 216865 BLAKE2B 82d168d518b84c26033d81002b22eb347a2b0c2abb26b79ef4aacaa3804924348e090c4d87b728e80a30bfacf7d8634be6c6f35d3cfcb95fd9e1ff50d35d4595 SHA512 062773f8f1d472602ba589022ec56a7d3dc4068ae66ec5e773912a793524649f73effe7b61c76f5a1cf6b264d2499d8d8660efcc0189f9bbbf60b4b948740dc5
+DIST hatch-hatchling-v1.2.0.tar.gz 216988 BLAKE2B b8f0fd0286075bb58e3ae875232c35cc5307582930ce03e8564c818d95f96be13f8bfbda950fe14257ab639b87a58fdd9f13fd5f024b70b5d16d12242a7ddeb4 SHA512 08bbaf8a9315d8e5a69ff09bf3121d9fdc7559e214c25203b61248e8c09b283076e3235261194cabc135f1eb0d6fa3ad1a9c1c9e02de45bcb7d9f3515b4246f6
diff --git a/dev-python/hatchling/hatchling-1.2.0.ebuild b/dev-python/hatchling/hatchling-1.2.0.ebuild
new file mode 100644
index 000000000000..e17f56cfc860
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.2.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{7,8,9,10} 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}.tar.gz
+"
+S=${WORKDIR}/${MY_P}/backend
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/editables-0.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.3[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/tomli-1.2.2[${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/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
+ )
+
+ # top-level "tests" directory contains tests both for hatch
+ # and hatchling
+ cd "${WORKDIR}/${MY_P}" || die
+ local -x PYTHONPATH="src:${PYTHONPATH}"
+ epytest tests/backend
+}
diff --git a/dev-python/keystoneauth/Manifest b/dev-python/keystoneauth/Manifest
index 47ebd25c1298..0629976d5c18 100644
--- a/dev-python/keystoneauth/Manifest
+++ b/dev-python/keystoneauth/Manifest
@@ -1 +1,2 @@
DIST keystoneauth1-4.5.0.tar.gz 266418 BLAKE2B cd56e6d62e185ded667b2e9a53478e65fdea7eea203e3598193b34137297a5b75e315433882a08d16f360936208eb55c6d4e5c80e64161f1ce00db2633e59d7a SHA512 eebf9f15624d4544351b26e80af4023dab3a60ad2848b14c1cf6ab4deab50d2c9812747f3e737aacd9e49eacaff3960d8cb1432067d2648d7d2552fdad907457
+DIST keystoneauth1-4.6.0.tar.gz 267019 BLAKE2B ad1df2ce6f88ca03f1c9cde6bd84014fc7afedb3fb2375bc95461bab466f82464393e20919e4e506bce2cdbf1283ef53777c7ab3e92e2195b21d95459814f408 SHA512 fe6fbb0e47fb3608b0653362da0d19bdcb7055f9d043c776d487a2f6af76bda1cc1d8a2b87a771cafb54d0cd349695618428ed7dd93aba273d3d455b4175cbc8
diff --git a/dev-python/keystoneauth/keystoneauth-4.6.0.ebuild b/dev-python/keystoneauth/keystoneauth-4.6.0.ebuild
new file mode 100644
index 000000000000..58950ac814bf
--- /dev/null
+++ b/dev-python/keystoneauth/keystoneauth-4.6.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="This package contains tools for authenticating to an OpenStack-based cloud"
+HOMEPAGE="https://github.com/openstack/keystoneauth"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}1/${PN}1-${PV}.tar.gz"
+S="${WORKDIR}/${PN}1-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+CDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${CDEPEND}
+ test? (
+ >=dev-python/betamax-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
+ >=dev-python/requests-kerberos-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # relies on specific test runner name
+ sed -i -e 's:run\.py:unittest_or_fail.py:' \
+ keystoneauth1/tests/unit/test_session.py || die
+ # remove the test that requires hacking
+ rm keystoneauth1/tests/unit/test_hacking_checks.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ eunittest -b
+}
diff --git a/dev-python/kgb/kgb-7.0.ebuild b/dev-python/kgb/kgb-7.0-r1.ebuild
index ed33efb9f6fe..0be2ac7e9013 100644
--- a/dev-python/kgb/kgb-7.0.ebuild
+++ b/dev-python/kgb/kgb-7.0-r1.ebuild
@@ -25,3 +25,9 @@ SLOT="0"
KEYWORDS="~amd64"
distutils_enable_tests pytest
+
+src_prepare() {
+ # remove .dev tag that breaks revdeps
+ sed -i -e '/tag_build/d' setup.cfg || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest
index c817c6eb6639..1dc7ac77f495 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1 +1,2 @@
DIST Nuitka-0.7.7.tar.gz 3785340 BLAKE2B e856bcb3ecf69ecaa447ea73219f544bfceae8ee3a480fbd13b0a763efb8c8ec3c856a6142cff6a91273a88fc0aec15a6bb6c28fab1d9ca0c4dfeca229c11b68 SHA512 124e2d405b1104d0ba42a69b20a5c6168bb0643a13a4de789279401e09c30091853a8e464d9c4877a01f93a5a63934617cf52678994d0ae179560cd21d5b196e
+DIST Nuitka-0.8.tar.gz 3829530 BLAKE2B 051be63639e491fb26e7ef36b7e034715d0dd0e39417b59c30b0c5628e78d6c655978a2198d7192b431f176a24060fa899fb9c17ff6dc02fedb64865ad37af5a SHA512 f4eef21a32b68d52363ede1f68afa0247bf61a142fc86763f28805ca3a611195bb87bd1229a31a4d0ce47bbae7f70cc18580ebab528772f0908f122d8341bc6c
diff --git a/dev-python/nuitka/nuitka-0.8.ebuild b/dev-python/nuitka/nuitka-0.8.ebuild
new file mode 100644
index 000000000000..3574a8ce15f5
--- /dev/null
+++ b/dev-python/nuitka/nuitka-0.8.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1 flag-o-matic optfeature
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="https://www.nuitka.net"
+SRC_URI="https://nuitka.net/releases/${P^}.tar.gz"
+S="${WORKDIR}/${P^}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-util/scons[${PYTHON_USEDEP}]"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+DOCS=( Changelog.pdf Developer_Manual.pdf README.pdf )
+
+distutils-r1_src_prepare() {
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "${PN}/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka3.1 doc/nuitka3-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" app-admin/chrpath
+}
diff --git a/dev-python/objgraph/objgraph-3.5.0-r1.ebuild b/dev-python/objgraph/objgraph-3.5.0-r1.ebuild
new file mode 100644
index 000000000000..b06ce42ab6d0
--- /dev/null
+++ b/dev-python/objgraph/objgraph-3.5.0-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 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} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Draws Python object reference graphs with graphviz"
+HOMEPAGE="
+ https://github.com/mgedmin/objgraph/
+ https://pypi.org/project/objgraph/
+"
+SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+IUSE="doc"
+
+RDEPEND="
+ media-gfx/graphviz
+"
+BDEPEND="
+ test? (
+ media-gfx/xdot
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/objgraph-3.4.1-tests.patch"
+)
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # the dependency is optional, actually
+ sed -i -e '/graphviz/d' setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/* )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/openpyxl/Manifest b/dev-python/openpyxl/Manifest
index d669466fb729..2473ba1d4a18 100644
--- a/dev-python/openpyxl/Manifest
+++ b/dev-python/openpyxl/Manifest
@@ -1 +1,2 @@
+DIST openpyxl-3.0.10.tar.bz2 2427596 BLAKE2B 7422e15d1852d7ce6fa7547cdde2ff6cbe02ccdc13d0a48272cc0f544ade8283833ccfd006d83cca0ac719b2354af76e220522655cadad8dda11bc39ddb6de30 SHA512 1b06ed6c17ab15c277a46cb83db030ba37424a718962070728a8723db50e3fb6a77078b26e04aaee4a924686cacb2c6413742f7aa3533c0f9ecfabca9757af56
DIST openpyxl-3.0.9.tar.bz2 2428070 BLAKE2B b62133ee8e732142428b4f9eaf158e6f33daf314ed1ad620d921ad10265d1db93e2fcef807a61b3277e96f245392fd19b48da715eb0c560c882683fb1407f7a1 SHA512 33c313c842a43003a6e056b58869652377bef74bcaf267c50cc49f6abb7caa8a1b4e8f3b400a054f7d1776e03763ebebc984d331520bd63411ec4acfa8a03787
diff --git a/dev-python/openpyxl/openpyxl-3.0.10.ebuild b/dev-python/openpyxl/openpyxl-3.0.10.ebuild
new file mode 100644
index 000000000000..dc9699d051b2
--- /dev/null
+++ b/dev-python/openpyxl/openpyxl-3.0.10.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure python reader and writer of Excel OpenXML files"
+HOMEPAGE="
+ https://openpyxl.readthedocs.io/en/stable/
+ https://foss.heptapod.net/openpyxl/openpyxl/
+"
+SRC_URI="
+ https://foss.heptapod.net/openpyxl/openpyxl/-/archive/${PV}/${P}.tar.bz2
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/et_xmlfile[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff,jpeg]
+ )
+"
+
+distutils_enable_sphinx doc
+distutils_enable_tests pytest
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 4beb8aac7b4f..540c9cd1e105 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -1 +1,2 @@
DIST openstacksdk-0.61.0.tar.gz 1029483 BLAKE2B 5add768f12bc42562bcdaddf0379e1f59af80b34c5a7f808aaa7469788a685b093b47a4c2a8a771f6cf426f6ac11e188fca0843aaa5173266f3c69a0ac69c4f9 SHA512 6f02486b9de8c540cf43f49f55b67dede34a24a96229d42b43aa215f6286566579f726b53732a9b3b952cee5df1fa8d3cf2f6ccc7c0ca7f9a1a96888640ff734
+DIST openstacksdk-0.99.0.tar.gz 1060314 BLAKE2B 0c8f641e301ba4fb8ca83e651f85f8ba98aa73904b2e94b15b17d99354aace5b73ba243c4e624e4c53dd7fb1deb147801aee93233f1fe019a0068873530bdb37 SHA512 5e15f29002231dbad15e7a2dadaa97e64ed191389d259222880a7e40984d6fbcd9d1602a041164e4f819141417d108a179171b4c1430947dc5c5e9cdc5409aea
diff --git a/dev-python/openstacksdk/openstacksdk-0.99.0.ebuild b/dev-python/openstacksdk/openstacksdk-0.99.0.ebuild
new file mode 100644
index 000000000000..cebedcfed81d
--- /dev/null
+++ b/dev-python/openstacksdk/openstacksdk-0.99.0.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="A collection of libraries for building applications to work with OpenStack"
+HOMEPAGE="https://github.com/openstack/openstacksdk/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+CDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${CDEPEND}
+ >=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/keystoneauth-3.18.0[${PYTHON_USEDEP}]
+ >=dev-python/munch-2.1.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="
+ ${CDEPEND}
+ 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/osc-lib/Manifest b/dev-python/osc-lib/Manifest
index 148f3cf6b894..21c09ae4e888 100644
--- a/dev-python/osc-lib/Manifest
+++ b/dev-python/osc-lib/Manifest
@@ -1 +1,2 @@
DIST osc-lib-2.5.0.tar.gz 97942 BLAKE2B 92c2d80463d966c96b3aa18edefc6044a8f20c21484a6ce52e81b57d7e1cf9ea4f3fc5d4a95f01a23c5480a4c4fa06c29d492d48a36f3b6a8df5608203d82045 SHA512 00351402b1048f3efaff2d21673c5dfc9cb41683a0ccb40defb6e8aeedd60271172e63fe25394f048dd4aed22a6bd185946d4d324b30ce111264fa6fd85acfd5
+DIST osc-lib-2.6.0.tar.gz 98452 BLAKE2B b22bcce4a0cdc787422f4fa2d63cae8a289801f5e04bbb2623f261017887e936d2514016ee38aa5b2e4f6e87f137f1d9f59a289b589cd0d6ccce21c54065ccd1 SHA512 b97935da923bbd802ba32a70a91084ca60377a0995b1b204053409c87865dda2a88e8bbf9adf3ed6fb05169448a9d1793a9ea00bc0199f17f86201989159621a
diff --git a/dev-python/osc-lib/osc-lib-2.6.0.ebuild b/dev-python/osc-lib/osc-lib-2.6.0.ebuild
new file mode 100644
index 000000000000..67f61029eb8f
--- /dev/null
+++ b/dev-python/osc-lib/osc-lib-2.6.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="A package of common support modules for writing OSC plugins"
+HOMEPAGE="https://github.com/openstack/osc-lib"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/cliff-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth-3.14.0[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/simplejson-3.5.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-3.0.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() {
+ # need to skip all tests under TestTagHelps class
+ # checks exact help message, based on another unittest runner
+ sed -e '179,$s/test_add_tag_/_&/' -i osc_lib/tests/utils/test_tags.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pbr/pbr-5.9.0.ebuild b/dev-python/pbr/pbr-5.9.0.ebuild
index c7fe6b972d99..c2a94c1dba37 100644
--- a/dev-python/pbr/pbr-5.9.0.ebuild
+++ b/dev-python/pbr/pbr-5.9.0.ebuild
@@ -4,12 +4,18 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYTHON_TESTED=( python3_{7,8,9,10} )
PYTHON_COMPAT=( python3_{7,8,9,10} pypy3 )
PYTHON_REQ_USE="threads(+)"
+
inherit distutils-r1
DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
-HOMEPAGE="https://github.com/openstack/pbr/"
+HOMEPAGE="
+ https://opendev.org/openstack/pbr/
+ https://github.com/openstack/pbr/
+ https://pypi.org/project/pbr/
+"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
@@ -35,22 +41,18 @@ BDEPEND="
>=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
>=dev-python/virtualenv-20.0.3[${PYTHON_USEDEP}]
dev-vcs/git
- ' 'python*')
+ ' "${PYTHON_TESTED[@]}")
)"
distutils_enable_tests unittest
-# This normally actually belongs here.
python_prepare_all() {
# TODO: investigate
sed -e s':test_console_script_develop:_&:' \
-e s':test_console_script_install:_&:' \
-i pbr/tests/test_core.py || die
- # broken on pypy3
- # https://bugs.launchpad.net/pbr/+bug/1881479
- sed -e 's:test_generates_c_extensions:_&:' \
- -i pbr/tests/test_packaging.py || die
- rm pbr/tests/test_wsgi.py || die "couldn't remove wsgi network tests"
+ # network
+ rm pbr/tests/test_wsgi.py || die
# installs random packages via pip from the Internet
sed -e 's:test_requirement_parsing:_&:' \
-e 's:test_pep_517_support:_&:' \
@@ -60,7 +62,7 @@ python_prepare_all() {
}
python_test() {
- if [[ ${EPYTHON} != python* ]]; then
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Testing on ${EPYTHON} is not supported at the moment"
return
fi
diff --git a/dev-python/pydiffx/pydiffx-1.0.1.ebuild b/dev-python/pydiffx/pydiffx-1.0.1-r1.ebuild
index 437c6e3d3305..7ff27d27a08a 100644
--- a/dev-python/pydiffx/pydiffx-1.0.1.ebuild
+++ b/dev-python/pydiffx/pydiffx-1.0.1-r1.ebuild
@@ -35,3 +35,9 @@ BDEPEND="
"
distutils_enable_tests unittest
+
+src_prepare() {
+ # remove .dev tag that breaks revdeps
+ sed -i -e '/tag_build/d' setup.cfg || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pyglet/Manifest b/dev-python/pyglet/Manifest
index e98bc52caf37..88e5402cdbd2 100644
--- a/dev-python/pyglet/Manifest
+++ b/dev-python/pyglet/Manifest
@@ -1,2 +1,3 @@
DIST pyglet-1.5.23.tar.gz 6532823 BLAKE2B 0f69766ff424385c623c0b5bbca74741f4a55008365a90617a8f688954cbd58e898f733b893ef5dc2e1a25f9aab400e1d6f17bb932353f1f4f339e73f79406d5 SHA512 ed088ee37521d8594cb7fd017f86c3ce0f8e8794bc628c5404cbe2d33fb56db0fa306e83e89be7d132be68be73619fdd30d4410cd04a3bcb2f5f012443fb8ed8
DIST pyglet-1.5.24.tar.gz 6533762 BLAKE2B 6ac19bc8e5eb55b068cacd1828adb09bb2f42f0231e795770cb110ad70961c7618dacb47bed043d26ca237b2fbdb6e7a319180208f9401e82e18beb73da62638 SHA512 d7dcc5ce8f718184e3cc8c398033975ca95c67802153e9470075e93c8ab587fd81f2c9f5a851e0719fd32d42576706da4a6f9b3053a597d56bdd8ad0047c735f
+DIST pyglet-1.5.26.tar.gz 6534434 BLAKE2B a4366390f4ed92ed9e6c2d362fd8a009adf0e8a21ca00e1b9fead3cba99d192bb007413eca36892433f3bc4e2bf3258c550b2827262fc70e87b20566d46acb15 SHA512 819b2bbf71c9c632c1cefbb31e2a7186905c1475a1e978cd75dd6c019e5a53e6af79bceb57c68b61a3bb5692e04091c89c67b9168bb76ee19009c1ab719b8530
diff --git a/dev-python/pyglet/pyglet-1.5.26.ebuild b/dev-python/pyglet/pyglet-1.5.26.ebuild
new file mode 100644
index 000000000000..2a11a80b2b42
--- /dev/null
+++ b/dev-python/pyglet/pyglet-1.5.26.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1 virtualx xdg-utils
+
+DESCRIPTION="Cross-platform windowing and multimedia library for Python"
+HOMEPAGE="
+ https://pyglet.org/
+ https://github.com/pyglet/pyglet/
+ https://pypi.org/project/pyglet/
+"
+SRC_URI="https://github.com/pyglet/pyglet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples image +sound"
+
+BDEPEND="
+ test? (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ media-libs/fontconfig
+ )
+"
+RDEPEND="
+ virtual/glu
+ virtual/opengl
+ image? ( || (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ x11-libs/gtk+:2
+ ) )
+ sound? ( || (
+ media-libs/openal
+ media-sound/pulseaudio
+ ) )
+"
+# ffmpeg? ( media-libs/avbin-bin )
+
+DOCS=( DESIGN NOTICE README.md RELEASE_NOTES )
+
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ xdg_environment_reset
+
+ local EPYTEST_DESELECT=(
+ # lacking device/server permissions
+ tests/unit/media/test_listener.py::test_openal_listener
+ tests/unit/media/test_listener.py::test_pulse_listener
+ )
+
+ # Specify path to avoid running interactive tests
+ # We could add in integration tests, but they're slow
+ nonfatal epytest tests/unit || die "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pytest-localserver/pytest-localserver-0.6.0.ebuild b/dev-python/pytest-localserver/pytest-localserver-0.6.0-r1.ebuild
index f916da95cd7b..820e9d7c903d 100644
--- a/dev-python/pytest-localserver/pytest-localserver-0.6.0.ebuild
+++ b/dev-python/pytest-localserver/pytest-localserver-0.6.0-r1.ebuild
@@ -33,3 +33,9 @@ EPYTEST_IGNORE=(
# requires aiosmtpd that is dead and broken beyond repair
tests/test_smtp.py
)
+
+src_prepare() {
+ # remove aiosmtpd dep
+ sed -i -e '/aiosmtpd/d' setup.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pytest-shell-utilities/Manifest b/dev-python/pytest-shell-utilities/Manifest
index dbde2226937f..d410c89a2001 100644
--- a/dev-python/pytest-shell-utilities/Manifest
+++ b/dev-python/pytest-shell-utilities/Manifest
@@ -1,2 +1,3 @@
DIST pytest-shell-utilities-1.0.5.tar.gz 89489 BLAKE2B 9cd7f95c9c1691e19c320378d1c2a4e147cb6fdc35ec6f3c80dc288e70416fce67b60ac86427f1ad322b2c17de3cd762e483d63076fa291b4b7d22d7a29c9e45 SHA512 395107af9eaa13ef39d01858e1674b6dedddc2cf93b9aba61316fd8d847031e1b535cc3bf4f2899dbc7828609b7d45b500aad29bb47668be6e0453ac099e99e4
DIST pytest-shell-utilities-1.1.0.tar.gz 90873 BLAKE2B e787733fe641eae1884470b9410f017ef718b2f51cff09f7de592efc88a7f39bdc442e56ade2c547476a9ec7200b027a9ca2aed168afe162c8d4d06c6aaf6c61 SHA512 965c85d73f2be082253892d36b90fa60db0e8548272e34a3531c98c537e86b4e2cff477c017762bf9e275d97504b779e7d741e982cc03b114e30cee9c4904d95
+DIST pytest-shell-utilities-1.2.0.tar.gz 89881 BLAKE2B 8332f4f6b9b232cc8d17e94eef569ea7f17e14c4a97b060f84fd860de79bb5db2ebad5c239e889d2405e8be3db0d54b94a7071661eaf7065860049bcbc1e60a2 SHA512 efca390e2e3c78f82cf7888d511a1eb0e06e940259cfba146c40eeb54d5394f010497730837192c58e3b8c4cd350de54781f7ead7d3513d738eb34f81cc4d5ba
diff --git a/dev-python/pytest-shell-utilities/pytest-shell-utilities-1.2.0.ebuild b/dev-python/pytest-shell-utilities/pytest-shell-utilities-1.2.0.ebuild
new file mode 100644
index 000000000000..9ed27b5140d6
--- /dev/null
+++ b/dev-python/pytest-shell-utilities/pytest-shell-utilities-1.2.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="pytest plugin: fixtures and code to help with running shell commands on tests"
+HOMEPAGE="
+ https://pypi.org/project/pytest-shell-utilities/
+ https://github.com/saltstack/pytest-shell-utilities/
+"
+SRC_URI="
+ https://github.com/saltstack/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}]
+ dev-python/attrs[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
+ dev-python/pytest-skip-markers[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/python-glanceclient/Manifest b/dev-python/python-glanceclient/Manifest
index 42d07c708631..f01ec4cb9ff4 100644
--- a/dev-python/python-glanceclient/Manifest
+++ b/dev-python/python-glanceclient/Manifest
@@ -1 +1,2 @@
DIST python-glanceclient-3.6.0.tar.gz 202581 BLAKE2B 20bf5ee863cc3d319cc7b670f4a218c9b84b49c392f7a7756636a93643ddf81781f808d6d966ca1982246b66b7963354c433239f554eb2aa0291bd1d57da2e79 SHA512 7bcf08386cfe6d4787dd8e6616907814a53fcc35bdac1818aef7ba094dcd37dfddddda43a1451d55f22d175f400f8680801d1a43508c5d85ce39f15164b71a5d
+DIST python-glanceclient-4.0.0.tar.gz 202815 BLAKE2B a1d6dc46ca77c67bd42e6603b36652cc2ad9464b172b0bea778aa87130a6ed68613dda68db1ad5215e6d2ea34b9ecd96bc0ce853b94fc137b80aa7c85763622e SHA512 31ce9ee865ba543674a9ccc0267f1e02308e444bedfe1728ed59c20abe77cd7936b059c5adb0a8f73e5bf999c5ac5a34ac3cafe2e695718535ead786916e2414
diff --git a/dev-python/python-glanceclient/python-glanceclient-4.0.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-4.0.0.ebuild
new file mode 100644
index 000000000000..04152377b9aa
--- /dev/null
+++ b/dev-python/python-glanceclient/python-glanceclient-4.0.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Glance API"
+HOMEPAGE="https://github.com/openstack/python-glanceclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/keystoneauth-3.6.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/warlock-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/warlock-2[${PYTHON_USEDEP}]
+ >=dev-python/wrapt-1.7.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ddt[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/tempest[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b glanceclient/tests/unit
+}
diff --git a/dev-python/python-keystoneclient/Manifest b/dev-python/python-keystoneclient/Manifest
index 7cb30b7c5dac..237ccfe0219d 100644
--- a/dev-python/python-keystoneclient/Manifest
+++ b/dev-python/python-keystoneclient/Manifest
@@ -1 +1,2 @@
DIST python-keystoneclient-4.4.0.tar.gz 325003 BLAKE2B 4c375ce3c3e0c5c97c20ef89fe240c8d36fa6f2cbd32adc91759cf4a94c95eea8b7a90a08be77322253adf8982f12523ec6cb49c4e0997245bc9dbd5f5d9c5ac SHA512 04e601bd193ea6301cf6350618221f857ff7c43cda350368954417559892101aa47ff9e053255bc4c7ca5dd5bfa6ef724eeec49dfcf29c2296033d80a8aa0252
+DIST python-keystoneclient-4.5.0.tar.gz 325120 BLAKE2B 4511cb381ebfc11afefef0dbb7b9962efd2bbb5ac7455386ef4e831459614dfd51570cfaa1be9672936a6ed45d58b9b29e8326830840e80ffdb758089cbab887 SHA512 d3a5034bd05843b733410d4c6fc2c271edb25c837b50ba801031b45a00c0632b4420f2f4dd24dd25e78bf71b5ae31e2ec6b303d85aa4ecea0a89a49b5c67533d
diff --git a/dev-python/python-keystoneclient/python-keystoneclient-4.5.0.ebuild b/dev-python/python-keystoneclient/python-keystoneclient-4.5.0.ebuild
new file mode 100644
index 000000000000..73d1759dcbd4
--- /dev/null
+++ b/dev-python/python-keystoneclient/python-keystoneclient-4.5.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Client Library for OpenStack Identity"
+HOMEPAGE="https://www.openstack.org/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/os-client-config-1.28.0
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tempest-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest keystoneclient/tests/unit
+}
diff --git a/dev-python/python-novaclient/Manifest b/dev-python/python-novaclient/Manifest
index 36bcfd6bc267..514925bc312a 100644
--- a/dev-python/python-novaclient/Manifest
+++ b/dev-python/python-novaclient/Manifest
@@ -1 +1,2 @@
DIST python-novaclient-17.7.0.tar.gz 335462 BLAKE2B bfd7853a5100df1d9a0e17f905c9a2d4ea0d13e1345438d42e4af21e348e78c3f4ddca6408f31fb164f4bf3b2770088118e24ec12edd1afb2a4c22b3b0461092 SHA512 3942088f2636d186434b7ae4184ee84f5e1e4862a526b33befae09219eb7d08ab02fed64589aa9eefd0ab263ea231969b0e4e59a0427eaae5daaa26516d92ffd
+DIST python-novaclient-18.0.0.tar.gz 335142 BLAKE2B 0b76ce92897e16310892427efc9062d20d1316be61e7391eaf9aca618844c4420f963591d1aa773b2d1ae1785aaf63888de6aec5baabbbedb09e4937a14d24d2 SHA512 fe3c5ad591679329a77421a1ef520823855d0ba1a7aa077d92a8b01e2b8bdab814c8cc94b5f76c1e59d6c7e70355f6efebd7b3596a4d4f74966aaedc38deac4a
diff --git a/dev-python/python-novaclient/python-novaclient-18.0.0.ebuild b/dev-python/python-novaclient/python-novaclient-18.0.0.ebuild
new file mode 100644
index 000000000000..f27cb3fa5e21
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-18.0.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="https://github.com/openstack/python-novaclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.2[${PYTHON_USEDEP}]
+ >dev-python/requests-2.12.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-2.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/bandit[${PYTHON_USEDEP}]
+ dev-python/ddt[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/python-keystoneclient[${PYTHON_USEDEP}]
+ dev-python/python-cinderclient[${PYTHON_USEDEP}]
+ dev-python/python-glanceclient[${PYTHON_USEDEP}]
+ dev-python/python-neutronclient[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/openstacksdk[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ dev-python/tempest[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ sed -e 's/test_osprofiler/_&/' -i novaclient/tests/unit/test_shell.py || die
+ sed -e 's/novaclient\.tests\.unit\.//' -i novaclient/tests/unit/test_api_versions.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b novaclient/tests/unit
+}
diff --git a/dev-python/python-swiftclient/Manifest b/dev-python/python-swiftclient/Manifest
index 3e7ff43473ac..a74cd62be614 100644
--- a/dev-python/python-swiftclient/Manifest
+++ b/dev-python/python-swiftclient/Manifest
@@ -1 +1,2 @@
DIST python-swiftclient-3.13.1.tar.gz 201632 BLAKE2B f7cdf7e30ea333f568c8ef06d065b18908b1e4c9f8f0b777906bdfa8f6c998292136859f62f0d2e58465ee9eec3452d29e3e69ed7567a07bfcddcf6ad1bf321c SHA512 bd958fb8cfde6f72bcf82d381ce06e0e94c383aee85abab5a111c408bacf2578eaf53244ae12438d4454fcefe8d867246aef952d1d15012364e20817cc90042d
+DIST python-swiftclient-4.0.0.tar.gz 200490 BLAKE2B 37cadf27758640a916014e09309282a4b7ffebb3e578ae7411744fafd22431cfb748cffb4127309b20a8b2d8daca7f8f0a1ed6431f55766c33b243744ce5a71e SHA512 9058558564973ea2a4944e87dedd7b9b12e106672576da1d796eae336d3127ce8b35803cade93c605b38fd16a2d3466e6dc710838ceb77143059007625299360
diff --git a/dev-python/python-swiftclient/python-swiftclient-4.0.0.ebuild b/dev-python/python-swiftclient/python-swiftclient-4.0.0.ebuild
new file mode 100644
index 000000000000..aeb051d1edbf
--- /dev/null
+++ b/dev-python/python-swiftclient/python-swiftclient-4.0.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings to the OpenStack Object Storage API"
+HOMEPAGE="https://launchpad.net/python-swiftclient"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pbr[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/keystoneauth-3.4.0[${PYTHON_USEDEP}]
+ dev-python/python-keystoneclient[${PYTHON_USEDEP}]
+ >=dev-python/mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-0.11.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_prepare_all() {
+ sed -e 's/test_password_prompt/_&/' -i test/unit/test_shell.py || die
+ # fix duplicate script/entry point
+ # https://bugs.launchpad.net/python-swiftclient/+bug/1975361
+ sed -i -e '/bin\/swift/d' setup.cfg || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index 4071c197e85a..ecae2e22fa5e 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -4,3 +4,4 @@ DIST pytools-2022.1.5.tar.gz 68877 BLAKE2B f25bf60d4bb927f3b1cfb6535704a0ea25824
DIST pytools-2022.1.6.tar.gz 68918 BLAKE2B ddbc2b4956aa820c811dd04ea6297455837d388c6aae46b73a934086014aa58633777a2647ea1aa8c13d61f2aa95f36b836d1f98104a926cdfd12402c6456410 SHA512 9b2c2f9e08d71ee5b56e352fff36206276108125174cd977103e59255f0ce180dc9bd00a9ae0e88071b3e60019862c6e72613bc094bfe64d26fa694e7de6685d
DIST pytools-2022.1.7.tar.gz 69154 BLAKE2B cba04b4033b1910ad0946f650a6e5ab94c0802375eb27575ce56a838a6c62c541f5ed6f80842b2b42c7001a6d1bbf0379aff559110e07862e24e60d60aa2a619 SHA512 9b96aded94604848e9e8784ecdd09aa1fd99a33005ac4840f9a33a5e059895193967060e9e9eb37281a8b8ebae5c9867671109137685492c03492efe672302db
DIST pytools-2022.1.8.tar.gz 69637 BLAKE2B 34d9c042f4314b27f00ada0bfefb6bbd9ee8f91b54c4eb5b84bcc4903b88f4a9b4bbd88b84d71487686f29edb9f8e13d731eb04cbfae90b12aba8750499bd65f SHA512 eef882303ecd7b7a9fb6669eaf6d70cb0ede5860e5011a4a5873df1ef9694e4726c70c61e614a48c007052e42bdd0b762aacefc8547969e8babecc3c19c95b5c
+DIST pytools-2022.1.9.tar.gz 69731 BLAKE2B 12a6b4a299eef5713dbe226b65b3f1d7ef92a67fbef7bcbf166a09dff79ce6eb2ac7976aab9c54d5a1363d96dc61db928ca44c22de8b33637cc0f09f0b0dd347 SHA512 242b41010db581ad18bc96572bd8f25b15ff4228e1ea3ad8eca2016a36d6a2b55bcc570437821eb40605ab45f574b738f8364adbfd0cac28c2b12fb75e75dd14
diff --git a/dev-python/pytools/pytools-2022.1.9.ebuild b/dev-python/pytools/pytools-2022.1.9.ebuild
new file mode 100644
index 000000000000..1a7d88f9557b
--- /dev/null
+++ b/dev-python/pytools/pytools-2022.1.9.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2022 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} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# NB: numpy is now an "extra" (optional) dep -- we can remove it from
+# RDEPEND If revdeps don't need it
+RDEPEND="
+ >=dev-python/numpy-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.8 3.9 3.10)
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/speaklater/Manifest b/dev-python/speaklater/Manifest
index 61fbdc05a266..03aeeb5e7e83 100644
--- a/dev-python/speaklater/Manifest
+++ b/dev-python/speaklater/Manifest
@@ -1 +1,2 @@
DIST speaklater-1.3.tar.gz 3582 BLAKE2B cddf87583670ae185336b73631b28da3dc26b74b75df82224da23df6c528ee074ca31c95d5fbe2971eb87c50480be022493164de62f02f1987a5768d7ae69092 SHA512 ae137d94c497cd4214e230c8906f3ba40e092f248206d37b61de2571567e39e27b7f58bcf2145bd0c81c195c3c5ed03fc0428e0a50c657c5c909ec82719454ef
+DIST speaklater3-1.4.tar.gz 4309 BLAKE2B 6ba32926a81c978c7d001d0ebe39c74779e05dd0275ee4f0b9d06fb9cc8bdd8502417ff6b9adefd5df3d6030a2f1b26d461ba2a8afcff383af294f634a68dec3 SHA512 7603bc5852b870a9ada6d730857de32ff47b842dabe8cb2310bbcdefceaf3bc5021a02cab058e646ba38d5a46e831ad9ec7bb4db75f91e07e999a9917ac24251
diff --git a/dev-python/speaklater/metadata.xml b/dev-python/speaklater/metadata.xml
index 775bcdae6aa7..853174b8f2ab 100644
--- a/dev-python/speaklater/metadata.xml
+++ b/dev-python/speaklater/metadata.xml
@@ -5,8 +5,6 @@
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/mitsuhiko/speaklater/issues</bugs-to>
- </upstream>
+
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/speaklater/speaklater-1.4.ebuild b/dev-python/speaklater/speaklater-1.4.ebuild
new file mode 100644
index 000000000000..e00e48c0070d
--- /dev/null
+++ b/dev-python/speaklater/speaklater-1.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+MY_P=speaklater3-${PV}
+DESCRIPTION="Lazy strings for Python"
+HOMEPAGE="https://pypi.org/project/speaklater3/"
+SRC_URI="mirror://pypi/s/speaklater3/${MY_P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+python_test() {
+ "${EPYTHON}" -m doctest -v speaklater.py ||
+ die "tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/utidylib/Manifest b/dev-python/utidylib/Manifest
index 04e26a3d08e7..cab22b729b09 100644
--- a/dev-python/utidylib/Manifest
+++ b/dev-python/utidylib/Manifest
@@ -1,2 +1,3 @@
DIST uTidylib-0.6.tar.gz 15771 BLAKE2B 9d4fe57d985ea6e52680bd528862d3236137221227a23fe05b886d01d240e21d7159dbf7d6da3af8020009ca45c60c2297e374bb7aa05cb6b5a8eaf444710c58 SHA512 a85506ef8824f66ee326ad651020dc3b4e00190e20dcd3814984fa27ff319f492fe5bac781b7c43c8694cbfc63409e3abda18981969c9be2c3cd023fe7a4f2f8
DIST utidylib-0.7.gh.tar.gz 15203 BLAKE2B c32f23ab3a94191423655f9b6a99bd85aca7072fcfea7507c5d4efb19c4ee22114afe136c6299e8322e15195c4f938094e49483b1a40d05522f2d232dd9a6acd SHA512 69b22671223cc9e1888a1be19b418e883baa79401bcf3856fa48cca441ae7fa414047c296f8fc9ff35aa7407901fa64cd8ddfcc56657a98e8e188073dfc72172
+DIST utidylib-0.8.gh.tar.gz 15285 BLAKE2B 85f0ec1a969f31cb952e326a5bce5f51d9a5bacdf33d7e703cc3a464621df86f568921a9dd17755be67d49c02631782cdabb4112ee7cf8e321079656bb362122 SHA512 cb9c868337e1bbfa80ac36ca1b3f85c4e35f62acb67dbd321167d568da17d9e562fdca6b777d88c08e03107401fbadc7cdebf243654bcde9825259117e36392f
diff --git a/dev-python/utidylib/utidylib-0.8.ebuild b/dev-python/utidylib/utidylib-0.8.ebuild
new file mode 100644
index 000000000000..59a2d0334783
--- /dev/null
+++ b/dev-python/utidylib/utidylib-0.8.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="TidyLib Python wrapper"
+HOMEPAGE="
+ https://cihar.com/software/utidylib/
+ https://github.com/nijel/utidylib/
+ https://pypi.org/project/uTidylib/
+"
+SRC_URI="
+ https://github.com/nijel/utidylib/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=app-text/htmltidy-5.0.0
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs
+
+EPYTEST_DESELECT=(
+ # https://github.com/nijel/utidylib/issues/9
+ tidy/test_tidy.py::TidyTestCase::test_missing_load
+)
diff --git a/dev-python/virtualenv-clone/Manifest b/dev-python/virtualenv-clone/Manifest
index 25dc92f02efe..2dd7b31a38df 100644
--- a/dev-python/virtualenv-clone/Manifest
+++ b/dev-python/virtualenv-clone/Manifest
@@ -1 +1,2 @@
DIST virtualenv-clone-0.5.6.gh.tar.gz 8723 BLAKE2B 2bac625f85a26ac2224fb982230fdf592963ac462d6d86c59100bf960fc37dd4ae7ae9da0e6234e1b2952d77ce55e0a0c60c06c7db4868709638f21479e8150b SHA512 5788a3d2994b3cbf4ec4668e2d0597e7a033a5eb13465b3964aeb2a38c5798a879e818a88a9cfa37b87a9aae534416c157cd82959af556b6ec94ffbc755ba844
+DIST virtualenv-clone-0.5.7.gh.tar.gz 8749 BLAKE2B 584f67c5a1921667ff2daf3b632ca6661d60ace166c6d05e22783a37c4387a92ec1a97990eb7a0c1a687d3e14d258df54b8b81c560458e33c31657c2c378382a SHA512 a71cc1e02ac70fb41945a505297ae894a0bd17e397f90b7cc9ddff599b2f649ca24d3e767a2672e8c27c387e5a235ec6bcbbfcdeb9a0c6e6d4600cf7f4149f4a
diff --git a/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild b/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild
new file mode 100644
index 000000000000..f0eecc22af37
--- /dev/null
+++ b/dev-python/virtualenv-clone/virtualenv-clone-0.5.7.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="A script for cloning a non-relocatable virtualenv"
+HOMEPAGE="
+ https://github.com/edwardgeorge/virtualenv-clone/
+ https://pypi.org/project/virtualenv-clone/
+"
+SRC_URI="
+ https://github.com/edwardgeorge/virtualenv-clone/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/weasyprint/Manifest b/dev-python/weasyprint/Manifest
index e5bbaf827e14..4f8a6f9e7828 100644
--- a/dev-python/weasyprint/Manifest
+++ b/dev-python/weasyprint/Manifest
@@ -1 +1,2 @@
DIST weasyprint-54.3.tar.gz 404544 BLAKE2B 52eabcab05a6806fd137648ab1a9c0cf00865f98c59a7ca43052b98b6eb54c503465285a4ceca86557a5461cd737ce9174fcda0fead08ddcd8cf632e09108bfa SHA512 4b11a2fedb2ae41b0752093a9af26c23122337ade0289e36045c2e666677f2234c43f27f12d22d571365294705458c7b34f8b2656ab3d9337f145d5b0292e92b
+DIST weasyprint-55.0.tar.gz 410970 BLAKE2B ba77f249c3568031eff9b7110864b69113f71ea197d0c7136de01bd40155a437b5e540e87219e6ca49428b98d8ec471dcf9ed1d0224d68a3b320e5fffb568239 SHA512 96cc6de5af86da47aa0b5a84c3f00679690774574f3370ca319afe77f3eb9c9725f3b0a6cbddf589f23f444972bc77b07cce7e27ee2c466484636b3cb30250a3
diff --git a/dev-python/weasyprint/weasyprint-54.3.ebuild b/dev-python/weasyprint/weasyprint-54.3.ebuild
index acd1f656c8d0..27d5f4fef73b 100644
--- a/dev-python/weasyprint/weasyprint-54.3.ebuild
+++ b/dev-python/weasyprint/weasyprint-54.3.ebuild
@@ -30,7 +30,7 @@ RDEPEND="
BDEPEND="
test? (
- app-text/ghostscript-gpl
+ <app-text/ghostscript-gpl-9.56
media-fonts/ahem
media-fonts/dejavu
)
diff --git a/dev-python/weasyprint/weasyprint-55.0.ebuild b/dev-python/weasyprint/weasyprint-55.0.ebuild
new file mode 100644
index 000000000000..27d5f4fef73b
--- /dev/null
+++ b/dev-python/weasyprint/weasyprint-55.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2022 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Visual rendering engine for HTML and CSS that can export to PDF"
+HOMEPAGE="https://weasyprint.org https://github.com/Kozea/WeasyPrint"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/cffi-0.6:=[${PYTHON_USEDEP}]
+ >=dev-python/cssselect2-0.1[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pillow-4.0.0[jpeg,jpeg2k,${PYTHON_USEDEP}]
+ >=dev-python/pydyf-0.0.3[${PYTHON_USEDEP}]
+ >=dev-python/pyphen-0.9.1[${PYTHON_USEDEP}]
+ >=dev-python/tinycss2-1.0.0[${PYTHON_USEDEP}]
+ x11-libs/pango
+"
+
+BDEPEND="
+ test? (
+ <app-text/ghostscript-gpl-9.56
+ media-fonts/ahem
+ media-fonts/dejavu
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/addopts/d' pyproject.toml || die
+ distutils-r1_src_prepare
+}