From d15a4e2967ab4305505a41863160711fb7817f68 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Tue, 9 Nov 2010 19:41:47 -0500 Subject: [PATCH] Trees don't have values Trees don't actually need a value. I can make a subclass later if I find it's important. --- libsaria/trees.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/libsaria/trees.py b/libsaria/trees.py index aca83017..9cda1e0c 100644 --- a/libsaria/trees.py +++ b/libsaria/trees.py @@ -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):