remove all try/except
This commit is contained in:
@ -387,40 +387,43 @@ class Option(OnlyOption):
|
||||
descr = context.cfgimpl_get_description()
|
||||
|
||||
all_cons_vals = []
|
||||
try:
|
||||
for opt in all_cons_opts:
|
||||
#get value
|
||||
if (isinstance(opt, DynSymLinkOption) and option._dyn == opt._dyn) or \
|
||||
option == opt:
|
||||
opt_value = value
|
||||
else:
|
||||
#if context, calculate value, otherwise get default value
|
||||
if context is not undefined:
|
||||
if isinstance(opt, DynSymLinkOption):
|
||||
path = opt.impl_getpath(context)
|
||||
else:
|
||||
path = descr.impl_get_path_by_opt(opt)
|
||||
opt_value = context.getattr(path, validate=False,
|
||||
force_permissive=True)
|
||||
else:
|
||||
opt_value = opt.impl_getdefault()
|
||||
|
||||
#append value
|
||||
if not self.impl_is_multi() or (isinstance(opt, DynSymLinkOption)
|
||||
and option._dyn == opt._dyn) or \
|
||||
option == opt:
|
||||
all_cons_vals.append(opt_value)
|
||||
elif self.impl_is_submulti():
|
||||
print option._name, opt_value
|
||||
all_cons_vals.append(opt_value[index][submulti_index])
|
||||
else:
|
||||
all_cons_vals.append(opt_value[index])
|
||||
except PropertiesOptionError as err:
|
||||
log.debug('propertyerror in _launch_consistency: {0}'.format(err))
|
||||
if transitive:
|
||||
raise err
|
||||
for opt in all_cons_opts:
|
||||
#get value
|
||||
if (isinstance(opt, DynSymLinkOption) and option._dyn == opt._dyn) or \
|
||||
option == opt:
|
||||
opt_value = value
|
||||
else:
|
||||
return
|
||||
#if context, calculate value, otherwise get default value
|
||||
if context is not undefined:
|
||||
if isinstance(opt, DynSymLinkOption):
|
||||
path = opt.impl_getpath(context)
|
||||
else:
|
||||
path = descr.impl_get_path_by_opt(opt)
|
||||
opt_value = context.getattr(path, validate=False,
|
||||
force_permissive=True,
|
||||
returns_raise=True)
|
||||
if isinstance(opt_value, Exception):
|
||||
if isinstance(opt_value, PropertiesOptionError):
|
||||
log.debug('propertyerror in _launch_consistency: {0}'.format(opt_value))
|
||||
if transitive:
|
||||
raise opt_value
|
||||
else:
|
||||
return
|
||||
else:
|
||||
raise opt_value
|
||||
else:
|
||||
opt_value = opt.impl_getdefault()
|
||||
|
||||
#append value
|
||||
if not self.impl_is_multi() or (isinstance(opt, DynSymLinkOption)
|
||||
and option._dyn == opt._dyn) or \
|
||||
option == opt:
|
||||
all_cons_vals.append(opt_value)
|
||||
#consistency with submulti is now forbidden
|
||||
#elif self.impl_is_submulti():
|
||||
# all_cons_vals.append(opt_value[index][submulti_index])
|
||||
else:
|
||||
all_cons_vals.append(opt_value[index])
|
||||
return getattr(self, func)(all_cons_opts, all_cons_vals, warnings_only)
|
||||
|
||||
def impl_validate(self, value, context=undefined, validate=True,
|
||||
|
@ -120,7 +120,8 @@ class MasterSlaves(object):
|
||||
def getitem(self, values, opt, path, validate, force_permissive,
|
||||
trusted_cached_properties, validate_properties, slave_path=undefined,
|
||||
slave_value=undefined, setting_properties=undefined,
|
||||
self_properties=undefined, index=None):
|
||||
self_properties=undefined, index=None,
|
||||
returns_raise=False):
|
||||
if self.is_master(opt):
|
||||
return self._getmaster(values, opt, path, validate,
|
||||
force_permissive,
|
||||
@ -130,7 +131,7 @@ class MasterSlaves(object):
|
||||
return self._getslave(values, opt, path, validate,
|
||||
force_permissive, trusted_cached_properties,
|
||||
validate_properties, setting_properties,
|
||||
self_properties, index)
|
||||
self_properties, index, returns_raise)
|
||||
|
||||
def _getmaster(self, values, opt, path, validate, force_permissive,
|
||||
validate_properties, c_slave_path,
|
||||
@ -150,7 +151,7 @@ class MasterSlaves(object):
|
||||
|
||||
def _getslave(self, values, opt, path, validate, force_permissive,
|
||||
trusted_cached_properties, validate_properties, setting_properties,
|
||||
self_properties, index):
|
||||
self_properties, index, returns_raise):
|
||||
"""
|
||||
if master has length 0:
|
||||
return []
|
||||
@ -190,7 +191,10 @@ class MasterSlaves(object):
|
||||
force_permissive=force_permissive,
|
||||
setting_properties=setting_properties)
|
||||
if props:
|
||||
raise props
|
||||
if returns_raise:
|
||||
return props
|
||||
else:
|
||||
raise props
|
||||
else:
|
||||
one_has_value = False
|
||||
if index is None:
|
||||
@ -198,22 +202,26 @@ class MasterSlaves(object):
|
||||
else:
|
||||
indexes = [index]
|
||||
for idx in indexes:
|
||||
try:
|
||||
value = values._get_cached_value(opt, path, validate,
|
||||
force_permissive,
|
||||
trusted_cached_properties,
|
||||
validate_properties,
|
||||
with_meta=master_is_meta,
|
||||
index=idx,
|
||||
# not self_properties,
|
||||
# depends to index
|
||||
#self_properties=self_properties,
|
||||
masterlen=masterlen,
|
||||
from_masterslave=True)
|
||||
value = values._get_cached_value(opt, path, validate,
|
||||
force_permissive,
|
||||
trusted_cached_properties,
|
||||
validate_properties,
|
||||
with_meta=master_is_meta,
|
||||
index=idx,
|
||||
# not self_properties,
|
||||
# depends to index
|
||||
#self_properties=self_properties,
|
||||
masterlen=masterlen,
|
||||
from_masterslave=True,
|
||||
returns_raise=True)
|
||||
if isinstance(value, PropertiesOptionError):
|
||||
err = value
|
||||
multi.append_properties_error(value)
|
||||
elif isinstance(value, Exception):
|
||||
raise value
|
||||
else:
|
||||
multi.append(value, setitem=False, force=True, validate=validate)
|
||||
one_has_value = True
|
||||
except PropertiesOptionError, err:
|
||||
multi.append_properties_error(err)
|
||||
if not one_has_value:
|
||||
#raise last err
|
||||
raise err
|
||||
|
@ -232,6 +232,7 @@ class PortOption(Option):
|
||||
see: http://en.wikipedia.org/wiki/Port_numbers
|
||||
"""
|
||||
__slots__ = tuple()
|
||||
port_re = re.compile(r"^[0-9]*$")
|
||||
|
||||
def __init__(self, name, doc, default=None, default_multi=None,
|
||||
requires=None, multi=False, callback=None,
|
||||
@ -262,6 +263,7 @@ class PortOption(Option):
|
||||
if extra['_max_value'] is None:
|
||||
raise ValueError(_('max value is empty')) # pragma: optional cover
|
||||
|
||||
|
||||
super(PortOption, self).__init__(name, doc, default=default,
|
||||
default_multi=default_multi,
|
||||
callback=callback,
|
||||
@ -292,10 +294,9 @@ class PortOption(Option):
|
||||
value = [value]
|
||||
|
||||
for val in value:
|
||||
try:
|
||||
val = int(val)
|
||||
except ValueError: # pragma: optional cover
|
||||
if not self.port_re.search(val):
|
||||
return ValueError(_('invalid port'))
|
||||
val = int(val)
|
||||
if not self._get_extra('_min_value') <= val <= self._get_extra('_max_value'): # pragma: optional cover
|
||||
return ValueError(_('invalid port, must be an integer between {0} '
|
||||
'and {1}').format(self._get_extra('_min_value'),
|
||||
|
Reference in New Issue
Block a user