Draft: Update dependency lxml to v6
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| lxml (source, changelog) | major |
==5.4.0 -> ==6.0.2
|
All Renovate MRs are tracked by #227.
Release Notes
lxml/lxml (lxml)
v6.0.2
==================
Bugs fixed
-
LP#2125278: Compilation with libxml2 2.15.0 failed. Original patch by Xi Ruoyao.
-
Setting
decompress=Truein the parser had no effect in libxml2 2.15. -
Binary wheels on Linux and macOS use the library version libxml2 2.14.6. See https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6
-
Test failures in libxml2 2.15.0 were fixed.
Other changes
-
Binary wheels for Py3.9-3.11 on the
riscv64architecture were added. -
Error constants were updated to match libxml2 2.15.0.
-
Built using Cython 3.1.4.
v6.0.1
==================
Bugs fixed
-
LP#2116333:
lxml.sax._getNsTag()could fail with an exception on malformed input. -
GH#467: Some test adaptations were made for libxml2 2.15. Patch by Nick Wellnhofer.
-
LP2119510, GH#473: A Python compatibility test was fixed for Python 3.14+. Patch by Lumír Balhar.
-
GH#471: Wheels for "riscv64" on recent Python versions were added. Patch by ffgan.
-
GH#469: The wheel build no longer requires the
wheelpackage unconditionally. Patch by Miro Hrončok. -
Binary wheels use the library version libxml2 2.14.5. See https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.5
-
Windows binary wheels continue to use a security patched library version libxml2 2.11.9.
v6.0.0
==================
Features added
-
GH#463:
lxml.html.diffis faster and provides structurally better diffs. Original patch by Steven Fernandez. -
GH#405: The factories
ElementandElementTreecan now be used in type hints. -
GH#448: Parsing from
memoryviewand other buffers is supported to allow zero-copy parsing. -
GH#437:
lxml.html.builderwas missing several HTML5 tag names. Patch by Nick Tarleton. -
GH#458:
CDATAcan now be written into the incrementalxmlfile()writer. Original patch by Lane Shaw. -
A new parser option
decompress=Falsewas added that controls the automatic input decompression when using libxml2 2.15.0 or later. Disabling this option by default will effectively prevent decompression bombs when handling untrusted input. Code that depends on automatic decompression must enable this option. Note that libxml2 2.15.0 was not released yet, so this option currently has no effect but can already be used. -
The set of compile time / runtime supported libxml2 feature names is available as
etree.LIBXML_COMPILED_FEATURESandetree.LIBXML_FEATURES. This currently includescatalog,ftp,html,http,iconv,icu,lzma,regexp,schematron,xmlschema,xpath,zlib.
Bugs fixed
-
GH#353: Predicates in
.find*()could mishandle tag indices if a default namespace is provided. Original patch by Luise K. -
GH#272: The
headandbodyproperties oflxml.htmlelements failed if no such element was found. They now returnNoneinstead. Original patch by FVolral. -
Tag names provided by code (API, not data) that are longer than
INT_MAXcould be truncated or mishandled in other ways. -
.text_content()onlxml.htmlelements accidentally returned a "smart string" without additional information. It now returns a plain string. -
LP#2109931: When building lxml with coverage reporting, it now disables the
sys.monitoringsupport due to the lack of support in nedbat/coveragepy#1790
Other changes
-
Support for Python < 3.8 was removed.
-
Parsing directly from zlib (or lzma) compressed data is now considered an optional feature in lxml. It may get removed from libxml2 at some point for security reasons (compression bombs) and is therefore no longer guaranteed to be available in lxml.
As of this release, zlib support is still normally available in the binary wheels but may get disabled or removed in later (x.y.0) releases. To test the availability, use
"zlib" in etree.LIBXML_FEATURES. -
The
Schematronclass is deprecated and will become non-functional in a future lxml version. The feature will soon be removed from libxml2 and stop being available. -
GH#438: Wheels include the
arm7ltarget. -
GH#465: Windows wheels include the
arm64target. Patch by Finn Womack. -
Binary wheels use the library versions libxml2 2.14.4 and libxslt 1.1.43. Note that this disables direct HTTP and FTP support for parsing from URLs. Use Python URL request tools instead (which usually also support HTTPS). To test the availability, use
"http" in etree.LIBXML_FEATURES. -
Windows binary wheels use the library versions libxml2 2.11.9, libxslt 1.1.39 and libiconv 1.17. They are now based on VS-2022.
-
Built using Cython 3.1.2.
-
The debug methods
MemDebug.dump()andMemDebug.show()were removed completely. libxml2 2.13.0 discarded this feature.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.