Mailinglist Archive: opensuse-updates (111 mails)

< Previous Next >
openSUSE-RU-2013:0583-1: important: python-lxml: Updated to 3.1.0
openSUSE Recommended Update: python-lxml: Updated to 3.1.0

Announcement ID: openSUSE-RU-2013:0583-1
Rating: important
References: #798292
Affected Products:
openSUSE 12.3

An update that has one recommended fix can now be installed.


This update fixes the following issues for python-lxml:
- Updated to 3.1.0 to fix bnc#798292. The previous version
is not usable with python3
+ fixes since 2.3.4:
+ 3.1.0 (2013-02-10):
+ Features added:
+ lxml.html.clean allows overriding the set of
attributes that it considers 'safe'.
+ Bugs fixed
+ copy.copy(el.attrib) raised an exception. It now
returns a copy of the attributes as a plain Python dict.
+ When used with namespace prefixes, the el.find*()
methods always used the first namespace mapping that was
provided for each path expression instead of using the one
that was actually passed in for the current run.
+ Fix undefined C symbol in Python runtimes
compiled without threading support.
+ 3.1beta1 (2012-12-21):
+ Features added
+ New build-time option --with-unicode-strings for
Python 2 that makes the API always return Unicode strings
for names and text instead of byte strings for plain ASCII
+ New incremental XML file writing API
+ E factory in lxml.objectify is callable to
simplify the creation of tags with non-identifier names
without having to resort to getattr().
+ Bugs fixed
+ When starting from a non-namespaced element in
lxml.objectify, searching for a child without explicitly
specifying a namespace incorrectly found namespaced
elements with the requested local name, instead of
restricting the search to non-namespaced children.
+ Deprecation warnings were fixed for Python 3.x.
+ lxml.html.fromstring() failed to accept bytes
input in Py3.
+ Static build of libxml2 2.9.0 failed due to
missing file.
+ Other changes
+ The externally useless class
_ObjectifyElementMakerCaller was removed from the module
API of lxml.objectify.
+ lxml.builder is faster for adding text to
elements with many children.
+ 3.0.2 (2012-12-14):
+ Features added
+ Bugs fixed
+ Fix crash during interpreter shutdown by
switching to Cython 0.17.3 for building.
+ 3.0.1 (2012-10-14):
+ Bugs fixed
+ Element proxies could disappear during garbage
collection in PyPy without proper cleanup.
+ Failure to work with libxml2 2.6.x.
+ static MacOS-X build failed in Py3.
+ 3.0 (2012-10-08):
+ 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.
+ 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 commands that do not actually run a
build), pass "--without-cython".
+ 3.0beta1 (2012-09-26):
+ Features added
+ Python level access to (optional) libxml2 memory
debugging features to simplify debugging of memory leaks
+ Bugs fixed
+ Fix a memory leak in XPath by switching to Cython
+ Some tests were adapted to work with PyPy.
+ Other changes
+ The code was adapted to work with the upcoming
libxml2 2.9.0 release.
+ 3.0alpha2 (2012-08-23):
+ Features added
+ 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.
+ Bugs fixed
+ Passing long Unicode strings into the feed()
parser interface failed to read the entire string.
+ 3.0alpha1 (2012-07-31):
+ Features added
+ Initial support for building in PyPy (through
+ DTD objects gained an API that allows read access
to their declarations.
+ 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
+ Bugs fixed
+ 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.
+ 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 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,
_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.6 (2012-09-28):
+ Bugs fixed
+ Passing long Unicode strings into the feed()
parser interface failed to read the entire string.
+ 2.3.5 (2012-07-31):
+ Bugs fixed
+ Crash when merging text nodes in element.remove().
+ Crash in sax/target parser when reporting empty

Patch Instructions:

To install this openSUSE Recommended Update use YaST online_update.
Alternatively you can run the command listed for your product:

- openSUSE 12.3:

zypper in -t patch openSUSE-2013-276

To bring your system up-to-date, use "zypper patch".

Package List:

- openSUSE 12.3 (i586 x86_64):


- openSUSE 12.3 (noarch):



< Previous Next >
This Thread
  • No further messages