diff options
author | W. Trevor King <wking@drexel.edu> | 2009-06-19 15:16:49 -0400 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2009-06-19 15:16:49 -0400 |
commit | 9fb7b0d84872c9db0bb33ea791874e147c7e5f0d (patch) | |
tree | 688a0020e70b5763ca4e8184c5d40d900a4b4fa1 /libbe/config.py | |
parent | 6215862d89ed606c18df896feafbecb31bbe8ec6 (diff) | |
download | bugseverywhere-9fb7b0d84872c9db0bb33ea791874e147c7e5f0d.tar.gz |
Allow defaults for config.get_val() in case of missing user-config file.
Fixes bug introduced by James Rowe's previous patch:
$ be list
Traceback (most recent call last):
...
File ".../libbe/rcs.py", line 34, in _get_matching_rcs
import arch
File ".../libbe/arch.py", line 29, in <module>
client = config.get_val("arch_client")
File ".../libbe/config.py", line 70, in get_val
File "/usr/lib/python2.5/codecs.py", line 817, in open
file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: '/home/wking/.bugs_everywhere'
Diffstat (limited to 'libbe/config.py')
-rw-r--r-- | libbe/config.py | 25 |
1 files changed, 14 insertions, 11 deletions
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() |