Trees don't have values

Trees don't actually need a value.  I can make a subclass later if I
find it's important.
This commit is contained in:
Bryan Schumaker 2010-11-09 19:41:47 -05:00
parent 9c73996ade
commit d15a4e2967
1 changed files with 16 additions and 14 deletions

View File

@ -3,15 +3,17 @@
from libsaria.path import sep
class Tree(dict):
def __init__(self, value = None):
#self.children = dict()
self.value = value
def __init__(self):
dict.__init__(self)
def __disp__(self, level):
return "%s (%s)", (child, self[child].value)
def disp(self, level = 0):
#children = self.children
for child in self:
space = " " * level
print space, "%s (%s)" % (child, self[child].value)
space = " " * level
fmt, vals = self.__disp__(level)
print space, fmt % vals
self[child].disp(level + 1)
def walk(self):
@ -26,18 +28,18 @@ class Tree(dict):
for res in child.walk():
yield [key] + res
def insert(self, path, values=[]):
def __insert__(self, path):
path_part = path[0]
value = path_part
if len(values) > 0:
value = values[0]
values = values[1:]
child = self.get(path_part, None)
child = self.get(path_part, None)
if child == None:
child = self.__class__(value)
child = self.__class__()
self[path_part] = child
return child
def insert(self, path):
child = self.__insert__(path)
if len(path) > 1:
child.insert(path[1:], values)
child.insert(path[1:])
class FSTree(Tree):