164 lines
6.4 KiB
Plaintext
164 lines
6.4 KiB
Plaintext
|
|
Metadata-Version: 2.4
|
||
|
|
Name: lxml
|
||
|
|
Version: 6.0.0
|
||
|
|
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
|
||
|
|
Home-page: https://lxml.de/
|
||
|
|
Author: lxml dev team
|
||
|
|
Author-email: lxml@lxml.de
|
||
|
|
Maintainer: lxml dev team
|
||
|
|
Maintainer-email: lxml@lxml.de
|
||
|
|
License: BSD-3-Clause
|
||
|
|
Project-URL: Source, https://github.com/lxml/lxml
|
||
|
|
Project-URL: Bug Tracker, https://bugs.launchpad.net/lxml
|
||
|
|
Classifier: Development Status :: 5 - Production/Stable
|
||
|
|
Classifier: Intended Audience :: Developers
|
||
|
|
Classifier: Intended Audience :: Information Technology
|
||
|
|
Classifier: License :: OSI Approved :: BSD License
|
||
|
|
Classifier: Programming Language :: Cython
|
||
|
|
Classifier: Programming Language :: Python :: 3
|
||
|
|
Classifier: Programming Language :: Python :: 3.8
|
||
|
|
Classifier: Programming Language :: Python :: 3.9
|
||
|
|
Classifier: Programming Language :: Python :: 3.10
|
||
|
|
Classifier: Programming Language :: Python :: 3.11
|
||
|
|
Classifier: Programming Language :: Python :: 3.12
|
||
|
|
Classifier: Programming Language :: Python :: 3.13
|
||
|
|
Classifier: Programming Language :: C
|
||
|
|
Classifier: Operating System :: OS Independent
|
||
|
|
Classifier: Topic :: Text Processing :: Markup :: HTML
|
||
|
|
Classifier: Topic :: Text Processing :: Markup :: XML
|
||
|
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||
|
|
Requires-Python: >=3.8
|
||
|
|
License-File: LICENSE.txt
|
||
|
|
License-File: LICENSES.txt
|
||
|
|
Provides-Extra: source
|
||
|
|
Provides-Extra: cssselect
|
||
|
|
Requires-Dist: cssselect>=0.7; extra == "cssselect"
|
||
|
|
Provides-Extra: html5
|
||
|
|
Requires-Dist: html5lib; extra == "html5"
|
||
|
|
Provides-Extra: htmlsoup
|
||
|
|
Requires-Dist: BeautifulSoup4; extra == "htmlsoup"
|
||
|
|
Provides-Extra: html-clean
|
||
|
|
Requires-Dist: lxml_html_clean; extra == "html-clean"
|
||
|
|
Dynamic: author
|
||
|
|
Dynamic: author-email
|
||
|
|
Dynamic: classifier
|
||
|
|
Dynamic: description
|
||
|
|
Dynamic: home-page
|
||
|
|
Dynamic: license
|
||
|
|
Dynamic: license-file
|
||
|
|
Dynamic: maintainer
|
||
|
|
Dynamic: maintainer-email
|
||
|
|
Dynamic: project-url
|
||
|
|
Dynamic: provides-extra
|
||
|
|
Dynamic: requires-python
|
||
|
|
Dynamic: summary
|
||
|
|
|
||
|
|
lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.
|
||
|
|
It provides safe and convenient access to these libraries using the
|
||
|
|
ElementTree API.
|
||
|
|
|
||
|
|
It extends the ElementTree API significantly to offer support for XPath,
|
||
|
|
RelaxNG, XML Schema, XSLT, C14N and much more.
|
||
|
|
|
||
|
|
To contact the project, go to the `project home page <https://lxml.de/>`_
|
||
|
|
or see our bug tracker at https://launchpad.net/lxml
|
||
|
|
|
||
|
|
In case you want to use the current in-development version of lxml,
|
||
|
|
you can get it from the github repository at
|
||
|
|
https://github.com/lxml/lxml . Note that this requires Cython to
|
||
|
|
build the sources, see the build instructions on the project home page.
|
||
|
|
|
||
|
|
|
||
|
|
After an official release of a new stable series, bug fixes may become available at
|
||
|
|
https://github.com/lxml/lxml/tree/lxml-6.0 .
|
||
|
|
Running ``pip install https://github.com/lxml/lxml/archive/refs/heads/lxml-6.0.tar.gz``
|
||
|
|
will install the unreleased branch state as soon as a maintenance branch has been established.
|
||
|
|
Note that this requires Cython to be installed at an appropriate version for the build.
|
||
|
|
|
||
|
|
6.0.0 (2025-06-26)
|
||
|
|
==================
|
||
|
|
|
||
|
|
Features added
|
||
|
|
--------------
|
||
|
|
|
||
|
|
* GH#463: ``lxml.html.diff`` is faster and provides structurally better diffs.
|
||
|
|
Original patch by Steven Fernandez.
|
||
|
|
|
||
|
|
* GH#405: The factories ``Element`` and ``ElementTree`` can now be used in type hints.
|
||
|
|
|
||
|
|
* GH#448: Parsing from ``memoryview`` and other buffers is supported to allow zero-copy parsing.
|
||
|
|
|
||
|
|
* GH#437: ``lxml.html.builder`` was missing several HTML5 tag names.
|
||
|
|
Patch by Nick Tarleton.
|
||
|
|
|
||
|
|
* GH#458: ``CDATA`` can now be written into the incremental ``xmlfile()`` writer.
|
||
|
|
Original patch by Lane Shaw.
|
||
|
|
|
||
|
|
* A new parser option ``decompress=False`` was 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_FEATURES`` and ``etree.LIBXML_FEATURES``.
|
||
|
|
This currently includes
|
||
|
|
``catalog``, ``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 ``head`` and ``body`` properties of ``lxml.html`` elements failed if no such element
|
||
|
|
was found. They now return ``None`` instead.
|
||
|
|
Original patch by FVolral.
|
||
|
|
|
||
|
|
* Tag names provided by code (API, not data) that are longer than ``INT_MAX``
|
||
|
|
could be truncated or mishandled in other ways.
|
||
|
|
|
||
|
|
* ``.text_content()`` on ``lxml.html`` elements 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.monitoring``
|
||
|
|
support due to the lack of support in https://github.com/nedbat/coveragepy/issues/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 ``Schematron`` class 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 ``arm7l`` target.
|
||
|
|
|
||
|
|
* GH#465: Windows wheels include the ``arm64`` target.
|
||
|
|
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()`` and ``MemDebug.show()`` were removed completely.
|
||
|
|
libxml2 2.13.0 discarded this feature.
|
||
|
|
|
||
|
|
|