e.builtins.set("EXT", norm_ext)
e.cfgs.apply_overrides("EXT_" + norm_ext)
- e.meta["source"] = file
+ e.stat["source"] = file
e.log.progress(file + "\n")
def compile(e):
import moe
import moe.config
import moe.log
-import moe.meta
+import moe.stat
import moe.pipeline
import moe.batch
import moe.util
self.builtins = moe.config.MoeConfig(type="builtins")
self.cfgs.push(self.builtins)
self.main_pipe = moe.pipeline.MoePipeline("main")
- self.meta = moe.meta.MoeMeta()
+ self.stat = moe.stat.MoeStatus()
pass
def init(self, overrides=None):
self.cfgs.push(task_cfg)
self.log_config(3, "after loading the task")
- self.meta["task"] = task
+ self.stat["task"] = task
type = self.cfgs['TASK_TYPE']
if type == "batch" or type == "interactive":
+++ /dev/null
-#!/usr/bin/env python
-
-import sys
-import types
-import re
-
-key_pattern = re.compile("^[A-Za-z0-9_-]+$")
-
-class MoeMetaInvalid(Exception):
- pass
-
-class MoeMeta:
- """Moe meta-file."""
-
- def __init__(self):
- self.meta = {}
-
- def __getitem__(self, k):
- if not self.meta.has_key(k): return None
- v = self.meta[k]
- if type(v) == types.ListType:
- if len(v) > 0: return v[0]
- else: return None
- else: return v
-
- def __setitem__(self, k, v):
- self.meta[k] = v
-
- def get_list(self, k):
- m = self.meta
- if not m.has_key(k):
- m[k] = []
- elif type(m[k]) != types.ListType:
- m[k] = [m[k]]
- return m[k]
-
- 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.meta.items():
- if type(v) == types.ListType: vals = v
- else: vals = [v]
- for w in vals:
- if isinstance(w, MoeMeta):
- 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 read(self, file=None, name=None):
- if file is None:
- if name is not None:
- file = open(name, "r")
- else:
- file = sys.stdin
- self.meta = {}
- self.do_read(file)
-
- def read_val(self, k, v):
- if not key_pattern.match(k):
- raise MoeMetaInvalid, "Parse error: invalid key syntax"
- m = self.meta
- if not m.has_key(k):
- m[k] = v
- else:
- self.get_list(k).append(v)
-
- def do_read(self, file):
- stk = []
- this = self
- for x in file.readlines():
- x = x.rstrip("\n").lstrip(" \t")
- if x=="" or x.startswith("#"):
- pass
- else:
- sep = x.find(":")
- if sep >= 0:
- k = x[:sep]
- v = x[sep+1:]
- this.read_val(k, v)
- elif x.endswith("("):
- k = x[:-1]
- new = MoeMeta()
- this.read_val(k, new)
- stk.append(this)
- this = new
- elif x == ")":
- if len(stk) == 0:
- raise MoeMetaInvalid, "Parse error: incorrect nesting"
- else:
- this = stk.pop()
- else:
- raise MoeMetaInvalid, "Parse error: malformed line"
--- /dev/null
+#!/usr/bin/env python
+
+import sys
+import types
+import re
+
+key_pattern = re.compile("^[A-Za-z0-9_-]+$")
+
+class MoeStatusInvalid(Exception):
+ pass
+
+class MoeStatus:
+ """Moe status file."""
+
+ def __init__(self):
+ self.stat = {}
+
+ def __getitem__(self, k):
+ if not self.stat.has_key(k): return None
+ v = self.stat[k]
+ if type(v) == types.ListType:
+ if len(v) > 0: return v[0]
+ else: return None
+ else: return v
+
+ def __setitem__(self, k, v):
+ self.stat[k] = v
+
+ def get_list(self, k):
+ m = self.stat
+ if not m.has_key(k):
+ m[k] = []
+ elif type(m[k]) != types.ListType:
+ m[k] = [m[k]]
+ return m[k]
+
+ 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 read(self, file=None, name=None):
+ if file is None:
+ if name is not None:
+ file = open(name, "r")
+ else:
+ file = sys.stdin
+ self.stat = {}
+ self.do_read(file)
+
+ def read_val(self, k, v):
+ if not key_pattern.match(k):
+ raise MoeStatusInvalid, "Parse error: invalid key syntax"
+ m = self.stat
+ if not m.has_key(k):
+ m[k] = v
+ else:
+ self.get_list(k).append(v)
+
+ def do_read(self, file):
+ stk = []
+ this = self
+ for x in file.readlines():
+ x = x.rstrip("\n").lstrip(" \t")
+ if x=="" or x.startswith("#"):
+ pass
+ else:
+ sep = x.find(":")
+ if sep >= 0:
+ k = x[:sep]
+ v = x[sep+1:]
+ this.read_val(k, v)
+ elif x.endswith("("):
+ k = x[:-1]
+ new = MoeStatus()
+ this.read_val(k, new)
+ stk.append(this)
+ this = new
+ elif x == ")":
+ if len(stk) == 0:
+ raise MoeStatusInvalid, "Parse error: incorrect nesting"
+ else:
+ this = stk.pop()
+ else:
+ raise MoeStatusInvalid, "Parse error: malformed line"
sys.path.append('.')
import moe
-import moe.meta
+import moe.stat
import moe.config
import moe.eval
import moe.pipeline
e.log.shout("FATAL: %s\n" % err)
sys.exit(1)
except moe.SolutionErr, err:
- ## FIXME: In this case, we might write the meta file
+ ## FIXME: In this case, we might write the status file
e.log.shout("%s\n" % err)
sys.exit(1)
-print "\nFinal meta file:"
-e.meta.write()
+print "\nFinal status file:"
+e.stat.write()