Hi all,

I'm proud to release lxml 2.1beta3 to PyPI. This is the first lxml release
that builds and works on Python 2.3, 2.4, 2.5, 2.6 (beta) and 3.0 (beta).

http://codespeak.net/lxml/dev/
http://pypi.python.org/pypi/lxml/2.1beta3

Install with

    easy_install lxml==2.1beta3

What is lxml?

"""
In short: lxml is the most feature-rich and easy-to-use library for working
with XML and HTML in the Python language.

lxml is a Pythonic binding for the libxml2 and libxslt libraries. It is unique
in that it combines the speed and feature completeness of these libraries with
the simplicity of a native Python API.
"""

Unusual for a beta release, the third beta contains more new features than bug
fixes, which is largely (but not only) due to adaptations with respect to
Python 3. The changelog follows below.

I expect this to be the last beta release before 2.1 final. Feedback is very
much appreciated, especially on the "experimental" features like the namespace
cleanup function and on Python 2.6/3.0 support. Your feedback will help in
making the final release the best lxml ever.

Have fun,
Stefan


2.1beta3 (2008-06-19)
Features added

    * Major overhaul of tools/xpathgrep.py script.
    * Pickling ElementTree objects in lxml.objectify.
    * Support for parsing from file-like objects that return unicode strings.
    * New function etree.cleanup_namespaces(el) that removes unused namespace
      declarations from a (sub)tree (experimental).
    * XSLT results support the buffer protocol in Python 3.
    * Polymorphic functions in lxml.html that accept either a tree or a
      parsable string will return either a UTF-8 encoded byte string, a
      unicode string or a tree, based on the type of the input. Previously,
      the result was always a byte string or a tree.
    * Support for Python 2.6 and 3.0 beta.
    * File name handling now uses a heuristic to convert between byte strings
      (usually filenames) and unicode strings (usually URLs).
    * Parsing from a plain file object frees the GIL under Python 2.x.
    * Running iterparse() on a plain file (or filename) frees the GIL on
      reading under Python 2.x.
    * Conversion functions html_to_xhtml() and xhtml_to_html() in lxml.html
      (experimental).
    * Most features in lxml.html work for XHTML namespaced tag names
      (experimental).

Bugs fixed

    * ElementTree.parse() didn't handle target parser result.
    * Crash in Element class lookup classes when the __init__() method of the
      super class is not called from Python subclasses.
    * A number of problems related to unicode/byte string conversion of
      filenames and error messages were fixed.
    * Building on MacOS-X now passes the "flat_namespace" option to the C
      compiler, which reportedly prevents build quirks and crashes on this
      platform.
    * Windows build was broken.
    * Rare crash when serialising to a file object with certain encodings.

Other changes

    * Non-ASCII characters in attribute values are no longer escaped on
      serialisation.
    * Passing non-ASCII byte strings or invalid unicode strings as .tag,
      namespaces, etc. will result in a ValueError instead of an
      AssertionError (just like the tag well-formedness check).
    * Up to several times faster attribute access (i.e. tree traversal) in
      lxml.objectify.

--
http://mail.python.org/mailman/listinfo/python-announce-list

        Support the Python Software Foundation:
        http://www.python.org/psf/donations.html

Reply via email to