- Update to 5.2.2:
- GH#417: The test_feed_parser test could fail if lxml_html_clean
was not installed. It is now skipped in that case.
- LP#2059910: The minimum CPU architecture for the Linux x86 binary
wheels was set back to "core2", without SSE 4.2.
- If libxml2 uses iconv, the compile time version is available as
etree.ICONV_COMPILED_VERSION.
- 5.2.1
- LP#2059910: The minimum CPU architecture for the Linux x86 binary
wheels was set back to "core2", but with SSE 4.2 enabled.
- LP#2059977: ``Element.iterfind("//absolute_path")`` failed with a
``SyntaxError`` where it should have issued a warning.
- GH#416: The documentation build was using the non-standard
``which`` command. Patch by Michał Górny.
- 5.2.0
- LP#1958539: The ``lxml.html.clean`` implementation suffered from
several (only if used) security issues in the past and was now
extracted into a separate library:
https://github.com/fedora-python/lxml_html_clean
Projects that use lxml without "lxml.html.clean" will not notice
any difference, except that they won't have potentially vulnerable
code installed. The module is available as an "extra" setuptools
dependency "lxml[html_clean]", so that Projects that need
"lxml.html.clean" will need to switch their requirements from
"lxml" to "lxml[html_clean]", or install the new library
themselves.
- The minimum CPU architecture for the Linux x86 binary wheels was
upgraded to "sandybridge" (launched 2011), and glibc 2.28 / gcc 12
(manylinux_2_28) wheels were added.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=200
* LP#2046398: Inserting/replacing an ancestor into a node's
children could loop indefinitely.
* LP#1980767, GH#379: ``TreeBuilder.close()`` could fail with a
``TypeError`` after parsing incorrect input.
* LP#1522052: A file-system specific test is now optional and
should no longer fail on systems that don't support it.
* Built with Cython 0.29.37.
- drop libxml2212-tests.patch (upstream)
- remove python 2.x from testing
- allow building against any libxml2 version in sle15
* Built with Cython 0.29.28.
* LP#1835708: ElementInclude incorrectly rejected repeated
* LP#1755825: iterwalk() failed to return the 'start' event for the initial
- ElementTree.write() has a new option doctype that writes out
a doctype string before the serialisation, in the same way as
- GH#220: xmlfile allows switching output methods at an element
- LP#1595781, GH#240: added a PyCapsule Python API and C-level
API for passing externally generated libxml2 documents into
- GH#244: error log entries have a new property path with an
XPath expression (if known, None otherwise) that points to the
- The namespace prefix mapping that can be used in ElementPath
- GH#238: Character escapes were not hex-encoded in the xmlfile
- GH#229: fix for externally created XML documents.
strips the option values specified in form attributes but only
- LP#1551797: revert previous fix for XSLT error logging as it
- LP#1673355, GH#233: fromstring() html5parser failed to parse
- The previously undocumented docstring option in
ElementTree.write() produces a deprecation warning and will
- remove patch lxml-fix-attribute-quoting.patch because it is now
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=191
* ``lxml.objectify`` accepted non-decimal numbers like ``²²²``
as integers.
* A memory leak in ``lxml.html.clean`` was resolved by
switching to Cython 0.29.34+.
* GH#348: URL checking in the HTML cleaner was improved.
* GH#371, GH#373: Some regex strings were changed to raw
strings to fix Python warnings.
* Built with Cython 0.29.36 to adapt to changes in Python 3.12.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=185
- update to version 4.9.1:
* Bugs fixed
+ A crash was resolved when using iterwalk() (or canonicalize())
after parsing certain incorrect input. Note that iterwalk() can
crash on valid input parsed with the same parser after failing
to parse the incorrect input.
Note: The doc pdf seems to be outdated, but I couldn't find any newer ones on their webpage. Perhaps the doc package should be deleted?
OBS-URL: https://build.opensuse.org/request/show/988040
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=158
* GH#337: Path-like objects are now supported throughout the API instead of
just strings.
* The ``ElementMaker`` now supports ``QName`` values as tags, which always
override the default namespace of the factory.
* GH#338: In lxml.objectify, the XSI float annotation "nan" and "inf" were spelled in
lower case, whereas XML Schema datatypes define them as "NaN" and "INF" respectively.
* Built with Cython 0.29.28.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=155
* Chunked Unicode string parsing via ``parser.feed()`` now encodes the input data
to the native UTF-8 encoding directly, instead of going through ``Py_UNICODE`` /
``wchar_t`` encoding first, which previously required duplicate recoding in most cases.
* The standard namespace prefixes were mishandled during "C14N2" serialisation on Python 3.
* ``lxml.objectify`` previously accepted non-XML numbers with underscores (like "1_000")
as integers or float values in Python 3.6 and later. It now adheres to the number
format of the XML spec again.
* LP#1939031: Static wheels of lxml now contain the header files of zlib and libiconv
(in addition to the already provided headers of libxml2/libxslt/libexslt).
* Wheels include libxml2 2.9.12+ and libxslt 1.1.34 (also on Windows).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=154
* A vulnerability (CVE-2020-27783) was discovered in the HTML Cleaner by Yaniv Nizry,
which allowed JavaScript to pass through. The cleaner now removes more sneaky
"style" content.
* A vulnerability was discovered in the HTML Cleaner by Yaniv Nizry, which allowed
JavaScript to pass through. The cleaner now removes more sneaky "style" content.
* GH#310: ``lxml.html.InputGetter`` supports ``__len__()`` to count the number of input fields.
Patch by Aidan Woolley.
* ``lxml.html.InputGetter`` has a new ``.items()`` method to ease processing all input fields.
* ``lxml.html.InputGetter.keys()`` now returns the field names in document order.
* GH-309: The API documentation is now generated using ``sphinx-apidoc``.
* LP#1869455: C14N 2.0 serialisation failed for unprefixed attributes
when a default namespace was defined.
* ``TreeBuilder.close()`` raised ``AssertionError`` in some error cases where it
should have raised ``XMLSyntaxError``. It now raises a combined exception to
keep up backwards compatibility, while switching to ``XMLSyntaxError`` as an
interface.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=143
* ``Cleaner()`` now validates that only known configuration options can be set.
* LP#1882606: ``Cleaner.clean_html()`` discarded comments and PIs regardless of the
corresponding configuration option, if ``remove_unknown_tags`` was set.
* LP#1880251: 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.
* LP#1881960: 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=141
* A new function indent() was added to insert tail whitespace
for pretty-printing an XML tree.
* LP#1857794 Tail text of nodes that get removed from a document
using item deletion disappeared silently instead of sticking with the node
that was removed.
* LP#1840234: The package version number is now available as lxml.__version__
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=135
- version update to 4.4.0
* ``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.
* 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.
* GH#269: 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.
* bugfixes, see CHANGES.txt
- deleted sources
- lxmldoc-4.3.3.pdf (renamed)
- added sources
+ lxmldoc-4.4.0.pdf
+ world.txt
OBS-URL: https://build.opensuse.org/request/show/720214
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-lxml?expand=0&rev=127