dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.15.0[${PYTHON_USEDEP}]
+ >=dev-python/sarif_om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+ # TODO: it looks as if AWS_DEFAULT_REGION didn't work
+ test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
+ test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_template_config
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/clang-python/Manifest b/dev-python/clang-python/Manifest
index 46d34e13e8c8..8ce7c3b50bd7 100644
--- a/dev-python/clang-python/Manifest
+++ b/dev-python/clang-python/Manifest
@@ -5,4 +5,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
DIST llvm-project-16.0.0.src.tar.xz 117933476 BLAKE2B fa09cd8f647ce0daf5a7eae9ac03b99594a9b3193b12065f43f9a6731875243f2f5b354136bcadcb31622b246054e94f880eec3dab0bcd6ae89973fa9dca845c SHA512 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
DIST llvm-project-16.0.0.src.tar.xz.sig 566 BLAKE2B daba130aa5662fbf7cc2e7aa8fa6b64f9cb355a72330f7a01a21b86389c6f2f85ae93de19ff08ba3f1cfe2834d9a2b7648bdf659caba3afdb2a0d13984774a54 SHA512 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
+DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03fa74d603dda5a458463ca0cb261fe6949290c46a70abbd1ad1c556e08da3adc5df577305e267c1135214b900d78502e39b46bc5 SHA512 98fc11c0ad90d5e5a2cb123b497b89a1583fe7f91b3ff05c335037801ef66cbfab08f6d2eff539f0da238e9685d4bc7a9fb2578e28864fc9e9357b84129cefaa
+DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068
diff --git a/dev-python/clang-python/clang-python-16.0.1.ebuild b/dev-python/clang-python/clang-python-16.0.1.ebuild
new file mode 100644
index 000000000000..83f4d804e310
--- /dev/null
+++ b/dev-python/clang-python/clang-python-16.0.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for sys-devel/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=sys-devel/clang-${PV}:*
+ !sys-devel/llvm:0[clang(-),python(-)]
+ !sys-devel/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/clang-python/clang-python-16.0.0.9999.ebuild b/dev-python/clang-python/clang-python-16.0.2.9999.ebuild
similarity index 100%
rename from dev-python/clang-python/clang-python-16.0.0.9999.ebuild
rename to dev-python/clang-python/clang-python-16.0.2.9999.ebuild
diff --git a/dev-python/configshell-fb/Manifest b/dev-python/configshell-fb/Manifest
index be1b38506a9b..b98ff2978cfb 100644
--- a/dev-python/configshell-fb/Manifest
+++ b/dev-python/configshell-fb/Manifest
@@ -1,4 +1,3 @@
DIST configshell-fb-1.1.29-replace-getargspec-1.patch 1398 BLAKE2B 650efe1dad551ad040001cb2f576311806d329bd430874e1dac38a5cb94c4801140f32b628e0089809214466613e8f207ba3aff1a87dd8ca29c05593b551e5d7 SHA512 59c320939d4590dc2933de7d0ad613efd7236868fd898ce1edadbc55d1ecd8667e28a5c03caa80ea12420db3dd0e4de8c36ef5528352920d98acfd881648154a
DIST configshell-fb-1.1.29-replace-getargspec-2.patch 2981 BLAKE2B 88400de96d329c0efd2a9e9cb41f1c53e62c28507439c405874726fccc6093d5fe37e52b6e4b811bf0ccc7616c9a26b83b17e39a257aeab3c4114e1486a32575 SHA512 621b125cde9fcc68f46a3a32fd78190a46f900ec808233a60c4beb22c6109165f0743a341991e6c556dc5a76b7c6a42b703f2a6be91915110f196845a3fa111c
DIST configshell-fb-1.1.29.gh.tar.gz 33192 BLAKE2B 6c9c2146a597572675611afe259122b0ec9614295c4b9b4056d7a16f35004700b1e6fc29e1bf868d9ba6291b781ca35eab77e8adf23c6d23e09de2fb94626f26 SHA512 1b5f573506317119d2420e415abbb856692caa65a7f407f741300eec302d1b442e29d2691f6a192b202b2a5731a7a179d1b03f6cd27780876194d97e4df5f7d0
-DIST configshell-fb-1.1.29.tar.gz 55036 BLAKE2B 4a9a8f2573b43a9c8ddbda837e831c96b221f4499acb1aeeb990a7b1050c5572e9b745857ac9d1de4089d1758dd1284d0555da524def80e0a1caac18bb43a921 SHA512 0d7663cf58431c8b0be5618e5ef454838489e11a3074e5bd63145c3ea965065e37f1a41b5775363a35498a4d5dd86ad5453feb58dd74853cd77ae196b44c658e
diff --git a/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild b/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild
index c1efcb33a256..3bad960c4654 100644
--- a/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild
+++ b/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
RDEPEND="
dev-python/pyparsing[${PYTHON_USEDEP}]
diff --git a/dev-python/configshell-fb/configshell-fb-1.1.29.ebuild b/dev-python/configshell-fb/configshell-fb-1.1.29.ebuild
deleted file mode 100644
index f0dda5939ec2..000000000000
--- a/dev-python/configshell-fb/configshell-fb-1.1.29.ebuild
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{9..10} )
-inherit distutils-r1
-
-DESCRIPTION="A Python library for building configuration shells"
-HOMEPAGE="https://github.com/open-iscsi/configshell-fb"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-
-RDEPEND="dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
- dev-python/urwid[${PYTHON_USEDEP}]"
diff --git a/dev-python/confuse/Manifest b/dev-python/confuse/Manifest
index d697b03cbb94..9cc8b0b4d140 100644
--- a/dev-python/confuse/Manifest
+++ b/dev-python/confuse/Manifest
@@ -1 +1,2 @@
DIST confuse-2.0.0.gh.tar.gz 48269 BLAKE2B 58b96ab65da7b48236b798ad5546a72f0f74934c42525b26b44c0aad08ba4de385dbc2dd6915a4b570b1c4e59003e23119f0da80cf84b1bbc88abb9f72d4d8b1 SHA512 53732ef24903bc464f4cda0c9a2728814ff286c2e2a2150b4703b61f925d5bf77d75b98469a4fb92267caeec736e51d33285264f3fd8daa4adaaf23fa9511733
+DIST confuse-2.0.1.tar.gz 50872 BLAKE2B fc28d6109abec7a233ade85de35ba10264261eb37367fbfa7b6719399cedffc87da3c0bb563b8d9524551cf11ff679896e0a8cc123e08f5291c40d04ffcfe314 SHA512 fe9e17d3b321079290fa2c7db64cd5664db11f1277fe608cf5a1419254b83eee9bc169e34631a429ab1bf47779ea709156b8310a97e65fae32a20802b379fa76
diff --git a/dev-python/confuse/confuse-2.0.1.ebuild b/dev-python/confuse/confuse-2.0.1.ebuild
new file mode 100644
index 000000000000..f19d138dcfe9
--- /dev/null
+++ b/dev-python/confuse/confuse-2.0.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} pypy3 )
+DISTUTILS_USE_PEP517=flit
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Confuse is a configuration library for Python that uses YAML"
+HOMEPAGE="
+ https://github.com/beetbox/confuse/
+ https://pypi.org/project/confuse/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+distutils_enable_sphinx docs \
+ 'dev-python/sphinx-rtd-theme'
diff --git a/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild b/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild
index 7fbae1ced281..aa01b8d7ac26 100644
--- a/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild
+++ b/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild
@@ -17,7 +17,11 @@ SRC_URI="https://github.com/django-crispy-forms/${PN}/archive/refs/tags/${PV}.ta
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
+IUSE="test"
RDEPEND="dev-python/django-crispy-forms[${PYTHON_USEDEP}]"
+BDEPEND="test? (
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+)"
distutils_enable_tests pytest
diff --git a/dev-python/crispy-bootstrap4/Manifest b/dev-python/crispy-bootstrap4/Manifest
new file mode 100644
index 000000000000..5c4459a71470
--- /dev/null
+++ b/dev-python/crispy-bootstrap4/Manifest
@@ -0,0 +1 @@
+DIST crispy-bootstrap4-2022.1.gh.tar.gz 30814 BLAKE2B 573847b614b5f6cf71fea6ed6831eeef48ac01b2c2db07653d600b5b0829209188d235a143585ed4fabb663264aff3b5f7a416d99d12a8e268d4c62edaf3db84 SHA512 7f1e5443229274de2aaf28bd63507bbe5dff7923f27509801ea9de9246fa393bfc4563a4aa6d586a1e642b87bb7dddcb3ad3403653912c0197f8638141c42229
diff --git a/dev-python/crispy-bootstrap4/crispy-bootstrap4-2022.1.ebuild b/dev-python/crispy-bootstrap4/crispy-bootstrap4-2022.1.ebuild
new file mode 100644
index 000000000000..1603b39db3f0
--- /dev/null
+++ b/dev-python/crispy-bootstrap4/crispy-bootstrap4-2022.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
+inherit distutils-r1
+
+DESCRIPTION="Bootstrap4 template pack for django-crispy-forms"
+HOMEPAGE="
+ https://pypi.org/project/crispy-bootstrap4/
+"
+SRC_URI="https://github.com/django-crispy-forms/${PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/django-crispy-forms[${PYTHON_USEDEP}]"
+BDEPEND="test? (
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+)"
+
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}"/${P}-test.patch )
diff --git a/dev-python/crispy-bootstrap4/files/crispy-bootstrap4-2022.1-test.patch b/dev-python/crispy-bootstrap4/files/crispy-bootstrap4-2022.1-test.patch
new file mode 100644
index 000000000000..1432235e3b56
--- /dev/null
+++ b/dev-python/crispy-bootstrap4/files/crispy-bootstrap4-2022.1-test.patch
@@ -0,0 +1,17 @@
+--- a/tests/test_form_helper.py 2023-04-01 18:48:25.847263389 +0200
++++ b/tests/test_form_helper.py 2023-04-01 18:48:38.817091994 +0200
+@@ -633,14 +633,6 @@
+ assert '