Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update lxml to 4.5.2 #25296

Merged
merged 1 commit into from Nov 26, 2020
Merged

Update lxml to 4.5.2 #25296

merged 1 commit into from Nov 26, 2020

Conversation

pyup-bot
Copy link
Contributor

This PR updates lxml from 4.1.1 to 4.5.2.

Changelog

4.5.2

==================

Bugs fixed
----------

* ``Cleaner()`` now validates that only known configuration options can be set.

* LP1882606: ``Cleaner.clean_html()`` discarded comments and PIs regardless of the
corresponding configuration option, if ``remove_unknown_tags`` was set.

* LP1880251: Instead of globally overwriting the document loader in libxml2, lxml now
sets it per parser run, which improves the interoperability with other users of libxml2
such as libxmlsec.

* LP1881960: Fix build in CPython 3.10 by using Cython 0.29.21.

* The setup options "--with-xml2-config" and "--with-xslt-config" were accidentally renamed
to "--xml2-config" and "--xslt-config" in 4.5.1 and are now available again.

4.5.1

==================

Bugs fixed
----------

* LP1570388: Fix failures when serialising documents larger than 2GB in some cases.

* LP1865141, GH298: ``QName`` values were not accepted by the ``el.iter()`` method.
Patch by xmo-odoo.

* LP1863413, GH297: The build failed to detect libraries on Linux that are only
configured via pkg-config.
Patch by Hugh McMaster.

4.5.0

==================

Features added
--------------

* A new function ``indent()`` was added to insert tail whitespace for pretty-printing
an XML tree.

Bugs fixed
----------

* LP1857794: Tail text of nodes that get removed from a document using item
deletion disappeared silently instead of sticking with the node that was removed.

Other changes
-------------

* MacOS builds are 64-bit-only by default.
Set CFLAGS and LDFLAGS explicitly to override it.

* Linux/MacOS Binary wheels now use libxml2 2.9.10 and libxslt 1.1.34.

* LP1840234: The package version number is now available as ``lxml.__version__``.

4.4.3

==================

Bugs fixed
----------

* LP1844674: ``itertext()`` was missing tail text of comments and PIs since 4.4.0.

4.4.2

==================

Bugs fixed
----------

* LP1835708: ``ElementInclude`` incorrectly rejected repeated non-recursive
includes as recursive.
Patch by Rainer Hausdorf.

4.4.1

==================

Bugs fixed
----------

* LP1838252: The order of an OrderedDict was lost in 4.4.0 when passing it as
attrib mapping during element creation.

* LP1838521: The package metadata now lists the supported Python versions.

4.4.0

==================

Features added
--------------

* ``Element.clear()`` accepts a new keyword argument ``keep_tail=True`` to clear
everything but the tail text.  This is helpful in some document-style use cases
and for clearing the current element in ``iterparse()`` and pull parsing.

* When creating attributes or namespaces from a dict in Python 3.6+, lxml now
preserves the original insertion order of that dict, instead of always sorting
the items by name.  A similar change was made for ElementTree in CPython 3.8.
See https://bugs.python.org/issue34160

* Integer elements in ``lxml.objectify`` implement the ``__index__()`` special method.

* GH269: Read-only elements in XSLT were missing the ``nsmap`` property.
Original patch by Jan Pazdziora.

* ElementInclude can now restrict the maximum inclusion depth via a ``max_depth``
argument to prevent content explosion.  It is limited to 6 by default.

* The ``target`` object of the XMLParser can have ``start_ns()`` and ``end_ns()``
callback methods to listen to namespace declarations.

* The ``TreeBuilder`` has new arguments ``comment_factory`` and ``pi_factory`` to
pass factories for creating comments and processing instructions, as well as
flag arguments ``insert_comments`` and ``insert_pis`` to discard them from the
tree when set to false.

* A `C14N 2.0 <https://www.w3.org/TR/xml-c14n2/>`_ implementation was added as
``etree.canonicalize()``, a corresponding ``C14NWriterTarget`` class, and
a ``c14n2`` serialisation method.

Bugs fixed
----------

* When writing to file paths that contain the URL escape character '%', the file
path could wrongly be mangled by URL unescaping and thus write to a different
file or directory.  Code that writes to file paths that are provided by untrusted
sources, but that must work with previous versions of lxml, should best either
reject paths that contain '%' characters, or otherwise make sure that the path
does not contain maliciously injected '%XX' URL hex escapes for paths like '../'.

* Assigning to Element child slices with negative step could insert the slice at
the wrong position, starting too far on the left.

* Assigning to Element child slices with overly large step size could take very
long, regardless of the length of the actual slice.

* Assigning to Element child slices of the wrong size could sometimes fail to
raise a ValueError (like a list assignment would) and instead assign outside
of the original slice bounds or leave parts of it unreplaced.

* The ``comment`` and ``pi`` events in ``iterwalk()`` were never triggered, and
instead, comments and processing instructions in the tree were reported as
``start`` elements.  Also, when walking an ElementTree (as opposed to its root
element), comments and PIs outside of the root element are now reported.

* LP1827833: The RelaxNG compact syntax support was broken with recent versions
of ``rnc2rng``.

* LP1758553: The HTML elements ``source`` and ``track`` were added to the list
of empty tags in ``lxml.html.defs``.

* Registering a prefix other than "xml" for the XML namespace is now rejected.

* Failing to write XSLT output to a file could raise a misleading exception.
It now raises ``IOError``.

Other changes
-------------

* Support for Python 3.4 was removed.

* When using ``Element.find*()`` with prefix-namespace mappings, the empty string
is now accepted to define a default namespace, in addition to the previously
supported ``None`` prefix.  Empty strings are more convenient since they keep
all prefix keys in a namespace dict strings, which simplifies sorting etc.

* The ``ElementTree.write_c14n()`` method has been deprecated in favour of the
long preferred ``ElementTree.write(f, method="c14n")``.  It will be removed
in a future release.

4.3.5

==================

* Rebuilt with Cython 0.29.13 to support Python 3.8.

4.3.4

==================

* Rebuilt with Cython 0.29.10 to support Python 3.8.

4.3.3

==================

Bugs fixed
----------

* Fix leak of output buffer and unclosed files in ``_XSLTResultTree.write_output()``.

4.3.2

==================

Bugs fixed
----------

* Crash in 4.3.1 when appending a child subtree with certain text nodes.

Other changes
-------------

* Built with Cython 0.29.6.

4.3.1

==================

Bugs fixed
----------

* LP1814522: Crash when appending a child subtree that contains unsubstituted
entity references.

Other changes
-------------

* Built with Cython 0.29.5.

4.3.0

==================

Features added
--------------

* The module ``lxml.sax`` is compiled using Cython in order to speed it up.

* GH267: ``lxml.sax.ElementTreeProducer`` now preserves the namespace prefixes.
If two prefixes point to the same URI, the first prefix in alphabetical order
is used.  Patch by Lennart Regebro.

* Updated ISO-Schematron implementation to 2013 version (now MIT licensed)
and the corresponding schema to the 2016 version (with optional "properties").

Other changes
-------------

* GH270, GH271: Support for Python 2.6 and 3.3 was removed.
Patch by hugovk.

* The minimum dependency versions were raised to libxml2 2.9.2 and libxslt 1.1.27,
which were released in 2014 and 2012 respectively.

* Built with Cython 0.29.2.

4.2.6

==================

Bugs fixed
----------

* LP1799755: Fix a DeprecationWarning in Py3.7+.

* Import warnings in Python 3.6+ were resolved.

4.2.5

==================

Bugs fixed
----------

* Javascript URLs that used URL escaping were not removed by the HTML cleaner.
Security problem found by Omar Eissa.  (CVE-2018-19787)

4.2.4

==================

Features added
--------------

* GH259: Allow using ``pkg-config`` for build configuration.
Patch by Patrick Griffis.

Bugs fixed
----------

* LP1773749, GH268: Crash when moving an element to another document with
``Element.insert()``.
Patch by Alexander Weggerle.

4.2.3

==================

Bugs fixed
----------

* Reverted GH265: lxml links against zlib as a shared library again.

4.2.2

==================

Bugs fixed
----------

* GH266: Fix sporadic crash during GC when parse-time schema validation is used
and the parser participates in a reference cycle.
Original patch by Julien Greard.

* GH265: lxml no longer links against zlib as a shared library, only on static builds.
Patch by Nehal J Wani.

4.2.1

==================

Bugs fixed
----------

* LP1755825: ``iterwalk()`` failed to return the 'start' event for the initial
element if a tag selector is used.

* LP1756314: Failure to import 4.2.0 into PyPy due to a missing library symbol.

* LP1727864, GH258: Add "-isysroot" linker option on MacOS as needed by XCode 9.

4.2.0

==================

Features added
--------------

* GH255: ``SelectElement.value`` returns more standard-compliant and
browser-like defaults for non-multi-selects.  If no option is selected, the
value of the first option is returned (instead of None).  If multiple options
are selected, the value of the last one is returned (instead of that of the
first one).  If no options are present (not standard-compliant)
``SelectElement.value`` still returns ``None``.

* GH261: The ``HTMLParser()`` now supports the ``huge_tree`` option.
Patch by stranac.

Bugs fixed
----------

* LP1551797: Some XSLT messages were not captured by the transform error log.

* LP1737825: Crash at shutdown after an interrupted iterparse run with XMLSchema
validation.

Other changes
-------------
Links

@wpt-pr-bot
Copy link
Collaborator

There are no reviewers for this pull request. Please reach out on W3C's irc server (irc.w3.org, port 6665) on channel #testing (web client) to get help with this. Thank you!

@Hexcles Hexcles merged commit 5b2318a into master Nov 26, 2020
@Hexcles Hexcles deleted the pyup-update-lxml-4.1.1-to-4.5.2 branch November 26, 2020 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants