diff options
author | emkael <emkael@tlen.pl> | 2017-08-01 01:35:43 +0200 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2017-08-01 01:40:54 +0200 |
commit | 437666456efe3d3088838855989bc9f876531d98 (patch) | |
tree | 0172486c5fdceef26193ffe7507ec9adcfbed92a /jfr_playoff/settings.py | |
parent | 316abb20f7262efc3dd006d65429dfa9e8226c9c (diff) |
Error handling in interactive mode does not abort key input confirmation
Diffstat (limited to 'jfr_playoff/settings.py')
-rw-r--r-- | jfr_playoff/settings.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/jfr_playoff/settings.py b/jfr_playoff/settings.py index dd7399d..d81d8a8 100644 --- a/jfr_playoff/settings.py +++ b/jfr_playoff/settings.py @@ -7,24 +7,27 @@ class PlayoffSettings: def __init__(self): self.interactive = False + self.settings_file = None if len(sys.argv) > 1: - settings_file = sys.argv[1] + self.settings_file = sys.argv[1] else: self.interactive = True + + def load(self): + if self.settings_file is None: readline.set_completer_delims(' \t\n;') readline.parse_and_bind("tab: complete") readline.set_completer(complete_filename) - settings_file = raw_input('JSON settings file: ') - - if not os.path.exists(settings_file): - raise IOError('Settings file %s not found' % settings_file) + self.settings_file = raw_input('JSON settings file: ') - self.settings = json.load(open(settings_file)) + self.settings = json.load(open(self.settings_file)) def has_section(self, key): + self.load() return key in self.settings def get(self, *keys): + self.load() section = self.settings for key in keys: section = section[key] |