XIST 2.9 has been released!


What is it? ===========

XIST is an extensible HTML/XML generator written in Python. XIST is
also a DOM parser (built on top of SAX2) with a very simple and
Pythonesque tree API. Every XML element type corresponds to a Python
class, and these Python classes provide a conversion method to transform
the XML tree (e.g. into HTML). XIST can be considered "object oriented XSL".


What's new in version 2.9? ==========================

  * XIST trees can now be pickled. The only restriction is that
    global attributes must come from a namespace that has been turned
    into a module via makemod, so that this module can be imported on
    unpickling.
  * Two arguments of the walk method have been renamed: filtermode
    has been renamed to inmode and walkmode has been renamed to
    outmode. For these modes two new values are supported:

    ll.xist.xsc.walkindex
        The value passed to the filter function or yielded from the
        iterator is a list containing child indizes and attribute names
        that specify the path to the node in question.
    ll.xist.xsc.walkrootindex
        The filter function will be called with two arguments: The
        first is the root node of the tree (i.e. the node for which
        walk has been called), the second one is an index path (just
        like for ll.xist.xsc.walkindex). If used as an outmode a tuple
        with these two values will be yielded.

  * Attribute mappings now support __getitem__, __setitem__ and
    __delitem__ with list arguments, i.e. you can do:
        >>> from ll.xist.ns import html
        >>> e = html.a("gurk", href=("hinz", "kunz"))
        >>> print e.attrs[["href", 0]]
        hinz
        >>> e.attrs[["href", 0]] = "hurz"
        >>> print e["href"]
        hurzkunz
        >>> del e.attrs[["href", 0]]
        >>> print e["href"]
        kunz

  * XML attributes can now be accessed as Python attributes, i.e.
        >>> from ll.xist.ns import html
        >>> e = html.a("spam", href="eggs")
        >>> print e.attrs.href
        eggs

    (Don't confuse this with e.Attrs.href which is the attribute
    class.)

  * Frag and Element now support Node subclasses in their __getitem__
    method: An iterator for all children of the specified type will be
    returned.
  * The encoding used for parsing now defaults to None. When reading
    from an URL and no default encoding has been specified the one from
    the Content-Type header will be used. If this still doesn't result
    in a usable encoding, "utf-8" will be used when parsing XML and
    "iso-8859-1" will be used when parsing broken HTML.
  * All error and warning classes from ll.xist.errors have been
    merged into ll.xist.xsc. This avoids import problems with circular
    imports.
  * The attributes showLocation and showPath of
    ll.xist.presenters.TreePresenter have been lowercased and
    presenters are properly reset after they've done their job.
  * The class attribute xmlname will no longer be turned into a list
    containing the Python and the XML name, but will be the XML name
    only. You can get the Python name from foo.__class__.__name__.
  * DeprecationWarnings for name and attrHandlers have finally been
    removed.
  * Instances of ll.xist.xsc.Entity subclasses can now be compared.
    __eq__ simply checks if the objects are instances of the same
    class.

For changes in older versions see:
http://www.livinglogic.de/Python/xist/History.html


Where can I get it? ===================

XIST can be downloaded from http://ftp.livinglogic.de/xist/
or ftp://ftp.livinglogic.de/pub/livinglogic/xist/

Web pages are at http://www.livinglogic.de/Python/xist/

ViewCVS access is available at http://www.livinglogic.de/viewcvs/

For information about the mailing lists go to
http://www.livinglogic.de/Python/xist/Mailinglists.html


Bye, Walter Dörwald _______________________________________________ XML-SIG maillist - XML-SIG@python.org http://mail.python.org/mailman/listinfo/xml-sig

Reply via email to