add sort, reverse, insert and extend in Multi

This commit is contained in:
2013-06-12 22:48:22 +02:00
parent 9c47eb32d5
commit fd02a954ca
2 changed files with 128 additions and 0 deletions

View File

@ -325,6 +325,38 @@ class Multi(list):
values.getitem(slave, validate_properties=False).append(
dvalue, force=True)
def sort(self, cmp=None, key=None, reverse=False):
if self.opt.impl_get_multitype() in [multitypes.slave,
multitypes.master]:
raise SlaveError(_("cannot sort multi option {0} if master or slave"
"").format(self.opt._name))
self.context.cfgimpl_get_values()._setvalue(self.opt, self)
super(Multi, self).sort(cmp=cmp, key=key, reverse=reverse)
def reverse(self):
if self.opt.impl_get_multitype() in [multitypes.slave,
multitypes.master]:
raise SlaveError(_("cannot reverse multi option {0} if master or "
"slave").format(self.opt._name))
self.context.cfgimpl_get_values()._setvalue(self.opt, self)
super(Multi, self).reverse()
def insert(self, index, obj):
if self.opt.impl_get_multitype() in [multitypes.slave,
multitypes.master]:
raise SlaveError(_("cannot insert multi option {0} if master or "
"slave").format(self.opt._name))
self.context.cfgimpl_get_values()._setvalue(self.opt, self)
super(Multi, self).insert(index, obj)
def extend(self, iterable):
if self.opt.impl_get_multitype() in [multitypes.slave,
multitypes.master]:
raise SlaveError(_("cannot extend multi option {0} if master or "
"slave").format(self.opt._name))
self.context.cfgimpl_get_values()._setvalue(self.opt, self)
super(Multi, self).extend(iterable)
def _validate(self, value):
if value is not None and not self.opt._validate(value):
raise ValueError(_("invalid value {0} "