dev-python/lxml: Sync with Gentoo

It's from Gentoo commit 896273c19146f20e7077796790787062bf29970f.
This commit is contained in:
Krzesimir Nowak 2022-03-22 13:38:11 +01:00
parent 9e8ce61057
commit db434008fe
5 changed files with 43 additions and 138 deletions

View File

@ -1,2 +1 @@
DIST lxml-4.6.3.tar.gz 948931 BLAKE2B 373248827cb6bc0698b632ef60978adb2b8f7c37444fa1804567f08eb669018dc38fadf52422262fd96280e88c59578d244e4c5a1ed55609af55c010b3bf2b09 SHA512 50e42d6269dc45b4c0ab3285c49307f8bee87fcc4b9e0f531e1ee37bcf83c5938b7e361f906a3158fac8df89a79b932dd64a8839455e45f45f3a5f0ba73ff6a5 DIST lxml-4.8.0.tar.gz 959376 BLAKE2B a40be5e058153e1dc3f8501b645b0211f4498928ed71b161df54a67501356e9968064401b6d17e17dc8d62223b29e794eaa2bee7ff78ffee203d9f9a22f3e1c2 SHA512 bbcd8ea001cfa2820dcac4e00de6ded81700b2f0bd4a58bcdd4da05a19a107f57cd56280c4838fe19ee7ecd6be105878bf8c2f1c0e5111899c4ad1a2ba03537f
DIST lxml-4.6.4.tar.gz 953275 BLAKE2B 7dae0fe0c92c937d823429b32ae952e501e193835892d40746aa35e48586df4e497865f246362ef10430cc9187cd54f98078b7edcc0fd9f421ac9d15994e7b2a SHA512 4e62b7c9ceec47f490136e86e9875aae3f3dccd0ee5e504f8128c62cdb111e00e64ee35678028438b87d32253fdeb8e1184d4017b56e06dfbc93cd0e8736101f

View File

@ -432,3 +432,21 @@ index cde23357..41f8d78b 100644
-- --
2.25.0 2.25.0
diff --git a/doc/element_classes.txt b/doc/element_classes.txt
index 4b1e72e8..fda9ea07 100644
--- a/doc/element_classes.txt
+++ b/doc/element_classes.txt
@@ -576,10 +576,10 @@ subclasses for elements of this namespace:
>>> print(honk_element[0].honk())
HONK
- >>> print(honk_element[0].honking)
+ >>> print(honk_element[0].honking) # doctest: +ELLIPSIS
Traceback (most recent call last):
...
- AttributeError: 'HonkNSElement' object has no attribute 'honking'
+ AttributeError: 'HonkNSElement' object has no attribute 'honking'...
>>> print(honk_element[1].text) # uses fallback for non-elements
comment

View File

@ -1,22 +0,0 @@
https://github.com/lxml/lxml/commit/852ed1092bd80b6b9a51db24371047ec88843031
https://bugs.gentoo.org/791190
From: Stefan Behnel <stefan_ml@behnel.de>
Date: Tue, 18 May 2021 22:02:02 +0200
Subject: [PATCH] Adapt a test to a behavioural change in libxml2 2.9.11+.
--- a/src/lxml/tests/test_etree.py
+++ b/src/lxml/tests/test_etree.py
@@ -3036,7 +3036,10 @@ def test_subelement_nsmap(self):
def test_html_prefix_nsmap(self):
etree = self.etree
el = etree.HTML('<hha:page-description>aa</hha:page-description>').find('.//page-description')
- self.assertEqual({'hha': None}, el.nsmap)
+ if etree.LIBXML_VERSION < (2, 9, 11):
+ self.assertEqual({'hha': None}, el.nsmap)
+ else:
+ self.assertEqual({}, el.nsmap)
def test_getchildren(self):
Element = self.etree.Element

View File

@ -1,101 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..10} 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 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-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.12-r2
>=dev-libs/libxslt-1.1.28"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
dev-python/cython[${PYTHON_USEDEP}]
doc? (
$(python_gen_any_dep '
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/pygments[${PYTHON_USEDEP}]
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
')
)
test? ( dev-python/cssselect[${PYTHON_USEDEP}] )
"
DISTUTILS_IN_SOURCE_BUILD=1
PATCHES=(
"${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch
"${FILESDIR}"/${P}-tests-libxml2.patch
)
python_check_deps() {
use doc || return 0
has_version "dev-python/docutils[${PYTHON_USEDEP}]" &&
has_version "dev-python/pygments[${PYTHON_USEDEP}]" &&
has_version "dev-python/sphinx[${PYTHON_USEDEP}]" &&
has_version "dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]"
}
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_compile_all() {
use doc && emake html
}
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/beautifulsoup4
optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect
}

View File

@ -1,28 +1,35 @@
# Copyright 1999-2021 Gentoo Authors # Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=8 EAPI=8
PYTHON_COMPAT=( python3_{8..10} pypy3 ) DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8..11} pypy3 )
inherit distutils-r1 optfeature toolchain-funcs inherit distutils-r1 optfeature toolchain-funcs
DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries"
HOMEPAGE="https://lxml.de/ https://pypi.org/project/lxml/ https://github.com/lxml/lxml" 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" SRC_URI="https://github.com/lxml/lxml/archive/${P}.tar.gz"
S=${WORKDIR}/lxml-${P} S=${WORKDIR}/lxml-${P}
LICENSE="BSD ElementTree GPL-2 PSF-2" LICENSE="BSD ElementTree GPL-2 PSF-2"
SLOT="0" SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="doc examples +threads test" IUSE="doc examples +threads test"
RESTRICT="!test? ( test )" RESTRICT="!test? ( test )"
# Note: lib{xml2,xslt} are used as C libraries, not Python modules. # Note: lib{xml2,xslt} are used as C libraries, not Python modules.
RDEPEND=" DEPEND="
>=dev-libs/libxml2-2.9.12-r2 >=dev-libs/libxml2-2.9.12-r2
>=dev-libs/libxslt-1.1.28" >=dev-libs/libxslt-1.1.28"
DEPEND="${RDEPEND}" RDEPEND="
${DEPEND}
"
BDEPEND=" BDEPEND="
virtual/pkgconfig virtual/pkgconfig
dev-python/cython[${PYTHON_USEDEP}] dev-python/cython[${PYTHON_USEDEP}]
@ -34,10 +41,10 @@ BDEPEND="
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}] dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
') ')
) )
test? ( dev-python/cssselect[${PYTHON_USEDEP}] ) test? (
" dev-python/cssselect[${PYTHON_USEDEP}]
)
DISTUTILS_IN_SOURCE_BUILD=1 "
PATCHES=( PATCHES=(
"${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch "${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch
@ -72,9 +79,13 @@ python_compile_all() {
} }
python_test() { python_test() {
cp -r -l src/lxml/tests "${BUILD_DIR}"/lib/lxml/ || die local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml
cp -r -l src/lxml/html/tests "${BUILD_DIR}"/lib/lxml/html/ || die local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
ln -s "${S}"/doc "${BUILD_DIR}"/ || die
cp -al "${BUILD_DIR}"/{install,test} || die
cp -al src/lxml/tests "${dir}/" || die
cp -al src/lxml/html/tests "${dir}/html/" || die
ln -rs "${S}"/doc "${dir}"/../../ || die
"${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}" "${EPYTHON}" test.py -vv --all-levels -p || die "Test ${test} fails with ${EPYTHON}"
} }