intro¶
documentation is automatically generated and hosted on gitlab pages
attribute_tree wraps dict into tree-like structure with value access via getattr.
install¶
mkdir attribute_tree
wget -qO- https://gitlab.com/attu/attribute_tree/-/archive/VERSION/attribute_tree-VERSION.tar.gz | tar xvz -C attribure_tree/ --strip-components 1
pip install ./attribute_tree/
examples¶
basic attribute setting
from attribute_tree import attribute_tree
# create tree attributes like dict items
tree = attribute_tree(lorem='ipsum')
assert tree.lorem == 'ipsum'
# add new attributes to the root of tree
tree.dolor = 42
assert tree.dolor == 42
# add nested attributes
tree.consectetur.adipiscing = (-1.0 / 12)
assert isclose(tree.consectetur.adipiscing, -0.08333333333333333)
# add list of nested attributes
tree.elit = [attribute_tree(sed='eiusmod'), attribute_tree(tempor='incididunt')]
assert tree.elit[0].sed == 'eiusmod'
assert tree.elit[1].tempor == 'incididunt'
converting tree to dictionary
from attribute_tree import attribute_tree
tree = attribute_tree(lorem='ipsum')
tree.dolor.sit = 'amet'
assert vars(tree) == {'lorem': 'ipsum', 'dolor': {'sit': 'amet'}}
nested trees
from attribute_tree import attribute_tree
tree = attribute_tree(lorem=dict(ipsum='dolor'))
assert tree.lorem.ipsum == 'dolor'
tree.sit = [dict(amet='consectetur')]
assert tree.sit[0].amet == 'consectetur'