X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=t%2Fmoe%2Fstatus.py;h=76681c7b4739fb2f499e92259002234ae9147786;hb=11ea8e933d3a8d827da650898c277424e64f2040;hp=320d7c9308d566d5082c0217462f05fd9a6fdbd8;hpb=293027e28828b13ec2c2428d661e7036acb6d34a;p=moe.git diff --git a/t/moe/status.py b/t/moe/status.py index 320d7c9..76681c7 100644 --- a/t/moe/status.py +++ b/t/moe/status.py @@ -9,7 +9,7 @@ key_pattern = re.compile("^[A-Za-z0-9_-]+$") class MoeStatusInvalid(Exception): pass -class MoeStatus: +class Status: """Moe status file.""" def __init__(self): @@ -38,13 +38,16 @@ class MoeStatus: return m[k] def dump(self, prefix=""): - "Return a list of lines, `prefix` is indent prefix." + """ + Dump status in metafile format. + Return a list of lines, `prefix` is indent prefix. + """ l = [] for k,v in self.stat.items(): if type(v) == types.ListType: vals = v else: vals = [v] for w in vals: - if isinstance(w, MoeStatus): + if isinstance(w, Status): l.append(prefix + k + "(\n") l.extend(self.str_lines(prefix+" ")) l.append(prefix + ")\n") @@ -52,25 +55,19 @@ class MoeStatus: l.append(prefix + k + ":" + str(w) + "\n") return l - def write(self, file=None, name=None): - if file is None: - if name is not None: - file = open(name, "w") - else: - file = sys.stdout - self.write_nested(file, 0) - - def write_nested(self, file, indent): - for k,v in self.stat.items(): - if type(v) == types.ListType: vals = v - else: vals = [v] - for w in vals: - if isinstance(w, MoeStatus): - file.write("\t" * indent + k + "(\n") - w.write_nested(file, indent+1); - file.write("\t" * indent + ")\n") - else: - file.write("\t" * indent + k + ":" + str(w) + "\n") + def write(self, f=None, name=None): + """ + Write status (as a metafile) to `f` or file `name` or `stdout` + """ + if not f and name is not None: + with open(name, "w") as f: + for l in self.dump(): + f.write(l+"\n") + else: + if not f: + f = sys.stdout + for l in self.dump(): + f.write(l+"\n") def read(self, file=None, name=None): if file is None: @@ -105,7 +102,7 @@ class MoeStatus: this.read_val(k, v) elif x.endswith("("): k = x[:-1] - new = MoeStatus() + new = Status() this.read_val(k, new) stk.append(this) this = new