summaryrefslogtreecommitdiff
path: root/examples/adjacencytree/byroot_tree.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-10-16 21:38:58 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-10-16 21:38:58 +0000
commita3cb33357c41cedd2128c9d261208b33a370ad5d (patch)
tree0ae10ce13a68c15f6b10dade4ae32eb061887ed3 /examples/adjacencytree/byroot_tree.py
parent80fae8ca4157f6c67ba0b9abbf83bcb8b49fd4dc (diff)
downloadsqlalchemy-a3cb33357c41cedd2128c9d261208b33a370ad5d.tar.gz
Diffstat (limited to 'examples/adjacencytree/byroot_tree.py')
-rw-r--r--examples/adjacencytree/byroot_tree.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/examples/adjacencytree/byroot_tree.py b/examples/adjacencytree/byroot_tree.py
index ac711eea2..e948c2103 100644
--- a/examples/adjacencytree/byroot_tree.py
+++ b/examples/adjacencytree/byroot_tree.py
@@ -52,6 +52,8 @@ class TreeNode(object):
self.children.append(TreeNode(node))
else:
self.children.append(node)
+ def __repr__(self):
+ return self._getstring(0, False)
def __str__(self):
return self._getstring(0, False)
def _getstring(self, level, expand = False):
@@ -89,6 +91,12 @@ class TreeLoader(MapperExtension):
parentnode.children.append(instance, _mapper_nohistory=True)
return False
+class TreeData(object):
+ def __init__(self, value=None):
+ self.id = None
+ self.value = value
+ def __repr__(self):
+ return "TreeData(%s, %s)" % (repr(self.id), repr(self.value))
# define the mapper. we will make "convenient" property
# names vs. the more verbose names in the table definition
@@ -99,6 +107,8 @@ TreeNode.mapper=assignmapper(tables.trees, properties=dict(
root_id=tables.trees.c.root_node_id,
root=relation(TreeNode, primaryjoin=tables.trees.c.root_node_id==tables.trees.c.node_id, thiscol=tables.trees.c.root_node_id, lazy=None, uselist=False),
children=relation(TreeNode, primaryjoin=tables.trees.c.parent_node_id==tables.trees.c.node_id, thiscol=tables.trees.c.node_id, lazy=None, uselist=True, private=True),
+ data=relation(TreeData, tables.treedata, properties=dict(id=tables.treedata.c.data_id), private=True, lazy=False)
+
), extension = TreeLoader())
TreeNode.mapper
@@ -109,7 +119,9 @@ node = TreeNode('rootnode')
node.append('node1')
node.append(node2)
node.append('node3')
+node.children['node3'].data = TreeData('node 3s data')
node.children['node2'].append('subnode2')
+node.children['node1'].data = TreeData('node 1s data')
print "\n\n\n----------------------------"
print "Created new tree structure:"