The lxml XML toolkit for Python https://lxml.de/
Find a file
2026-01-17 07:45:56 +01:00
.github CI: Use regular Py3.14 builds and include 3.15-dev. 2026-01-17 07:28:10 +01:00
benchmark Fix benchmark setup. 2025-04-06 09:53:48 +02:00
doc Docs: Fix doctest code hiding. 2026-01-17 07:27:49 +01:00
samples [svn r3984] r4817@delle: sbehnel | 2008-10-18 21:34:58 +0200 2008-10-18 21:35:44 +02:00
src/lxml Add missing "noexcept" to fix a memory leak. 2026-01-17 07:44:58 +01:00
tools CI: Do not compile source installed Cython in "-dev" CPython builds. 2026-01-17 07:29:44 +01:00
.coveragerc Exclude non-project files from coverage analysis. 2019-03-01 14:46:42 +01:00
.gitignore Update .gitignore. 2024-01-18 12:02:57 +01:00
.hgignore Add "libs" download directory to hg-ignored files. 2018-11-23 22:17:17 +01:00
.hgtags Added tag lxml-4.2.4 for changeset 1220d40cbfe3 2018-08-03 18:46:51 +02:00
buildlibxml.py Build: Clean up windows libs download function. 2026-01-17 07:38:46 +01:00
CHANGES.txt Merge branch 'lxml-6.0' 2026-01-17 07:45:56 +01:00
CREDITS.txt credits 2012-10-09 09:15:55 +02:00
download_artefacts.py Remove appveyor usage. 2025-04-18 11:00:53 +02:00
IDEAS.txt update ideas file and remove things that were already done 2016-12-26 16:38:55 +01:00
INSTALL.txt Remove support for Python 3.8 due to low usage. 2025-12-04 06:31:21 +01:00
LICENSE.txt Add license title "BSD 3-Clause License" as TL;DR. 2025-04-23 04:13:13 +02:00
LICENSES.txt remove embedded copy of the doctest module 2017-03-17 20:54:19 +01:00
Makefile Revert "Build: Use latest libxslt 1.1.45." 2025-12-04 08:58:17 +01:00
MANIFEST.in Add missing apidoc files to sdist. 2022-07-15 09:12:37 +02:00
pyproject.toml Build: Remove test command since it does not find the tests. 2025-12-17 10:39:44 +01:00
README.rst Readme: Add project income report for 2024. 2025-06-15 16:07:24 +02:00
requirements.txt Remove support for Python 3.8 due to low usage. 2025-12-04 06:31:21 +01:00
SECURITY.md Add security policy document (GH-372) 2023-06-16 09:26:19 +02:00
setup.py Build: Pass abi3 Python version to 'bdist_wheel' command. 2025-12-06 18:29:28 +01:00
setupinfo.py Set the 'CYTHON_UNSAFE_IGNORE_PYMUTEX_ABI_COMPATIBILITY' C macro to disable the safety check when automatically switching to "PyThread_type_lock" in abi3 wheels. 2025-12-14 14:20:34 +01:00
test.py Move tests back into source tree and fix some test import issues. Add a new test option "--no-src" to test out of source installations (e.g. from wheels). 2024-06-18 10:27:12 +02:00
TODO.txt TODO: Add notes about changes in libxml2 2.14. 2025-06-26 23:18:51 +02:00
tox.ini Remove support for Python 3.8 due to low usage. 2025-12-04 06:31:21 +01:00
update-error-constants.py Support parsing the libxml2 enum constants from libxml2's doxygen XML files, libxml2 2.15 removed the API-XML file. 2025-09-21 13:37:11 +02:00
valgrind-python.supp Update valgrind suppressions from CPython 3.8. 2019-04-06 18:59:39 +02:00
versioninfo.py LP#1840234: Move package version from version.txt to "lxml.__version__". 2019-08-15 15:02:36 +02:00

What is lxml?
=============

lxml is the most feature-rich and easy-to-use library for processing XML and HTML in the Python language.
It's also very fast and memory friendly, just so you know.

For an introduction and further documentation, see `doc/main.txt`_.

For installation information, see `INSTALL.txt`_.

For issue tracker, see https://bugs.launchpad.net/lxml

Support the project
-------------------

lxml has been downloaded from the `Python Package Index`_
millions of times and is also available directly in many package
distributions, e.g. for Linux or macOS.

.. _`Python Package Index`: https://pypi.python.org/pypi/lxml

Most people who use lxml do so because they like using it.
You can show us that you like it by blogging about your experience
with it and linking to the project website.

If you are using lxml for your work and feel like giving a bit of
your own benefit back to support the project, consider sending us
money through GitHub Sponsors, Tidelift or PayPal that we can use
to buy us free time for the maintenance of this great library, to
fix bugs in the software, review and integrate code contributions,
to improve its features and documentation, or to just take a deep
breath and have a cup of tea every once in a while.
Please read the Legal Notice below, at the bottom of this page.
Thank you for your support.

.. class:: center

  Support lxml through `GitHub Sponsors <https://github.com/users/scoder/sponsorship>`_

  via a `Tidelift subscription <https://tidelift.com/subscription/pkg/pypi-lxml>`_

  or via PayPal:

  |Donate|_

.. _`Donate`: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=R56JE3VCPDA9N

Please `contact Stefan Behnel <http://consulting.behnel.de/>`_
for other ways to support the lxml project,
as well as commercial consulting, customisations and trainings on lxml and
fast Python XML processing.

Note that we are not accepting donations in crypto currencies.
Much of the development and hosting for lxml is done in a carbon-neutral way
or with compensated and very low emissions.
Crypto currencies do not fit into that ambition.

.. |Donate| image:: https://lxml.de/paypal_btn_donateCC_LG.png
            :width: 160
            :height: 47
            :alt: Donate to the lxml project

.. _`doc/main.txt`: https://github.com/lxml/lxml/blob/master/doc/main.txt
.. _`INSTALL.txt`: http://lxml.de/installation.html

`GitHub Actions <https://docs.github.com/en/actions>`_
supports the lxml project with their build and CI servers.


Project income report
---------------------

lxml has `well over 100 million downloads <https://pypistats.org/packages/lxml>`_
per month on PyPI.

* Total project income in 2024: EUR 2826.29  (235.52 € / month, 1.96 € / 1,000,000 downloads)

  - Tidelift: EUR 2777.34
  - Paypal: EUR 48.95

* Total project income in 2023: EUR 2776.56  (231.38 € / month, 2.89 € / 1,000,000 downloads)

  - Tidelift: EUR 2738.46
  - Paypal: EUR 38.10

* Total project income in 2022: EUR 2566.38  (213.87 € / month, 3.56 € / 1,000,000 downloads)

  - Tidelift: EUR 2539.38
  - Paypal: EUR 24.32

* Total project income in 2021: EUR 4640.37  (386.70 € / month)

  - Tidelift: EUR 4066.66
  - Paypal: EUR 223.71
  - other: EUR 350.00

* Total project income in 2020: EUR 6065,86  (506.49 € / month)

  - Tidelift: EUR 4064.77
  - Paypal: EUR 1401.09
  - other: EUR 600.00

* Total project income in 2019: EUR 717.52  (59.79 € / month)

  - Tidelift: EUR 360.30
  - Paypal: EUR 157.22
  - other: EUR 200.00


Legal Notice for Donations
--------------------------

Any donation that you make to the lxml project is voluntary and
is not a fee for any services, goods, or advantages.  By making
a donation to the lxml project, you acknowledge that we have the
right to use the money you donate in any lawful way and for any
lawful purpose we see fit and we are not obligated to disclose
the way and purpose to any party unless required by applicable
law.  Although lxml is free software, to the best of our knowledge
the lxml project does not have any tax exempt status.  The lxml
project is neither a registered non-profit corporation nor a
registered charity in any country.  Your donation may or may not
be tax-deductible; please consult your tax advisor in this matter.
We will not publish or disclose your name and/or e-mail address
without your consent, unless required by applicable law.  Your
donation is non-refundable.