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)