Skip to content

Commit

Permalink
Update CSS Selector to use new style (#786)
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jamstah committed Feb 12, 2024
1 parent e342af9 commit 123de66
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ The format mostly follows [Keep a Changelog](http://keepachangelog.com/en/1.0.0/
- Fix documentation for watching Github tags and releases, again (#723)
- Fix `--test-reporter` command-line option so `separate` configuration option is no longer ignored when sending test notifications (#772, by marunjar)
- Fix line height and dark mode regression (#774 reported by kongomongo, PRs #777 and #778 by trevorshannon)
- Fix compatibility with lxml >= 5 which caused the CSS Selector filter to fail (#783 reported by jamesquilty, PR #786 by jamstah)

## [2.28] -- 2023-05-03

Expand Down
4 changes: 2 additions & 2 deletions lib/urlwatch/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 123de66

Please sign in to comment.