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')
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 |