summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-03-31 13:39:37 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2022-03-31 13:39:37 +0000
commitda2764e87424db6597eb7d660475cf04c8557655 (patch)
tree38b02a7af7da045d54f34b4ebd8eb7cf258a9297 /dev-python
parent2f554a26ad94de2e833320953fd517020fad1e00 (diff)
downloadbaldeagleos-repo-da2764e87424db6597eb7d660475cf04c8557655.tar.gz
baldeagleos-repo-da2764e87424db6597eb7d660475cf04c8557655.tar.xz
baldeagleos-repo-da2764e87424db6597eb7d660475cf04c8557655.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/awxkit/Manifest1
-rw-r--r--dev-python/awxkit/awxkit-20.1.0.ebuild40
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.21.30.ebuild63
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.24.30.ebuild68
-rw-r--r--dev-python/click/Manifest1
-rw-r--r--dev-python/click/click-8.1.1.ebuild30
-rw-r--r--dev-python/doc8/Manifest1
-rw-r--r--dev-python/doc8/doc8-0.11.0.ebuild44
-rw-r--r--dev-python/huawei-lte-api/Manifest1
-rw-r--r--dev-python/huawei-lte-api/huawei-lte-api-1.6.ebuild34
-rw-r--r--dev-python/ioflo/ioflo-2.0.2-r2.ebuild40
-rw-r--r--dev-python/libcloud/Manifest1
-rw-r--r--dev-python/libcloud/libcloud-3.5.1.ebuild61
-rw-r--r--dev-python/pybind11/Manifest1
-rw-r--r--dev-python/pybind11/pybind11-2.9.2.ebuild58
-rw-r--r--dev-python/pylint/Manifest1
-rw-r--r--dev-python/pylint/pylint-2.13.4.ebuild81
-rw-r--r--dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.7.ebuild4
-rw-r--r--dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.8.ebuild2
-rw-r--r--dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.9.ebuild2
-rw-r--r--dev-python/pytest-salt-factories/Manifest3
-rw-r--r--dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch294
-rw-r--r--dev-python/pytest-salt-factories/files/pytest-salt-factories-1.0.0_rc13-tests.patch (renamed from dev-python/pytest-salt-factories/files/pytest-salt-factories-0.911.0-tests.patch)190
-rw-r--r--dev-python/pytest-salt-factories/pytest-salt-factories-0.121.1-r1.ebuild (renamed from dev-python/pytest-salt-factories/pytest-salt-factories-0.911.0.ebuild)21
-rw-r--r--dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild72
-rw-r--r--dev-python/pytest-shell-utilities/Manifest1
-rw-r--r--dev-python/pytest-shell-utilities/metadata.xml10
-rw-r--r--dev-python/pytest-shell-utilities/pytest-shell-utilities-1.0.5.ebuild46
-rw-r--r--dev-python/pytest-skip-markers/Manifest1
-rw-r--r--dev-python/pytest-skip-markers/metadata.xml10
-rw-r--r--dev-python/pytest-skip-markers/pytest-skip-markers-1.2.0.ebuild53
-rw-r--r--dev-python/pytest-system-statistics/Manifest1
-rw-r--r--dev-python/pytest-system-statistics/metadata.xml10
-rw-r--r--dev-python/pytest-system-statistics/pytest-system-statistics-1.0.2.ebuild49
-rw-r--r--dev-python/raet/raet-0.6.8-r4.ebuild41
-rw-r--r--dev-python/redis-py/Manifest1
-rw-r--r--dev-python/redis-py/redis-py-4.2.1.ebuild81
-rw-r--r--dev-python/setuptools-declarative-requirements/Manifest1
-rw-r--r--dev-python/setuptools-declarative-requirements/metadata.xml10
-rw-r--r--dev-python/setuptools-declarative-requirements/setuptools-declarative-requirements-1.2.0.ebuild47
42 files changed, 1337 insertions, 141 deletions
diff --git a/dev-python/awxkit/Manifest b/dev-python/awxkit/Manifest
index 7699135f959b..406577c52014 100644
--- a/dev-python/awxkit/Manifest
+++ b/dev-python/awxkit/Manifest
@@ -1,2 +1,3 @@
DIST awxkit-19.4.0.tar.gz 95558 BLAKE2B fa8f408e310ba819e6d8a326e67dddac44ffe0fec2ff3018e8eeeda269c50257689b221785f27c897f526e6f5180c49aa506be6b85e01602b0d7d1dcd88a6987 SHA512 c6c6cf897128153fbb1dac77d50028a7649b97278394384bf5a549c1583b9c89b694f1ce2c850d0b072a4a7142a9b906edfba8d3a68cb446c73a13e3e33c0a61
DIST awxkit-20.0.1.gh.tar.gz 15896876 BLAKE2B b1ad083e8aa5075b2acd03fe588223186e96f7a09451dec471f58fc463717079840368ad770c3bbcc819fdf7b148fcfdc098baa72dae923d3a3db514318c8a5e SHA512 caa6092bb2d47c9027fd20e42207f4e4fd431afaaec88afd498d0f535545f99dbd9186338e803d33e3cbaa3fcb4e44f29d6d7688b2c22f9393438aae3c9c6ed3
+DIST awxkit-20.1.0.gh.tar.gz 15917777 BLAKE2B da7f112472d55fa90fc2c92ac6c4fbce89928a24e861e18b04342039aae2ef467bbf5f8b67a0ad5a5e3a90d77f5363d6df742199d988aa7dd35ac1b00c3625ca SHA512 835053a7adabc96f21650e7ed2d4bfb088fbcdbf359572673904756d7bee4fe2b60fc42d1bdacf4c8ab5a1101e474cb8d6018ae67486b16d9675dbe69b9d056c
diff --git a/dev-python/awxkit/awxkit-20.1.0.ebuild b/dev-python/awxkit/awxkit-20.1.0.ebuild
new file mode 100644
index 000000000000..38a401e439f7
--- /dev/null
+++ b/dev-python/awxkit/awxkit-20.1.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2021-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="Command line interface for Ansible AWX"
+HOMEPAGE="https://github.com/ansible/awx"
+SRC_URI="https://github.com/ansible/awx/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/awx-${PV}/awxkit"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ dev-python/websocket-client[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+ sed -e 's|websocket-client==[[:digit:]\.]*|websocket-client|' \
+ -e "/'clean'/d" \
+ -i setup.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index a65744d752a7..0a2143854de3 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -5,4 +5,5 @@ DIST boto3-1.21.26.tar.gz 482624 BLAKE2B 19f38b86eab6363ff86febc9f7623def010314a
DIST boto3-1.21.27.tar.gz 482968 BLAKE2B f8dbabe73377a861cf1d3d2e9388f7ba91f2047d8ce792b44a10693e5b0575924b3abbd8ec2b72d0c3b9a553bb088fc17dc4cd23b571f375db45737376931a46 SHA512 54bb43022ba12fc7b5c54872632cd46c07c6f167246917b5413cdd30de6c327bc625410cdfe62f4ff257ad7c42da762d2bcec5515367e214131259ddc69a9061
DIST boto3-1.21.28.tar.gz 483052 BLAKE2B 89afa5ff7d9b8c256b525ef2d67a17de45fda8b63a3640513d9a786b2bcd77c0b8a5a572deb4bf3fb264fcc9c317c510b27fd836cba958816514bc1ac32bc327 SHA512 af6a8d11371b3616b15a5bf996b165808590d0074ead1bb54ee1b7a8357cd076648700838aba84f7d370120981db36096a6060c8b00ea7bdd9a4da5cb5ddcb8c
DIST boto3-1.21.29.tar.gz 483137 BLAKE2B fa753a52923d013a3c5b3981fb32614bc5cb7be1b7696d2b60df877b33814553c22eccaf8d66e4719922b4289181c2e8356a3b377b25e81c8bdf8496cd49d0a9 SHA512 6c916fce1097d226b865cebf2d8791bc40506d9dd5b2db49b61e038872fb2f51d9de727ab8c9da3accced2563e81314dbe87788af57d6366fb90c446d3b79555
+DIST boto3-1.21.30.tar.gz 483635 BLAKE2B b42a3f647c2b609ac6604e4390d4c1c45757a15d420ea9f9710a0c469547bdb8c1fbc3e4737de88fa628e58b6021da5e470cb3a04f95f8dd383df0089fa0d13c SHA512 993c584e3cdad05436b88b2959cc359713b96a20e54be12d305544b8f1e059196caa76566c88d979490d40bb73a2ee213618ec3e4a20cc01328a00e9f160fd53
DIST boto3-1.21.8.tar.gz 473069 BLAKE2B f08f76fb9c4e56e6ba5624c885973599505769d7f9eea6e20a06e1a641768b1f7b108fc7293282a55bf4c7d2b62eb34853f46b8c3ada9afb8fc25624daa60c12 SHA512 23ed88dcaefe3224db05959251befaae4f03859bf00daf649db1e838e5fb92e01a6da4bee8083366d804404aac358df19d7e4552d6aaf39f9c4b371ccc7f9088
diff --git a/dev-python/boto3/boto3-1.21.30.ebuild b/dev-python/boto3/boto3-1.21.30.ebuild
new file mode 100644
index 000000000000..80278b309f54
--- /dev/null
+++ b/dev-python/boto3/boto3-1.21.30.ebuild
@@ -0,0 +1,63 @@
+# 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"
+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 "${MAKEOPTS}" "$(get_nproc)")"
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index d2c2196fff37..7b93a043a2e6 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -5,4 +5,5 @@ DIST botocore-1.24.26.tar.gz 8855676 BLAKE2B ad8e82872429043a9a80d6584a5a8af623c
DIST botocore-1.24.27.tar.gz 8856607 BLAKE2B aa149a79106bc6e9460d2b69b032b20d0fcd9b0a4d7dda04ac656e0681aff378267f5c6bde4e64432f309ad4ed89ff8cae50b0dc92f01086f8fbe433e5347ad3 SHA512 1cdeb2926bfdd54eb6805295982891cb02005c01ee74e3394d8680e486fd924f73322fb9ae56730deaf360b0e60c9fd482759d597eadb3dc180cb099beff487c
DIST botocore-1.24.28.tar.gz 8856916 BLAKE2B d662fec904cdfb048582252cfa77dadfcb1fcb58bb61e4b273bda34120825a27bc630d2c7fffd215f8733cdba97534da643da6d5b094f3e2ee3c6bb0a86bb27f SHA512 3f10d5ccd2b8051598adc37e452b057a3b53bc267f9cc3fb71caa18f406e515f008f22d2394a37b194ff4c63477f93791e6bdc09657df5ba59377379227c106b
DIST botocore-1.24.29.tar.gz 8857387 BLAKE2B b873c369a6a9fe2d44124385f618f1caac2986cdbad2ea53cf9ce481692431ff389de44b055b0128eefbd1e26d8cf205d49cfb22decfa11bf6cba8c00aa5df3f SHA512 dcc836ebe25a510aa13f4ba54be99c0d2d086e6a54d446bd303ecd13f3528f004be92ff6408690ebda84b8c13f83ef19cc4026422c2ad15e3c32abfdbf923e9d
+DIST botocore-1.24.30.tar.gz 8860517 BLAKE2B dcdfdd59482a071a2dc7c2250c303abab6840ac9d90a9f3e4183e8137dbf34b37941e9e471dc5795e3eb67cff356dce08dba5fad02bf54ff1628ca6f247a04be SHA512 69ff9f6f777052e3c8aeb7b92cc75d1aa90b88bb5256bcbcae6e4a5d6d41783ea205a58c99a59627ecd720cdfa23caf315c48c792218937d91e6699791e75548
DIST botocore-1.24.8.tar.gz 8798121 BLAKE2B 4ca37ed7be0af62901bf154f75739cc7e07505a809e551884c72d5b5eed334fff1111fc6db016df522564a1f3d9b6f258e8eca96161a734711340bf880b553b5 SHA512 6ac2139694ab199313a0fb9a2f783b12de7f3915d10cba739f4758356a3b84a917c3c394954b6d82d7a62de907c6fe57a3559e2b9a625bb0479e7bacd31d21cc
diff --git a/dev-python/botocore/botocore-1.24.30.ebuild b/dev-python/botocore/botocore-1.24.30.ebuild
new file mode 100644
index 000000000000..5fe8ae8c2f96
--- /dev/null
+++ b/dev-python/botocore/botocore-1.24.30.ebuild
@@ -0,0 +1,68 @@
+# 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"
+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}/1.8.6-tests-pass-all-env-vars-to-cmd-runner.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 "${MAKEOPTS}" "$(get_nproc)")"
+}
diff --git a/dev-python/click/Manifest b/dev-python/click/Manifest
index da9f8d2768e4..c84a740d1828 100644
--- a/dev-python/click/Manifest
+++ b/dev-python/click/Manifest
@@ -1,3 +1,4 @@
DIST click-7.1.2.tar.gz 295757 BLAKE2B aea76d5378cfa49fe58a83132737d609d48b3d3a71ec65c0a8a144c7a0e244b5bdf0196ffe2150889b82edda20c3f1faa3c84a227fc9ef459a5a9646cff86129 SHA512 d0caf2fb0a258774a18a7b8f83bdfa73abeb70196a70b45a6cc35befaeb862d068d2f2cce4e27201ab2e3adcd02e7e2f099d6c37c497a507010eefa10ad16eba
DIST click-8.0.4.tar.gz 332977 BLAKE2B 71366fa8436fb6997675ecb84d98f43b40a646466f0f9f7a51f145bd6a41950836df30a545e50ab6166f3643766c994f5a636b9a2b6e0a700eec04d377aced25 SHA512 2a572863814ef4f79ee408d4aa8df30a15b958986c4615e13bdeab30b4847679330e1b3baeeeff1aa80464a08418400c7a1ff22f29db4fc8d8042ab7b1ba475c
DIST click-8.1.0.tar.gz 333449 BLAKE2B c0f5dfb245c5c8a71e9aa5200393d021f4e77ae73fa9a8cdef4abc35546d2ff0b7b1322776002dc28b37e8311141fc3db8a39b5cfbb8947781326b6417494563 SHA512 7d9fcd74392baa55e0fd9050e7382d4b8b542856d4fee79ec5a4d6185ddeb47abaed1de6771e30aaec6cee5cff7166dd8ab7fefbc6aefa1856adc58b9fecc0c7
+DIST click-8.1.1.tar.gz 333663 BLAKE2B c7b0de884c3ea5365d3227f5a4e81a41531dfa100705b203745bed15826cc7e9ace112c959ab5f4eabac510623d83ceeedf6ea36a40aaf8f997cbb6b3ba1abfb SHA512 b553d140f1425001575d7584367bd90cea6d20760b4a811efb0fb164f0d62d631f54514b033ceb1130d510f35cfb330f4af6d93d1e70dd1ea929b878304b9140
diff --git a/dev-python/click/click-8.1.1.ebuild b/dev-python/click/click-8.1.1.ebuild
new file mode 100644
index 000000000000..54d1a9dcdf8a
--- /dev/null
+++ b/dev-python/click/click-8.1.1.ebuild
@@ -0,0 +1,30 @@
+# 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="A Python package for creating beautiful command line interfaces"
+SRC_URI="https://github.com/pallets/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+HOMEPAGE="https://palletsprojects.com/p/click/ https://pypi.org/project/click/"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="examples"
+
+distutils_enable_sphinx docs \
+ '>=dev-python/docutils-0.14' \
+ dev-python/pallets-sphinx-themes \
+ dev-python/sphinxcontrib-log_cabinet \
+ dev-python/sphinx-issues
+distutils_enable_tests pytest
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/doc8/Manifest b/dev-python/doc8/Manifest
index f5039848a202..af1dc3de8868 100644
--- a/dev-python/doc8/Manifest
+++ b/dev-python/doc8/Manifest
@@ -1 +1,2 @@
+DIST doc8-0.11.0.tar.gz 25540 BLAKE2B 4ccfd741da44206e12ec0adcc2155534225363fdd034dfef259b425fc862bfcb62eea691bc86bb39d0fc26fda036956be4f60eaa2214a8eaf6ec1086fa83ec1d SHA512 9a8b57bfe21dcc7302fbdcb9b5f1592c7449b43d4475622926b794a0e9041e85ae7806990517e911348f78f5871133983ec0feab13cea3ccca7e75449e519351
DIST doc8-0.9.1.tar.gz 31122 BLAKE2B 84708d05414fe1545558910d0d74ae9612091500efb1880062910b395f1244c6edb1fe1c95ff97a177fcbb4127fcbc4b819a749f90c8384c0c23e9041af12b25 SHA512 058403a808ec2d55cf732c8eb0e28f6902c935a6fe0fd4e3ce1a11088888f32875a416adf478b81192948ebd581548b2d1591581222f1e841e97777980a80d69
diff --git a/dev-python/doc8/doc8-0.11.0.ebuild b/dev-python/doc8/doc8-0.11.0.ebuild
new file mode 100644
index 000000000000..58fc20071107
--- /dev/null
+++ b/dev-python/doc8/doc8-0.11.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=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Style checker for Sphinx (or other) RST documentation"
+HOMEPAGE="
+ https://pypi.org/project/doc8/
+ https://github.com/pycqa/doc8/
+"
+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/docutils[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/restructuredtext-lint-0.7[${PYTHON_USEDEP}]
+ dev-python/stevedore[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ dev-python/setuptools_scm_git_archive[${PYTHON_USEDEP}]
+ test? (
+ dev-python/toml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ eunittest -s src
+}
+
+pkg_postinst() {
+ optfeature "checking pyproject.toml projects" dev-python/toml
+}
diff --git a/dev-python/huawei-lte-api/Manifest b/dev-python/huawei-lte-api/Manifest
index 9c61317c8325..bfcf2e24ed79 100644
--- a/dev-python/huawei-lte-api/Manifest
+++ b/dev-python/huawei-lte-api/Manifest
@@ -1 +1,2 @@
DIST huawei-lte-api-1.5.4.tar.gz 32433 BLAKE2B 36ba5729f7016c07955f87b85745314f683345e06e174efa90e2fdfd59a8a68c8425b549f8e25293dc2d65d0681a588feb062c3067b275d4e0ed2b56dc3ebbb6 SHA512 549373bf6d00aa1fb3f9f6443446520e068ec2c5412c84472b687102b2590cd22a742805f8c7fab67b7a4482e37cb3b03900aaf078ed777c3b1c111194e69da6
+DIST huawei-lte-api-1.6.tar.gz 32617 BLAKE2B 194d2d983e7bd5bd456d3557b16795cda350ea157545c1ce37aa6d4dd0bace8a8a0c724b9d0ae4315e6f95585598b147a03acb77d84837bf879fa9b83737cafc SHA512 62f70853bba0fbd863e07e2d91309fc15c41508857486d01a02ec30ed513567d0880551744eed5a61517cc33a2f56583df892d22cca45124e95e24605ab23678
diff --git a/dev-python/huawei-lte-api/huawei-lte-api-1.6.ebuild b/dev-python/huawei-lte-api/huawei-lte-api-1.6.ebuild
new file mode 100644
index 000000000000..1ed5e05097cd
--- /dev/null
+++ b/dev-python/huawei-lte-api/huawei-lte-api-1.6.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} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="API For huawei LAN/WAN LTE Modems"
+HOMEPAGE="https://github.com/Salamek/huawei-lte-api"
+SRC_URI="https://github.com/Salamek/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/pycryptodome[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ # make cryptodome-friendly
+ sed -i -e 's:pycryptodomex:pycryptodome:' setup.py || die
+ find -name '*.py' -exec \
+ sed -i -e 's:Cryptodome:Crypto:g' {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+distutils_enable_tests pytest
diff --git a/dev-python/ioflo/ioflo-2.0.2-r2.ebuild b/dev-python/ioflo/ioflo-2.0.2-r2.ebuild
new file mode 100644
index 000000000000..0c88bb3a2545
--- /dev/null
+++ b/dev-python/ioflo/ioflo-2.0.2-r2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+inherit distutils-r1
+
+DESCRIPTION="Automated Reasoning Engine and Flow Based Programming Framework"
+HOMEPAGE="https://github.com/ioflo/ioflo/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND="
+ $(python_gen_cond_dep '>=dev-lang/python-3.7.4' python3_7)
+"
+BDEPEND="${RDEPEND}
+ test? (
+ dev-python/pytest-salt-factories[${PYTHON_USEDEP}]
+ app-admin/salt[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/ioflo-1.7.8-network-test.patch"
+ "${FILESDIR}/ioflo-2.0.2-python39.patch"
+ "${FILESDIR}/ioflo-2.0.2-tests.patch"
+ "${FILESDIR}/ioflo-2.0.2-py310.patch"
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -e 's:"setuptools_git[^"]*",::' -i setup.py || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/libcloud/Manifest b/dev-python/libcloud/Manifest
index 5efb0c8bd662..4b597387da28 100644
--- a/dev-python/libcloud/Manifest
+++ b/dev-python/libcloud/Manifest
@@ -1 +1,2 @@
DIST apache-libcloud-3.4.1.tar.bz2 1851322 BLAKE2B f141b85423babc41c4dc61f4ef27228da10f2d6d7c9a0dfff0a292cc226a36a7626f8398a8e04202417955720ea5eb0b48736b704cc1379ab05a2bc4e3e0c86e SHA512 72a745a689229901277b347a45e86c6b66836b490d177bfa078062f54d28a149da158b8224b7c8ad6c278de18ed87b2d22bcc119f2577159ef5ecc3fa1ec621f
+DIST apache-libcloud-3.5.1.tar.bz2 1859270 BLAKE2B c2e49a79ac4feccb5285d9bf55a4a6e8486d32968216b68e8c8f5b049ef5fa8caae853b4e4cc31ec2c323aedf3de275ab79758b1a055d7f20bbde994c58ba882 SHA512 22d6facf344687bfcfd32e53ede12227882f55bf54ffcf75d5584652c4cd257905c56e359d9c6b050635faa2305c344a6dfdc17007eb41143ccff772bd31d91e
diff --git a/dev-python/libcloud/libcloud-3.5.1.ebuild b/dev-python/libcloud/libcloud-3.5.1.ebuild
new file mode 100644
index 000000000000..e4d912121b91
--- /dev/null
+++ b/dev-python/libcloud/libcloud-3.5.1.ebuild
@@ -0,0 +1,61 @@
+# 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="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Unified Interface to the Cloud - python support libs"
+HOMEPAGE="https://libcloud.apache.org/"
+SRC_URI="mirror://apache/${PN}/apache-${P}.tar.bz2"
+S="${WORKDIR}/apache-${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="examples"
+
+RDEPEND="
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/cryptography-2.6.1[${PYTHON_USEDEP}]
+ dev-python/lockfile[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Needs network access
+ libcloud/test/compute/test_ovh.py::OvhTests::test_list_nodes_invalid_region
+ libcloud/test/test_connection.py::BaseConnectionClassTestCase::test_connection_timeout_raised
+ libcloud/test/test_connection.py::ConnectionClassTestCase::test_retry_on_all_default_retry_exception_classes
+ # TODO
+ libcloud/test/compute/test_ssh_client.py::ParamikoSSHClientTests::test_key_file_non_pem_format_error
+)
+
+src_prepare() {
+ if use examples; then
+ mkdir examples || die
+ mv example_*.py examples || die
+ fi
+
+ # needed for tests
+ cp libcloud/test/secrets.py-dist libcloud/test/secrets.py || die
+
+ distutils-r1_src_prepare
+}
+
+src_install() {
+ use examples && dodoc -r examples
+ distutils-r1_src_install
+}
diff --git a/dev-python/pybind11/Manifest b/dev-python/pybind11/Manifest
index 7d84a59cbea8..a3808f1e9433 100644
--- a/dev-python/pybind11/Manifest
+++ b/dev-python/pybind11/Manifest
@@ -1 +1,2 @@
DIST pybind11-2.9.1.tar.gz 703882 BLAKE2B cc162332b637f81ea5d3098a2e9882f16a9c889e83e6ccd36d2a2da2f90361d8d188abd559f2313b45ff1de7d9ee56ee198c1193b47829d1fdf6d8871ce35b0c SHA512 1f268cc6df1f572658bfc3e60f7f010bec9b9444d6a6d6c95f7b26f7b4b7dd42846e65ae5a611c01c0341335fdfa84b01272b5c1b2cc11a418f64fecabfa0588
+DIST pybind11-2.9.2.tar.gz 709521 BLAKE2B 76ae9c72faad805885eabbe4dadf1092fe814f04f2a8d834da035c7389dcc996c09a63149911aa7a5c0b70d2da9f7c32e94aaf1c941f13345e0aef40a5748dfc SHA512 c6c18e5f59873adb3692640ade26472abd257607e7bb9fd48cfd1949878811e83d6ac6eb8c8dd926622d52ca4f13e5e6a58e0abaaaa1fa814ee831ea2b515272
diff --git a/dev-python/pybind11/pybind11-2.9.2.ebuild b/dev-python/pybind11/pybind11-2.9.2.ebuild
new file mode 100644
index 000000000000..5ecbbf343174
--- /dev/null
+++ b/dev-python/pybind11/pybind11-2.9.2.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+inherit cmake distutils-r1
+
+DESCRIPTION="AST-based Python refactoring library"
+HOMEPAGE="https://pybind11.readthedocs.io/en/stable/"
+SRC_URI="https://github.com/pybind/pybind11/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ dev-cpp/eigen:3
+"
+BDEPEND="
+ test? (
+ >=dev-cpp/catch-2.13.5
+ >=dev-libs/boost-1.56
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ export PYBIND11_USE_CMAKE=1
+ cmake_src_prepare
+ distutils-r1_python_prepare_all
+}
+
+python_configure() {
+ local mycmakeargs=(
+ # disable forced lto
+ -DPYBIND11_LTO_CXX_FLAGS=
+ -DPYBIND11_INSTALL=ON
+ -DPYBIND11_TEST=$(usex test)
+ )
+ cmake_src_configure
+}
+
+python_compile() {
+ distutils-r1_python_compile
+ # Compilation only does anything for tests
+ use test && cmake_src_compile
+}
+
+python_test() {
+ cmake_build check
+}
+
+python_install() {
+ distutils-r1_python_install
+ cmake_src_install
+}
diff --git a/dev-python/pylint/Manifest b/dev-python/pylint/Manifest
index 0a577317d728..e2615338cac4 100644
--- a/dev-python/pylint/Manifest
+++ b/dev-python/pylint/Manifest
@@ -3,3 +3,4 @@ DIST pylint-2.13.0.gh.tar.gz 1114326 BLAKE2B 2d99ae38474a13ecf0b306b2de445b93ef3
DIST pylint-2.13.1.gh.tar.gz 1116054 BLAKE2B 633636f97e284a8a93c598261b90019ea359fd61cf2e833936749a6a650098772c46008f465b118634cfa3cc8d873d9bbdd7d4b0e54621e47b7c33a33938b01d SHA512 9e5f6f2578d240a4984e00fd9e9a33a39bac4855060054f96c4414d8e1c6c16cd6a27d4d5e82fde52f91b2d25595d638e66e928c82aa3eb72a37c61f7aa6e038
DIST pylint-2.13.2.gh.tar.gz 1116482 BLAKE2B da35c9f39781bbd796e2ec055b41c44211588d7da360fd27f81eef57a3f5c65e27931ca927b41692627c9914f5c28e3262c0f34a45c38b20aa1b83710ab1d1f1 SHA512 15274658cf3067ffa6635a94f2c75d8854b3843be45ea5dc5896bc12583b156428858baeed19eed4bfab35489326d70d0cce1375354d9ec97d00cfd895fc4a47
DIST pylint-2.13.3.gh.tar.gz 1116747 BLAKE2B 9ab6ff4746f78472de9c248754d102e55e8cb60d3ead8c5079cfe851b2b7c8e16afc9b0be02041cf24e789784200b90751ad0bcf172eb6d4edd88463863d18ac SHA512 0bda6d89219ad6f7f64f1361f95b85a34e3bc70f9f18f71eaa3d69deb47ab6fc056000c13a11c8c5644f0a9789eac2a5c262ddcf96302aeebfa16aa2e3b3086c
+DIST pylint-2.13.4.gh.tar.gz 1117488 BLAKE2B a660c15c41b529d932a21d438c7cf0f3b97683d6b1452f4383193f97dd22ba6e216a7dc8c3677cb1cb0ab5b76ddb936afa2d87df38d41950e2249bd8867bf44d SHA512 2c0c60908f89bf7a2552f65e0b4957ee6223f5429a6c2ec997aaf75572b11e4247e159da744937dbc7752ebd5eab0a0c873d129983de09ea0954f35f47a1f524
diff --git a/dev-python/pylint/pylint-2.13.4.ebuild b/dev-python/pylint/pylint-2.13.4.ebuild
new file mode 100644
index 000000000000..2417e9131774
--- /dev/null
+++ b/dev-python/pylint/pylint-2.13.4.ebuild
@@ -0,0 +1,81 @@
+# 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="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Python code static checker"
+HOMEPAGE="
+ https://pypi.org/project/pylint/
+ https://github.com/PyCQA/pylint/
+"
+SRC_URI="
+ https://github.com/pycqa/pylint/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~m68k ~ppc ~riscv ~x86"
+IUSE="examples"
+
+# Make sure to check https://github.com/PyCQA/pylint/blob/main/setup.cfg#L43 on bumps
+# Adjust dep bounds!
+RDEPEND="
+ <dev-python/astroid-2.12[${PYTHON_USEDEP}]
+ >=dev-python/astroid-2.11.0[${PYTHON_USEDEP}]
+ >=dev-python/dill-0.2[${PYTHON_USEDEP}]
+ >=dev-python/isort-4.2.5[${PYTHON_USEDEP}]
+ <dev-python/isort-6[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.6[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.8[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tomli-1.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.8 3.9)
+"
+BDEPEND="
+ test? (
+ >=dev-python/GitPython-3[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.4.4-sphinx-theme.patch"
+)
+
+distutils_enable_sphinx doc --no-autodoc
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # No need to run the benchmarks
+ tests/benchmark/test_baseline_benchmarks.py
+
+ # TODO
+ 'tests/test_functional.py::test_functional[forgotten_debug_statement_py37]'
+ 'tests/test_functional.py::test_functional[dataclass_with_field]'
+ tests/checkers/unittest_typecheck.py::TestTypeChecker::test_nomember_on_c_extension_error_msg
+ tests/checkers/unittest_typecheck.py::TestTypeChecker::test_nomember_on_c_extension_info_msg
+ )
+ # Specify the test directory explicitly to avoid import file mismatches
+ epytest tests
+}
+
+python_install_all() {
+ if use examples ; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.7.ebuild b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.7.ebuild
index a74793cbe913..16ff2bfae6ad 100644
--- a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.7.ebuild
+++ b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -32,7 +32,7 @@ RDEPEND=">=sys-libs/zlib-1.1.3:0/1
dev-libs/expat:0/0
app-arch/bzip2:0/1
sys-libs/ncurses:0/6
- !dev-python/pypy-exe:${SLOT}"
+ !dev-python/pypy3-exe:${SLOT}"
PYPY_PV=${SLOT%_p*}
QA_PREBUILT="
diff --git a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.8.ebuild b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.8.ebuild
index d55bb03c5536..55fc0fde46ee 100644
--- a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.8.ebuild
+++ b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.8.ebuild
@@ -32,7 +32,7 @@ RDEPEND=">=sys-libs/zlib-1.1.3:0/1
dev-libs/expat:0/0
app-arch/bzip2:0/1
sys-libs/ncurses:0/6
- !dev-python/pypy-exe:${SLOT}"
+ !dev-python/pypy3-exe:${SLOT}"
PYPY_PV=${PV%_p*}
QA_PREBUILT="
diff --git a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.9.ebuild b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.9.ebuild
index d8bcb20900a9..0648b4f51293 100644
--- a/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.9.ebuild
+++ b/dev-python/pypy3-exe-bin/pypy3-exe-bin-7.3.9.ebuild
@@ -34,7 +34,7 @@ RDEPEND="
dev-libs/expat:0/0
app-arch/bzip2:0/1
sys-libs/ncurses:0/6
- !dev-python/pypy-exe:${SLOT}
+ !dev-python/pypy3-exe:${SLOT}
"
PYPY_PV=${PV%_p*}
diff --git a/dev-python/pytest-salt-factories/Manifest b/dev-python/pytest-salt-factories/Manifest
index 65e270229be0..403aada1ee3e 100644
--- a/dev-python/pytest-salt-factories/Manifest
+++ b/dev-python/pytest-salt-factories/Manifest
@@ -1 +1,2 @@
-DIST pytest-salt-factories-0.911.0.tar.gz 161682 BLAKE2B b5a827c9a9acc55c53bc4152b648f96845f513e2d1c8425cbde0862909996a653df4debbf798a3d7461da4fc221acd5fc8e6052e123f3e64e0c8f4345557f141 SHA512 bada21cfe990ccb10b0e298cb05a7f3842d0fe24e2c8664352ae991363d0094dd1ff877adea5fcc0c1040e3f20f82ba616607c595511cade93ebadddd336a26b
+DIST pytest-salt-factories-0.121.1.tar.gz 102121 BLAKE2B 92cd5953b11377f1646f01b86a677a50216d16bcb944235a3f04176aecbb005974c415adcbf23cc391aab41b1ee9596984516ab61ecdd8c944d4ce707c39ab00 SHA512 32252695c6e8b17ef17d3330c4b0b38bdce89201d5573b4efa3531a72e826ee1fb26fea3ad0408401dec867cee405f21031804c32eb8fe6ceaa00925b17725a1
+DIST pytest-salt-factories-1.0.0_rc13.tar.gz 148418 BLAKE2B 3688f05d137df23266ebc7e999bc3b3a8ec198173b38dc98bd4a1e2655b982a37485278691e970da0be700cee6f609c57933b041a6d8403e75fb197f5d23d5d4 SHA512 f3713410704540ee48b7263973d3a9bf3159fb63e53e5ef5002201aea3fdcf0b4eaf00e1dd1e67d869b42242985d8117a117568d63abf5ad366e247fb3e1d83f
diff --git a/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch b/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch
new file mode 100644
index 000000000000..3e85580c9158
--- /dev/null
+++ b/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.121.1-tests.patch
@@ -0,0 +1,294 @@
+diff --git a/saltfactories/plugin.py b/saltfactories/plugin.py
+index b29a115..9d68c34 100644
+--- a/saltfactories/plugin.py
++++ b/saltfactories/plugin.py
+@@ -21,7 +21,7 @@ def pytest_tempdir_temproot():
+ tempdir = os.environ.get("TMPDIR") or tempfile.gettempdir()
+ else:
+ tempdir = "/tmp"
+- return os.path.abspath(os.path.realpath(tempdir))
++ return os.path.abspath(tempdir)
+
+
+ def pytest_tempdir_basename():
+diff --git a/tests/functional/markers/test_requires_network.py b/tests/functional/markers/test_requires_network.py
+index 8b57368..d58f0a1 100644
+--- a/tests/functional/markers/test_requires_network.py
++++ b/tests/functional/markers/test_requires_network.py
+@@ -9,7 +9,10 @@ from unittest import mock
+ from saltfactories.utils import ports
+ from saltfactories.utils import socket
+
++import pytest
+
++
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_has_local_network(testdir):
+ testdir.makepyfile(
+ """
+diff --git a/tests/integration/factories/cli/test_salt.py b/tests/integration/factories/cli/test_salt.py
+index 17fce6c..7bd2789 100644
+--- a/tests/integration/factories/cli/test_salt.py
++++ b/tests/integration/factories/cli/test_salt.py
+@@ -17,6 +17,7 @@ def salt_minion_2(salt_master, salt_minion):
+ yield factory
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_merged_json_out(salt_cli, salt_minion, salt_minion_2):
+ ret = salt_cli.run("test.ping", minion_tgt="*")
+ assert ret.exitcode == 0, ret
+@@ -27,6 +28,7 @@ def test_merged_json_out(salt_cli, salt_minion, salt_minion_2):
+ assert ret.json[salt_minion_2.id] is True
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_merged_json_out_disabled(salt_cli, salt_minion, salt_minion_2):
+ ret = salt_cli.run("test.ping", minion_tgt="*", merge_json_output=False)
+ assert ret.exitcode == 0, ret
+diff --git a/tests/integration/factories/daemons/api/test_api.py b/tests/integration/factories/daemons/api/test_api.py
+index 78b8bb7..e20f28c 100644
+--- a/tests/integration/factories/daemons/api/test_api.py
++++ b/tests/integration/factories/daemons/api/test_api.py
+@@ -23,5 +23,6 @@ def salt_api(master):
+ yield factory
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_api(salt_api):
+ assert salt_api.is_running()
+diff --git a/tests/integration/factories/daemons/api/test_restarts.py b/tests/integration/factories/daemons/api/test_restarts.py
+index a6c5472..dd15c17 100644
+--- a/tests/integration/factories/daemons/api/test_restarts.py
++++ b/tests/integration/factories/daemons/api/test_restarts.py
+@@ -16,6 +16,7 @@ def master(salt_factories):
+ yield factory
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_multiple_start_stops(master):
+ factory = master.get_salt_api_daemon()
+ assert factory.is_running() is False
+diff --git a/tests/integration/factories/daemons/master/test_master.py b/tests/integration/factories/daemons/master/test_master.py
+index 2676dfa..cbf598e 100644
+--- a/tests/integration/factories/daemons/master/test_master.py
++++ b/tests/integration/factories/daemons/master/test_master.py
+@@ -46,10 +46,12 @@ def salt_key(master):
+ return master.get_salt_key_cli()
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_master(master):
+ assert master.is_running()
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_salt_run(master, salt_run):
+ max_open_files_config_value = master.config["max_open_files"]
+ ret = salt_run.run("config.get", "max_open_files")
+@@ -57,6 +59,7 @@ def test_salt_run(master, salt_run):
+ assert ret.json == max_open_files_config_value
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_salt_cp(master, minion, salt_cp, tempfiles):
+ """
+ Test copying a file from the master to the minion
+@@ -98,6 +101,7 @@ def test_salt_cp(master, minion, salt_cp, tempfiles):
+ os.unlink(dest)
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_salt_cp_no_match(master, minion, salt_cp, tempfiles):
+ assert master.is_running()
+ assert minion.is_running()
+@@ -119,6 +123,7 @@ def test_salt_cp_no_match(master, minion, salt_cp, tempfiles):
+ os.unlink(dest)
+
+
++@pytest.mark.skip("not compatible with sandbox")
+ @pytest.mark.skip_on_salt_system_install
+ def test_salt_key(master, minion, minion_3, salt_key):
+ ret = salt_key.run("--list-all")
+diff --git a/tests/integration/factories/daemons/master/test_restarts.py b/tests/integration/factories/daemons/master/test_restarts.py
+index 6a6852d..70415d0 100644
+--- a/tests/integration/factories/daemons/master/test_restarts.py
++++ b/tests/integration/factories/daemons/master/test_restarts.py
+@@ -11,6 +11,7 @@ def master(salt_factories):
+ return factory
+
+
++@pytest.mark.skip("not compatible with network")
+ def test_multiple_start_stops(master):
+ assert master.is_running() is False
+ pid = None
+diff --git a/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py b/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py
+index d63e640..653693e 100644
+--- a/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py
++++ b/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py
+@@ -28,6 +28,7 @@ def salt_call_cli(minion):
+ return minion.get_salt_call_cli()
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_event_listener_engine(minion, salt_call_cli, event_listener):
+ """
+ There are some events which the minion fires internally that never reach the master.
+diff --git a/tests/integration/factories/daemons/minion/test_minion.py b/tests/integration/factories/daemons/minion/test_minion.py
+index 64a3df6..ab82e55 100644
+--- a/tests/integration/factories/daemons/minion/test_minion.py
++++ b/tests/integration/factories/daemons/minion/test_minion.py
+@@ -27,6 +27,7 @@ def salt_call_cli(minion):
+ return minion.get_salt_call_cli()
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_minion(minion, salt_cli):
+ assert minion.is_running()
+ ret = salt_cli.run("test.ping", minion_tgt=minion.id)
+@@ -34,6 +35,7 @@ def test_minion(minion, salt_cli):
+ assert ret.json is True
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_no_match(minion, salt_cli):
+ assert minion.is_running()
+ ret = salt_cli.run("test.ping", minion_tgt="minion-2")
+@@ -41,6 +43,7 @@ def test_no_match(minion, salt_cli):
+ assert not ret.json
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_show_jid(minion, salt_cli):
+ assert minion.is_running()
+ ret = salt_cli.run("--show-jid", "test.ping", minion_tgt=minion.id)
+@@ -48,6 +51,7 @@ def test_show_jid(minion, salt_cli):
+ assert ret.json is True
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_minion_salt_call(minion, salt_call_cli):
+ assert minion.is_running()
+ ret = salt_call_cli.run("test.ping")
+@@ -59,6 +63,7 @@ def test_minion_salt_call(minion, salt_call_cli):
+ assert ret.json is True
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_salt_call_exception_handling_doesnt_timeout(minion, salt_call_cli):
+ ret = salt_call_cli.run(
+ "test.raise_exception", "OSError", "2", "No such file or directory", "/tmp/foo.txt"
+diff --git a/tests/integration/factories/daemons/minion/test_restarts.py b/tests/integration/factories/daemons/minion/test_restarts.py
+index a7d9ae0..8f0401b 100644
+--- a/tests/integration/factories/daemons/minion/test_restarts.py
++++ b/tests/integration/factories/daemons/minion/test_restarts.py
+@@ -10,6 +10,7 @@ def master(salt_factories):
+ yield factory
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_multiple_start_stops(master):
+ factory = master.get_salt_minion_daemon(random_string("minion-"))
+ assert factory.is_running() is False
+diff --git a/tests/integration/factories/daemons/proxy/test_proxy_minion.py b/tests/integration/factories/daemons/proxy/test_proxy_minion.py
+index 3bbca21..2e2fb8b 100644
+--- a/tests/integration/factories/daemons/proxy/test_proxy_minion.py
++++ b/tests/integration/factories/daemons/proxy/test_proxy_minion.py
+@@ -35,6 +35,7 @@ def salt_call_cli(proxy_minion):
+ return proxy_minion.get_salt_call_cli()
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_proxy_minion(proxy_minion, salt_cli):
+ assert proxy_minion.is_running()
+ ret = salt_cli.run("test.ping", minion_tgt=proxy_minion.id)
+@@ -42,6 +43,7 @@ def test_proxy_minion(proxy_minion, salt_cli):
+ assert ret.json is True
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_no_match(proxy_minion, salt_cli):
+ assert proxy_minion.is_running()
+ ret = salt_cli.run("test.ping", minion_tgt="proxy-minion-2")
+@@ -49,6 +51,7 @@ def test_no_match(proxy_minion, salt_cli):
+ assert not ret.json
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_show_jid(proxy_minion, salt_cli):
+ if platform.is_darwin() and sys.version_info[:2] == (3, 7):
+ pytest.skip(
+@@ -61,6 +64,7 @@ def test_show_jid(proxy_minion, salt_cli):
+ assert ret.json is True
+
+
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_proxy_minion_salt_call(proxy_minion, salt_call_cli):
+ assert proxy_minion.is_running()
+ ret = salt_call_cli.run("test.ping")
+diff --git a/tests/integration/factories/daemons/proxy/test_restarts.py b/tests/integration/factories/daemons/proxy/test_restarts.py
+index 3101204..28652ff 100644
+--- a/tests/integration/factories/daemons/proxy/test_restarts.py
++++ b/tests/integration/factories/daemons/proxy/test_restarts.py
+@@ -17,6 +17,7 @@ def master(salt_factories):
+ yield factory
+
+
++@pytest.mark.skip("not compatible with sandbox")
+ def test_multiple_start_stops(master):
+ factory = master.get_salt_proxy_minion_daemon(random_string("proxy-minion-"))
+ assert factory.is_running() is False
+diff --git a/tests/integration/factories/daemons/ssh/test_salt_ssh.py b/tests/integration/factories/daemons/ssh/test_salt_ssh.py
+index f58eac4..c3df3de 100644
+--- a/tests/integration/factories/daemons/ssh/test_salt_ssh.py
++++ b/tests/integration/factories/daemons/ssh/test_salt_ssh.py
+@@ -51,6 +51,7 @@ def salt_ssh_cli(sshd, salt_factories, master):
+
+
+ @pytest.mark.skip_on_windows
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_salt_ssh(salt_ssh_cli):
+ ret = salt_ssh_cli.run("--ignore-host-keys", "test.echo", "It Works!", minion_tgt="localhost")
+ assert ret.exitcode == 0
+diff --git a/tests/integration/factories/daemons/sshd/test_sshd.py b/tests/integration/factories/daemons/sshd/test_sshd.py
+index 3b425fc..3e03636 100644
+--- a/tests/integration/factories/daemons/sshd/test_sshd.py
++++ b/tests/integration/factories/daemons/sshd/test_sshd.py
+@@ -5,6 +5,7 @@ import pytest
+
+ @pytest.fixture(scope="module")
+ @pytest.mark.skip_if_binaries_missing("sshd", "ssh-keygen")
++@pytest.mark.skip("not compatible with network-sandbox")
+ def sshd(salt_factories):
+ # Set StrictModes to no because our config directory lives in /tmp and those permissions
+ # are not acceptable by sshd strict paranoia.
+@@ -15,12 +16,14 @@ def sshd(salt_factories):
+
+
+ @pytest.mark.skip_on_windows
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_sshd(sshd):
+ assert sshd.is_running()
+
+
+ @pytest.mark.skip_on_windows
+ @pytest.mark.skip_if_binaries_missing("ssh")
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_connect(sshd):
+ cmd = subprocess.run(
+ [
+diff --git a/tests/unit/utils/markers/test_skip_if_no_remote_network.py b/tests/unit/utils/markers/test_skip_if_no_remote_network.py
+index 1aa72dc..c4d079e 100644
+--- a/tests/unit/utils/markers/test_skip_if_no_remote_network.py
++++ b/tests/unit/utils/markers/test_skip_if_no_remote_network.py
+@@ -9,7 +9,10 @@ from unittest import mock
+ import saltfactories.utils.markers as markers
+ from saltfactories.utils import socket
+
++import pytest
+
++
++@pytest.mark.skip("not compatible with network-sandbox")
+ def test_has_remote_network():
+ assert markers.skip_if_no_remote_network() is None
+
diff --git a/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.911.0-tests.patch b/dev-python/pytest-salt-factories/files/pytest-salt-factories-1.0.0_rc13-tests.patch
index 687b6a41b901..b021dcccf280 100644
--- a/dev-python/pytest-salt-factories/files/pytest-salt-factories-0.911.0-tests.patch
+++ b/dev-python/pytest-salt-factories/files/pytest-salt-factories-1.0.0_rc13-tests.patch
@@ -1,5 +1,5 @@
diff --git a/src/saltfactories/plugins/__init__.py b/src/saltfactories/plugins/__init__.py
-index 679acad..ea6f23f 100644
+index 361414a..55469e4 100644
--- a/src/saltfactories/plugins/__init__.py
+++ b/src/saltfactories/plugins/__init__.py
@@ -27,7 +27,7 @@ def pytest_tempdir_temproot():
@@ -12,7 +12,7 @@ index 679acad..ea6f23f 100644
def pytest_tempdir_basename():
diff --git a/tests/functional/factories/base/test_salt_daemon_factory.py b/tests/functional/factories/base/test_salt_daemon_factory.py
-index 813e36c..2b2b3d8 100644
+index eae5670..fd312df 100644
--- a/tests/functional/factories/base/test_salt_daemon_factory.py
+++ b/tests/functional/factories/base/test_salt_daemon_factory.py
@@ -35,7 +35,7 @@ def test_extra_cli_arguments_after_first_failure(
@@ -24,27 +24,25 @@ index 813e36c..2b2b3d8 100644
config = {"conf_file": config_file, "id": master_id}
script = tempfiles.makepyfile(
r"""
-diff --git a/tests/functional/markers/test_requires_network.py b/tests/functional/markers/test_requires_network.py
-index 0b21ede..70343fb 100644
---- a/tests/functional/markers/test_requires_network.py
-+++ b/tests/functional/markers/test_requires_network.py
-@@ -9,7 +9,9 @@ from unittest import mock
- from saltfactories.utils import ports
- from saltfactories.utils import socket
+diff --git a/tests/functional/factories/daemons/test_container_factory.py b/tests/functional/factories/daemons/test_container_factory.py
+index 1642d57..8b085eb 100644
+--- a/tests/functional/factories/daemons/test_container_factory.py
++++ b/tests/functional/factories/daemons/test_container_factory.py
+@@ -3,6 +3,7 @@ from unittest import mock
+ import pytest
-+import pytest
-+@pytest.mark.skip("Incompatible with network-sandbox")
- def test_has_local_network(pytester):
++@pytest.mark.skip("Needs network access")
+ @pytest.mark.parametrize("skip_on_pull_failure", [True, False])
+ def test_skip_on_pull_failure(pytester, skip_on_pull_failure):
pytester.makepyfile(
- """
diff --git a/tests/functional/markers/test_requires_salt_modules.py b/tests/functional/markers/test_requires_salt_modules.py
-index 034d5e6..6e50a22 100644
+index 97ed1ec..53ff0dd 100644
--- a/tests/functional/markers/test_requires_salt_modules.py
+++ b/tests/functional/markers/test_requires_salt_modules.py
-@@ -4,9 +4,11 @@
-
- Test the ``@pytest.mark.requires_salt_modules`` marker
+@@ -1,9 +1,11 @@
+ """
+ Test the ``@pytest.mark.requires_salt_modules`` marker.
"""
+import sys
import pytest
@@ -54,7 +52,7 @@ index 034d5e6..6e50a22 100644
@pytest.mark.parametrize(
"modules",
[
-@@ -31,6 +33,7 @@ def test_has_required_salt_module(pytester, modules):
+@@ -29,6 +31,7 @@ def test_has_required_salt_module(pytester, modules):
res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*")
@@ -62,7 +60,7 @@ index 034d5e6..6e50a22 100644
@pytest.mark.parametrize(
"modules",
[
-@@ -55,6 +58,7 @@ def test_missing_required_salt_module(pytester, modules):
+@@ -54,6 +57,7 @@ def test_missing_required_salt_module(pytester, modules):
res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*")
@@ -71,12 +69,12 @@ index 034d5e6..6e50a22 100644
pytester.makepyfile(
r"""
diff --git a/tests/functional/markers/test_requires_salt_states.py b/tests/functional/markers/test_requires_salt_states.py
-index 6ec469d..79d9052 100644
+index f6d63a9..ec4b431 100644
--- a/tests/functional/markers/test_requires_salt_states.py
+++ b/tests/functional/markers/test_requires_salt_states.py
-@@ -4,9 +4,11 @@
-
- Test the ``@pytest.mark.requires_salt_states`` marker
+@@ -1,9 +1,11 @@
+ """
+ Test the ``@pytest.mark.requires_salt_states`` marker.
"""
+import sys
import pytest
@@ -86,7 +84,7 @@ index 6ec469d..79d9052 100644
@pytest.mark.parametrize(
"modules",
[
-@@ -31,6 +33,7 @@ def test_has_required_salt_state(pytester, modules):
+@@ -29,6 +31,7 @@ def test_has_required_salt_state(pytester, modules):
res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*")
@@ -94,7 +92,7 @@ index 6ec469d..79d9052 100644
@pytest.mark.parametrize(
"modules",
[
-@@ -55,6 +58,7 @@ def test_missing_required_salt_state(pytester, modules):
+@@ -54,6 +57,7 @@ def test_missing_required_salt_state(pytester, modules):
res.stdout.no_fnmatch_line("*PytestUnknownMarkWarning*")
@@ -103,12 +101,12 @@ index 6ec469d..79d9052 100644
pytester.makepyfile(
r"""
diff --git a/tests/functional/test_sys_info.py b/tests/functional/test_sys_info.py
-index 61963e0..e1e7531 100644
+index c8fbf6e..f18c85d 100644
--- a/tests/functional/test_sys_info.py
+++ b/tests/functional/test_sys_info.py
-@@ -4,9 +4,11 @@
-
- Tests related to system information reports enabled by the `--sys-info` flag.
+@@ -1,9 +1,11 @@
+ """
+ Tests related to system information reports enabled by the `--sys-info` flag..
"""
+import sys
import pytest
@@ -118,7 +116,7 @@ index 61963e0..e1e7531 100644
@pytest.mark.parametrize("flag", ["--sysinfo", "--sys-info"])
def test_sysinfo(pytester, flag):
pytester.makepyfile(
-@@ -30,6 +32,7 @@ def test_sysinfo(pytester, flag):
+@@ -27,6 +29,7 @@ def test_sysinfo(pytester, flag):
)
@@ -127,27 +125,27 @@ index 61963e0..e1e7531 100644
pytester.makepyfile(
"""
diff --git a/tests/integration/factories/cli/test_salt.py b/tests/integration/factories/cli/test_salt.py
-index 91babb9..bc9e854 100644
+index 9c4fdb0..0766fe7 100644
--- a/tests/integration/factories/cli/test_salt.py
+++ b/tests/integration/factories/cli/test_salt.py
-@@ -17,6 +17,7 @@ def salt_minion_2(salt_master, salt_minion):
+@@ -14,6 +14,7 @@ def salt_minion_2(salt_master, salt_minion):
yield factory
+@pytest.mark.skip("not compatible with network-sandbox")
def test_merged_json_out(salt_cli, salt_minion, salt_minion_2):
ret = salt_cli.run("test.ping", minion_tgt="*")
- assert ret.exitcode == 0, ret
-@@ -27,6 +28,7 @@ def test_merged_json_out(salt_cli, salt_minion, salt_minion_2):
- assert ret.json[salt_minion_2.id] is True
+ assert ret.returncode == 0, ret
+@@ -24,6 +25,7 @@ def test_merged_json_out(salt_cli, salt_minion, salt_minion_2):
+ assert ret.data[salt_minion_2.id] is True
+@pytest.mark.skip("not compatible with network-sandbox")
def test_merged_json_out_disabled(salt_cli, salt_minion, salt_minion_2):
ret = salt_cli.run("test.ping", minion_tgt="*", merge_json_output=False)
- assert ret.exitcode == 0, ret
+ assert ret.returncode == 0, ret
diff --git a/tests/integration/factories/daemons/api/test_api.py b/tests/integration/factories/daemons/api/test_api.py
-index 8202585..0e57d98 100644
+index d6fd060..aade16e 100644
--- a/tests/integration/factories/daemons/api/test_api.py
+++ b/tests/integration/factories/daemons/api/test_api.py
@@ -19,5 +19,6 @@ def salt_api(master):
@@ -158,7 +156,7 @@ index 8202585..0e57d98 100644
def test_api(salt_api):
assert salt_api.is_running()
diff --git a/tests/integration/factories/daemons/api/test_restarts.py b/tests/integration/factories/daemons/api/test_restarts.py
-index 7b91c33..7cd633a 100644
+index bfab01f..0494ebb 100644
--- a/tests/integration/factories/daemons/api/test_restarts.py
+++ b/tests/integration/factories/daemons/api/test_restarts.py
@@ -12,6 +12,7 @@ def master(salt_factories):
@@ -170,16 +168,15 @@ index 7b91c33..7cd633a 100644
factory = master.salt_api_daemon()
assert factory.is_running() is False
diff --git a/tests/integration/factories/daemons/master/test_master.py b/tests/integration/factories/daemons/master/test_master.py
-index e3c20e4..9be3631 100644
+index 6ae19f0..b93f773 100644
--- a/tests/integration/factories/daemons/master/test_master.py
+++ b/tests/integration/factories/daemons/master/test_master.py
-@@ -1,4 +1,5 @@
- import os
+@@ -1,3 +1,4 @@
+import sys
- import tempfile
-
import pytest
-@@ -51,10 +52,12 @@ def salt_call(minion):
+ import salt.defaults.exitcodes
+ from pytestshellutils.exceptions import FactoryNotStarted
+@@ -48,10 +49,12 @@ def salt_call(minion):
return minion.salt_call_cli()
@@ -192,31 +189,15 @@ index e3c20e4..9be3631 100644
def test_salt_run(master, salt_run):
max_open_files_config_value = master.config["max_open_files"]
ret = salt_run.run("config.get", "max_open_files")
-@@ -62,6 +65,7 @@ def test_salt_run(master, salt_run):
- assert ret.json == max_open_files_config_value
-
-
-+@pytest.mark.skip("not compatible with network-sandbox")
- def test_salt_cp(master, minion, salt_cp, tempfiles):
- """
- Test copying a file from the master to the minion
-@@ -103,6 +107,7 @@ def test_salt_cp(master, minion, salt_cp, tempfiles):
- os.unlink(dest)
-
-
-+@pytest.mark.skip("not compatible with network-sandbox")
- def test_salt_cp_no_match(master, minion, salt_cp, tempfiles):
- assert master.is_running()
- assert minion.is_running()
-@@ -124,6 +129,7 @@ def test_salt_cp_no_match(master, minion, salt_cp, tempfiles):
- os.unlink(dest)
+@@ -117,6 +120,7 @@ def test_state_tree(master, salt_call, minion):
+ assert ret.returncode == 0
+@pytest.mark.skip("not compatible with sandbox")
@pytest.mark.skip_on_salt_system_install
- def test_salt_key(master, minion, minion_3, salt_key):
+ def test_salt_key(minion, minion_3, salt_key):
ret = salt_key.run("--list-all")
-@@ -138,6 +144,7 @@ def test_salt_key(master, minion, minion_3, salt_key):
+@@ -131,6 +135,7 @@ def test_salt_key(minion, minion_3, salt_key):
@pytest.mark.skip_on_windows
@pytest.mark.skip_on_salt_system_install
@@ -224,14 +205,6 @@ index e3c20e4..9be3631 100644
def test_exit_status_unknown_user(salt_factories):
master = salt_factories.salt_master_daemon("set-exitcodes", overrides={"user": "unknown-user"})
with pytest.raises(FactoryNotStarted) as exc:
-@@ -147,6 +154,7 @@ def test_exit_status_unknown_user(salt_factories):
- assert "The user is not available." in exc.value.stderr, str(exc.value)
-
-
-+@pytest.mark.skip("not compatible with sandbox")
- def test_state_tree(master, salt_call):
- sls_contents = """
- test:
diff --git a/tests/integration/factories/daemons/master/test_restarts.py b/tests/integration/factories/daemons/master/test_restarts.py
index 683970a..443dcfb 100644
--- a/tests/integration/factories/daemons/master/test_restarts.py
@@ -245,7 +218,7 @@ index 683970a..443dcfb 100644
assert master.is_running() is False
pid = None
diff --git a/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py b/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py
-index 7983e29..ac1085d 100644
+index a6c6420..10626cd 100644
--- a/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py
+++ b/tests/integration/factories/daemons/minion/test_event_forwarder_engine.py
@@ -28,6 +28,7 @@ def salt_call_cli(minion):
@@ -257,7 +230,7 @@ index 7983e29..ac1085d 100644
"""
There are some events which the minion fires internally that never reach the master.
diff --git a/tests/integration/factories/daemons/minion/test_minion.py b/tests/integration/factories/daemons/minion/test_minion.py
-index 8e73efc..4501f9d 100644
+index 387e789..1e4ecfd 100644
--- a/tests/integration/factories/daemons/minion/test_minion.py
+++ b/tests/integration/factories/daemons/minion/test_minion.py
@@ -27,6 +27,7 @@ def salt_call_cli(minion):
@@ -269,7 +242,7 @@ index 8e73efc..4501f9d 100644
assert minion.is_running()
ret = salt_cli.run("test.ping", minion_tgt=minion.id)
@@ -34,6 +35,7 @@ def test_minion(minion, salt_cli):
- assert ret.json is True
+ assert ret.data is True
+@pytest.mark.skip("not compatible with network-sandbox")
@@ -277,7 +250,7 @@ index 8e73efc..4501f9d 100644
assert minion.is_running()
ret = salt_cli.run("test.ping", minion_tgt="minion-2")
@@ -41,6 +43,7 @@ def test_no_match(minion, salt_cli):
- assert not ret.json
+ assert not ret.data
+@pytest.mark.skip("not compatible with network-sandbox")
@@ -285,7 +258,7 @@ index 8e73efc..4501f9d 100644
assert minion.is_running()
ret = salt_cli.run("--show-jid", "test.ping", minion_tgt=minion.id)
@@ -48,6 +51,7 @@ def test_show_jid(minion, salt_cli):
- assert ret.json is True
+ assert ret.data is True
+@pytest.mark.skip("not compatible with network-sandbox")
@@ -293,7 +266,7 @@ index 8e73efc..4501f9d 100644
assert minion.is_running()
ret = salt_call_cli.run("test.ping")
@@ -59,6 +63,7 @@ def test_minion_salt_call(minion, salt_call_cli):
- assert ret.json is True
+ assert ret.data is True
+@pytest.mark.skip("not compatible with network-sandbox")
@@ -301,7 +274,7 @@ index 8e73efc..4501f9d 100644
ret = salt_call_cli.run(
"test.raise_exception", "OSError", "2", "No such file or directory", "/tmp/foo.txt"
@@ -66,6 +71,7 @@ def test_salt_call_exception_handling_doesnt_timeout(minion, salt_call_cli):
- assert ret.exitcode == 1, ret
+ assert ret.returncode == 1, ret
+@pytest.mark.skip("not compatible with sandbox")
@@ -321,10 +294,10 @@ index ab1f044..4ac417d 100644
factory = master.salt_minion_daemon(random_string("minion-"))
assert factory.is_running() is False
diff --git a/tests/integration/factories/daemons/proxy/test_proxy_minion.py b/tests/integration/factories/daemons/proxy/test_proxy_minion.py
-index 926e6ac..f30c986 100644
+index 1c58628..807cbe7 100644
--- a/tests/integration/factories/daemons/proxy/test_proxy_minion.py
+++ b/tests/integration/factories/daemons/proxy/test_proxy_minion.py
-@@ -35,6 +35,7 @@ def salt_call_cli(proxy_minion):
+@@ -36,6 +36,7 @@ def salt_call_cli(proxy_minion):
return proxy_minion.salt_call_cli()
@@ -332,32 +305,32 @@ index 926e6ac..f30c986 100644
def test_proxy_minion(proxy_minion, salt_cli):
assert proxy_minion.is_running()
ret = salt_cli.run("test.ping", minion_tgt=proxy_minion.id)
-@@ -42,6 +43,7 @@ def test_proxy_minion(proxy_minion, salt_cli):
- assert ret.json is True
+@@ -43,6 +44,7 @@ def test_proxy_minion(proxy_minion, salt_cli):
+ assert ret.data is True
+@pytest.mark.skip("not compatible with network-sandbox")
def test_no_match(proxy_minion, salt_cli):
assert proxy_minion.is_running()
ret = salt_cli.run("test.ping", minion_tgt="proxy-minion-2")
-@@ -49,6 +51,7 @@ def test_no_match(proxy_minion, salt_cli):
- assert not ret.json
+@@ -50,6 +52,7 @@ def test_no_match(proxy_minion, salt_cli):
+ assert not ret.data
+@pytest.mark.skip("not compatible with network-sandbox")
def test_show_jid(proxy_minion, salt_cli):
if platform.is_darwin() and sys.version_info[:2] == (3, 7):
pytest.skip(
-@@ -61,6 +64,7 @@ def test_show_jid(proxy_minion, salt_cli):
- assert ret.json is True
+@@ -62,6 +65,7 @@ def test_show_jid(proxy_minion, salt_cli):
+ assert ret.data is True
+@pytest.mark.skip("not compatible with network-sandbox")
def test_proxy_minion_salt_call(proxy_minion, salt_call_cli):
assert proxy_minion.is_running()
ret = salt_call_cli.run("test.ping")
-@@ -72,6 +76,7 @@ def test_proxy_minion_salt_call(proxy_minion, salt_call_cli):
- assert ret.json is True
+@@ -73,6 +77,7 @@ def test_proxy_minion_salt_call(proxy_minion, salt_call_cli):
+ assert ret.data is True
+@pytest.mark.skip("not compatible with sandbox")
@@ -365,10 +338,10 @@ index 926e6ac..f30c986 100644
sls_contents = """
test:
diff --git a/tests/integration/factories/daemons/proxy/test_restarts.py b/tests/integration/factories/daemons/proxy/test_restarts.py
-index 22ef97d..c781059 100644
+index a243c6d..7758c96 100644
--- a/tests/integration/factories/daemons/proxy/test_restarts.py
+++ b/tests/integration/factories/daemons/proxy/test_restarts.py
-@@ -17,6 +17,7 @@ def master(salt_factories):
+@@ -16,6 +16,7 @@ def master(salt_factories):
yield factory
@@ -377,7 +350,7 @@ index 22ef97d..c781059 100644
factory = master.salt_proxy_minion_daemon(random_string("proxy-minion-"))
assert factory.is_running() is False
diff --git a/tests/integration/factories/daemons/ssh/test_salt_ssh.py b/tests/integration/factories/daemons/ssh/test_salt_ssh.py
-index e74471a..a288b6b 100644
+index 37e2449..73ac893 100644
--- a/tests/integration/factories/daemons/ssh/test_salt_ssh.py
+++ b/tests/integration/factories/daemons/ssh/test_salt_ssh.py
@@ -51,6 +51,7 @@ def salt_ssh_cli(sshd, salt_factories, master):
@@ -387,7 +360,7 @@ index e74471a..a288b6b 100644
+@pytest.mark.skip("not compatible with network-sandbox")
def test_salt_ssh(salt_ssh_cli):
ret = salt_ssh_cli.run("--ignore-host-keys", "test.echo", "It Works!", minion_tgt="localhost")
- assert ret.exitcode == 0
+ assert ret.returncode == 0
diff --git a/tests/integration/factories/daemons/sshd/test_sshd.py b/tests/integration/factories/daemons/sshd/test_sshd.py
index 3b425fc..3e03636 100644
--- a/tests/integration/factories/daemons/sshd/test_sshd.py
@@ -416,7 +389,7 @@ index 3b425fc..3e03636 100644
cmd = subprocess.run(
[
diff --git a/tests/integration/utils/saltext/test_log_handlers.py b/tests/integration/utils/saltext/test_log_handlers.py
-index 96ad66d..118062b 100644
+index 6d5b9c0..edc5b5a 100644
--- a/tests/integration/utils/saltext/test_log_handlers.py
+++ b/tests/integration/utils/saltext/test_log_handlers.py
@@ -24,6 +24,7 @@ def salt_cli(master):
@@ -428,7 +401,7 @@ index 96ad66d..118062b 100644
assert minion.is_running()
diff --git a/tests/scenarios/examples/test_echoext.py b/tests/scenarios/examples/test_echoext.py
-index 3d5ce65..5fd503f 100644
+index 238a442..d827467 100644
--- a/tests/scenarios/examples/test_echoext.py
+++ b/tests/scenarios/examples/test_echoext.py
@@ -1,6 +1,8 @@
@@ -440,30 +413,3 @@ index 3d5ce65..5fd503f 100644
def test_echoext(extension_venv):
extension_path = CODE_ROOT_DIR.parent.parent / "examples" / "echo-extension"
with extension_venv(extension_path) as venv:
-diff --git a/tests/unit/utils/markers/test_skip_if_no_remote_network.py b/tests/unit/utils/markers/test_skip_if_no_remote_network.py
-index 1aa72dc..c4d079e 100644
---- a/tests/unit/utils/markers/test_skip_if_no_remote_network.py
-+++ b/tests/unit/utils/markers/test_skip_if_no_remote_network.py
-@@ -9,7 +9,10 @@ from unittest import mock
- import saltfactories.utils.markers as markers
- from saltfactories.utils import socket
-
-+import pytest
-
-+
-+@pytest.mark.skip("not compatible with network-sandbox")
- def test_has_remote_network():
- assert markers.skip_if_no_remote_network() is None
-
-diff --git a/tests/unit/utils/test_platform.py b/tests/unit/utils/test_platform.py
-index 28dac0c..b28bcbb 100644
---- a/tests/unit/utils/test_platform.py
-+++ b/tests/unit/utils/test_platform.py
-@@ -120,6 +120,7 @@ def test_is_not_aix():
- assert saltfactories.utils.platform.is_aix() is return_value
-
-
-+@pytest.mark.skip("Doesn't work with salt-3004")
- def test_is_aarch64():
- return_value = True
- with mock.patch("sys.platform", "aarch64"):
diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-0.911.0.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-0.121.1-r1.ebuild
index 87c43bfbf977..d45787b8724a 100644
--- a/dev-python/pytest-salt-factories/pytest-salt-factories-0.911.0.ebuild
+++ b/dev-python/pytest-salt-factories/pytest-salt-factories-0.121.1-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 2020-2022 Gentoo Authors
+# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=7
PYTHON_COMPAT=( python3_{7,8,9,10} )
inherit distutils-r1
@@ -16,25 +16,18 @@ KEYWORDS="amd64 ~arm ~arm64 x86"
IUSE="test"
RDEPEND="
+ >=dev-python/pytest-6.1.1[${PYTHON_USEDEP}]
dev-python/attrs[${PYTHON_USEDEP}]
dev-python/pytest-tempdir[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
- >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}]
- dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
dev-python/pyzmq[${PYTHON_USEDEP}]
dev-python/msgpack[${PYTHON_USEDEP}]
>=app-admin/salt-3001.0[${PYTHON_USEDEP}]
"
-BDEPEND="
- ${RDEPEND}
- test? (
- dev-python/pyfakefs[${PYTHON_USEDEP}]
- dev-python/pytest-subtests[${PYTHON_USEDEP}]
- )
-"
+BDEPEND="${RDEPEND}"
PATCHES=(
- "${FILESDIR}/pytest-salt-factories-0.911.0-tests.patch"
+ "${FILESDIR}/pytest-salt-factories-0.121.1-tests.patch"
)
distutils_enable_tests --install pytest
@@ -44,7 +37,7 @@ python_prepare_all() {
sed -r -e '/(setuptools|setup_requires)/ d' -i setup.cfg || die
sed -i 's:tool.setuptools_scm:tool.disabled:' pyproject.toml || die
- printf '__version__ = "%s"\n' "${PV}" > src/saltfactories/version.py || die
+ printf '__version__ = "%s"\n' "${PV}" > saltfactories/version.py || die
distutils-r1_python_prepare_all
}
@@ -64,7 +57,7 @@ python_test() {
cleanup() { rm -f "${tempdir}" || die; }
trap cleanup EXIT
- env SHELL="/bin/bash" TMPDIR="${tempdir}" \
+ SHELL="/bin/bash" TMPDIR="${tempdir}" \
pytest -vv || die "Tests failed with ${EPYTHON}"
)
}
diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild
new file mode 100644
index 000000000000..00b959d6b122
--- /dev/null
+++ b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.0_rc13.ebuild
@@ -0,0 +1,72 @@
+# Copyright 2020-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+inherit distutils-r1
+
+DESCRIPTION="The new generation of the pytest-salt Plugin"
+HOMEPAGE="https://github.com/saltstack/pytest-salt-factories"
+SRC_URI="https://github.com/saltstack/${PN}/archive/${PV//_/}.tar.gz -> ${P}.tar.gz"
+S=${WORKDIR}/${PN}-${PV//_/}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RDEPEND="
+ dev-python/attrs[${PYTHON_USEDEP}]
+ dev-python/pytest-tempdir[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}]
+ dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
+ dev-python/pytest-skip-markers[${PYTHON_USEDEP}]
+ dev-python/pytest-system-statistics[${PYTHON_USEDEP}]
+ dev-python/pytest-shell-utilities[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ dev-python/msgpack[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ >=app-admin/salt-3001.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/pyfakefs[${PYTHON_USEDEP}]
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/pytest-salt-factories-1.0.0_rc13-tests.patch"
+)
+
+distutils_enable_tests --install pytest
+
+python_prepare_all() {
+ sed -r -e "s:use_scm_version=True:version='${PV}', name='${PN//-/.}':" -i setup.py || die
+ sed -r -e '/(setuptools|setup_requires)/ d' -i setup.cfg || die
+
+ sed -i 's:tool.setuptools_scm:tool.disabled:' pyproject.toml || die
+ printf '__version__ = "%s"\n' "${PV}" > src/saltfactories/version.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local tempdir
+
+ # ${T} is too long a path for the tests to work
+ tempdir="$(mktemp -du --tmpdir=/tmp salt-XXX)"
+ addwrite "${tempdir}"
+
+ distutils_install_for_testing --via-root
+
+ (
+ cleanup() { rm -rf "${tempdir}" || die; }
+
+ trap cleanup EXIT
+ env SHELL="/bin/bash" TMPDIR="${tempdir}" \
+ pytest -vv -x || die "Tests failed with ${EPYTHON}"
+ )
+}
diff --git a/dev-python/pytest-shell-utilities/Manifest b/dev-python/pytest-shell-utilities/Manifest
new file mode 100644
index 000000000000..494f83b3252c
--- /dev/null
+++ b/dev-python/pytest-shell-utilities/Manifest
@@ -0,0 +1 @@
+DIST pytest-shell-utilities-1.0.5.tar.gz 89489 BLAKE2B 9cd7f95c9c1691e19c320378d1c2a4e147cb6fdc35ec6f3c80dc288e70416fce67b60ac86427f1ad322b2c17de3cd762e483d63076fa291b4b7d22d7a29c9e45 SHA512 395107af9eaa13ef39d01858e1674b6dedddc2cf93b9aba61316fd8d847031e1b535cc3bf4f2899dbc7828609b7d45b500aad29bb47668be6e0453ac099e99e4
diff --git a/dev-python/pytest-shell-utilities/metadata.xml b/dev-python/pytest-shell-utilities/metadata.xml
new file mode 100644
index 000000000000..0f2e57ded13c
--- /dev/null
+++ b/dev-python/pytest-shell-utilities/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pytest-shell-utilities/pytest-shell-utilities-1.0.5.ebuild b/dev-python/pytest-shell-utilities/pytest-shell-utilities-1.0.5.ebuild
new file mode 100644
index 000000000000..440b8678c710
--- /dev/null
+++ b/dev-python/pytest-shell-utilities/pytest-shell-utilities-1.0.5.ebuild
@@ -0,0 +1,46 @@
+# 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/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+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/wheel[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -e "s/use_scm_version=True/version='${PV}'/" -i setup.py || die
+ sed -e "/setuptools_scm/ d" -i setup.cfg || die
+ sed -e "s/tool.setuptools_scm/tool.disabled/" -i pyproject.toml || die
+
+ printf '__version__ = "${PV}"\n' > src/pytestshellutils/version.py || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pytest-skip-markers/Manifest b/dev-python/pytest-skip-markers/Manifest
new file mode 100644
index 000000000000..871b412ed285
--- /dev/null
+++ b/dev-python/pytest-skip-markers/Manifest
@@ -0,0 +1 @@
+DIST pytest-skip-markers-1.2.0.tar.gz 79343 BLAKE2B 7f24b454fe19210d9ecadf10317a5a32830d722b64adbaf0fa6fad70a4c0cb598fa93b782a2b0f71bd23c4f91f2007d21383b488d725f61519d064e98ddd48f8 SHA512 76c1d0f0af7f7a56fa95d33bd5cb078792df3f054714d2ca1baa6d861e9404e2ec734a88a0768985388b1226c399ee6b54fe082ef7fcce6fc190fcae6201a416
diff --git a/dev-python/pytest-skip-markers/metadata.xml b/dev-python/pytest-skip-markers/metadata.xml
new file mode 100644
index 000000000000..0f2e57ded13c
--- /dev/null
+++ b/dev-python/pytest-skip-markers/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pytest-skip-markers/pytest-skip-markers-1.2.0.ebuild b/dev-python/pytest-skip-markers/pytest-skip-markers-1.2.0.ebuild
new file mode 100644
index 000000000000..91d162ca87d0
--- /dev/null
+++ b/dev-python/pytest-skip-markers/pytest-skip-markers-1.2.0.ebuild
@@ -0,0 +1,53 @@
+# 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=""
+HOMEPAGE="
+ https://pytest-skip-markers.readthedocs.io/en/latest/
+ https://github.com/saltstack/pytest-skip-markers
+"
+SRC_URI="https://github.com/saltstack/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/pytest-6.0.0[${PYTHON_USEDEP}]
+ dev-python/attrs[${PYTHON_USEDEP}]
+ dev-python/pytest-tempdir[${PYTHON_USEDEP}]
+ dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
+ dev-python/pytest-system-statistics[${PYTHON_USEDEP}]
+ dev-python/pytest-shell-utilities[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ dev-python/msgpack[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/wheel[${PYTHON_USEDEP}]
+ dev-python/setuptools-declarative-requirements[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ dev-python/pyfakefs[${PYTHON_USEDEP}]
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -e "s/use_scm_version=True/version='${PV}'/" -i setup.py || die
+ sed -e "/setuptools_scm/ d" -i setup.cfg || die
+ sed -e "s/tool.setuptools_scm/tool.disabled/" -i pyproject.toml || die
+
+ printf '__version__ = "${PV}"\n' > src/pytestskipmarkers/version.py || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pytest-system-statistics/Manifest b/dev-python/pytest-system-statistics/Manifest
new file mode 100644
index 000000000000..550382e4b516
--- /dev/null
+++ b/dev-python/pytest-system-statistics/Manifest
@@ -0,0 +1 @@
+DIST pytest-system-statistics-1.0.2.tar.gz 55147 BLAKE2B 9b1217102a23e723090e04652fdd727818e2404bf110e4f54289251eb92f4abb59861ba6c6fc611c843960cf0595fa5cbd636071033327d4e602606e8ab63abf SHA512 1fab5038dde504ab0d5d0f4da851c9a8260849adb38a1196c6399131d77cc24a1926e68310dd0701ed001a20a7fcfb57c5202c5ebfd6de4c85aac4be49fc7347
diff --git a/dev-python/pytest-system-statistics/metadata.xml b/dev-python/pytest-system-statistics/metadata.xml
new file mode 100644
index 000000000000..0f2e57ded13c
--- /dev/null
+++ b/dev-python/pytest-system-statistics/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pytest-system-statistics/pytest-system-statistics-1.0.2.ebuild b/dev-python/pytest-system-statistics/pytest-system-statistics-1.0.2.ebuild
new file mode 100644
index 000000000000..4d85870a6e32
--- /dev/null
+++ b/dev-python/pytest-system-statistics/pytest-system-statistics-1.0.2.ebuild
@@ -0,0 +1,49 @@
+# 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 Which Reports System Usage Statistics"
+HOMEPAGE="
+ https://pypi.org/project/pytest-system-statistics/
+ https://github.com/saltstack/pytest-system-statistics
+"
+SRC_URI="https://github.com/saltstack/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+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-skip-markers[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/wheel[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -e "s/use_scm_version=True/version='${PV}'/" -i setup.py || die
+ sed -e "/setuptools_scm/ d" -i setup.cfg || die
+ sed -e "s/tool.setuptools_scm/tool.disabled/" -i pyproject.toml || die
+
+ printf '__version__ = "${PV}"\n' > src/pytestsysstats/version.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest -k 'not proc_sys_stats'
+}
diff --git a/dev-python/raet/raet-0.6.8-r4.ebuild b/dev-python/raet/raet-0.6.8-r4.ebuild
new file mode 100644
index 000000000000..014dece1af16
--- /dev/null
+++ b/dev-python/raet/raet-0.6.8-r4.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{7,8,9,10} )
+inherit distutils-r1
+
+DESCRIPTION="Reliable Asynchronous Event Transport Protocol"
+HOMEPAGE="https://github.com/RaetProtocol/raet"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=dev-python/six-1.6.1[${PYTHON_USEDEP}]
+ >=dev-python/libnacl-1.4.3[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-2.0[${PYTHON_USEDEP}]"
+BDEPEND="${RDEPEND}
+ test? (
+ >=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
+ )"
+
+PATCHES=(
+ "${FILESDIR}/raet-0.6.8-msgpack-1.0.patch"
+ "${FILESDIR}/raet-0.6.8-py310.patch"
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+ sed -e "/setuptools_git/d" -i setup.py || die
+}
+
+python_test() {
+ pushd "${BUILD_DIR}"/lib || die
+ ${EPYTHON} ${PN}/test/__init__.py || die "tests failed for ${EPYTHON}"
+ popd || die
+}
diff --git a/dev-python/redis-py/Manifest b/dev-python/redis-py/Manifest
index ca8bda70fdd7..9100e8f6acf8 100644
--- a/dev-python/redis-py/Manifest
+++ b/dev-python/redis-py/Manifest
@@ -1,2 +1,3 @@
DIST redis-py-4.1.4.tar.gz 2352106 BLAKE2B a7f40d381e3e1d295d2ce88f0adb897704d0065ee7d5bb00108c2c8c67ef649ea63d4ca06dbbe2b21b2f92d70d96f8e2d32a7992ecf702bb4c73589f30c1bae8 SHA512 6dd1bc7622529382901b2fe6e63a5f9d6a4b89175b486c879a63cc8f0e708737431dfe5b834124f0d33f34540ac54813a0e6953bbed3a9dbd226597b4b1cb3ae
DIST redis-py-4.2.0.tar.gz 2419627 BLAKE2B a4429e17dc90289032c5b98cd482fc6e1349b4b63b2c3f289be1df9d0c667a9f568cbee71d34f88c140fbebf2b0061e9bb3426f1548bccf3c0767c040419251b SHA512 3c4c7f859e63ebadf8d4b01ce14d789caffa18b1f177b6a2269737cb20259dc0165773b1c838c3c08edeea790976183b156f886815b42ea709b4b3a0f2aa3354
+DIST redis-py-4.2.1.tar.gz 2420026 BLAKE2B 2e2ef024dc22ad8447bd0b0c9e2318b5c55568e7a93a73f8f264e5af839d50c7c44d98669d19ddc2a9a6440eaafa8842ebeb749b9b22db83d691dab5421fd774 SHA512 3499126d2c19f599e5bc026c3b66ec99639b2746ef0091ba8bea45cf969d39831e1f2ad47f0ba4c65131d4f248320a8b7d2862c5abb289e46555cd3fc6239674
diff --git a/dev-python/redis-py/redis-py-4.2.1.ebuild b/dev-python/redis-py/redis-py-4.2.1.ebuild
new file mode 100644
index 000000000000..c382001ce321
--- /dev/null
+++ b/dev-python/redis-py/redis-py-4.2.1.ebuild
@@ -0,0 +1,81 @@
+# 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
+
+MY_PN="redis"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Python client for Redis key-value store"
+HOMEPAGE="https://github.com/redis/redis-py"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/async_timeout-4.0.2[${PYTHON_USEDEP}]
+ >=dev-python/deprecated-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Flaky test
+ tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock
+
+ # Needs a second Redis running
+ tests/test_commands.py::TestRedisCommands::test_sync
+ tests/test_commands.py::TestRedisCommands::test_psync
+ )
+
+ local EPYTEST_IGNORE=(
+ # SSL tests need Docker/stunnel:
+ # https://github.com/redis/redis-py/commit/18c6809b761bc6755349e1d7e08e74e857ec2c65
+ tests/test_ssl.py
+
+ # Needs multiple Redises running
+ tests/test_cluster.py
+ )
+
+ epytest -k "not redismod and not ssl"
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+
+ # Spawn Redis itself for testing purposes
+ # NOTE: On sam@'s machine, spawning Redis can hang in the sandbox.
+ # I'm not restricting tests yet because this doesn't happen for anyone else AFAICT.
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ # "${EPREFIX}"/usr/sbin/redis-server - <<< "${redis_test_config}" || die
+ "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1
+ EOF
+
+ # Run the tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/setuptools-declarative-requirements/Manifest b/dev-python/setuptools-declarative-requirements/Manifest
new file mode 100644
index 000000000000..394277a2e4b2
--- /dev/null
+++ b/dev-python/setuptools-declarative-requirements/Manifest
@@ -0,0 +1 @@
+DIST setuptools-declarative-requirements-1.2.0.tar.gz 17936 BLAKE2B a5be2b64fc22d5a45136ec2b98c1d4cc6c20e17dc81070d12948b6f536a517ec8a660c105dfc13a4319d1de54409fb4f7a4c6bacaf1291afa13c7ecc27fd933f SHA512 ce0eeb8692ff2ea80db91cad981853da74c0ca80f58b698753de92f6df3ef5e1c158e314d0ac4d0b4fa99a2ad8ee2d7d80a9d1a13f334966c948dee1a0ae3d98
diff --git a/dev-python/setuptools-declarative-requirements/metadata.xml b/dev-python/setuptools-declarative-requirements/metadata.xml
new file mode 100644
index 000000000000..0f2e57ded13c
--- /dev/null
+++ b/dev-python/setuptools-declarative-requirements/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/setuptools-declarative-requirements/setuptools-declarative-requirements-1.2.0.ebuild b/dev-python/setuptools-declarative-requirements/setuptools-declarative-requirements-1.2.0.ebuild
new file mode 100644
index 000000000000..4c1f52256b00
--- /dev/null
+++ b/dev-python/setuptools-declarative-requirements/setuptools-declarative-requirements-1.2.0.ebuild
@@ -0,0 +1,47 @@
+# 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} pypy3 )
+inherit distutils-r1
+
+DESCRIPTION="Requirements Support For Setuptools Declarative setup.cfg"
+HOMEPAGE="
+ https://pypi.org/project/setuptools-declarative-requirements/
+ https://github.com/s0undt3ch/setuptools-declarative-requirements
+"
+SRC_URI="https://github.com/s0undt3ch/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/wheel[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pypiserver[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ sed -e "s/use_scm_version=True/version='${PV}'/" -i setup.py || die
+ sed -e "/setuptools_scm/ d" -i setup.cfg || die
+ printf '__version__ = "${PV}"\n' > declarative_requirements/version.py || die
+ sed -e "s/localhost/127.0.0.1/g" -i tests/conftest.py || die
+ rm pyproject.toml || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ PIP_DEFAULT_TIMEOUT=3 \
+ PIP_INDEX_URL="http://127.0.0.1:8080" \
+ epytest -k 'not sdist'
+}