summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-11-19 01:41:31 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-11-19 01:41:31 +0000
commitc1d7916da2a070c0259ad1e24c838d0e0e994f6e (patch)
tree38580362498bc71d8a981ff3df7b2423dfa56031 /dev-python
parent073d48d4acaf695eb63fe7b2be1279548e0e796c (diff)
downloadbaldeagleos-repo-c1d7916da2a070c0259ad1e24c838d0e0e994f6e.tar.gz
baldeagleos-repo-c1d7916da2a070c0259ad1e24c838d0e0e994f6e.tar.xz
baldeagleos-repo-c1d7916da2a070c0259ad1e24c838d0e0e994f6e.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/aiohttp-3.8.1.ebuild2
-rw-r--r--dev-python/aiosignal/aiosignal-1.2.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.20.9.ebuild59
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.23.9.ebuild64
-rw-r--r--dev-python/diskcache/diskcache-5.2.1-r1.ebuild2
-rw-r--r--dev-python/django_polymorphic/Manifest1
-rw-r--r--dev-python/django_polymorphic/django_polymorphic-3.1.ebuild36
-rw-r--r--dev-python/fasteners/fasteners-0.16.3.ebuild2
-rw-r--r--dev-python/frozenlist/frozenlist-1.2.0.ebuild2
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.24.6.ebuild62
-rw-r--r--dev-python/identify/Manifest1
-rw-r--r--dev-python/identify/identify-2.3.7.ebuild19
-rw-r--r--dev-python/nose2/nose2-0.10.0.ebuild2
-rw-r--r--dev-python/oslo-utils/Manifest1
-rw-r--r--dev-python/oslo-utils/oslo-utils-4.12.0.ebuild47
-rw-r--r--dev-python/pbr/Manifest1
-rw-r--r--dev-python/pbr/pbr-5.8.0.ebuild66
-rw-r--r--dev-python/protobuf-python/Manifest1
-rw-r--r--dev-python/protobuf-python/protobuf-python-3.15.8.ebuild65
-rw-r--r--dev-python/protobuf-python/protobuf-python-9999.ebuild2
-rw-r--r--dev-python/pydecomp/pydecomp-0.3-r2.ebuild2
-rw-r--r--dev-python/pyudev/files/pyudev-0.22-fix-hypothesis.patch142
-rw-r--r--dev-python/pyudev/files/pyudev-0.22-pytest-4.patch56
-rw-r--r--dev-python/pyudev/files/pyudev-0.22-remove-flaky-tests.patch126
-rw-r--r--dev-python/pyudev/pyudev-0.22.0-r1.ebuild53
28 files changed, 745 insertions, 74 deletions
diff --git a/dev-python/aiohttp/aiohttp-3.8.1.ebuild b/dev-python/aiohttp/aiohttp-3.8.1.ebuild
index b10d7b79b42a..002926c23647 100644
--- a/dev-python/aiohttp/aiohttp-3.8.1.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.8.1.ebuild
@@ -15,7 +15,7 @@ SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
RDEPEND="
app-arch/brotli[python,${PYTHON_USEDEP}]
diff --git a/dev-python/aiosignal/aiosignal-1.2.0.ebuild b/dev-python/aiosignal/aiosignal-1.2.0.ebuild
index 357b3da207df..13016e152f62 100644
--- a/dev-python/aiosignal/aiosignal-1.2.0.ebuild
+++ b/dev-python/aiosignal/aiosignal-1.2.0.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
RDEPEND="
>=dev-python/frozenlist-1.1.0[${PYTHON_USEDEP}]"
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 16874eed0c1f..f96d08f2755a 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -5,3 +5,4 @@ DIST boto3-1.20.5.tar.gz 439166 BLAKE2B c140e15e497e6cdf6b4b77bb99e0a0f5ac01d5b5
DIST boto3-1.20.6.tar.gz 440133 BLAKE2B b154714261372cebb8643d529b66fe3a42d30e056cf2a454092d598c51d0cdef723980834be6a36abb892d3022ae8ef67053b22bb176f540e67c3f37422155d8 SHA512 d8d66a761f03beeca10fea8446de1136d418a93b21065aebfefcafe2abfd9b5bbfa243594f54647ad80547e48348086e2be2de129b89f9ca71f308579f11a0b7
DIST boto3-1.20.7.tar.gz 440428 BLAKE2B f1b2b36799e6c22a40c04226443f15f9174d68a02d2f731df84f6ff0962158e9d940ae5bc04d25fe99a74f105946026ccb66547838734294d649d661071c1e3b SHA512 85493a85789caa5453a4dafa1472c8ecd75c05a819227909092ae03690243eb103c1588cb10e5e5277ab9df49673b9b54fda064a412bdcf6b9e11238b277f450
DIST boto3-1.20.8.tar.gz 441260 BLAKE2B 9a9e6620fecbcbb4cd28c7ed8d1c6a42c5325e8c44529fa1855c30e3b3a20ab5963e533cfbda1877204075ac2917e8bf3335fa56dcc146813554a33b52bc80af SHA512 6223def67826aaf98dbf5102755f2e6204558534fbbc34552e411ce64ebba4bd03d01f984246ee7c70d06fb5a19313a4da041aa31b33e75867d0591973037009
+DIST boto3-1.20.9.tar.gz 443171 BLAKE2B be0300a416ba0542b79e97db9fcd4d65cdef5acd8234943316125fe2b24135dd26212f2b2dcff867a8981b56bfb61ac1a6d63985f6c76b8f967d40917e07ede8 SHA512 a6a7cb7a64b7bc652aab80dbe47471fa94f1d24dfc39ef0c774aa0ab10dcfd196ccceee29c1b5149f9b70f54888e600f5769a5a481bb1195039ced3efc68e883
diff --git a/dev-python/boto3/boto3-1.20.9.ebuild b/dev-python/boto3/boto3-1.20.9.ebuild
new file mode 100644
index 000000000000..ace657bcbe4d
--- /dev/null
+++ b/dev-python/boto3/boto3-1.20.9.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+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 ~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}]
+ )
+"
+
+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}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 46b202160613..1c6da427abf2 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -5,3 +5,4 @@ DIST botocore-1.23.5.tar.gz 8374467 BLAKE2B 467092e7d8aa5ccb756132669049865445a4
DIST botocore-1.23.6.tar.gz 8387968 BLAKE2B 415a177d591a0ef369f17b8f02563be0fb53bc4e65c2767f41ca11300939585a10146874b6ac5297cdd3dcb36cf6fd2065fd09f3c612c4ba1d954b03a5b15579 SHA512 a46e45b7bb67d7c4bcc5508f38448b9ed3778ed6b6080239459b22b7f753adaf12e8d64496f7d7c71b33bb17ae1744000e9269ea0f545286e56fabe39e7f0340
DIST botocore-1.23.7.tar.gz 8391467 BLAKE2B dd6cad44c1b8109b76c44bfffa45e74da0fbeaa027429860640e33134dc5f6e5bb813b46d8b662d80b89af46d437c6fb962f0e0ab1edbeca3ee790f3b6d029bf SHA512 a3270da3b6d906bc2372af221400e14039868598ccd56f40f976bcc2638f300ae9990ff367f76e5b5cdf8d46a8a37716865f9a40ca7e79b73a5b8dbcb2b1af7f
DIST botocore-1.23.8.tar.gz 8407591 BLAKE2B 3b25e56d2408190c3ca6005e902b75dc4e5e7f0909d0f5d79c633e897c0b8b161dde542ccdb02ed6a7e3220d14c1225051e79cc47c945948b750cb58dee65f69 SHA512 11fd831da6e08574d78e3e45b79957dc6c6055ac55955eca7112568a211974a8f985e583b5bbd5f9799117ccb17f71c528930b8b4cc6a113fdbdbf6f72bb1fde
+DIST botocore-1.23.9.tar.gz 8425944 BLAKE2B 0c4cac5574e2bfdee6507221f2901313c50cd05ce97a4ccef75fc6498c963bc2cd144fc7d38a9c71291ccd6f733bb8620b6d4fe145b1fc1ff82c4fbbb5500463 SHA512 983babc0053730e6f300093ed5549a3660c9c0610454e101c0f30f7cf40f73ea93964b2e4dd4f981639bb5bc7081b30c9c2146b4194c5b5074d38e7e4bc79a10
diff --git a/dev-python/botocore/botocore-1.23.9.ebuild b/dev-python/botocore/botocore-1.23.9.ebuild
new file mode 100644
index 000000000000..43b65ed32e9b
--- /dev/null
+++ b/dev-python/botocore/botocore-1.23.9.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+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 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ dev-python/jmespath[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${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}
+}
diff --git a/dev-python/diskcache/diskcache-5.2.1-r1.ebuild b/dev-python/diskcache/diskcache-5.2.1-r1.ebuild
index 5fb6074d6d27..f03e89149d2f 100644
--- a/dev-python/diskcache/diskcache-5.2.1-r1.ebuild
+++ b/dev-python/diskcache/diskcache-5.2.1-r1.ebuild
@@ -18,7 +18,7 @@ S=${WORKDIR}/python-diskcache-${PV}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
distutils_enable_sphinx docs
distutils_enable_tests pytest
diff --git a/dev-python/django_polymorphic/Manifest b/dev-python/django_polymorphic/Manifest
index 6077c841e5e5..25721477cab5 100644
--- a/dev-python/django_polymorphic/Manifest
+++ b/dev-python/django_polymorphic/Manifest
@@ -1 +1,2 @@
DIST django_polymorphic-3.0.0.tar.gz 103298 BLAKE2B f68e53de329a8b922fdf8b6daa212422cca8a0dcb31407e4423e8245fe4200c3d2986ca1c9b46013fcc3ae42cedd9fff006db64ca068f8ebff1e19dca2b45aa1 SHA512 7c7030a622d265db2a6d67c327df3044c6598d36ba9d6433f27171f9c07b34dad7a466372e0f7baefc9d2c344b96a2ff9aa28add1fa131c3869d61e4a4c46222
+DIST django_polymorphic-3.1.tar.gz 104090 BLAKE2B de2a2b38f338a10198d00e70d1813e541bf627e2ba2f5e29f0844c9ec7034badba39c077a195fc8c2f71105f1b4e546b91218b95d2ac47020f0dc2e3a5b0baa8 SHA512 730f617009007f94e935870941fdd8973d0cd5995060afbd138622345de77fa48bf2afe037bfa2ad476cef0a31e90cab1eb55109c470ae815a98e1facfa8f125
diff --git a/dev-python/django_polymorphic/django_polymorphic-3.1.ebuild b/dev-python/django_polymorphic/django_polymorphic-3.1.ebuild
new file mode 100644
index 000000000000..39129ab17560
--- /dev/null
+++ b/dev-python/django_polymorphic/django_polymorphic-3.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+DESCRIPTION="Seamless Polymorphic Inheritance for Django Models"
+HOMEPAGE="https://pypi.org/project/django-polymorphic/"
+SRC_URI="
+ https://github.com/django-polymorphic/django-polymorphic/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+S="${WORKDIR}/${P//_/-}"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/django-2.1[$PYTHON_USEDEP]
+"
+
+DEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ dev-python/dj-database-url[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ "${EPYTHON}" runtests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/fasteners/fasteners-0.16.3.ebuild b/dev-python/fasteners/fasteners-0.16.3.ebuild
index 8f5d8754cb61..8c769e43332e 100644
--- a/dev-python/fasteners/fasteners-0.16.3.ebuild
+++ b/dev-python/fasteners/fasteners-0.16.3.ebuild
@@ -14,7 +14,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]"
diff --git a/dev-python/frozenlist/frozenlist-1.2.0.ebuild b/dev-python/frozenlist/frozenlist-1.2.0.ebuild
index cc17a52f7139..fa48e1bdb189 100644
--- a/dev-python/frozenlist/frozenlist-1.2.0.ebuild
+++ b/dev-python/frozenlist/frozenlist-1.2.0.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
BDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 3d610cec26b7..5506edacfa6d 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,3 +1,4 @@
DIST hypothesis-python-6.24.2.tar.gz 9168397 BLAKE2B 87070841a01c7c9de79b5d786867024873f7de186bbee01bba708e783fd1268523b2e0398a055c92b782f27d0f67679bf5852bd49371932d277726517d12bd91 SHA512 9e4ee194fe561f8a39a26ab63cad4b6f093b2fcb56d02a5adfc4bdee1d7ccf55e6712d1af41d17155c6e88ecc75e6f191cf2761c2d71c2c052d7e8259cff0326
DIST hypothesis-python-6.24.4.tar.gz 9168664 BLAKE2B fe3d2fa28d7e8f47e4ce60fa91b3e004e3214ff51372b16f56c8328ef08a0dace48545b198511ceefe9f58b907f3b35d65ad2934c936dc1ef0b6393215e8c2d9 SHA512 4c1ea50b3203c2933713a5ebfdf40b64c0f6ab62bad30de446e26c79a8e5212b0669ca2569be9f5367b42471175225952920a68129867b4c94fe76b214b88a47
DIST hypothesis-python-6.24.5.tar.gz 9168940 BLAKE2B 719efd5c307708f3fa205e2096e54ad44009248bd6c03873cbf14eaacb48c5aaf2f444b430418ae3d6d107b53def52a0a6194d9827e94abb1c97af4f12f02072 SHA512 215c4009b9496983c1c3bb3fee7c051fed434c57d48dbcaa5ff0aa42c60c33a507c424eb7e604d323b61c6171d97cbd02d492bcda99bc278b099fd2f3fb074ca
+DIST hypothesis-python-6.24.6.tar.gz 9169209 BLAKE2B 448eedad86d41c766d2bb450f18965592e5f8c53bfc341a081591ae916be00e2a9d5e82633059753e6c47b7905cb09a94e634463cd90bd65c87598f8d92bc58c SHA512 6cd13eb1bf33d5a72debbc262f691949b60ee8bcf6a1c3c263a55b4cc4498c1bd0568088f541ef68152219e9a12d7cfd2a53a3d37a6bba0cec7b2b57b4500e42
diff --git a/dev-python/hypothesis/hypothesis-6.24.6.ebuild b/dev-python/hypothesis/hypothesis-6.24.6.ebuild
new file mode 100644
index 000000000000..8b48444a4699
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.24.6.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 multiprocessing optfeature
+
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="https://github.com/HypothesisWorks/hypothesis https://pypi.org/project/hypothesis/"
+SRC_URI="https://github.com/HypothesisWorks/${PN}/archive/${PN}-python-${PV}.tar.gz"
+S="${WORKDIR}/${PN}-${PN}-python-${PV}/${PN}-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' python3_{7..9})
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ !!<dev-python/typing-3.7.4.1
+ )
+"
+
+distutils_enable_tests --install pytest
+
+python_prepare() {
+ if ! use cli || ! has "${EPYTHON}" python3.{7..9}; then
+ sed -i -e '/console_scripts/d' setup.py || die
+ fi
+}
+
+python_test() {
+ distutils_install_for_testing
+ epytest tests/cover tests/pytest tests/quality \
+ -p no:pytest-describe \
+ -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")"
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/identify/Manifest b/dev-python/identify/Manifest
index 1fa64a7e530f..c3a304080b5f 100644
--- a/dev-python/identify/Manifest
+++ b/dev-python/identify/Manifest
@@ -1,3 +1,4 @@
DIST identify-2.3.3.tar.gz 101227 BLAKE2B df5a99e70aee5ed17bffece82e81c98f0a09496b14eacb6c068cf930beccf7905610e6b0240c8f385266ab12c77db6ee482f26b05252166ab22e0e7089f5cf7f SHA512 ed325dc7b1692add1c72aeb5479bba11d36a70dbdbf59f3ce0080ff9d8fab6ea3c8094050bd8ed3ef0bb4dd2344eacdfcdb3f4c907ef5a51163a68d2ee59812e
DIST identify-2.3.5.tar.gz 101259 BLAKE2B 9fac1817c173fac8b82fd805c5c5602d964cccd001e1d7dc6d7350c72b4f436613e47989fdd2e6f866d56c52871a4d1aa848d1761b03cf728446d483276bd6a6 SHA512 89d40df2fae167a348c14b5fa20cf3a3fc83e1f42a6fabbeb02935f873a5a0366cfddf51c358f35f1bf15846b357647d229a180afec4e71fdf6ba44c0d109bd6
DIST identify-2.3.6.tar.gz 101267 BLAKE2B 227d3aba8103c4442c16f3b6cc93ed05a4ed642eb850c790ff2345f81447d3e4ac5c162ff36787b43ed31fe9d2311ab4d1b53041c254578fb294529e2d0d0739 SHA512 d2ea94d975c80120367fd58d2f6a3284175c20f6a938a3514d64eb97bdf8eb9d8334c60b2d5806ac192dcf23836993f1586280624fcb40dcf62a6d358917f7d7
+DIST identify-2.3.7.tar.gz 101296 BLAKE2B 0facbd03d84c453e63133741fd688e195785a2ac79ee728bbe3a3e42e4d53a7d17cc935f7fdade37ac0329a52db4bd514be917c82a45bbe0c88f1999d0a248b6 SHA512 00ba94ac2b5d762b500a51a9de6ac6ee863235b5d928776d033317fe7b250360465b7fa011ce04a4f2c63d1e27b1b1b687f5e4e8b3c426ede71ebae91c172863
diff --git a/dev-python/identify/identify-2.3.7.ebuild b/dev-python/identify/identify-2.3.7.ebuild
new file mode 100644
index 000000000000..bae7649cf429
--- /dev/null
+++ b/dev-python/identify/identify-2.3.7.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+DESCRIPTION="File identification library for Python"
+HOMEPAGE="https://github.com/pre-commit/identify"
+SRC_URI="https://github.com/pre-commit/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="dev-python/editdistance-s[${PYTHON_USEDEP}]"
+
+distutils_enable_tests pytest
diff --git a/dev-python/nose2/nose2-0.10.0.ebuild b/dev-python/nose2/nose2-0.10.0.ebuild
index f74bdaea6de5..2c8af49ad8a9 100644
--- a/dev-python/nose2/nose2-0.10.0.ebuild
+++ b/dev-python/nose2/nose2-0.10.0.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/nose-devs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~hppa ~sparc x86"
+KEYWORDS="amd64 ~hppa ~ppc ~ppc64 ~sparc x86"
RDEPEND="
>=dev-python/coverage-4.4.1[${PYTHON_USEDEP}]
diff --git a/dev-python/oslo-utils/Manifest b/dev-python/oslo-utils/Manifest
index ad1f2617369f..3c27cd11f82c 100644
--- a/dev-python/oslo-utils/Manifest
+++ b/dev-python/oslo-utils/Manifest
@@ -1,2 +1,3 @@
DIST oslo.utils-4.10.0.tar.gz 100481 BLAKE2B 45bb815943912b08256cfba943fb729202346eb8b2ec4b3d2ec5ca8ffed55e321f2abe2a579202240b529e4520bbd70a23ec0dec760f74aaffdd236ee2769723 SHA512 ff51fcd4d12701bf9e729d7bc1e8d6091a7768e7583fcf7ba879e69ad53c6425216c76fef783012f3d9f7cc5947179c4470225416e314c9c0836d201a6d76c14
DIST oslo.utils-4.11.0.tar.gz 100897 BLAKE2B a020682e89ba86a4b8390c842ffabcfd3d923168c89071c380d50de289e91a5c0247ce47dea3f17675ac14fe7e8129744bf7f5aa8a4aad6ff90d1d01cbd2b589 SHA512 837d111bec78364501a4d92039f76cdfc761b9302eae4badf3700d983f2ff19ffa3497835fef81c28b28760b9aa0325aecafa559b00b3d7593c1d1b2ca916702
+DIST oslo.utils-4.12.0.tar.gz 100927 BLAKE2B 6f175d7c08a9084af083d1e2a339ef81c9d49f832f0c94b17fe652485f077d787731bbef61bb7b4cc30188b776b7494f53700b76a736be70cff0ce5b4da5b11d SHA512 a31d307199584d6aa891464e0d9ef218d0a2aa6b54337e081ac3d787d883dfa088484f894c421c4cbf428ce2a53b6547770d469299ec7b9d0159e5a38fde06e3
diff --git a/dev-python/oslo-utils/oslo-utils-4.12.0.ebuild b/dev-python/oslo-utils/oslo-utils-4.12.0.ebuild
new file mode 100644
index 000000000000..8e1700c3447c
--- /dev/null
+++ b/dev-python/oslo-utils/oslo-utils-4.12.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+inherit distutils-r1
+
+MY_P=${P/-/.}
+DESCRIPTION="Oslo Utility library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN::1}/${PN/-/.}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
+ >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
+ >dev-python/eventlet-0.23.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # spurious rdep
+ sed -i -e '/pbr/d' requirements.txt || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/pbr/Manifest b/dev-python/pbr/Manifest
index d05cd39bd9e2..d8769b3c13f9 100644
--- a/dev-python/pbr/Manifest
+++ b/dev-python/pbr/Manifest
@@ -1,2 +1,3 @@
DIST pbr-5.6.0.tar.gz 125220 BLAKE2B fc26737857195b0dbe16ecbcbc6e389b53a61105b3bc66e714bb4fcb4907e4329ee7c76b5748fa7d892bf231522e6ff9d414328ae0d97e6262b608c44c737764 SHA512 1dca9020a84e3b9be71fa07e2feb37bbdb2bb69d0b4f69fdcee0fc3c7fe4d84ac2e2079d6bd7560192833f069ca6f5dc27d03a3ef87c168eed18eee8579647fc
DIST pbr-5.7.0.tar.gz 126776 BLAKE2B ff41c0b3d2354dff065bda4dc9278e42d06accc9fab96bdd734cb462682caf240d1e5d3a6e6c1f52c2986f92d4a1b11b74f5d563a9e8bd5e75aaafe7c3b30108 SHA512 076e6f918db46df74688e749242331161b858def6135d4c9695c24cdfe7db3185169787a6d5555a40a9d0e87ea54000be6419701f162283047bee41f36811535
+DIST pbr-5.8.0.tar.gz 127170 BLAKE2B 7fbd166f01617617c0dff568d1bb88a4be03d62f4f0c3ca1a7d16a7cefb20dcc924ffbb8df0d2d34516cfe3b60b8e380a0eb4a1071220bb4ab695d3d7c88d824 SHA512 61a8eb63bb76ce8515c4203d60df7c973e02ea61b603d155b611724efb2b15c42416bf8a0285451d3378056d390bbf63d991cec32cc4114ae5cc30ebae0a5a69
diff --git a/dev-python/pbr/pbr-5.8.0.ebuild b/dev-python/pbr/pbr-5.8.0.ebuild
new file mode 100644
index 000000000000..6527b8b283a4
--- /dev/null
+++ b/dev-python/pbr/pbr-5.8.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{6,7,8,9,10} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+inherit distutils-r1
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="https://github.com/openstack/pbr/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux"
+
+# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and https://bugs.gentoo.org/show_bug.cgi?id=561038
+# docutils is needed for sphinx exceptions... https://bugs.gentoo.org/show_bug.cgi?id=603848
+# stestr is run as external tool
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/wheel-0.32.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.12.0[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.0.3[${PYTHON_USEDEP}]
+ dev-vcs/git
+ ' 'python*')
+ )"
+
+distutils_enable_tests unittest
+
+# This normally actually belongs here.
+python_prepare_all() {
+ # TODO: investigate
+ sed -e s':test_console_script_develop:_&:' \
+ -e s':test_console_script_install:_&:' \
+ -i pbr/tests/test_core.py || die
+ # broken on pypy3
+ # https://bugs.launchpad.net/pbr/+bug/1881479
+ sed -e 's:test_generates_c_extensions:_&:' \
+ -i pbr/tests/test_packaging.py || die
+ rm pbr/tests/test_wsgi.py || die "couldn't remove wsgi network tests"
+ # installs random packages via pip from the Internet
+ sed -e 's:test_requirement_parsing:_&:' \
+ -e 's:test_pep_517_support:_&:' \
+ -i pbr/tests/test_packaging.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ if [[ ${EPYTHON} != python* ]]; then
+ einfo "Testing on ${EPYTHON} is not supported at the moment"
+ return
+ fi
+
+ distutils_install_for_testing
+ eunittest -b
+}
diff --git a/dev-python/protobuf-python/Manifest b/dev-python/protobuf-python/Manifest
index e4219af26c33..e5d6443b5d31 100644
--- a/dev-python/protobuf-python/Manifest
+++ b/dev-python/protobuf-python/Manifest
@@ -1,4 +1,3 @@
-DIST protobuf-3.15.8.tar.gz 5285277 BLAKE2B 798fc011ac03cdc2406acf5845c667d8482082044bdace06c2c1d02b5b1b69c1b1f30e29774180dc1801a1d21d62e2ce50325105859564a1e36d3fe478e64d8b SHA512 56fc6df2dae14eee0fb67dd4204fc1ec54a18d994a69c9e42c7888d0cd50d269d1c5e1445d74f0fa705850d4ac86a22d86781e09769a716e5c6f829b15b05592
DIST protobuf-3.16.0.tar.gz 5299781 BLAKE2B 9ace02a6038c31b7393671fb2ccd6a4866a3f8b7d87d2bc8371f49d65b9180f10792ca2430a83449dfa7d785a1244dac23c20756414c9d1e7c7e871a8038b123 SHA512 0191e5a6a23d03f691e883e259f6d06a0ac8eef427455bc7d1cc70b6f0ed260e4ad8f360c836fd4bdc95ec0ca314c887cbf7acbcda60e03cdfe69e4cd275bff5
DIST protobuf-3.17.0.tar.gz 5185780 BLAKE2B a168619df72cdf097c7ddfd50aca96a2101bf73e7c1c842c020e6ee08a853db8674a86ca999b7706da3dd21d4d3d2159241c93232efc693701962f3a54a382e9 SHA512 36ed2de641849ce01531ff1207f62a0748f811519c40622a119a17a1e709864382de81481fb58f374a025948971c48416e7e6de9c00512a78633c7a8a3aa3a36
DIST protobuf-3.17.1.tar.gz 5192666 BLAKE2B 7f912db7e0835aaa42628fcf564a5666e2cbfa021bb35638a5eec53c3c457f1e747225dea54f732b7239a1520febca9bc20c824b1938f100796caa3ac2133bc1 SHA512 5a18aa3c1dab040dc6d22310a8503241081106acf7ca89079d7b416533d7c2cdd47719dc9023e6bc26969f0f1c796550260a04034a403c69752f6a3a7a651bb8
diff --git a/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild b/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild
deleted file mode 100644
index 43e8260a96b4..000000000000
--- a/dev-python/protobuf-python/protobuf-python-3.15.8.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2008-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-DISTUTILS_USE_SETUPTOOLS="bdepend"
-
-inherit distutils-r1
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
-
- EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
- EGIT_SUBMODULES=()
-fi
-
-DESCRIPTION="Google's Protocol Buffers - Python bindings"
-HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
-if [[ "${PV}" == "9999" ]]; then
- SRC_URI=""
-else
- SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> protobuf-${PV}.tar.gz"
-fi
-
-LICENSE="BSD"
-SLOT="0/26"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
-IUSE=""
-
-BDEPEND="${PYTHON_DEPS}
- ~dev-libs/protobuf-${PV}
- dev-python/namespace-google[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]"
-DEPEND="${PYTHON_DEPS}
- ~dev-libs/protobuf-${PV}"
-RDEPEND="${BDEPEND}"
-
-S="${WORKDIR}/protobuf-${PV}/python"
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_CHECKOUT_DIR="${WORKDIR}/protobuf-${PV}"
-fi
-
-python_prepare_all() {
- pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die
- eapply "${FILESDIR}/${PN}-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch"
- eapply_user
- popd > /dev/null || die
-
- distutils-r1_python_prepare_all
-}
-
-python_configure_all() {
- mydistutilsargs=(--cpp_implementation)
-}
-
-python_test() {
- esetup.py test
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- find "${ED}" -name "*.pth" -type f -delete || die
-}
diff --git a/dev-python/protobuf-python/protobuf-python-9999.ebuild b/dev-python/protobuf-python/protobuf-python-9999.ebuild
index 0b7e28fe4f7d..e9064050987d 100644
--- a/dev-python/protobuf-python/protobuf-python-9999.ebuild
+++ b/dev-python/protobuf-python/protobuf-python-9999.ebuild
@@ -23,7 +23,7 @@ else
fi
LICENSE="BSD"
-SLOT="0/28"
+SLOT="0/30"
KEYWORDS=""
IUSE=""
diff --git a/dev-python/pydecomp/pydecomp-0.3-r2.ebuild b/dev-python/pydecomp/pydecomp-0.3-r2.ebuild
index 660ba8de6555..c61a41760f08 100644
--- a/dev-python/pydecomp/pydecomp-0.3-r2.ebuild
+++ b/dev-python/pydecomp/pydecomp-0.3-r2.ebuild
@@ -14,7 +14,7 @@ if [[ ${PV} == "9999" ]] ; then
inherit git-r3
else
SRC_URI="https://dev.gentoo.org/~dolsen/releases/${PN}/pyDeComp-${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
S="${WORKDIR}/pyDeComp-${PV}"
fi
diff --git a/dev-python/pyudev/files/pyudev-0.22-fix-hypothesis.patch b/dev-python/pyudev/files/pyudev-0.22-fix-hypothesis.patch
new file mode 100644
index 000000000000..7489a890edba
--- /dev/null
+++ b/dev-python/pyudev/files/pyudev-0.22-fix-hypothesis.patch
@@ -0,0 +1,142 @@
+commit c27845613527091201160a578eacd36a538dea81
+Author: mulhern <amulhern@redhat.com>
+Date: Thu May 3 09:12:26 2018 -0400
+
+ Eliminate Hypothesis warnings
+
+ * Reduce the max_examples value so that tests don't trigger Hypothesis's
+ deadline check.
+ * Turn generators into lists, so that Hypothesis can consistently repeat the
+ tests (presumably for shrinking).
+
+ Signed-off-by: mulhern <amulhern@redhat.com>
+
+diff --git a/tests/_constants.py b/tests/_constants.py
+index fb85f30..7003a5c 100644
+--- a/tests/_constants.py
++++ b/tests/_constants.py
+@@ -53,7 +53,7 @@ def _check_device(device):
+ return False
+
+
+-_DEVICE_DATA = udev.DeviceDatabase.db()
++_DEVICE_DATA = [d for d in udev.DeviceDatabase.db()]
+ _DEVICES = [Devices.from_path(_CONTEXT, d.device_path) for d in _DEVICE_DATA]
+
+
+@@ -69,7 +69,7 @@ def device_strategy(require_existing=True, filter_func=lambda x: True):
+ :type filter_func: Device -> bool
+ """
+ strategy = strategies.sampled_from(
+- x for x in _CONTEXT.list_devices() if filter_func(x))
++ [x for x in _CONTEXT.list_devices() if filter_func(x)])
+
+ if require_existing:
+ strategy = strategy.filter(_check_device)
+@@ -89,7 +89,7 @@ def device_strategy(require_existing=True, filter_func=lambda x: True):
+ _SYSNAME_STRATEGY = device_strategy().map(lambda x: x.sys_name)
+
+ _PROPERTY_STRATEGY = device_strategy().flatmap(
+- lambda d: strategies.sampled_from(d.properties.items()))
++ lambda d: strategies.sampled_from([p for p in d.properties.items()]))
+
+ _MATCH_PROPERTY_STRATEGY = \
+ _PROPERTY_STRATEGY.filter(lambda p: p[0][-4:] != "_ENC")
+@@ -104,7 +104,7 @@ def device_strategy(require_existing=True, filter_func=lambda x: True):
+ # an attribute key and value pair
+ _ATTRIBUTE_STRATEGY = \
+ _ATTRIBUTES_STRATEGY.flatmap(
+- lambda attrs: strategies.sampled_from(attrs.available_attributes).map(
++ lambda attrs: strategies.sampled_from([a for a in attrs.available_attributes]).map(
+ lambda key: (key, attrs.get(key))
+ )
+ )
+@@ -119,11 +119,11 @@ def device_strategy(require_existing=True, filter_func=lambda x: True):
+ )
+
+ # the tags object for a given device
+-_TAGS_STRATEGY = device_strategy().map(lambda d: d.tags)
++_TAGS_STRATEGY = device_strategy().map(lambda d: [t for t in d.tags])
+
+ # an arbitrary tag belonging to a given device
+ _TAG_STRATEGY = \
+- _TAGS_STRATEGY.filter(lambda t: sum(1 for _ in t) != 0).flatmap(
++ _TAGS_STRATEGY.filter(lambda t: t != []).flatmap(
+ strategies.sampled_from
+ )
+
+diff --git a/tests/_device_tests/_device_tests.py b/tests/_device_tests/_device_tests.py
+index 0350a10..3e8710a 100644
+--- a/tests/_device_tests/_device_tests.py
++++ b/tests/_device_tests/_device_tests.py
+@@ -352,7 +352,7 @@ def test_key_subset(self, a_context, device_datum):
+ frozenset(device.properties.keys())
+
+ @given(_CONTEXT_STRATEGY, strategies.sampled_from(_DEVICE_DATA))
+- @settings(max_examples=100)
++ @settings(max_examples=1)
+ def test_getitem(self, a_context, device_datum):
+ device = Devices.from_path(a_context, device_datum.device_path)
+ for prop in device_datum.properties:
+diff --git a/tests/test_discover.py b/tests/test_discover.py
+index e623435..3cf9e8c 100644
+--- a/tests/test_discover.py
++++ b/tests/test_discover.py
+@@ -46,7 +46,7 @@
+ from hypothesis import strategies
+
+ _CONTEXT = pyudev.Context()
+-_DEVICES = _CONTEXT.list_devices()
++_DEVICES = [d for d in _CONTEXT.list_devices()]
+
+ NUM_TESTS = 5
+
+diff --git a/tests/test_enumerate.py b/tests/test_enumerate.py
+index c9c6a67..a9662bd 100644
+--- a/tests/test_enumerate.py
++++ b/tests/test_enumerate.py
+@@ -90,7 +90,7 @@ class TestEnumerator(object):
+
+ @failed_health_check_wrapper
+ @given(_CONTEXT_STRATEGY, _SUBSYSTEM_STRATEGY)
+- @settings(max_examples=50)
++ @settings(max_examples=10)
+ def test_match_subsystem(self, context, subsystem):
+ """
+ Subsystem match matches devices w/ correct subsystem.
+@@ -102,7 +102,7 @@ def test_match_subsystem(self, context, subsystem):
+
+ @failed_health_check_wrapper
+ @given(_CONTEXT_STRATEGY, _SUBSYSTEM_STRATEGY)
+- @settings(max_examples=5)
++ @settings(max_examples=1)
+ def test_match_subsystem_nomatch(self, context, subsystem):
+ """
+ Subsystem no match gets no subsystem with subsystem.
+@@ -126,7 +126,7 @@ def test_match_subsystem_nomatch_unfulfillable(self, context, subsystem):
+
+ @failed_health_check_wrapper
+ @given(_CONTEXT_STRATEGY, _SUBSYSTEM_STRATEGY)
+- @settings(max_examples=5)
++ @settings(max_examples=1)
+ def test_match_subsystem_nomatch_complete(self, context, subsystem):
+ """
+ Test that w/ respect to the universe of devices returned by
+@@ -155,7 +155,7 @@ def test_match_sys_name(self, context, sysname):
+
+ @failed_health_check_wrapper
+ @given(_CONTEXT_STRATEGY, _MATCH_PROPERTY_STRATEGY)
+- @settings(max_examples=50)
++ @settings(max_examples=25)
+ def test_match_property_string(self, context, pair):
+ """
+ Match property only gets devices with that property.
+@@ -243,7 +243,7 @@ class TestEnumeratorMatchCombinations(object):
+ min_size=2,
+ max_size=3,
+ unique_by=lambda p: p[0]))
+- @settings(max_examples=20)
++ @settings(max_examples=2)
+ def test_combined_property_matches(self, context, ppairs):
+ """
+ Test for behaviour as observed in #1
diff --git a/dev-python/pyudev/files/pyudev-0.22-pytest-4.patch b/dev-python/pyudev/files/pyudev-0.22-pytest-4.patch
new file mode 100644
index 000000000000..a8a4e4c3bcea
--- /dev/null
+++ b/dev-python/pyudev/files/pyudev-0.22-pytest-4.patch
@@ -0,0 +1,56 @@
+commit f962902b8298d97622b97693aba90032e5b9d2ec
+Author: FFY00 <filipe.lains@gmail.com>
+Date: Fri May 24 19:08:41 2019 +0100
+
+ tests: fix tests for pytest 4.0
+
+diff --git a/tests/plugins/mock_libudev.py b/tests/plugins/mock_libudev.py
+index aefeb31..0bde07b 100644
+--- a/tests/plugins/mock_libudev.py
++++ b/tests/plugins/mock_libudev.py
+@@ -32,6 +32,7 @@
+ from contextlib import contextmanager
+ from collections import namedtuple
+
++import pytest
+ import mock
+
+ Node = namedtuple('Node', 'name value next')
+@@ -93,5 +94,6 @@ def libudev_list(libudev, function, items):
+ EXPOSED_FUNCTIONS = [libudev_list]
+
+
+-def pytest_namespace():
+- return dict((f.__name__, f) for f in EXPOSED_FUNCTIONS)
++def pytest_configure():
++ for f in EXPOSED_FUNCTIONS:
++ setattr(pytest, f.__name__, f)
+diff --git a/tests/plugins/privileged.py b/tests/plugins/privileged.py
+index 92328b9..c636980 100644
+--- a/tests/plugins/privileged.py
++++ b/tests/plugins/privileged.py
+@@ -71,5 +71,6 @@ def unload_dummy():
+ EXPOSED_FUNCTIONS = [load_dummy, unload_dummy]
+
+
+-def pytest_namespace():
+- return dict((f.__name__, f) for f in EXPOSED_FUNCTIONS)
++def pytest_configure():
++ for f in EXPOSED_FUNCTIONS:
++ setattr(pytest, f.__name__, f)
+diff --git a/tests/plugins/travis.py b/tests/plugins/travis.py
+index 46466c2..15a780e 100644
+--- a/tests/plugins/travis.py
++++ b/tests/plugins/travis.py
+@@ -38,8 +38,9 @@ def is_on_travis_ci():
+ EXPOSED_FUNCTIONS = [is_on_travis_ci]
+
+
+-def pytest_namespace():
+- return dict((f.__name__, f) for f in EXPOSED_FUNCTIONS)
++def pytest_configure():
++ for f in EXPOSED_FUNCTIONS:
++ setattr(pytest, f.__name__, f)
+
+
+ def pytest_runtest_setup(item):
diff --git a/dev-python/pyudev/files/pyudev-0.22-remove-flaky-tests.patch b/dev-python/pyudev/files/pyudev-0.22-remove-flaky-tests.patch
new file mode 100644
index 000000000000..dd5b892606a3
--- /dev/null
+++ b/dev-python/pyudev/files/pyudev-0.22-remove-flaky-tests.patch
@@ -0,0 +1,126 @@
+commit a35c394f7f4eb714eeaab1b8ed7977f822e29fa9
+Author: mulhern <amulhern@redhat.com>
+Date: Wed May 2 15:50:45 2018 -0400
+
+ Get rid of all test_match_attribute_* methods
+
+ These tests are rendered flaky by the volatility of attribute values.
+
+ Signed-off-by: mulhern <amulhern@redhat.com>
+
+diff --git a/tests/test_enumerate.py b/tests/test_enumerate.py
+index f054799..c9c6a67 100644
+--- a/tests/test_enumerate.py
++++ b/tests/test_enumerate.py
+@@ -200,77 +200,6 @@ def test_match_property_bool(self, context, pair):
+ for device in devices
+ )
+
+- @failed_health_check_wrapper
+- @given(_CONTEXT_STRATEGY, _ATTRIBUTE_STRATEGY)
+- @settings(max_examples=50)
+- def test_match_attribute_nomatch_unfulfillable(self, context, pair):
+- """
+- Match and no match for a key/value gives empty set.
+- """
+- key, value = pair
+- devices = context.list_devices()
+- devices.match_attribute(key, value)
+- devices.match_attribute(key, value, nomatch=True)
+- assert not list(devices)
+-
+- @failed_health_check_wrapper
+- @given(_CONTEXT_STRATEGY, _ATTRIBUTE_STRATEGY)
+- @settings(max_examples=50)
+- def test_match_attribute_nomatch_complete(self, context, pair):
+- """
+- Test that w/ respect to the universe of devices returned by
+- list_devices() a match and its inverse are complements of each other.
+- """
+- key, value = pair
+- m_devices = frozenset(context.list_devices().match_attribute(
+- key, value))
+- nm_devices = frozenset(context.list_devices().match_attribute(
+- key, value, nomatch=True))
+- _test_intersection_and_union(context, m_devices, nm_devices)
+-
+- @failed_health_check_wrapper
+- @given(_CONTEXT_STRATEGY, _ATTRIBUTE_STRATEGY)
+- @settings(max_examples=50)
+- def test_match_attribute_string(self, context, pair):
+- """
+- Test that matching attribute as string works.
+- """
+- key, value = pair
+- devices = context.list_devices().match_attribute(key, value)
+- assert all(device.attributes.get(key) == value for device in devices)
+-
+- @failed_health_check_wrapper
+- @given(_CONTEXT_STRATEGY,
+- _ATTRIBUTE_STRATEGY.filter(lambda x: _is_int(x[1])))
+- @settings(max_examples=50)
+- def test_match_attribute_int(self, context, pair):
+- """
+- Test matching integer attribute.
+- """
+- key, value = pair
+- int_value = int(value)
+- devices = context.list_devices().match_attribute(key, int_value)
+- for device in devices:
+- attributes = device.attributes
+- assert attributes.get(key) == value
+- assert device.attributes.asint(key) == int_value
+-
+- @failed_health_check_wrapper
+- @given(_CONTEXT_STRATEGY,
+- _ATTRIBUTE_STRATEGY.filter(lambda x: _is_bool(x[1])))
+- @settings(max_examples=50)
+- def test_match_attribute_bool(self, context, pair):
+- """
+- Test matching boolean attribute.
+- """
+- key, value = pair
+- bool_value = True if int(value) == 1 else False
+- devices = context.list_devices().match_attribute(key, bool_value)
+- for device in devices:
+- attributes = device.attributes
+- assert attributes.get(key) == value
+- assert attributes.asbool(key) == bool_value
+-
+ @_UDEV_TEST(154, "test_match_tag")
+ @failed_health_check_wrapper
+ @given(_CONTEXT_STRATEGY, _TAG_STRATEGY)
+@@ -335,33 +264,6 @@ def test_combined_property_matches(self, context, ppairs):
+ )
+ )
+
+- @given(_CONTEXT_STRATEGY,
+- strategies.lists(
+- elements=_ATTRIBUTE_STRATEGY,
+- min_size=2,
+- max_size=3,
+- unique_by=lambda p: p[0]))
+- @settings(max_examples=20)
+- def test_combined_attribute_matches(self, context, apairs):
+- """
+- Test for conjunction of attributes.
+-
+- If matching multiple attributes, then the result is the intersection of
+- the matching sets, i.e., the resulting filter is a conjunction.
+- """
+- enumeration = context.list_devices()
+-
+- for key, value in apairs:
+- enumeration.match_attribute(key, value)
+-
+- _test_direct_and_complement(
+- context,
+- frozenset(enumeration),
+- lambda d: all(
+- d.attributes.get(key) == value for key, value in apairs
+- )
+- )
+-
+ @given(_CONTEXT_STRATEGY,
+ strategies.lists(
+ elements=_MATCH_PROPERTY_STRATEGY,
diff --git a/dev-python/pyudev/pyudev-0.22.0-r1.ebuild b/dev-python/pyudev/pyudev-0.22.0-r1.ebuild
new file mode 100644
index 000000000000..a3ba93cfd871
--- /dev/null
+++ b/dev-python/pyudev/pyudev-0.22.0-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8,9,10} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python binding to libudev"
+HOMEPAGE="https://pyudev.readthedocs.io/en/latest/ https://github.com/pyudev/pyudev"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="qt5"
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ virtual/udev
+ qt5? ( dev-python/PyQt5[${PYTHON_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )"
+
+DOCS=( CHANGES.rst README.rst )
+
+PATCHES=(
+ "${FILESDIR}/pyudev-0.22-pytest-4.patch"
+ "${FILESDIR}/pyudev-0.22-remove-flaky-tests.patch"
+ "${FILESDIR}/pyudev-0.22-fix-hypothesis.patch"
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ if use test; then
+ ewarn "If your PORTAGE_TMPDIR is longer in length then '/var/tmp/',"
+ ewarn "change it to /var/tmp to ensure tests will pass."
+ fi
+
+ # tests are known to pass then fail on alternate runs
+ # tests: fix run_path
+ sed -i -e "s|== \('/run/udev'\)|in (\1,'/dev/.udev')|g" \
+ tests/test_core.py || die
+
+ distutils-r1_python_prepare_all
+}