The lxml XML toolkit for Python https://lxml.de/
  • Python 53.7%
  • Cython 38.9%
  • XSLT 5.8%
  • C 0.6%
  • HTML 0.6%
  • Other 0.4%
Find a file
dependabot[bot] 878f12fa8d
Build: bump the github-actions group with 2 updates (GH-528)
Bumps the github-actions group with 2 updates: [hendrikmuhs/ccache-action](https://github.com/hendrikmuhs/ccache-action) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release).


Updates `hendrikmuhs/ccache-action` from 1.2.23 to 1.2.24
- [Release notes](https://github.com/hendrikmuhs/ccache-action/releases)
- [Commits](d62db5f07c...f09c25b450)

Updates `softprops/action-gh-release` from 3.0.2 to 3.0.3
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](3d0d9888cb...efb35369e0)

---
updated-dependencies:
- dependency-name: hendrikmuhs/ccache-action
  dependency-version: 1.2.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-09 10:38:34 +02:00
.github Build: bump the github-actions group with 2 updates (GH-528) 2026-09-09 10:38:34 +02:00
benchmark Extend ElementPath benchmarks. 2026-06-09 17:40:54 +02:00
doc Docs: Update FAQ on safe processing of untrusted input. 2026-09-09 09:05:32 +02:00
samples [svn r3984] r4817@delle: sbehnel | 2008-10-18 21:34:58 +0200 2008-10-18 21:35:44 +02:00
src/lxml Fix typo in test. 2026-09-04 18:29:15 +02:00
tools CI: Reduce build parallelism since the "etree" module takes longer than everything else anyway, so this saves RAM. 2026-08-17 09:31:52 +02: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 Avoid bare "except:" in Python scripts (GH-521) 2026-08-17 09:41:14 +02:00
CHANGES.txt Update changelog. 2026-09-03 09:55:27 +02:00
CREDITS.txt credits 2012-10-09 09:15:55 +02:00
download_artefacts.py Validate file hashes in release download script. 2026-04-12 19:33:09 +02:00
IDEAS.txt update ideas file and remove things that were already done 2016-12-26 16:38:55 +01:00
INSTALL.txt Fix typos and grammar errors across documentation (GH-489) 2026-03-26 11:37:02 +01:00
libxslt-1.1.43-backport1.patch Build: Add bug patch for libxslt 1.1.43 and apply it during the static library build. 2026-05-17 09:55:07 +02:00
LICENSE.txt Add license title "BSD 3-Clause License" as TL;DR. 2025-04-23 04:13:13 +02:00
LICENSES.txt Add licenses of libraries bundled in binary wheels. 2026-08-17 09:17:22 +02:00
Makefile Support freethreading Python (GH-477) 2026-05-25 10:06:49 +02:00
MANIFEST.in Build: Include missing files in sdist. 2026-08-17 09:12:24 +02:00
patch_lxml_deplibs.py Build: Fix build in Py3.8. 2026-05-18 09:20:46 +02:00
pyproject.toml Build: Fix test command on Windows. 2026-08-22 15:40:00 +02:00
README.rst Update project income report. 2026-04-13 08:30:50 +02:00
requirements.txt Build: Use Cython 3.3.0. 2026-08-22 07:41:17 +02:00
SECURITY.md Change security policy to point to Github security advisories. 2026-04-13 19:08:21 +02:00
setup.py Build: Mark Py3.15 as supported. 2026-08-17 09:40:37 +02:00
setupinfo.py Build: Try to enable "tp_finalize" usage in PyPy because it crashes without it. 2026-08-22 08:32:37 +02:00
test.py Support freethreading Python (GH-477) 2026-05-25 10:06:49 +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 the 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 250 million downloads <https://pypistats.org/packages/lxml>`_
per month on PyPI.

* Total project income in 2025: EUR 3868.43  (322.37 € / month, 1.46 € / 1,000,000 downloads)

  - Tidelift: EUR 2642.35
  - thanks.dev: EUR 449.78
  - Paypal: EUR 388.15

* Total project income in 2024: EUR 3032.06  (252.57 € / month, 2.09 € / 1,000,000 downloads)

  - Tidelift: EUR 2777.34
  - thanks.dev: EUR 205.77
  - Paypal: EUR 48.95

* Total project income in 2023: EUR 2821,16  (235.09 € / month, 2.93 € / 1,000,000 downloads)

  - Tidelift: EUR 2738.46
  - thanks.dev: EUR 44.60
  - 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.