-
- 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
[2.3.5-1]
- Bugs fixed
-
- Crash when merging text nodes in element.remove().
-
- Crash in sax/target parser when reporting empty doctype.
[2.3.4-1]
- Bugs fixed
-
- Crash when building an nsmap (Element property) with empty namespace
- URIs.
-
- Crash due to race condition when errors (or user messages) occur during
- threaded XSLT processing (or compilation).
-
- XSLT stylesheet compilation could ignore compilation errors.
[2.3.3-4]
- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3
[2.3.3-3]
- remove rhel logic from with_python3 conditional
[2.3.3-2]
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
[2.3.3-1]
- 2.3.3 (2012-01-04)
- Features added
-
- lxml.html.tostring() gained new serialisation options with_tail and
- doctype.
- Bugs fixed
-
- Fixed a crash when using iterparse() for HTML parsing and requesting
- start events.
-
- Fixed parsing of more selectors in cssselect. Whitespace before pseudo-
- elements and pseudo-classes is significant as it is a descendant
- combinator. ‘E :pseudo’ should parse the same as ‘E *:pseudo’, not
- ‘E:pseudo’. Patch by Simon Sapin.
-
- lxml.html.diff no longer raises an exception when hitting ‘img’ tags
- without ‘src’ attribute.
[2.3.2-1]
- 2.3.2 (2011-11-11)
- Features added
-
- lxml.objectify.deannotate() has a new boolean option
-
cleanup_namespaces to remove the objectify namespace declarations
-
(and generally clean up the namespace declarations) after removing
-
the type annotations.
-
- lxml.objectify gained its own SubElement() function as a copy of
-
etree.SubElement to avoid an otherwise redundant import of
-
lxml.etree on the user side.
- Bugs fixed
-
- Fixed the ‘descendant’ bug in cssselect a second time (after a first
-
fix in lxml 2.3.1). The previous change resulted in a serious
-
performance regression for the XPath based evaluation of the
-
translated expression. Note that this breaks the usage of some
-
of the generated XPath expressions as XSLT location paths that
-
previously worked in 2.3.1.
-
- Fixed parsing of some selectors in cssselect. Whitespace after
-
combinators '>', '+' and '~' is now correctly ignored. Previously
-
it was parsed as a descendant combinator. For example, 'div> .foo'
-
was parsed the same as 'div>* .foo' instead of 'div>.foo'. Patch by
-
Simon Sapin.