Summary
DataTree is a DSL for creating structured documents in python. Inspired by ruby builder but with the goal of reducing the amount of line noise associated with creating XML documents in python. As an added bonus the tree can be output to to any structured format (with XML, JSON and YAML supported in the library).
Note: More documentation is coming soon but for now a very basic rough draft can be found at datatree.readthedocs.org.
Installation
You can install via PyPi or direct from the github repo.
To install with pip:
$ pip install datatree
To install with easy_install:
$ easy_install datatree
Example
A small example:
from datatree import Tree, Node
tree = Tree()
with tree.author() as author:
author.name('Terry Pratchett')
author.genre('Fantasy/Comedy')
author // "Only 2 books listed"
with author.novels(count=2) as novels:
novels.novel('Small Gods', year=1992)
novels.novel('The Fifth Elephant', year=1999)
novels << Node("novel", "Guards! Guards!", year=1989)
print tree(pretty=True)
Which produces the XML:
<author>
<name>Terry Pratchett</name>
<genre>Fantasy/Comedy</genre>
<!-- Only 2 books listed -->
<novels count="2">
<novel year="1992">Small Gods</novel>
<novel year="1999">The Fifth Elephant</novel>
<novel year="1989">Guards! Guards!</novel>
</novels>
</author>
Or the JSON:
{
"author": {
"genre": "Fantasy/Comedy",
"name": "Terry Pratchett",
"novels": [
"Small Gods",
"The Fifth Elephant",
"Guards! Guards!"
]
}
}
Or the YAML:
author: genre: Fantasy/Comedy name: Terry Pratchett novels: [Small Gods, The Fifth Elephant, Guards! Guards!]
License
This work is licensed under the Apache License, Version 2.0.
Souce Code
The source code can be found on github.
Feedback
I welcome any and all constructive feedback. Feel free to contact me (Jason Webb) at www.bigjason.com or on twitter @bigjasonwebb.
Contributing
Contributions are welcome. Just fork on github and I will try to be as responsive as possible.
Metadata
Release files for datatree 0.1.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| datatree-0.1.8.1.tar.gz | 12.5 kB | Without provenance | Details |
Release files / datatree-0.1.8.1.tar.gz
| Download URL | datatree-0.1.8.1.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8827beeff680842c70dad7f52e57b3d7044f2a4749a7e1e1516517fb5f443a84
|
|
BLAKE2b-256 checksum How to use checksums |
f458dd010d582126b58e67e21f4d6dbd08bc6cdb53879b045c2cc627892ff978
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for datatree 0.1.8.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.