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
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):
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):
# load config file
self.config.fix('CONFIG')
- with open(self['CONFIG'], 'r') as f:
- self.config.parse(f, source=self['CONFIG'], level=30)
+ self.config.parse_file(self['CONFIG'], level=30)
# fix variables
self.config.fix(['LOG', 'USER_LOG', 'VERBOSE', 'HOME', 'DEBUG_LEVEL', 'TDIR'])
# start logging