--- /dev/null
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 python3_{4,5,6,7} )
+
+inherit distutils-r1
+
+MY_PN=${PN/-/.}
+
+DESCRIPTION="Oslo Serialization 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"
+IUSE="doc test"
+
+CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ${CDEPEND}
+ test? (
+ virtual/python-ipaddress[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
+ >=dev-python/stestr-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/bandit-1.1.0[${PYTHON_USEDEP}]
+ )
+ doc? (
+ >=dev-python/sphinx-1.6.2[${PYTHON_USEDEP}]
+ >=dev-python/openstackdocstheme-1.18.1[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/reno-2.5.0[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.5.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.20.0[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ # allow useage of renamed msgpack
+ sed -i '/^msgpack/d' requirements.txt || die
+ use doc && esetup.py build_sphinx
+ distutils-r1_python_prepare_all
+}
+
+# Note: Tests fail due to requiring installation.
+#
+# Installation appears to fail due ot the use of namespace packages but root
+# cause was never truly established.
+RESTRICT="test"
+
+python_test() {
+ distutils_install_for_testing
+
+ PYTHONPATH="${TEST_DIR}/lib:${PYTHONPATH}"
+
+ rm -rf .testrepository || die "couldn't remove '.testrepository' under ${EPTYHON}"
+
+ testr init || die "testr init failed under ${EPYTHON}"
+ testr run || die "testr run failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}