diff options
Diffstat (limited to 'libbe')
-rw-r--r-- | libbe/arch.py | 6 | ||||
-rw-r--r-- | libbe/config.py | 25 |
2 files changed, 17 insertions, 14 deletions
diff --git a/libbe/arch.py b/libbe/arch.py index b6d01e1..a2d6bde 100644 --- a/libbe/arch.py +++ b/libbe/arch.py @@ -26,9 +26,9 @@ import config from beuuid import uuid_gen from rcs import RCS, RCStestCase, CommandError -client = config.get_val("arch_client") -if client is None: - client = "tla" +DEFAULT_CLIENT = "tla" + +client = config.get_val("arch_client", default=DEFAULT_CLIENT) def new(): return Arch() diff --git a/libbe/config.py b/libbe/config.py index 94c700e..9b1682a 100644 --- a/libbe/config.py +++ b/libbe/config.py @@ -48,7 +48,7 @@ def set_val(name, value, section="DEFAULT", encoding=None): config.write(f) f.close() -def get_val(name, section="DEFAULT", encoding=None): +def get_val(name, section="DEFAULT", default=None, encoding=None): """ Get a value from the per-user config file @@ -64,15 +64,18 @@ def get_val(name, section="DEFAULT", encoding=None): >>> get_val("junk") is None True """ - if encoding == None: - encoding = default_encoding - config = ConfigParser.ConfigParser() - f = codecs.open(path(), "r", encoding) - config.readfp(f, path()) - f.close() - try: - return config.get(section, name) - except ConfigParser.NoOptionError: - return None + if os.path.exists(path()): + if encoding == None: + encoding = default_encoding + config = ConfigParser.ConfigParser() + f = codecs.open(path(), "r", encoding) + config.readfp(f, path()) + f.close() + try: + return config.get(section, name) + except ConfigParser.NoOptionError: + return default + else: + return default suite = doctest.DocTestSuite() |