]> mj.ucw.cz Git - moe.git/blobdiff - t/moe/config.py
Update makefile
[moe.git] / t / moe / config.py
index f24e1ef8f357748b41b13f2b8cff20419cfb90d7..d17d1c8af7e7ccf75d236f3f120ac169230ffd3f 100644 (file)
@@ -1,10 +1,6 @@
 """
-config.py
----------
-
 Lazy conditional string evaluation module for Moe configuration variables.
 
-
 * Each variable has ordered list of operations (definitions), each defining operation either 
   assigns (SET) or appends (APPEND) value of an expression to the variable. Each operation may be guarded by condition(s). 
 
@@ -98,6 +94,10 @@ class ConfigTree(object):
       self.variables[k].dump(prefix) for k in sorted(self.variables.keys())
       ])
 
+  def fix(self, key):
+    "Fix variable value. Fixing undefined variable raises `UndefinedError`."
+    self.lookup(key, create=True).fix()
+
   def parse(self, s, source=None, level=0):
     """Parse `s` (stream/string) into the tree, see `moe.confparser.ConfigParser` for details."""
     import moe.confparser
@@ -107,10 +107,10 @@ class ConfigTree(object):
   def parse_file(self, filename, desc=None, level=0):
     """Parse an utf-8 file into the tree, see `moe.confparser.ConfigParser` for details. 
     Names the source "`filename` <`desc`>". """
-    f = open(filename, 'rt')
-    if desc: 
-      filename += " <" + desc + ">" 
-    self.parse(f, source=filename, level=level)
+    with open(filename, 'rt') as f:
+      if desc: 
+       filename += " <" + desc + ">" 
+      self.parse(f, source=filename, level=level)
 
 
 class ConfigElem(object):
@@ -278,7 +278,7 @@ class ConfigVar(ConfigElem):
     self.fixed = True
 
   def unfix(self):
-    "Set the variable to be modifiable again."
+    "Make the variable modifiable again."
     self.fixed = False
 
   def value(self, depth=0):