correctly read config
This commit is contained in:
parent
02980374cd
commit
f100a8d8c5
1 changed files with 23 additions and 9 deletions
|
|
@ -30,26 +30,39 @@ class Config:
|
|||
self.values = {}
|
||||
|
||||
def load(self):
|
||||
with open(self.path, 'r') as f:
|
||||
self.values = yaml.load(f)
|
||||
try:
|
||||
with open(self.path, 'r') as f:
|
||||
self.values = yaml.load(f)
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
if self.values is None:
|
||||
self.values = {}
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
create = False
|
||||
if 'create' in kwargs:
|
||||
create = kwargs['create']
|
||||
default = None
|
||||
if 'default' in kwargs:
|
||||
default = kwargs['default']
|
||||
|
||||
v = self.values
|
||||
for a in args:
|
||||
for a in args[:-1]:
|
||||
try:
|
||||
v = v[a]
|
||||
except KeyError:
|
||||
if create:
|
||||
v = v[a] = {}
|
||||
if not default is None:
|
||||
v[a] = {}
|
||||
v = v[a]
|
||||
else:
|
||||
raise ConfigError()
|
||||
except TypeError:
|
||||
raise ConfigError()
|
||||
|
||||
try:
|
||||
v = v[args[-1]]
|
||||
except KeyError:
|
||||
v[args[-1]] = default
|
||||
v = v[args[-1]]
|
||||
|
||||
return v
|
||||
|
||||
def set(self, *args):
|
||||
|
|
@ -58,7 +71,8 @@ class Config:
|
|||
try:
|
||||
v = v[a]
|
||||
except KeyError:
|
||||
v = v[a] = {}
|
||||
v[a] = {}
|
||||
v = v[a]
|
||||
except TypeError:
|
||||
raise ConfigError()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue