python-lxml>=5 breaks the CSS selector filter

Description:

The python-lxml 5.1.0 update broke the CSS selector filter due to a deprecated LXML functionality:

Traceback (most recent call last):
  File "/usr/bin/urlwatch", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/lib/python3.11/site-packages/urlwatch/cli.py", line 109, in main
    urlwatch_command.run()
  File "/usr/lib/python3.11/site-packages/urlwatch/command.py", line 458, in run
    self.handle_actions()
  File "/usr/lib/python3.11/site-packages/urlwatch/command.py", line 256, in handle_actions
    sys.exit(self.test_filter(self.urlwatch_config.test_filter))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/urlwatch/command.py", line 139, in test_filter
    raise job_state.exception
  File "/usr/lib/python3.11/site-packages/urlwatch/handler.py", line 120, in process
    data = FilterBase.process(filter_kind, subfilter, self, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/urlwatch/filters.py", line 188, in process
    return filtercls(state.job, state).filter(data, subfilter)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/urlwatch/filters.py", line 810, in filter
    return lxml_parser.get_filtered_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/urlwatch/filters.py", line 776, in get_filtered_data
    elements = list(self._get_filtered_elements())
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/urlwatch/filters.py", line 764, in _get_filtered_elements
    namespaces=self.namespaces).evaluate(root)
                                ^^^^^^^^
AttributeError: 'CSSSelector' object has no attribute 'evaluate'

Additional info:

Upstream bug report: https://github.com/thp/urlwatch/issues/783

Upstream fix: https://github.com/thp/urlwatch/commit/123de66d019aef7fc18fab6d56cc2a54d81fea3f

Rebuilding with the upstream commit applied fixes the issue.

$ pacman -Q urlwatch python-lxml 
urlwatch 2.28-1
python-lxml 5.1.0-1
name: 'electron'
url: 'https://archlinux.org/packages/extra/any/electron/'
filter:
  - css: '#pkgdetails h2'
  - html2text:

Steps to reproduce:

  1. Run urlwatch on a config with the css filter used
  2. Observe the error
Edited by Daniel Peukert