Apply patch #1072.

This commit is contained in:
Sergey Popov 2008-06-17 15:37:37 +00:00
parent 83a89a5473
commit d7047db442

View File

@ -20,17 +20,23 @@ class Data:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
def debug(self, show_contents = False, use_color = False, indent = [0]): def __str__( self ):
return self.debug( show_contents=True, write=False )
def debug(self, show_contents = False, use_color = False, indent=0, write=True):
if use_color: if use_color:
magenta = "\x1b[35;1m" magenta = "\x1b[35;1m"
off = "\x1b[0m" off = "\x1b[0m"
else: else:
magenta = off = "" magenta = off = ""
pos = indent[0] * " " pos = indent * " "
sys.stdout.write(pos + "\ " + magenta + self.name + off + " (" + self.__class__.__name__ + ")") result = pos + "\ " + magenta + self.name + off + " (" + self.__class__.__name__ + ")"
if show_contents: if show_contents:
sys.stdout.write(self.get_value().encode("utf8")) result += "'" + self.get_value().encode("utf8") + "'"
sys.stdout.write("\n") if write:
sys.stdout.write(result + "\n")
else: return result
def copy(self): def copy(self):
c = self.__class__(self.name, self.data) # this makes a new instance or so I was told c = self.__class__(self.name, self.data) # this makes a new instance or so I was told
@ -532,18 +538,26 @@ class DataSub(Data):
ifdef = self.get_or_create_ifdef(["EASY", "NORMAL", "HARD"][d]) ifdef = self.get_or_create_ifdef(["EASY", "NORMAL", "HARD"][d])
ifdef.set_text_val(name, q[d]) ifdef.set_text_val(name, q[d])
def debug(self, show_contents = False, use_color = False, indent = [0]): def debug(self, show_contents = False, use_color = False, indent=0, write=True):
if use_color: if use_color:
red = "\x1b[31;1m" red = "\x1b[31;1m"
off = "\x1b[0m" off = "\x1b[0m"
else: else:
red = off = "" red = off = ""
pos = indent[0] * " " pos = indent * " "
print pos + "\ " + red + self.name + off + " (" + self.__class__.__name__ + ")" result = pos + "\ " + red + self.name + off + " (" + self.__class__.__name__ + ")\n"
indent[0] += 1 if write:
sys.stdout.write( result )
indent += 1
for child in self.data: for child in self.data:
child.debug(show_contents, use_color, indent) cresult = child.debug(show_contents, use_color, indent, write=write)
indent[0] -= 1 if not write:
result += "\n" + cresult
indent -= 1
if not write:
return result
class DataIfDef(DataSub): class DataIfDef(DataSub):
""" """