summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [feature/flatten] <gitlab@liguros.net>2020-10-18 00:26:12 +0000
committerLiguros - Gitlab CI/CD [feature/flatten] <gitlab@liguros.net>2020-10-18 00:26:12 +0000
commit30896faa3631b520163ca2a8feaac3dce0f347b5 (patch)
tree28cc873529696ab9d5ac85f9be522631e06be2f9 /dev-python
parentc274852d583e81810c6ff58f3e5cbffc1e43dd9d (diff)
downloadbaldeagleos-repo-30896faa3631b520163ca2a8feaac3dce0f347b5.tar.gz
baldeagleos-repo-30896faa3631b520163ca2a8feaac3dce0f347b5.tar.xz
baldeagleos-repo-30896faa3631b520163ca2a8feaac3dce0f347b5.zip
Updating liguros repo
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/GitPython/GitPython-3.1.8.ebuild2
-rw-r--r--dev-python/astroid/astroid-2.4.2-r1.ebuild2
-rw-r--r--dev-python/defusedxml/defusedxml-0.7.0_rc1.ebuild2
-rw-r--r--dev-python/elementpath/elementpath-2.0.3.ebuild2
-rw-r--r--dev-python/executing/Manifest1
-rw-r--r--dev-python/executing/executing-0.5.3.ebuild44
-rw-r--r--dev-python/futurist/Manifest1
-rw-r--r--dev-python/futurist/futurist-2.3.0.ebuild23
-rw-r--r--dev-python/jaraco-packaging/jaraco-packaging-8.1.0-r1.ebuild2
-rw-r--r--dev-python/keystonemiddleware/Manifest1
-rw-r--r--dev-python/keystonemiddleware/keystonemiddleware-9.1.0.ebuild41
-rw-r--r--dev-python/kombu/Manifest1
-rw-r--r--dev-python/kombu/kombu-5.0.1.ebuild83
-rw-r--r--dev-python/ldappool/ldappool-2.4.1.ebuild3
-rw-r--r--dev-python/lxml/Manifest1
-rw-r--r--dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch434
-rw-r--r--dev-python/lxml/lxml-4.6.0.ebuild81
-rw-r--r--dev-python/oslo-cache/Manifest1
-rw-r--r--dev-python/oslo-cache/oslo-cache-2.6.1.ebuild34
-rw-r--r--dev-python/oslo-db/Manifest1
-rw-r--r--dev-python/oslo-db/oslo-db-8.4.0.ebuild52
-rw-r--r--dev-python/oslo-messaging/Manifest1
-rw-r--r--dev-python/oslo-messaging/oslo-messaging-12.5.0.ebuild42
-rw-r--r--dev-python/oslo-middleware/Manifest1
-rw-r--r--dev-python/oslo-middleware/oslo-middleware-4.1.1.ebuild37
-rw-r--r--dev-python/oslo-policy/Manifest1
-rw-r--r--dev-python/oslo-policy/oslo-policy-3.5.0.ebuild36
-rw-r--r--dev-python/oslo-service/Manifest1
-rw-r--r--dev-python/oslo-service/oslo-service-2.4.0.ebuild41
-rw-r--r--dev-python/oslo-upgradecheck/Manifest1
-rw-r--r--dev-python/oslo-upgradecheck/oslo-upgradecheck-1.1.1.ebuild32
-rw-r--r--dev-python/py-amqp/Manifest1
-rw-r--r--dev-python/py-amqp/py-amqp-2.6.1.ebuild67
-rw-r--r--dev-python/pycadf/Manifest1
-rw-r--r--dev-python/pycadf/pycadf-3.1.1.ebuild27
-rw-r--r--dev-python/pysaml2/Manifest1
-rw-r--r--dev-python/pysaml2/pysaml2-6.1.0.ebuild26
-rw-r--r--dev-python/traitlets/traitlets-5.0.4.ebuild2
-rw-r--r--dev-python/vine/vine-1.3.0.ebuild3
39 files changed, 1124 insertions, 9 deletions
diff --git a/dev-python/GitPython/GitPython-3.1.8.ebuild b/dev-python/GitPython/GitPython-3.1.8.ebuild
index 514877b42995..43beed062a2e 100644
--- a/dev-python/GitPython/GitPython-3.1.8.ebuild
+++ b/dev-python/GitPython/GitPython-3.1.8.ebuild
@@ -23,7 +23,7 @@ SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm64 x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-vcs/git
diff --git a/dev-python/astroid/astroid-2.4.2-r1.ebuild b/dev-python/astroid/astroid-2.4.2-r1.ebuild
index f4c1ad325a39..c493c0f59796 100644
--- a/dev-python/astroid/astroid-2.4.2-r1.ebuild
+++ b/dev-python/astroid/astroid-2.4.2-r1.ebuild
@@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~ia64 ppc ppc64 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/defusedxml/defusedxml-0.7.0_rc1.ebuild b/dev-python/defusedxml/defusedxml-0.7.0_rc1.ebuild
index 528e76422854..86df08e3687f 100644
--- a/dev-python/defusedxml/defusedxml-0.7.0_rc1.ebuild
+++ b/dev-python/defusedxml/defusedxml-0.7.0_rc1.ebuild
@@ -17,7 +17,7 @@ S=${WORKDIR}/${P/_/.}
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
distutils_enable_tests setup.py
diff --git a/dev-python/elementpath/elementpath-2.0.3.ebuild b/dev-python/elementpath/elementpath-2.0.3.ebuild
index 77b1b209a229..7cab2a96d33e 100644
--- a/dev-python/elementpath/elementpath-2.0.3.ebuild
+++ b/dev-python/elementpath/elementpath-2.0.3.ebuild
@@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/executing/Manifest b/dev-python/executing/Manifest
index 6665f9a34532..46494dcd2b29 100644
--- a/dev-python/executing/Manifest
+++ b/dev-python/executing/Manifest
@@ -1 +1,2 @@
DIST executing-0.5.2.gh.tar.gz 303118 BLAKE2B e3b0ee22791a7fc4b378cf9f0c4640b4971ebd772d95a5d8d0abd25959c53eede5c61e4807abd4be38b9e14d0e3ab9083941ace7f59f0b6358c68b2e85291193 SHA512 2487dbb95240553f9bb7e1249af42e83be7db8cfa8a8c0569c22bfad48add9eddf903a4f365e3a6409e5208bef0d32893abb0c4dc5a93782c3b33125b091ef54
+DIST executing-0.5.3.gh.tar.gz 303234 BLAKE2B cb9de0492c4aa31b53310abf65d97df888278671fbf24e5dc2f3f4b00fd22d233fae2265bffe240c092c5b67bfca1e69ec1c4eaa937a0d4c90bedced1f156e2a SHA512 faf591de8e6354300fb572065bda304c3cbc529725b4044ad4f4ca1f86d892da21598ba7245059824e27894937d46e4ef9ef5962a9d7dff78e4144a3e0e6b388
diff --git a/dev-python/executing/executing-0.5.3.ebuild b/dev-python/executing/executing-0.5.3.ebuild
new file mode 100644
index 000000000000..33a94abfc547
--- /dev/null
+++ b/dev-python/executing/executing-0.5.3.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+inherit distutils-r1
+
+DESCRIPTION="Get information about what a Python frame is currently doing"
+HOMEPAGE="
+ https://github.com/alexmojaki/executing/
+ https://pypi.org/project/executing/"
+SRC_URI="
+ https://github.com/alexmojaki/executing/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+# asttokens is optional runtime dep
+BDEPEND="
+ dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ dev-python/toml[${PYTHON_USEDEP}]
+ test? (
+ dev-python/asttokens[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+src_prepare() {
+ # Kill off useless wheel dep
+ sed -i -e 's/wheel; //' setup.cfg || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # this test explodes when collected by pytest
+ "${EPYTHON}" tests/test_main.py || die "Tests failed with ${EPYTHON}"
+ pytest -vv tests/test_pytest.py || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/futurist/Manifest b/dev-python/futurist/Manifest
index ba2aa2b85fff..287d2187d39b 100644
--- a/dev-python/futurist/Manifest
+++ b/dev-python/futurist/Manifest
@@ -1 +1,2 @@
DIST futurist-1.8.1.tar.gz 42430 BLAKE2B 4584d37dd2a5de41be576b1233a50202c9c134b0a7e6c231e028224413f2a0c6e2ab22e1685e5fc974cded3e70c4fee6cbb9ae1262f167455a40a39eeec8c904 SHA512 4ec292284a1a6a7675bd9970f391bfcc47841c42beedac8348b23755481c4f87a2467dbb0f8c963c4b9fc8148a8aaca43e3c166878d07c9e48720481b0f73d9b
+DIST futurist-2.3.0.tar.gz 42993 BLAKE2B ace10473ee65dedfa33f021437e6d2e974e7e9acd7eb5c6ae6955b133d74376d0bc5e966a8db502f17ff1825abaad1f6b583c6a21dcdd33d87ed4063d35a4638 SHA512 fa12314ce1bc12ccb7d8dd0e99a76a63dbd6a1c6560ca976eacb782f2c28a6003aee820d8ea745b59d35280b047e67563b046c761737d76fefb5928fdfba20e9
diff --git a/dev-python/futurist/futurist-2.3.0.ebuild b/dev-python/futurist/futurist-2.3.0.ebuild
new file mode 100644
index 000000000000..2b85f7a56c91
--- /dev/null
+++ b/dev-python/futurist/futurist-2.3.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Useful additions to futures, from the future"
+HOMEPAGE="https://pypi.org/project/futurist/ http://docs.openstack.org/developer/futurist"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE=""
+
+DEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/jaraco-packaging/jaraco-packaging-8.1.0-r1.ebuild b/dev-python/jaraco-packaging/jaraco-packaging-8.1.0-r1.ebuild
index 7bbdba5d5a32..6decf308ac7b 100644
--- a/dev-python/jaraco-packaging/jaraco-packaging-8.1.0-r1.ebuild
+++ b/dev-python/jaraco-packaging/jaraco-packaging-8.1.0-r1.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="MIT"
SLOT="0"
-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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/keystonemiddleware/Manifest b/dev-python/keystonemiddleware/Manifest
index 88605cb236c2..64856e79bacf 100644
--- a/dev-python/keystonemiddleware/Manifest
+++ b/dev-python/keystonemiddleware/Manifest
@@ -1 +1,2 @@
DIST keystonemiddleware-7.0.1.tar.gz 177439 BLAKE2B 645cade35a1b310b9a897b17fc96a7f1f33ca26efd3dbe482c8d76cca9a9639364cda6d2798c0b2956f5b905c166a67fe3f334cd0ae276e7b0124956f9a9cfd6 SHA512 2c3890a395fe03c19e121a1d315180bf2bf5004351a5dcabb1f455bf22514c682347a3c387da361075a81c3e931f6ac802aed1a95fa3763b90a2ac77adbec306
+DIST keystonemiddleware-9.1.0.tar.gz 179846 BLAKE2B 0ebae088d48f4f8444902c229e6d3df7835d847b99d9620cbe154a1ed6f12fa9533a9c62aae670d9d16a5696e5245306c8180437c772297000b8cf4490264568 SHA512 839d2c0150f305d7642bf1031508d11cb7d26e560198bc900979615838ea0a143843fdfaf363699313d7c968850153eaedba0f4a813891f5aaee46a2444181fc
diff --git a/dev-python/keystonemiddleware/keystonemiddleware-9.1.0.ebuild b/dev-python/keystonemiddleware/keystonemiddleware-9.1.0.ebuild
new file mode 100644
index 000000000000..cbe218525037
--- /dev/null
+++ b/dev-python/keystonemiddleware/keystonemiddleware-9.1.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="A middleware for the OpenStack Keystone API"
+HOMEPAGE="https://github.com/openstack/keystonemiddleware"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth-3.12.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
+ !~dev-python/oslo-serialization-1.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/pycadf-1.1.0[${PYTHON_USEDEP}]
+ !~dev-python/pycadf-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-3.20.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/kombu/Manifest b/dev-python/kombu/Manifest
index c1f23688dfe1..251e157b5b86 100644
--- a/dev-python/kombu/Manifest
+++ b/dev-python/kombu/Manifest
@@ -1 +1,2 @@
DIST kombu-4.6.8.tar.gz 406196 BLAKE2B 43ddb45e7e6a5bc1aff55867a816ebf7a1afed68bd41d9d74b6179a45d951ac4a4f0f687bbaebd23cf81b67fe2b81d47498b3e25eead0822e16d9acbb436338a SHA512 65b4ebb283ae380388de5d9f8fdc1ec0f41a9910744906b23eb150bc62ecb55ae6d65bb96ad31d8a033f26c2a8dc386939fced393866b6467e77a9760dfa17cc
+DIST kombu-5.0.1.tar.gz 404428 BLAKE2B 89d4c2daf70c3dcd0a990c8f045074780f2d4f13f39899c0ab3b73b473948469746cf8872aaa8565f5c4b071bf18ff510cd565e8f9b6a3735a0bf1d0af55e9b6 SHA512 aa5d35b7753f5ec8d95512c322fabf0163628b9afbd228faa2be910a1cd4ea3236a7e43485e17650e1aa9aebae59a91a2b0bdc1950e4e4c622b499a4ae29ea0e
diff --git a/dev-python/kombu/kombu-5.0.1.ebuild b/dev-python/kombu/kombu-5.0.1.ebuild
new file mode 100644
index 000000000000..f0a60c962f16
--- /dev/null
+++ b/dev-python/kombu/kombu-5.0.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="AMQP Messaging Framework for Python"
+HOMEPAGE="https://pypi.org/project/kombu/ https://github.com/celery/kombu"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc examples mongodb msgpack redis sqs test yaml"
+RESTRICT="!test? ( test )"
+
+# zookeeper backend support possible via dev-python/kazoo
+RDEPEND="
+ >=dev-python/importlib_metadata-0.18[${PYTHON_USEDEP}]
+ >=dev-python/py-amqp-2.6.0[${PYTHON_USEDEP}]
+ <dev-python/py-amqp-2.7[${PYTHON_USEDEP}]
+ >=dev-python/pyro-4.76:4[${PYTHON_USEDEP}]
+ sqs? ( >=dev-python/boto3-1.4.4[${PYTHON_USEDEP}] )
+ msgpack? ( >=dev-python/msgpack-0.3.0[${PYTHON_USEDEP}] )
+ mongodb? ( >=dev-python/pymongo-3.3.0[${PYTHON_USEDEP}] )
+ redis? ( >=dev-python/redis-py-3.3.11[${PYTHON_USEDEP}] )
+ yaml? ( >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] )"
+# Fix to https://github.com/celery/kombu/issues/474 obliges dev-python/pymongo to >=-3.0.2
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-20.6.7[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/case-1.5.2[${PYTHON_USEDEP}]
+ <=dev-python/pytest-5.3.5[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ )
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ >=dev-python/sphinx_celery-1.1[${PYTHON_USEDEP}]
+ )"
+
+# kazoo is optional for tests.
+# Refrain for now, no established demand for it from users
+
+# Req'd for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+)
+
+python_prepare_all() {
+ # AttributeError: test_Etcd instance has no attribute 'patch'
+ rm t/unit/transport/test_etcd.py || die
+ # allow use of new (renamed) msgpack
+ sed -i '/msgpack/d' requirements/extras/msgpack.txt || die
+ # pytest-sugar is not packaged
+ sed -i '/pytest-sugar/d' requirements/test.txt || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ # Doc build misses and skips only content re librabbitmq which is not in portage
+ if use doc; then
+ emake -C docs html
+ fi
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ldappool/ldappool-2.4.1.ebuild b/dev-python/ldappool/ldappool-2.4.1.ebuild
index 231b49dbc322..20d81d0df264 100644
--- a/dev-python/ldappool/ldappool-2.4.1.ebuild
+++ b/dev-python/ldappool/ldappool-2.4.1.ebuild
@@ -3,6 +3,7 @@
EAPI=7
PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
inherit distutils-r1
@@ -13,12 +14,10 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 ~arm64 x86"
-IUSE=""
DEPEND="
>=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
"
RDEPEND="
>=dev-python/python-ldap-3.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/lxml/Manifest b/dev-python/lxml/Manifest
index d8a2572ecb2e..bc39d47f1919 100644
--- a/dev-python/lxml/Manifest
+++ b/dev-python/lxml/Manifest
@@ -1 +1,2 @@
DIST lxml-4.5.2.tar.gz 943480 BLAKE2B 11130d2507ff0d61637d7fef2f4b28c5fbbbfe8864504c8f3a231899be4db14e6be65edc6e780719686605663b0c5f76f161beb509dc58d16ee3a9158a7db59c SHA512 146dcb4414b7f0815c5930048d9dc89711bf0a3ee091c89f4475265cdd6f1690a20f82ec24a282a43cff8854f9b960f0cd4430cff79a7506d39ac1baf7770695
+DIST lxml-4.6.0.tar.gz 946217 BLAKE2B c13fa89d1e534d801bcd711850a41f20634d80690d23868904fe5b9e9b42132928345604582a6fc502555adf449b3dc1baed6c9e7a35c7d66af0b9c496facc2f SHA512 b92403b68babac8112ec87989909eb03b75ad365bcd938daef11f4768e95d9bc7a53dae90882d22eeb51bc1a04ae47f8deac504e426b1751826575280655c19e
diff --git a/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch b/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch
new file mode 100644
index 000000000000..bd17a8e06e14
--- /dev/null
+++ b/dev-python/lxml/files/lxml-4.6.0-tests-pypy.patch
@@ -0,0 +1,434 @@
+From 1804702b5e3c85c1a16014d62365a29d0a6d0c75 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 30 Jan 2020 06:15:27 +0100
+Subject: [PATCH] Skip tests failing on PyPy
+
+---
+ src/lxml/tests/test_elementtree.py | 3 +-
+ src/lxml/tests/test_errors.py | 3 +-
+ src/lxml/tests/test_http_io.py | 3 +-
+ src/lxml/tests/test_nsclasses.py | 3 +-
+ src/lxml/tests/test_objectify.py | 41 +++++++++++++++++++++++++--
+ src/lxml/tests/test_xpathevaluator.py | 7 +++--
+ src/lxml/tests/test_xslt.py | 7 +++--
+ 7 files changed, 56 insertions(+), 11 deletions(-)
+
+diff --git a/src/lxml/tests/test_elementtree.py b/src/lxml/tests/test_elementtree.py
+index 78d8964d..f3f28044 100644
+--- a/src/lxml/tests/test_elementtree.py
++++ b/src/lxml/tests/test_elementtree.py
+@@ -26,7 +26,7 @@ from .common_imports import (
+ BytesIO, etree, HelperTestCase,
+ ElementTree, cElementTree, ET_VERSION, CET_VERSION,
+ filter_by_version, fileInTestDir, canonicalize, tmpfile,
+- _str, _bytes, unicode, IS_PYTHON2
++ _str, _bytes, unicode, IS_PYTHON2, IS_PYPY
+ )
+
+ if cElementTree is not None and (CET_VERSION <= (1,0,7) or sys.version_info[0] >= 3):
+@@ -2956,6 +2956,7 @@ class _ETreeTestCaseBase(HelperTestCase):
+ self.assertEqual('TEST', root2[0].get('{%s}a' % ns_href))
+
+ required_versions_ET['test_register_namespace'] = (1,3)
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_register_namespace(self):
+ # ET 1.3+
+ Element = self.etree.Element
+diff --git a/src/lxml/tests/test_errors.py b/src/lxml/tests/test_errors.py
+index c0aee744..33111429 100644
+--- a/src/lxml/tests/test_errors.py
++++ b/src/lxml/tests/test_errors.py
+@@ -11,7 +11,7 @@ import unittest
+ import sys, gc, os.path
+ from lxml import etree
+
+-from .common_imports import HelperTestCase
++from .common_imports import HelperTestCase, IS_PYPY
+
+
+ class ErrorTestCase(HelperTestCase):
+@@ -25,6 +25,7 @@ class ErrorTestCase(HelperTestCase):
+ def test_empty_parse(self):
+ self.assertRaises(etree.XMLSyntaxError, etree.fromstring, '')
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_element_cyclic_gc_none(self):
+ # test if cyclic reference can crash etree
+ Element = self.etree.Element
+diff --git a/src/lxml/tests/test_http_io.py b/src/lxml/tests/test_http_io.py
+index f9eff39a..edf2bd81 100644
+--- a/src/lxml/tests/test_http_io.py
++++ b/src/lxml/tests/test_http_io.py
+@@ -11,10 +11,11 @@ import textwrap
+ import sys
+ import gzip
+
+-from .common_imports import etree, HelperTestCase, BytesIO, _bytes
++from .common_imports import etree, HelperTestCase, BytesIO, _bytes, IS_PYPY
+ from .dummy_http_server import webserver, HTTPRequestCollector
+
+
++@unittest.skipIf(IS_PYPY, "broken on pypy")
+ class HttpIOTestCase(HelperTestCase):
+ etree = etree
+
+diff --git a/src/lxml/tests/test_nsclasses.py b/src/lxml/tests/test_nsclasses.py
+index a0aa608d..5aa5dc48 100644
+--- a/src/lxml/tests/test_nsclasses.py
++++ b/src/lxml/tests/test_nsclasses.py
+@@ -9,7 +9,7 @@ from __future__ import absolute_import
+
+ import unittest
+
+-from .common_imports import etree, HelperTestCase, _bytes, make_doctest
++from .common_imports import etree, HelperTestCase, _bytes, make_doctest, IS_PYPY
+
+ class ETreeNamespaceClassesTestCase(HelperTestCase):
+
+@@ -46,6 +46,7 @@ class ETreeNamespaceClassesTestCase(HelperTestCase):
+ self.Namespace('ns02').clear()
+ self.Namespace('ns03').clear()
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_ns_classes(self):
+ bluff_dict = {'bluff' : self.bluff_class}
+ maeh_dict = {'maeh' : self.maeh_class}
+diff --git a/src/lxml/tests/test_objectify.py b/src/lxml/tests/test_objectify.py
+index a12ae7e1..83ba4ced 100644
+--- a/src/lxml/tests/test_objectify.py
++++ b/src/lxml/tests/test_objectify.py
+@@ -9,7 +9,8 @@ from __future__ import absolute_import
+ import unittest, operator
+
+ from .common_imports import (
+- etree, HelperTestCase, fileInTestDir, doctest, make_doctest, _bytes, _str, BytesIO
++ etree, HelperTestCase, fileInTestDir, doctest, make_doctest, _bytes, _str, BytesIO,
++ IS_PYPY
+ )
+
+ from lxml import objectify
+@@ -213,11 +214,13 @@ class ObjectifyTestCase(HelperTestCase):
+ expected.update(DEFAULT_NSMAP)
+ self.assertEqual(root.value.nsmap, expected)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_date_element_efactory_text(self):
+ # ObjectifiedDataElement can also be used as E-Factory
+ value = objectify.ObjectifiedDataElement('test', 'toast')
+ self.assertEqual(value.text, 'testtoast')
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_date_element_efactory_tail(self):
+ # ObjectifiedDataElement can also be used as E-Factory
+ value = objectify.ObjectifiedElement(objectify.ObjectifiedDataElement(), 'test', 'toast')
+@@ -374,6 +377,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual("4", getattr(root.c1, "{}c2").text)
+ self.assertEqual("0", getattr(root.c1, "c2").text)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_setattr(self):
+ for val in [
+ 2, 2**32, 1.2, "Won't get fooled again",
+@@ -809,6 +813,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual(3, len(root.findall(".//b")))
+ self.assertEqual(2, len(root.findall("b")))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_build_tree(self):
+ root = self.Element('root')
+ root.a = 5
+@@ -838,6 +843,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual(value, None)
+ self.assertEqual(value.get(XML_SCHEMA_NIL_ATTR), "true")
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_bool(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -871,6 +877,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertTrue(isinstance(value, objectify.BoolElement))
+ self.assertEqual(value, False)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -878,6 +885,7 @@ class ObjectifyTestCase(HelperTestCase):
+ root.s = "test"
+ self.assertTrue(isinstance(root.s, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_intliteral(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -885,6 +893,7 @@ class ObjectifyTestCase(HelperTestCase):
+ root.s = "3"
+ self.assertTrue(isinstance(root.s, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_floatliteral(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -892,6 +901,7 @@ class ObjectifyTestCase(HelperTestCase):
+ root.s = "3.72"
+ self.assertTrue(isinstance(root.s, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_mul(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -904,6 +914,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertRaises(TypeError, operator.mul, root.s, "honk")
+ self.assertRaises(TypeError, operator.mul, "honk", root.s)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_add(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -914,6 +925,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual("test" + s, root.s + s)
+ self.assertEqual(s + "test", s + root.s)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_mod(self):
+ s = "%d %f %s %r"
+ el = objectify.DataElement(s)
+@@ -979,6 +991,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertTrue(isinstance(value, objectify.StringElement))
+ self.assertEqual(value, "3.20")
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -986,6 +999,7 @@ class ObjectifyTestCase(HelperTestCase):
+ root.s = _str("test")
+ self.assertTrue(isinstance(root.s, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_intliteral(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -993,6 +1007,7 @@ class ObjectifyTestCase(HelperTestCase):
+ root.s = _str("3")
+ self.assertTrue(isinstance(root.s, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_floatliteral(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -1000,6 +1015,7 @@ class ObjectifyTestCase(HelperTestCase):
+ root.s = _str("3.72")
+ self.assertTrue(isinstance(root.s, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_mul(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -1012,6 +1028,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertRaises(TypeError, operator.mul, root.s, _str("honk"))
+ self.assertRaises(TypeError, operator.mul, _str("honk"), root.s)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_ustr_add(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -1037,6 +1054,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertTrue(isinstance(value, objectify.StringElement))
+ self.assertEqual(value, _str("3.20"))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_int(self):
+ Element = self.Element
+ root = Element("{objectified}root")
+@@ -1053,6 +1071,7 @@ class ObjectifyTestCase(HelperTestCase):
+ value = objectify.DataElement(123)
+ self.assertEqual(hash(value), hash(123))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_float(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -1069,6 +1088,7 @@ class ObjectifyTestCase(HelperTestCase):
+ value = objectify.DataElement(5.5)
+ self.assertEqual(hash(value), hash(5.5))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_float_precision(self):
+ # test not losing precision by shortened float str() value
+ # repr(2.305064300557): '2.305064300557'
+@@ -1088,6 +1108,7 @@ class ObjectifyTestCase(HelperTestCase):
+ s = "2.305064300557"
+ self.assertEqual(objectify.FloatElement(s), float(s))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_float_precision_consistency(self):
+ # test consistent FloatElement values for the different instantiation
+ # possibilities
+@@ -1169,6 +1190,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual(value.text, None)
+ self.assertEqual(value.pyval, None)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_unregistered(self):
+ Element = self.Element
+ SubElement = self.etree.SubElement
+@@ -1331,6 +1353,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual(["why", "try"],
+ strs)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_str_cmp(self):
+ XML = self.XML
+ root = XML(_bytes('<root><b>test</b><b>taste</b><b></b><b/></root>'))
+@@ -1358,6 +1381,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertEqual(root.b, "")
+ self.assertEqual("", root.b)
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_int_cmp(self):
+ XML = self.XML
+ root = XML(_bytes('<root><b>5</b><b>6</b></root>'))
+@@ -1380,6 +1404,7 @@ class ObjectifyTestCase(HelperTestCase):
+
+ # float + long share the NumberElement implementation with int
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_type_bool_cmp(self):
+ XML = self.XML
+ root = XML(_bytes('<root><b>false</b><b>true</b></root>'))
+@@ -2049,6 +2074,7 @@ class ObjectifyTestCase(HelperTestCase):
+ before = [objectify.getRegisteredTypes()[0].name],
+ after = [objectify.getRegisteredTypes()[1].name])
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_registered_type_stringify(self):
+ from datetime import datetime
+ def parse_date(value):
+@@ -2519,46 +2545,55 @@ class ObjectifyTestCase(HelperTestCase):
+
+ # E-Factory tests, need to use sub-elements as root element is always
+ # type-looked-up as ObjectifiedElement (no annotations)
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_int(self):
+ E = objectify.E
+ root = E.root(E.val(23))
+ self.assertTrue(isinstance(root.val, objectify.IntElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_float(self):
+ E = objectify.E
+ root = E.root(E.val(233.23))
+ self.assertTrue(isinstance(root.val, objectify.FloatElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_str(self):
+ E = objectify.E
+ root = E.root(E.val("what?"))
+ self.assertTrue(isinstance(root.val, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_unicode(self):
+ E = objectify.E
+ root = E.root(E.val(_str("blöödy häll", encoding="ISO-8859-1")))
+ self.assertTrue(isinstance(root.val, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_bool(self):
+ E = objectify.E
+ root = E.root(E.val(True))
+ self.assertTrue(isinstance(root.val, objectify.BoolElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_none(self):
+ E = objectify.E
+ root = E.root(E.val(None))
+ self.assertTrue(isinstance(root.val, objectify.NoneElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_value_concatenation(self):
+ E = objectify.E
+ root = E.root(E.val(1, "foo", 2.0, "bar ", True, None))
+ self.assertTrue(isinstance(root.val, objectify.StringElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_attrib(self):
+ E = objectify.E
+ root = E.root(foo="bar")
+ self.assertEqual(root.get("foo"), "bar")
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_nested(self):
+ E = objectify.E
+ DataElement = objectify.DataElement
+@@ -2573,6 +2608,7 @@ class ObjectifyTestCase(HelperTestCase):
+ self.assertTrue(isinstance(root.value[0], objectify.IntElement))
+ self.assertTrue(isinstance(root.value[1], objectify.FloatElement))
+
++ @unittest.skipIf(IS_PYPY, "broken on pypy")
+ def test_efactory_subtype(self):
+ class Attribute(objectify.ObjectifiedDataElement):
+ def __init__(self):
+@@ -2674,7 +2710,8 @@ def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTests([unittest.makeSuite(ObjectifyTestCase)])
+ suite.addTests(doctest.DocTestSuite(objectify))
+- suite.addTests([make_doctest('../../../doc/objectify.txt')])
++ if not IS_PYPY:
++ suite.addTests([make_doctest('../../../doc/objectify.txt')])
+ return suite
+
+ if __name__ == '__main__':
+diff --git a/src/lxml/tests/test_xpathevaluator.py b/src/lxml/tests/test_xpathevaluator.py
+index 13ee97ec..6d162c6d 100644
+--- a/src/lxml/tests/test_xpathevaluator.py
++++ b/src/lxml/tests/test_xpathevaluator.py
+@@ -8,7 +8,7 @@ from __future__ import absolute_import
+
+ import unittest, sys
+
+-from .common_imports import etree, HelperTestCase, _bytes, BytesIO, doctest, make_doctest
++from .common_imports import etree, HelperTestCase, _bytes, BytesIO, doctest, make_doctest, IS_PYPY
+
+
+ class ETreeXPathTestCase(HelperTestCase):
+@@ -740,8 +740,9 @@ def test_suite():
+ suite.addTests([unittest.makeSuite(ETreeXPathExsltTestCase)])
+ suite.addTests([unittest.makeSuite(ETreeETXPathClassTestCase)])
+ suite.addTests([doctest.DocTestSuite()])
+- suite.addTests(
+- [make_doctest('../../../doc/xpathxslt.txt')])
++ if not IS_PYPY:
++ suite.addTests(
++ [make_doctest('../../../doc/xpathxslt.txt')])
+ return suite
+
+ if __name__ == '__main__':
+diff --git a/src/lxml/tests/test_xslt.py b/src/lxml/tests/test_xslt.py
+index cde23357..41f8d78b 100644
+--- a/src/lxml/tests/test_xslt.py
++++ b/src/lxml/tests/test_xslt.py
+@@ -17,6 +17,8 @@ from textwrap import dedent
+ from tempfile import NamedTemporaryFile, mkdtemp
+
+ is_python3 = sys.version_info[0] >= 3
++is_pypy = (getattr(sys, 'implementation', None) == 'pypy' or
++ getattr(sys, 'pypy_version_info', None) is not None)
+
+ try:
+ unicode
+@@ -2085,8 +2087,9 @@ def test_suite():
+ suite.addTests([unittest.makeSuite(Py3XSLTTestCase)])
+ suite.addTests(
+ [make_doctest('../../../doc/extensions.txt')])
+- suite.addTests(
+- [make_doctest('../../../doc/xpathxslt.txt')])
++ if not is_pypy:
++ suite.addTests(
++ [make_doctest('../../../doc/xpathxslt.txt')])
+ return suite
+
+ if __name__ == '__main__':
+--
+2.25.0
+
diff --git a/dev-python/lxml/lxml-4.6.0.ebuild b/dev-python/lxml/lxml-4.6.0.ebuild
new file mode 100644
index 000000000000..490f4523fef7
--- /dev/null
+++ b/dev-python/lxml/lxml-4.6.0.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{5,6,7,8,9} pypy3 )
+
+inherit distutils-r1 optfeature toolchain-funcs
+
+DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
+HOMEPAGE="https://lxml.de/ https://pypi.org/project/lxml/ https://github.com/lxml/lxml"
+SRC_URI="https://github.com/lxml/lxml/archive/${P}.tar.gz"
+S=${WORKDIR}/lxml-${P}
+
+LICENSE="BSD ElementTree GPL-2 PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc examples +threads test"
+RESTRICT="!test? ( test )"
+
+# Note: lib{xml2,xslt} are used as C libraries, not Python modules.
+RDEPEND="
+ >=dev-libs/libxml2-2.9.5
+ >=dev-libs/libxslt-1.1.28"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/cssselect[${PYTHON_USEDEP}] )
+ "
+
+DISTUTILS_IN_SOURCE_BUILD=1
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch
+)
+
+python_prepare_all() {
+ # avoid replacing PYTHONPATH in tests.
+ sed -i -e '/sys\.path/d' test.py || die
+
+ # don't use some random SDK on Darwin
+ sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \
+ setupinfo.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! python_is_python3; then
+ local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
+ fi
+ tc-export PKG_CONFIG
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die
+ cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die
+ ln -s "${S}"/doc "${BUILD_DIR}"/ || die
+
+ "${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use doc; then
+ local DOCS=( README.rst *.txt doc/*.txt )
+ local HTML_DOCS=( doc/html/. )
+ fi
+ if use examples; then
+ dodoc -r samples
+ fi
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup
+ optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect
+}
diff --git a/dev-python/oslo-cache/Manifest b/dev-python/oslo-cache/Manifest
index 50b086580ea6..5924d100dafa 100644
--- a/dev-python/oslo-cache/Manifest
+++ b/dev-python/oslo-cache/Manifest
@@ -1 +1,2 @@
DIST oslo-cache-2.3.0.tar.gz 57209 BLAKE2B aa34c4deb0206c86181e629b1ccedaa3b0b7a503f4648b9ffb23dcba84c98658017a720701176776652a2a58447c54662314dd4853ec6ccf6c2acebb4b559325 SHA512 c3ad9c326fa71985d4546bd20bcb8aa9508808c8eae2a9e3dac1c014d148bfa8f5a847eb2ca8d1a204cce07b6d640f9541491dd41c7c6169e993e408786358af
+DIST oslo-cache-2.6.1.tar.gz 60918 BLAKE2B 89def6f66ccb68e8725571b4f9fcc8a98c8b18dbb23186b1ed3cc09ae02eb786608c744f6ea7022fd3a832d206fe75916f74f2c000125c853993dc95f13da8f3 SHA512 20696d9a9feda9368fc261ccc124ab825b85373b2716110dcab7101346467dbf4d9e8a48b689a76ca837a8c4e97d03476b3573623ac57602f5d0e558110dd551
diff --git a/dev-python/oslo-cache/oslo-cache-2.6.1.ebuild b/dev-python/oslo-cache/oslo-cache-2.6.1.ebuild
new file mode 100644
index 000000000000..d793b2009dbb
--- /dev/null
+++ b/dev-python/oslo-cache/oslo-cache-2.6.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Caching around dogpile.cache"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-8.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-5.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-4.2.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-4.2.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-db/Manifest b/dev-python/oslo-db/Manifest
index 9f8252c8deb0..17323d85f3f6 100644
--- a/dev-python/oslo-db/Manifest
+++ b/dev-python/oslo-db/Manifest
@@ -1 +1,2 @@
DIST oslo.db-8.1.0.tar.gz 171252 BLAKE2B dbf6f580d95ce06f0ab4a50cf289765a2fa55459c56b89f079cbe93b319c1ebdd4287c47a7b69e0bff1ff91149f2dc9c7b8d90769f17cca26f42a2d0a69e46d6 SHA512 3070561990c630a26c936f787be1cacc7747b915bf01178624047551891c9e44b3d17a8d818bfac259d7083a8bbadba1859ade4a15821c00316bdb3860056208
+DIST oslo.db-8.4.0.tar.gz 172209 BLAKE2B f1f72347ec8c8b2ca452c54fdf9a843d0d31ebbb1356c39cd494dbacbab28e899d63568214fa73f14a8d838c4ce4137d19ee4fd6133344a17f584346775c3013 SHA512 7a64554de2b97ed3edbf4de81bd47a3bab0429c0b7f5708238c5b920010464236cca4a170a591890112706c2968b0cf1885563782c3a1925fb5767569ac1ccd6
diff --git a/dev-python/oslo-db/oslo-db-8.4.0.ebuild b/dev-python/oslo-db/oslo-db-8.4.0.ebuild
new file mode 100644
index 000000000000..0decbcbb3b6e
--- /dev/null
+++ b/dev-python/oslo-db/oslo-db-8.4.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="OpenStack Common DB Code"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.db/oslo.db-${PV}.tar.gz"
+S="${WORKDIR}/oslo.db-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+sqlite mysql postgres"
+REQUIRED_USE="|| ( mysql postgres sqlite )"
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/alembic-0.9.6[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ sqlite? (
+ >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
+ )
+ mysql? (
+ >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
+ )
+ postgres? (
+ >=dev-python/psycopg-2.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
+ )
+ >=dev-python/sqlalchemy-migrate-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ sed -i '/^testresources/d' requirements.txt || die
+ sed -i '/^testscenarios/d' requirements.txt || die
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/oslo-messaging/Manifest b/dev-python/oslo-messaging/Manifest
index 67aa75b3792c..2ca6cb5c6d24 100644
--- a/dev-python/oslo-messaging/Manifest
+++ b/dev-python/oslo-messaging/Manifest
@@ -1 +1,2 @@
DIST oslo.messaging-12.1.1.tar.gz 255540 BLAKE2B 54ab60244090d3602de9395ea4f6ffa4bfa78783642aecaf7bb37db62c1a5cb63d69c612d2d1085ef96611429a8c7b337ac1849d93ed857a2cb51bbae6265ed2 SHA512 0f55f2c21dfd5f83efbf53f8c0cfa65d8572166662a183998c896c61475a38c47ae6e2376c5a153049d2f91e3321d6a75accf4de4ef11b4ec8626b448c0637a9
+DIST oslo.messaging-12.5.0.tar.gz 255702 BLAKE2B b3f97fdd5f1edf169ca36b1853178fb509dcb4f9ae5b5d8ea8b619aacc6a75541622472de99f09b4494437cfaf11544902813b4dc96570f0c9df92421e44c2af SHA512 b1f1d8a4cb9c00db73e7384b6b3608853601ac6e5549ddd24c78d9089dabe879f8705b19b2ad6a566dfc42a2e0f15886150e784a726a7bf67856eaadf56c2da8
diff --git a/dev-python/oslo-messaging/oslo-messaging-12.5.0.ebuild b/dev-python/oslo-messaging/oslo-messaging-12.5.0.ebuild
new file mode 100644
index 000000000000..b38c03b1433b
--- /dev/null
+++ b/dev-python/oslo-messaging/oslo-messaging-12.5.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Messaging API for RPC and notifications over different messaging transports"
+HOMEPAGE="https://pypi.org/project/oslo.messaging/"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.messaging/oslo.messaging-${PV}.tar.gz"
+S="${WORKDIR}/oslo.messaging-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/futurist-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.37.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
+ !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
+ !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/cachetools-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13.0[${PYTHON_USEDEP}]
+ >=dev-python/py-amqp-2.5.2[${PYTHON_USEDEP}]
+ >=dev-python/kombu-4.6.6[${PYTHON_USEDEP}]
+ >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-middleware/Manifest b/dev-python/oslo-middleware/Manifest
index 80a6bb0cb816..f5d9841f1116 100644
--- a/dev-python/oslo-middleware/Manifest
+++ b/dev-python/oslo-middleware/Manifest
@@ -1 +1,2 @@
DIST oslo.middleware-4.0.2.tar.gz 56678 BLAKE2B 5e548f35eccb896447337317dc68d2294c6cf9a064c8cf938c205dbea47af11107d98efdfbfa1829dd2c4f74bd6a9ab51854cdb267321c1b80dc8f9f5ccdf3ee SHA512 8be5fcd85b3afcd0115f4c700f7b2e8846d5b23f0e93765e2cf693b2e0f982a9a8feee6648e261e36890a8a57c28dc550d2d65e5ebc209a4e709b463e5f8ce04
+DIST oslo.middleware-4.1.1.tar.gz 55970 BLAKE2B 02b9fdeadfca183102601e8c765ec941c51ac15bb83af9b7d5682ba683a20cffbc478497c4b5391cf903923822cfd5c611ca0661d51c642e9089a71cc4c988d2 SHA512 53f0695da0c9bafa1d9cc18a723793a0e7a0ed09a1cd6d6a2aa0f158e6f2fb3a6b8c2ad2cc4fc248cc80ca4fc02997f586f82ca6f951c928f4efa9b2bc5d1a93
diff --git a/dev-python/oslo-middleware/oslo-middleware-4.1.1.ebuild b/dev-python/oslo-middleware/oslo-middleware-4.1.1.ebuild
new file mode 100644
index 000000000000..38065d74fd09
--- /dev/null
+++ b/dev-python/oslo-middleware/oslo-middleware-4.1.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Components injected into wsgi pipelines to intercept request/response flows."
+HOMEPAGE="https://pypi.org/project/oslo.middleware/"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.middleware/oslo.middleware-${PV}.tar.gz"
+S="${WORKDIR}/oslo.middleware-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE=""
+RESTRICT=""
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/statsd-3.2.1[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-policy/Manifest b/dev-python/oslo-policy/Manifest
index 760290b9df6d..3fb0f3198a44 100644
--- a/dev-python/oslo-policy/Manifest
+++ b/dev-python/oslo-policy/Manifest
@@ -1 +1,2 @@
DIST oslo.policy-3.1.1.tar.gz 95063 BLAKE2B 2173ab727bceb53f8a4d4babb3b4a8de47b6398ea842cff097be21446a1aef0b77bd1b4a89dadc1e48acc9f0355d378e65f8288ff559e970d3ea1da6f2163e8f SHA512 3021433d4e4dd496ee7aafdcce60e3cdc4a9a8fe64724babfb146a077c91dfe0300500c199e7e7664f89dc2430fbab47700e767db64a5d9c931d8838cdc9ee65
+DIST oslo.policy-3.5.0.tar.gz 103988 BLAKE2B d78ce2cdc2b25c532c3207775430c32d1ae9e999df4cd918dfbce147a897fc9a4d46e7006bee0908b4d83cef2e2f71b2fb230aa56eeeae6302d61a435f5449ff SHA512 7d670aded9ac6ddc5360c60182f60cd75f3dec3d6d1bd9fc0d17794cd17349d8fff5e2bc8bc7df85d6bbbabad5373c824772e3d6006add69387d3663475fdb1a
diff --git a/dev-python/oslo-policy/oslo-policy-3.5.0.ebuild b/dev-python/oslo-policy/oslo-policy-3.5.0.ebuild
new file mode 100644
index 000000000000..60dc841d83ef
--- /dev/null
+++ b/dev-python/oslo-policy/oslo-policy-3.5.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Support for RBAC policy enforcement across all OpenStack services"
+HOMEPAGE="https://pypi.org/project/oslo.policy/"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.policy/oslo.policy-${PV}.tar.gz"
+S="${WORKDIR}/oslo.policy-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-2.22.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
+ !~dev-python/oslo-serialization-1.19.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.40.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-service/Manifest b/dev-python/oslo-service/Manifest
index f97dcaef4e5d..5b8d7a59438a 100644
--- a/dev-python/oslo-service/Manifest
+++ b/dev-python/oslo-service/Manifest
@@ -1 +1,2 @@
DIST oslo.service-2.1.1.tar.gz 81030 BLAKE2B f6221d9e3d7624dccb614b2dbe6529937fd00495db80cddd9412c53fdacd4a5c5a5fe33468ab53c65e0cb741e82519de971f19d662e633f658641c978dcf0b2b SHA512 8d2beba973444eb6ef32c011928376b6ba61388837178f9043105100f05644137d9bf6ae235c4c7260b05d956bfda42890dcd5727dd4d6f9559e7206f7139f95
+DIST oslo.service-2.4.0.tar.gz 80999 BLAKE2B 813c67eceb303d76ef39fecf057a2304966a367704a1a86a00bb2de515ded862a4eb3684f1e0f7dd4a17aca654fc6571243176d53397f8f93b5ee4cf34849d20 SHA512 7942a913c598471e9a828dba5e624ff6829d061692526021b9ae872ab558f119612e8b7b09c43efa7596e8102fbff323f106f755eef9a0ac68324606bb539703
diff --git a/dev-python/oslo-service/oslo-service-2.4.0.ebuild b/dev-python/oslo-service/oslo-service-2.4.0.ebuild
new file mode 100644
index 000000000000..1e23e60821a9
--- /dev/null
+++ b/dev-python/oslo-service/oslo-service-2.4.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Library for running OpenStack services"
+HOMEPAGE="https://pypi.org/project/oslo.service/"
+SRC_URI="mirror://pypi/${PN:0:1}/oslo.service/oslo.service-${PV}.tar.gz"
+S="${WORKDIR}/oslo.service-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE=""
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.25.2[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/greenlet-0.4.15[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.40.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-concurrency-3.25.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/pastedeploy-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
+ >=dev-python/yappi-1.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/oslo-upgradecheck/Manifest b/dev-python/oslo-upgradecheck/Manifest
index e4a4a7173a7e..dbd560d29990 100644
--- a/dev-python/oslo-upgradecheck/Manifest
+++ b/dev-python/oslo-upgradecheck/Manifest
@@ -1 +1,2 @@
DIST oslo-upgradecheck-1.0.1.tar.gz 15636 BLAKE2B 1247658ae351e11b3320415cd66bb5831bd018bced2e0440dc882d4c945dc81111544b063fb78e4b812d50c21ef7bde3eee30f8f12724d00077a32a05bb308c2 SHA512 92a8cfe51e4ddcdd7a1e8cab7296e7702a1389cbc9df17d0c5da133b21413efb5a650495d1b3bd2e2a58c376dd8c844e96ae20d2d56d387c29de635918a96d30
+DIST oslo-upgradecheck-1.1.1.tar.gz 15096 BLAKE2B 7aac69c8078d8f6e89c16801fc61bf9d44811b2333ed67d4f2b8a9e432dd8ecb1f90010b796965e838267991a16c0f5b19f25afc98cbb6458906e3af656f91da SHA512 89b7fca8a95195081e83b336d3e55a9c67802ff3b88fbb5849afa7c7424212c03c3a96a916a6a62bcab18ac002f73ab7a4dcc92859e6bcc9b4002798756040b2
diff --git a/dev-python/oslo-upgradecheck/oslo-upgradecheck-1.1.1.ebuild b/dev-python/oslo-upgradecheck/oslo-upgradecheck-1.1.1.ebuild
new file mode 100644
index 000000000000..ad3a148c871b
--- /dev/null
+++ b/dev-python/oslo-upgradecheck/oslo-upgradecheck-1.1.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo i18n library"
+HOMEPAGE="https://launchpad.net/oslo"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.1[${PYTHON_USEDEP}]
+ <dev-python/prettytable-0.8[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/py-amqp/Manifest b/dev-python/py-amqp/Manifest
index 3e99ef147152..6141de7c4175 100644
--- a/dev-python/py-amqp/Manifest
+++ b/dev-python/py-amqp/Manifest
@@ -1 +1,2 @@
DIST amqp-2.5.2.tar.gz 117788 BLAKE2B 6a6990aca0a43a0c546198b999d0d3680d6c44908e144f81bd8266abac4d2d9b7ea4c65bbf969310f1236970ebe0ef5ed44cc558109ba1f680348e3ba2789e83 SHA512 c540ce39c06bb947e55b4afc56567d5fc5a82b65a2f7e2cc1f769f96da74f788d14e1e9c02852a259a4980c36a4524f07166686c0357f96219fd9f8612a6159a
+DIST amqp-2.6.1.tar.gz 119956 BLAKE2B a575637ca3d39ef8577035ae156f09b87dfb053757cb78b058fcb4f23759707084297e12941c766783e99898c486ea8eca968842464223ea46f42a4e4495c0a4 SHA512 e2c628cfe8075a3014a9fe991ae3e6f49198db2ecd46dd48f980730da692e4d25d9f055b1ccd4743917fc38a8afa69a5902a64275f8f45ef68113c6756f3a17b
diff --git a/dev-python/py-amqp/py-amqp-2.6.1.ebuild b/dev-python/py-amqp/py-amqp-2.6.1.ebuild
new file mode 100644
index 000000000000..292ddb41942a
--- /dev/null
+++ b/dev-python/py-amqp/py-amqp-2.6.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+MY_PN="amqp"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Low-level AMQP client for Python (fork of amqplib)"
+HOMEPAGE="https://github.com/celery/py-amqp https://pypi.org/project/amqp/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc extras test"
+RESTRICT="!test? ( test )"
+
+RDEPEND=""
+DEPEND="
+ >=dev-python/vine-1.1.3[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_celery[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/case-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-3.0[${PYTHON_USEDEP}]
+ <=dev-python/pytest-5.3.5[${PYTHON_USEDEP}]
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ >=dev-python/pytest-rerunfailures-6.0[${PYTHON_USEDEP}]
+ )
+"
+
+python_prepare_all() {
+ # pytest-sugar is not packaged
+ sed -e '/pytest-sugar/d' -i requirements/test.txt || die
+
+ # requires a rabbitmq instance
+ rm t/integration/test_rmq.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ esetup.py test
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ if use extras; then
+ insinto /usr/share/${PF}/extras
+ doins -r extra
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pycadf/Manifest b/dev-python/pycadf/Manifest
index 7f7a6f58c32f..16f0aaabb36b 100644
--- a/dev-python/pycadf/Manifest
+++ b/dev-python/pycadf/Manifest
@@ -1 +1,2 @@
DIST pycadf-2.9.0.tar.gz 249992 BLAKE2B d6c1fd12991e24fa747e2f0ba35719faf6b4392334957ead977901f14c8cd98b26f1f93e4b866085e73b7009f66a1ce692e58e478ec501dd4fa988ebf11c2f5b SHA512 da94d778db2fa06b129ae5e85151e301eb68b9ca551fe33f86a9e627cf2c879c71451df140dddbc6d3dfcbac4b6939fce6748711549400713e96165b6673c356
+DIST pycadf-3.1.1.tar.gz 250143 BLAKE2B f0e8c35d911146e701beeeb209840703a2b5bb56590a00bc363d48c37c825e1e2bb660aedcaa95a45c4523a532ced2cc009781e1d7d524d994bc6afdc66a3041 SHA512 26e83418066d96b4d947965ea43ec3f75a667d40f4d5ed36130eb0bbc6a79bfd212e68b3a54c3db81a7cf670288612e15d40068416fe220e85ecc7670ba735da
diff --git a/dev-python/pycadf/pycadf-3.1.1.ebuild b/dev-python/pycadf/pycadf-3.1.1.ebuild
new file mode 100644
index 000000000000..6adffe03ca2a
--- /dev/null
+++ b/dev-python/pycadf/pycadf-3.1.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="python implementation of DMTF Cloud Audit (CADF) data model"
+HOMEPAGE="https://pypi.org/project/pycadf/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND=">=dev-python/pbr-1.8.0[${PYTHON_USEDEP}]"
+RDEPEND="
+ >=dev-python/pbr-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-2.18.0[${PYTHON_USEDEP}]
+ !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pysaml2/Manifest b/dev-python/pysaml2/Manifest
index afe789cd5930..70d8cff9845e 100644
--- a/dev-python/pysaml2/Manifest
+++ b/dev-python/pysaml2/Manifest
@@ -1 +1,2 @@
DIST pysaml2-4.6.5.tar.gz 319131 BLAKE2B d2b78d00cc5e65717bae267fbe88c781d4583996025eb4a9602030215f842a29b625ba41905e867d887e4564bbacdb1251170af46e5f00cc0f9d202c7741418d SHA512 da9cd23f9bef37da1079bba539f91df6a79190fcf8ab20b4c025fd8eae9b147799623dcc1376acfb6ff06c8566a58d478f8da7765195fe058d54007a2ebe79bb
+DIST pysaml2-6.1.0.tar.gz 325101 BLAKE2B 254d1c57e03f13346db89ee18a885d03ce55ed6eec5649d5c764ed6bf97ff20e2a0715e5678409125737acf8fda464c331a17ebe422cc96518bdd3825cf8db05 SHA512 4b3f942a352e6e9ad8df9d3c41269d00dda9f4a71286a4030556d35e5e3946c214fa5c2942f529b1f1ee4dfc30a4d388dffa204f6bdc7614f65b8a3a37ea5ff9
diff --git a/dev-python/pysaml2/pysaml2-6.1.0.ebuild b/dev-python/pysaml2/pysaml2-6.1.0.ebuild
new file mode 100644
index 000000000000..e37cc3e20c57
--- /dev/null
+++ b/dev-python/pysaml2/pysaml2-6.1.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{5,6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Python implementation of SAML Version 2 to be used in a WSGI environment"
+HOMEPAGE="https://github.com/rohe/pysaml2"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-1.4[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/traitlets/traitlets-5.0.4.ebuild b/dev-python/traitlets/traitlets-5.0.4.ebuild
index 075423d0bfec..a32e0a3a5cd5 100644
--- a/dev-python/traitlets/traitlets-5.0.4.ebuild
+++ b/dev-python/traitlets/traitlets-5.0.4.ebuild
@@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~ppc ~ppc64 ~x86"
RDEPEND="
dev-python/ipython_genutils[${PYTHON_USEDEP}]
diff --git a/dev-python/vine/vine-1.3.0.ebuild b/dev-python/vine/vine-1.3.0.ebuild
index 3633161aefe8..65ff529d157d 100644
--- a/dev-python/vine/vine-1.3.0.ebuild
+++ b/dev-python/vine/vine-1.3.0.ebuild
@@ -3,6 +3,7 @@
EAPI=7
PYTHON_COMPAT=( python3_{5,6,7,8,9} pypy3 )
+DISTUTILS_USE_SETUPTOOLS=bdepend
inherit distutils-r1
@@ -17,7 +18,7 @@ IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND=""
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+DEPEND="
test? (
>=dev-python/case-1.3.1[${PYTHON_USEDEP}]
>=dev-python/pytest-3.0[${PYTHON_USEDEP}]