summaryrefslogtreecommitdiff
path: root/jfr_playoff/settings.py
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2017-08-01 01:35:43 +0200
committeremkael <emkael@tlen.pl>2017-08-01 01:40:54 +0200
commit437666456efe3d3088838855989bc9f876531d98 (patch)
tree0172486c5fdceef26193ffe7507ec9adcfbed92a /jfr_playoff/settings.py
parent316abb20f7262efc3dd006d65429dfa9e8226c9c (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.py15
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]