Mercurial > eagle-eye
view pyikriam/lconf.py @ 367:d9d3cdff27c6
handling field not found error
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Sun, 01 Mar 2009 22:14:05 +0800 |
parents | d4b7d8f51e9f |
children |
line wrap: on
line source
import os, string import re _user_home = os.environ['HOME'] dfl_profile = os.path.join(_user_home, '.eagleeye.pm') _reo_assign = re.compile('^\\$::([_a-zA-Z][_a-zA-Z0-9]+) *= *([\'"][^"]*[\'"]).*$') def _real_load_conf(conf_o): confs = [_reo_assign.match(line) for line in conf_o if line.startswith('$::')] cd = dict([(mo.group(1), eval(mo.group(2))) for mo in confs if mo]) return cd class LoadConfigfile(object): def __init__(self, profile=dfl_profile): prof_o = open(profile, 'r') self.cd = _real_load_conf(prof_o) pass pass if __name__ == '__main__': from StringIO import StringIO conf = ''' $::user = "alsfjsf"; #lsfjslf $::server = "fkljalfasf"; # sfjslf $::pass = "lsfjslfsf"; ''' conf_o = StringIO(conf) cd = _real_load_conf(conf_o) print cd pass