Basic Usage¶
Building Data Trees¶
Working with datatree begins with the Tree
class:
tree = Tree()
To add a new node to the tree
you simply call a function with the name of the
new node that you wish to add. So to add a root
node to the tree you could:
tree.root()
All nodes are also context managers. This allows for very logical building of the tree like so:
with tree.root() as root:
root.name("Bob Smith")
There are some various options when adding nodes, although most of them are only
relevent if you are creating XML. When adding a node, any **kwargs
argument
passed in is converted to an attribute:
with tree.root() as root:
root.name("Bob Smith", gender='Male')
Emitting Formatted Data¶
Renderers are used to output your datatree into a dataformat. These are simple
classes that translate the Tree
into a specific format. By
default XML is used. However an alias can be used for a different format. Additionaly
all of the **kwargs
are used to pass specific options to the renderer. To output
pretty XML:
tree = Tree()
with tree.root() as root:
root.name("Bob Smith", full=True)
print tree('xml', pretty=True)
Outputs:
<root>
<name full="True">Bob Smith</name>
</root>
The aliases for the formats are as follows:
Renderer | Alias(s) |
---|---|
XML | xml, [blank] |
JSON | json, jsn |
YAML | yaml, yml |
Python dict | dict, dictionary |