Skip to main content
Files added late

5 files were added to this release more than 14 days after its initial publication. Inspect the release files before installing.

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 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. To the same end, running easy_install lxml==dev will install lxml from https://github.com/lxml/lxml/tarball/master#egg=lxml-dev if you have an appropriate version of Cython installed.

After an official release of a new stable series, bug fixes may become available at https://github.com/lxml/lxml/tree/lxml-3.0 . Running easy_install lxml==3.0bugfix will install the unreleased branch state from https://github.com/lxml/lxml/tarball/lxml-3.0#egg=lxml-3.0bugfix as soon as a maintenance branch has been established. Note that this requires Cython to be installed at an appropriate version for the build.

3.0 (2012-10-08)

Features added

  • Python level access to (optional) libxml2 memory debugging features to simplify debugging of memory leaks etc.

  • The .iter() method of elements now accepts tag arguments like "{*}name" to search for elements with a given local name in any namespace. With this addition, all combinations of wildcards now work as expected: "{ns}name", "{}name", "{*}name", "{ns}*", "{}*" and "{*}*". Note that "name" is equivalent to "{}name", but "*" is "{*}*". The same change applies to the .getiterator(), .itersiblings(), .iterancestors(), .iterdescendants(), .iterchildren() and .itertext() methods;the strip_attributes(), strip_elements() and strip_tags() functions as well as the iterparse() class.

  • C14N allows specifying the inclusive prefixes to be promoted to top-level during exclusive serialisation.

  • Initial support for building in PyPy (through cpyext).

  • DTD objects gained an API that allows read access to their declarations.

  • xpathgrep.py gained support for parsing line-by-line (e.g. from grep output) and for surrounding the output with a new root tag.

  • E-factory in lxml.builder accepts subtypes of known data types (such as string subtypes) when building elements around them.

  • Tree iteration and iterparse() with a selective tag argument supports passing a set of tags. Tree nodes will be returned by the iterators if they match any of the tags.

Bugs fixed

  • End-of-file handling was incorrect in iterparse() when reading from a low-level C file stream and failed in libxml2 2.9.0 due to its improved consistency checks.

  • Passing long Unicode strings into the feed() parser interface failed to read the entire string.

  • The .find*() methods in lxml.objectify no longer use XPath internally, which makes them faster in many cases (especially when short circuiting after a single or couple of elements) and fixes some behavioural differences compared to lxml.etree. Note that this means that they no longer support arbitrary XPath expressions but only the subset that the ElementPath language supports. The previous implementation was also redundant with the normal XPath support, which can be used as a replacement.

  • el.find('*') could accidentally return a comment or processing instruction that happened to be in the wrong spot. (Same for the other .find*() methods.)

  • The error logging is less intrusive and avoids a global setup where possible.

  • Fixed undefined names in html5lib parser.

  • xpathgrep.py did not work in Python 3.

  • Element.attrib.update() did not accept an attrib of another Element as parameter.

  • For subtypes of ElementBase that make the .text or .tail properties immutable (as in objectify, for example), inserting text when creating Elements through the E-Factory feature of the class constructor would fail with an exception, stating that the text cannot be modified.

Other changes

  • The build no longer uses Cython by default unless the generated C files are missing. To use Cython, pass the option “–with-cython”. To ignore the fatal build error when Cython is required but not available (e.g. to run special setup.py commands that do not actually run a build), pass “–without-cython”.

  • The code was adapted to work with the upcoming libxml2 2.9.0 release.

  • The code base was overhauled to properly use ‘const’ where the API of libxml2 and libxslt requests it. This also has an impact on the public C-API of lxml itself, as defined in etreepublic.pxd, as well as the provided declarations in the lxml/includes/ directory. Code that uses these declarations may have to be adapted. On the plus side, this fixes several C compiler warnings, also for user code, thus making it easier to spot real problems again.

  • The functionality of “lxml.cssselect” was moved into a separate PyPI package called “cssselect”. To continue using it, you must install that package separately. The “lxml.cssselect” module is still available and provides the same interface, provided the “cssselect” package can be imported at runtime.

  • Element attributes passed in as an attrib dict or as keyword arguments are now sorted by (namespaced) name before being created to make their order predictable for serialisation and iteration. Note that adding or deleting attributes afterwards does not take that order into account, i.e. setting a new attribute appends it after the existing ones.

  • Several classes that are for internal use only were removed from the lxml.etree module dict: _InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext, _ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext, __ContentOnlyElement, _AttribIterator, _NamespaceRegistry, _ClassNamespaceRegistry, _FunctionNamespaceRegistry, _XPathFunctionNamespaceRegistry, _ParserDictionaryContext, _FileReaderContext, _ParserContext, _PythonSaxParserTarget, _TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy, _ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper, _OpaqueDocumentWrapper, _ModifyContentOnlyProxy, _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy, _AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter, _ParserSchemaValidationContext, _XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam

  • Several internal classes can no longer be inherited from: _InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult, _IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry, _XPathFunctionNamespaceRegistry, _ParserDictionaryContext, _FileReaderContext, _PythonSaxParserTarget, _TargetParserContext, _ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper, _ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy, _AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext, _XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam, _XSLTResultTree, _XSLTProcessingInstruction

Metadata

Release files for lxml 3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Files added late

5 files were uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release files before installing.

Source distribution (sdist)

Source distribution for lxml 3.0
File Size Uploaded
lxml-3.0.tar.gz 3.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for lxml 3.0
File
lxml-3.0.win-amd64-py2.7.exe Details
lxml-3.0.win-amd64-py2.6.exe Details
lxml-3.0.win32-py3.2.exe Details
lxml-3.0.win32-py2.7.exe Details
lxml-3.0.win32-py2.6.exe Details

Total release size: 19.5 MB

Release files / lxml-3.0.tar.gz

Download URL lxml-3.0.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
90d6ccc3a6522e26796baa079321427a7d469af968d814f35683ef192111d8f9
BLAKE2b-256 checksum
How to use checksums
0326376fd3b51a113f8a260537bda00ea5fa456643052b7b608423bd74e37db9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / lxml-3.0.win-amd64-py2.7.exe

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL lxml-3.0.win-amd64-py2.7.exe
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
3656374e887b7a9efebfa876250dd7c73f4875c1ce3ea4dc76d87cbcb413fbf7
BLAKE2b-256 checksum
How to use checksums
302f29d562eba5586a50d6bbe3b3f0657b3ec1f050a8e4f1be6c411c2f621a8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / lxml-3.0.win-amd64-py2.6.exe

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL lxml-3.0.win-amd64-py2.6.exe
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
89f36359d440ccd6e25de258c156e507398aed78b5639bea490da5101e7a0fd9
BLAKE2b-256 checksum
How to use checksums
9867040c9e42463ebbf6042e37cc5c7c05f1e4d18291043a6ca9e8c7a8f38d01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / lxml-3.0.win32-py3.2.exe

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL lxml-3.0.win32-py3.2.exe
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b2ad432af16a50405b04369653aa4bcffd86483897181756aa6156a99095f44a
BLAKE2b-256 checksum
How to use checksums
9a6103a0bbadfe7603f974dd2dc1aa7b6f40d33f5c586df4ab990a6560b0f368
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / lxml-3.0.win32-py2.7.exe

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL lxml-3.0.win32-py2.7.exe
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
e19ad09c69611748fe21a6c75607353226e3740642373d5fdde64aaaa76d15cf
BLAKE2b-256 checksum
How to use checksums
2e153fdb00e2c00e87b1aa6386adffdacc37d9b09042ef7b3b983f548850663f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / lxml-3.0.win32-py2.6.exe

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL lxml-3.0.win32-py2.6.exe
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
0b25f4a502dd8a70727fc2408691d5d2c8873ea4d23f5ca52d6738f257d064a7
BLAKE2b-256 checksum
How to use checksums
5cc1cf5501dbb6b5d596552ed46dae7fdbd5a181b08bbf522073ef93b74349f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

6.0.0

94 release files

5.1.1

73 release files

5.0.2

81 release files

5.0.0

88 release files

4.9.4

93 release files

4.9.2

77 release files

4.9.0

63 release files

4.8.0

61 release files

4.7.1

60 release files

4.6.5

60 release files

4.6.3

48 release files

4.6.2

37 release files

4.6.1

37 release files

4.6.0

36 release files

4.5.1

27 release files

4.5.0

27 release files

4.4.3

27 release files

4.4.2

26 release files

4.4.1

26 release files

4.4.0

22 release files

4.3.5

24 release files

4.3.4

24 release files

4.3.3

26 release files

4.3.2

26 release files

4.2.5

30 release files

4.2.3

26 release files

4.2.2

27 release files

4.2.1

28 release files

4.2.0

28 release files

4.1.0

28 release files

4.0.0

28 release files

3.7.3

22 release files

3.7.1

16 release files

3.7.0

9 release files

3.6.4

14 release files

3.6.3

14 release files

3.6.2

9 release files

3.6.1

9 release files

3.6.0

21 release files

3.5.0

16 release files

3.4.4

16 release files

3.4.3

11 release files

3.4.1

16 release files

3.4.0

16 release files

3.3.6

16 release files

3.3.5

16 release files

3.3.2

11 release files

3.3.1

11 release files

3.3.0

1 release file

3.2.3

11 release files

3.2.2

11 release files

3.2.1

11 release files

3.2.0

11 release files

3.1.2

11 release files

3.1.1

11 release files

3.1.0

11 release files

3.0.2

6 release files

This release

3.0 This release

6 release files

2.3.6

1 release file

2.3.5

1 release file

2.3.4

1 release file

2.3.3

1 release file

2.3.2

1 release file

2.3.1

1 release file

2.3

22 release files

2.2.7

5 release files

2.2.6

9 release files

2.2.5

1 release file

2.2.4

17 release files

2.2.3

1 release file

2.2.2

16 release files

2.2

9 release files

2.1.5

7 release files

2.1.4

7 release files

2.1.3

7 release files

2.1.2

7 release files

2.1.1

7 release files

2.1

7 release files

2.0.11

7 release files

2.0.10

7 release files

2.0.9

7 release files

2.0.8

7 release files

2.0.7

5 release files

2.0.6

5 release files

2.0.5

5 release files

2.0.4

5 release files

2.0

5 release files

1.3.6

5 release files

1.3.5

1 release file

1.3.4

5 release files

1.3.3

5 release files

1.3.2

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page