masterlen > instead of !=
This commit is contained in:
parent
ea7d297c9b
commit
a02cb26d5f
2 changed files with 15 additions and 3 deletions
|
@ -20,6 +20,7 @@
|
|||
# the rough pypy's guys: http://codespeak.net/svn/pypy/dist/pypy/config/
|
||||
# the whole pypy projet is under MIT licence
|
||||
# ____________________________________________________________
|
||||
import re
|
||||
from types import FunctionType
|
||||
from tiramisu.basetype import HiddenBaseType, DisabledBaseType
|
||||
from tiramisu.error import (ConfigError, ConflictConfigError, NotFoundError,
|
||||
|
@ -37,6 +38,11 @@ for act1, act2 in requires_actions:
|
|||
reverse_actions[act1] = act2
|
||||
reverse_actions[act2] = act1
|
||||
# ____________________________________________________________
|
||||
name_regexp = re.compile(r'^\d+')
|
||||
|
||||
def valid_name(name):
|
||||
return re.match(name_regexp, name)
|
||||
|
||||
#
|
||||
class Option(HiddenBaseType, DisabledBaseType):
|
||||
"""
|
||||
|
@ -68,6 +74,7 @@ class Option(HiddenBaseType, DisabledBaseType):
|
|||
validation of the value
|
||||
:param validator_args: the validator's parameters
|
||||
"""
|
||||
|
||||
self._name = name
|
||||
self.doc = doc
|
||||
self._requires = requires
|
||||
|
|
|
@ -144,10 +144,15 @@ class Values(object):
|
|||
if opt in self.masters:
|
||||
masterlen = len(value)
|
||||
for slave in self.masters[opt]:
|
||||
if len(self._get_value(slave)) != masterlen:
|
||||
value_slave = self._get_value(slave)
|
||||
if len(value_slave) > masterlen:
|
||||
raise MultiTypeError("invalid len for the slave: {0}"
|
||||
" which has {1} as master".format(slave._name,
|
||||
opt._name))
|
||||
elif len(value_slave) < masterlen:
|
||||
for num in range(0, masterlen - len(value_slave)):
|
||||
value_slave.append(None, force=True)
|
||||
|
||||
elif opt in self.slaves:
|
||||
if len(self._get_value(self.slaves[opt])) != len(value):
|
||||
raise MultiTypeError("invalid len for the slave: {0}"
|
||||
|
@ -204,7 +209,7 @@ class Multi(list):
|
|||
if not force:
|
||||
if self.multitype == multitypes.slave:
|
||||
raise MultiTypeError("cannot append a value on a multi option {0}"
|
||||
" wich is a slave".format(self.opt._name))
|
||||
" which is a slave".format(self.opt._name))
|
||||
elif self.multitype == multitypes.master:
|
||||
for slave in self.slaves:
|
||||
self.values[slave].append(None, force=True)
|
||||
|
@ -227,7 +232,7 @@ class Multi(list):
|
|||
if not force:
|
||||
if self.multitype == multitypes.slave:
|
||||
raise MultiTypeError("cannot append a value on a multi option {0}"
|
||||
" wich is a slave".format(self.opt._name))
|
||||
" which is a slave".format(self.opt._name))
|
||||
elif self.multitype == multitypes.master:
|
||||
for slave in self.slaves:
|
||||
self.values[slave].pop(key, force=True)
|
||||
|
|
Loading…
Reference in a new issue