
v0.5.0

  * Fix a broken setup.py file.


v0.5.0

  * Implemented a basic project website, with beginnings of tutorial
    and API docs.
  * Implement Model.render(pretty=True) for pretty-printed XML output.
  * Fix rendering of unicode String fields; thanks @saltycrane.
  * Clean up and clarify handling of wrapper tags for List/Dict fields.
    When the "tagname" property is specified:
      * If the field is required then the wrapper tag is required,
        even if it has no contents.
      * If the field is required then the wrapper tag is always rendered,
        even if it has no contents.
      * If the field is not required then the wrapper tag can be elided,
        and will not be rendered when the collection is empty.
    Behaviour of List/Dict without a wrapper tag is unchanged.


v0.4.2

  * Got 100% test coverage on all target python versions.  Many edge-case
    bugs squashed in the process.
  * Eliminate all use of "raise RuntimeError"; use ValueError instead
    because they were all about incorrect values encountered at runtime.
  * Inherit meta-attributes from base classes in left-to-right order.
  * fields.Boolean:  coerce all values to a proper bool.


v0.4.1

  * Fix handling of whitespace around List/Dict fields; thanks Alexey Luchko.


v0.4.0

  * Some API changes to allow generator-based rendering:
      * Model.irender() is a generator version of Model.render()
      * Model.render() no longer takes the "nsmap" argument
      * fields.Model no longer calls Model.render(), so reimplementing it in
        a subclass probably won't work; reimplement Model._render() instead.
      * fields.List accepts a generator, and won't consume it until rendered.
  * fields.Model:  when specifying the model class as a string, search
    first by tagname and then by classname.
  * fields.Value:  allow a tagname of "." to parse a value directly out of
    the contents of the parent node.


v0.3.7

  * Automatically escape/unescape special characters in string fields.
  * Parse CDATA_SECTION nodes as if they were TEXT nodes.
  * Added CDATA field type, which is just like a String except it renders
    as a CDATA_SECTION node.

v0.3.6

  * strict type checking for Model fields; thanks Alexander Vladimirov.

v0.3.5:

  * generate fewer redundant namespace prefixes; thanks José Orlando Pereira.

v0.3.4:

 * allow Model subclasses to inherit meta attributes from their base classes.
   (again thanks to Alexander Vladimirov)
 * allow List and Dict fields to specify a "wrapper" tag that groups the
   contained items.  This tag doesn't show up in the object structure, it
   is added and removed transparently during rendering and parsing.

v0.3.3:

  * Dict field type; thanks to Alexander Vladimirov.

v0.3.2:

  * support for order-insensitive parsing
  * more careful management of namespaces in fields.XmlNode.
  * support for rendering fields whose attrname or tagname is a tuple
    (namespace,localName)

v0.3.1:

  * support for empty-only Boolean fields, where presence of the attribute
    or tag indicates True and absence indicates False.

v0.3.0:

  * support for Python 3, via distribute and the "use_2to3" flag

v0.2.1:

  * support for optional Choice fields, thanks to Jose Orlando Pereira

v0.2.0:

  * changed license from BSD to MIT (it's simpler)

