# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 PYTHON_COMPAT=( python2_7 python3_{4,5} ) PYTHON_REQ_USE="sqlite(+)" inherit distutils-r1 DESCRIPTION="A high-level Python Screen Scraping framework" HOMEPAGE="https://github.com/scrapy/scrapy/ https://pypi.python.org/pypi/Scrapy/" SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="BSD-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="boto doc ibl test ssl" RDEPEND=" >=dev-python/six-1.5.2[${PYTHON_USEDEP}] dev-libs/libxml2[python,${PYTHON_USEDEP}] dev-python/pillow[${PYTHON_USEDEP}] >=dev-python/parsel-1.1.0[${PYTHON_USEDEP}] >=dev-python/lxml-3.4[${PYTHON_USEDEP}] ibl? ( dev-python/numpy[${PYTHON_USEDEP}] ) ssl? ( >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}] dev-python/cryptography[${PYTHON_USEDEP}] ) boto? ( dev-python/boto3[${PYTHON_USEDEP}] ) >=dev-python/twisted-14.0[${PYTHON_USEDEP}] >=dev-python/w3lib-1.8.0[${PYTHON_USEDEP}] dev-python/queuelib[${PYTHON_USEDEP}] >=dev-python/cssselect-0.9[${PYTHON_USEDEP}] >=dev-python/six-1.5.2[${PYTHON_USEDEP}] dev-python/service_identity[${PYTHON_USEDEP}] " DEPEND=" dev-python/setuptools[${PYTHON_USEDEP}] doc? ( dev-python/sphinx[${PYTHON_USEDEP}] ) test? ( ${RDEPEND} dev-python/mock[${PYTHON_USEDEP}] =net-proxy/mitmproxy-0.10.1[${PYTHON_USEDEP}] =dev-python/netlib-0.10.1[${PYTHON_USEDEP}] dev-python/jmespath[${PYTHON_USEDEP}] dev-python/testfixtures[${PYTHON_USEDEP}] net-ftp/vsftpd )" # pytest-twisted listed as a test dep but not in portage. # Testsuite currently survives without it, so appears optional REQUIRED_USE="test? ( ssl boto )" python_prepare_all() { # https://github.com/scrapy/scrapy/issues/1464 # Disable failing tests known to pass according to upstream # Awaiting a fix planned by package owner. sed -e 's:test_https_connect_tunnel:_&:' \ -e 's:test_https_connect_tunnel_error:_&:' \ -e 's:test_https_tunnel_auth_error:_&:' \ -e 's:test_https_tunnel_without_leak_proxy_authorization_header:_&:' \ -i tests/test_proxy_connect.py || die distutils-r1_python_prepare_all } python_compile_all() { if use doc; then PYTHONPATH="${S}" emake -C docs html || die "emake html failed" fi } python_test() { py.test ${PN} tests || die "tests failed" } python_install_all() { use doc && local HTML_DOCS=( docs/build/html/. ) distutils-r1_python_install_all }