mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
www-misc/urlwatch: fix CSS selectors with dev-python/lxml >= 5.0.0
Closes: https://bugs.gentoo.org/926767 Signed-off-by: Louis Sautier <sbraz@gentoo.org>
This commit is contained in:
28
www-misc/urlwatch/files/urlwatch-2.28-lxml-5.patch
Normal file
28
www-misc/urlwatch/files/urlwatch-2.28-lxml-5.patch
Normal file
@@ -0,0 +1,28 @@
|
||||
https://github.com/thp/urlwatch/commit/123de66d019aef7fc18fab6d56cc2a54d81fea3f
|
||||
|
||||
From: James Hewitt <james.hewitt@uk.ibm.com>
|
||||
Date: Wed, 17 Jan 2024 13:50:28 +0000
|
||||
Subject: [PATCH] Update CSS Selector to use new style
|
||||
|
||||
New style of calling the CSSSelector directly instead of using the
|
||||
evaluate function. This has been supported since lxml 1.1 [1] and the
|
||||
evaluate method has been deprecated since lxml 2.1 [2].
|
||||
|
||||
[1] https://github.com/lxml/lxml/blob/lxml-1.1/src/lxml/xpath.pxi#L66
|
||||
[2] https://github.com/lxml/lxml/blob/lxml-2.1/src/lxml/xpath.pxi#L143
|
||||
|
||||
Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
|
||||
--- a/lib/urlwatch/filters.py
|
||||
+++ b/lib/urlwatch/filters.py
|
||||
@@ -761,9 +761,9 @@ def _get_filtered_elements(self):
|
||||
excluded_elems = None
|
||||
if self.filter_kind == 'css':
|
||||
selected_elems = CSSSelector(self.expression,
|
||||
- namespaces=self.namespaces).evaluate(root)
|
||||
+ namespaces=self.namespaces)(root)
|
||||
excluded_elems = CSSSelector(self.exclude,
|
||||
- namespaces=self.namespaces).evaluate(root) if self.exclude else None
|
||||
+ namespaces=self.namespaces)(root) if self.exclude else None
|
||||
elif self.filter_kind == 'xpath':
|
||||
selected_elems = root.xpath(self.expression, namespaces=self.namespaces)
|
||||
excluded_elems = root.xpath(self.exclude, namespaces=self.namespaces) if self.exclude else None
|
||||
76
www-misc/urlwatch/urlwatch-2.28-r1.ebuild
Normal file
76
www-misc/urlwatch/urlwatch-2.28-r1.ebuild
Normal file
@@ -0,0 +1,76 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="A tool for monitoring webpages for updates"
|
||||
HOMEPAGE="
|
||||
https://thp.io/2008/urlwatch/
|
||||
https://github.com/thp/urlwatch/
|
||||
https://pypi.org/project/urlwatch/
|
||||
"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/appdirs[${PYTHON_USEDEP}]
|
||||
dev-python/cssselect[${PYTHON_USEDEP}]
|
||||
dev-python/keyring[${PYTHON_USEDEP}]
|
||||
dev-python/lxml[${PYTHON_USEDEP}]
|
||||
>=dev-python/minidb-2.0.6[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
app-text/tesseract[png]
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/jq[${PYTHON_USEDEP}]
|
||||
dev-python/pytesseract[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-lxml-5.patch"
|
||||
)
|
||||
|
||||
DOCS=( CHANGELOG.md README.md )
|
||||
|
||||
distutils_enable_sphinx docs/source dev-python/alabaster
|
||||
distutils_enable_tests pytest
|
||||
|
||||
EPYTEST_DESELECT=(
|
||||
# Require the pdftotext module
|
||||
"lib/urlwatch/tests/test_filter_documentation.py::test_url[https://example.net/pdf-test.pdf]"
|
||||
"lib/urlwatch/tests/test_filter_documentation.py::test_url[https://example.net/pdf-test-password.pdf]"
|
||||
# Skip code quality check
|
||||
"lib/urlwatch/tests/test_handler.py::test_pep8_conformance"
|
||||
)
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -z "${REPLACING_VERSIONS}" ]]; then
|
||||
if ! has_version dev-python/chump; then
|
||||
elog "Install 'dev-python/chump' to enable Pushover" \
|
||||
"notifications support"
|
||||
fi
|
||||
if ! has_version dev-python/jq; then
|
||||
elog "Install 'dev-python/jq' to enable jq filtering support"
|
||||
fi
|
||||
if ! has_version dev-python/pytesseract; then
|
||||
elog "Install 'dev-python/pytesseract' to enable OCR support"
|
||||
fi
|
||||
elog "HTML parsing can be improved by installing one of the following packages"
|
||||
elog "and changing the html2text subfilter parameter:"
|
||||
elog "dev-python/beautifulsoup4"
|
||||
elog "app-text/html2text"
|
||||
elog "dev-python/html2text"
|
||||
elog "www-client/lynx"
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user