some optimisation
This commit is contained in:
@ -61,43 +61,45 @@ class StorageBase(object):
|
||||
|
||||
def __init__(self, name, multi, warnings_only, doc, extra, calc_properties,
|
||||
requires, properties, allow_empty_list, opt=undefined):
|
||||
self._name = name
|
||||
_setattr = object.__setattr__
|
||||
_setattr(self, '_name', name)
|
||||
if doc is not undefined:
|
||||
self._informations = {'doc': doc}
|
||||
_setattr(self, '_informations', {'doc': doc})
|
||||
if multi != 1:
|
||||
self._multi = multi
|
||||
_setattr(self, '_multi', multi)
|
||||
if extra is not None:
|
||||
self._extra = extra
|
||||
_setattr(self, '_extra', extra)
|
||||
if warnings_only is True:
|
||||
self._warnings_only = warnings_only
|
||||
_setattr(self, '_warnings_only', warnings_only)
|
||||
|
||||
if calc_properties is not undefined:
|
||||
self._calc_properties = calc_properties
|
||||
_setattr(self, '_calc_properties', calc_properties)
|
||||
if requires is not undefined:
|
||||
self._requires = requires
|
||||
_setattr(self, '_requires', requires)
|
||||
if properties is not undefined:
|
||||
self._properties = properties
|
||||
_setattr(self, '_properties', properties)
|
||||
if opt is not undefined:
|
||||
self._opt = opt
|
||||
_setattr(self, '_opt', opt)
|
||||
if allow_empty_list is not undefined:
|
||||
self._allow_empty_list = allow_empty_list
|
||||
_setattr(self, '_allow_empty_list', allow_empty_list)
|
||||
|
||||
def _set_default_values(self, default, default_multi):
|
||||
if ((self.impl_is_multi() and default != tuple()) or
|
||||
(not self.impl_is_multi() and default is not None)):
|
||||
if self.impl_is_multi():
|
||||
def _set_default_values(self, default, default_multi, is_multi):
|
||||
_setattr = object.__setattr__
|
||||
if (is_multi and default != []) or \
|
||||
(not is_multi and default is not None):
|
||||
if is_multi:
|
||||
default = tuple(default)
|
||||
self._default = default
|
||||
_setattr(self, '_default', default)
|
||||
|
||||
if self.impl_is_multi() and default_multi is not None:
|
||||
if is_multi and default_multi is not None:
|
||||
try:
|
||||
self._validate(default_multi)
|
||||
except ValueError as err: # pragma: optional cover
|
||||
raise ValueError(_("invalid default_multi value {0} "
|
||||
"for option {1}: {2}").format(
|
||||
str(default_multi),
|
||||
self.impl_getname(), err))
|
||||
self._default_multi = default_multi
|
||||
self.impl_getname(), str(err)))
|
||||
_setattr(self, '_default_multi', default_multi)
|
||||
|
||||
# information
|
||||
def impl_set_information(self, key, value):
|
||||
@ -302,8 +304,8 @@ class StorageBase(object):
|
||||
try:
|
||||
_multi = self._multi
|
||||
except AttributeError:
|
||||
_multi = 1
|
||||
return _multi == 0 or _multi == 2
|
||||
return False
|
||||
return _multi != 1
|
||||
|
||||
def impl_is_submulti(self):
|
||||
try:
|
||||
@ -333,13 +335,14 @@ class StorageBase(object):
|
||||
|
||||
def impl_getdefault(self):
|
||||
"accessing the default value"
|
||||
is_multi = self.impl_is_multi()
|
||||
try:
|
||||
ret = self._default
|
||||
if self.impl_is_multi():
|
||||
if is_multi:
|
||||
return list(ret)
|
||||
return ret
|
||||
except AttributeError:
|
||||
if self.impl_is_multi():
|
||||
if is_multi:
|
||||
return []
|
||||
return None
|
||||
|
||||
|
Reference in New Issue
Block a user