fix(deps): update dependency lxml to v5
This MR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
lxml (source, changelog) |
^4.9.3 -> ^5.0.0
|
Release Notes
lxml/lxml (lxml)
v5.1.0
==================
Features added
- Parsing ASCII strings is slightly faster.
Bugs fixed
-
GH#349: The HTML
Cleaner()
interpreted an accidentally provided string parameter for thehost_whitelist
as list of characters and silently failed to reject any hosts. Passing a non-collection is now rejected.
Other changes
-
Support for Python 2.7 and Python versions < 3.6 was removed.
-
The wheel build was migrated to use
cibuildwheel
. Patch by Primož Godec.
v5.0.1
==================
Bugs fixed
-
LP#2046208: Parsing non-BMP Python Unicode strings could fail on macOS.
-
LP#2044225: When incrementally parsing broken HTML, reporting start events on missing structural tags failed and could lead to subsequent exceptions.
-
LP#2045435: Some (not all) issues with stricter C compilers were resolved.
-
The binary wheels in the 5.0.0 release did not validate cleanly (but installed ok).
.. _latest_release:
v5.0.0
==================
Features added
-
Character escaping in
C14N2
serialisation now uses a single pass over the text instead of searching for each unescaped character separately. -
Early support for Python 3.13a2 was added.
Bugs fixed
-
LP#1976304: The
Element.addnext()
method previously inserted the new element before existing tail text. The tail text of both sibling elements now stays on the respective elements. -
LP#1980767, GH#379:
TreeBuilder.close()
could fail with aTypeError
after parsing incorrect input. Original patch by Enrico Minack. -
Element.itertext(with_tail=False)
returned the tail text of comments and processing instructions, despite the explicit option. -
GH#370: A crash with recent libxml2 2.11.x versions was resolved. Patch by Michael Schlenker.
-
A compile problem with recent libxml2 2.12.x versions was resolved.
-
The internal exception handling in C callbacks was improved for Cython 3.0.
-
The exception declarations of
xmlInputReadCallback
,xmlInputCloseCallback
,xmlOutputWriteCallback
andxmlOutputCloseCallback
intree.pxd
were corrected to prevent running Python code or calling into the C-API with a live exception set. -
GH#385: The long deprecated
unittest.m̀akeSuite()
function is no longer used. Patch by Miro Hrončok. -
LP#1522052: A file-system specific test is now optional and should no longer fail on systems that don't support it.
-
GH#392: Some tests were adapted for libxml2 2.13. Patch by Nick Wellnhofer.
-
Contains all fixes from lxml 4.9.4.
Other changes
-
LP#1742885: lxml no longer expands external entities (XXE) by default to prevent the security risk of loading arbitrary files and URLs. If this feature is needed, it can be enabled in a backwards compatible way by using a parser with the option
resolve_entities=True
. The new default isresolve_entities='internal'
. -
With libxml2 2.10.4 and later (as provided by the lxml 5.0 binary wheels), parsing HTML tags with "prefixes" no longer builds a namespace dictionary in
nsmap
but considers theprefix:name
string the actual tag name. With older libxml2 versions, since 2.9.11, the prefix was removed. Before that, the prefix was parsed as XML prefix.lxml 5.0 does not try to hide this difference but now changes the ElementPath implementation to let
element.find("part1:part2")
search for the tagpart1:part2
in documents parsed as HTML, instead of looking only forpart2
. -
LP#2024343: The validation of the schema file itself is now optional in the ISO-Schematron implementation. This was done because some lxml distributions discard the RNG validation schema file due to licensing issues. The validation can now always be disabled with
Schematron(..., validate_schema=False)
. It is enabled by default if available and disabled otherwise. The module constantlxml.isoschematron.schematron_schema_valid_supported
can be used to detect whether schema file validation is available. -
Some redundant and long deprecated methods were removed:
parser.setElementClassLookup()
,xslt_transform.apply()
,xpath.evaluate()
. -
Some incorrect declarations were removed from
python.pxd
. In general, this file should not be used by external Cython code. Use the C-API declarations provided by Cython itself instead. -
Binary wheels use the library versions libxml2 2.12.3 and libxslt 1.1.39.
-
Built with Cython 3.0.7, updated to follow recent changes in Cython 3.1-dev.
v4.9.4
==================
Bugs fixed
-
LP#2046398: Inserting/replacing an ancestor into a node's children could loop indefinitely.
-
LP#1980767, GH#379:
TreeBuilder.close()
could fail with aTypeError
after parsing incorrect input. Original patch by Enrico Minack. -
LP#1522052: A file-system specific test is now optional and should no longer fail on systems that don't support it.
Other changes
-
Wheels include zlib 1.3, libxml2 2.10.3 and libxslt 1.1.39 (zlib 1.2.12, libxml2 2.10.3 and libxslt 1.1.37 on Windows).
-
Built with Cython 0.29.37.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.