-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.txt
113 lines (71 loc) · 3.38 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Pending
* Revert ability to specify 'tagname' on a fields.Model.
v0.5.1
* Handle list tagnames, and field tagnames within a list.
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)