new method 'delete' in storage and config

This commit is contained in:
Romain Bignon 2010-11-11 01:11:00 +01:00
commit ebe29a061f
6 changed files with 37 additions and 0 deletions

View file

@ -44,6 +44,10 @@ class ApplicationStorage(object):
if self.storage:
return self.storage.set('applications', self.name, *args)
def delete(self, *args):
if self.storage:
return self.storage.delete('applications', self.name, *args)
def get(self, *args, **kwargs):
if self.storage:
return self.storage.get('applications', self.name, *args, **kwargs)

View file

@ -40,6 +40,10 @@ class BackendStorage(object):
if self.storage:
return self.storage.set('backends', self.name, *args)
def delete(self, *args):
if self.storage:
return self.storage.delete('backends', self.name, *args)
def get(self, *args, **kwargs):
if self.storage:
return self.storage.get('backends', self.name, *args, **kwargs)

View file

@ -30,5 +30,8 @@ class IConfig:
def set(self, *args):
raise NotImplementedError()
def delete(self, *args):
raise NotImplementedError()
def get(self, *args, **kwargs):
raise NotImplementedError()

View file

@ -98,3 +98,11 @@ class INIConfig(IConfig):
v[k] = {}
v = v[k]
v[args[-2]] = args[-1]
def delete(self, *args):
v = self.values
for k in args[:-1]:
if k not in v:
return
v = v[k]
v.pop(args[-1], None)

View file

@ -93,3 +93,15 @@ class YamlConfig(IConfig):
raise ConfigError()
v[args[-2]] = args[-1]
def delete(self, *args):
v = self.values
for a in args[:-1]:
try:
v = v[a]
except KeyError:
return
except TypeError:
raise ConfigError()
v.pop(args[-1], None)

View file

@ -31,6 +31,9 @@ class IStorage:
def set(self, what, name, *args):
raise NotImplementedError()
def delete(self, what, name, *args):
raise NotImplementedError()
def get(self, what, name, *args, **kwargs):
raise NotImplementedError()
@ -56,5 +59,8 @@ class StandardStorage(IStorage):
def set(self, what, name, *args):
self.config.set(what, name, *args)
def delete(self, what, name, *args):
self.config.delete(what, name, *args)
def get(self, what, name, *args, **kwargs):
return self.config.get(what, name, *args, **kwargs)