Changes in checkvalue.py from PullRequest Inc. review

This commit is contained in:
Paul Romano 2020-03-19 16:05:55 -05:00
parent 43e93903a9
commit 468361b62c

View file

@ -24,34 +24,35 @@ def check_type(name, value, expected_type, expected_iter_type=None):
if not isinstance(value, expected_type):
if isinstance(expected_type, Iterable):
msg = 'Unable to set "{0}" to "{1}" which is not one of the ' \
'following types: "{2}"'.format(name, value, ', '.join(
msg = 'Unable to set "{}" to "{}" which is not one of the ' \
'following types: "{}"'.format(name, value, ', '.join(
[t.__name__ for t in expected_type]))
else:
msg = 'Unable to set "{0}" to "{1}" which is not of type "{2}"'.format(
msg = 'Unable to set "{}" to "{}" which is not of type "{}"'.format(
name, value, expected_type.__name__)
raise TypeError(msg)
if expected_iter_type:
if isinstance(value, np.ndarray):
if not issubclass(value.dtype.type, expected_iter_type):
msg = 'Unable to set "{0}" to "{1}" since each item must be ' \
'of type "{2}"'.format(name, value,
expected_iter_type.__name__)
msg = 'Unable to set "{}" to "{}" since each item must be ' \
'of type "{}"'.format(name, value,
expected_iter_type.__name__)
raise TypeError(msg)
else:
return
for item in value:
if not isinstance(item, expected_iter_type):
if isinstance(expected_iter_type, Iterable):
msg = 'Unable to set "{0}" to "{1}" since each item must be ' \
'one of the following types: "{2}"'.format(
msg = 'Unable to set "{}" to "{}" since each item must be ' \
'one of the following types: "{}"'.format(
name, value, ', '.join([t.__name__ for t in
expected_iter_type]))
else:
msg = 'Unable to set "{0}" to "{1}" since each item must be ' \
'of type "{2}"'.format(name, value,
expected_iter_type.__name__)
msg = 'Unable to set "{}" to "{}" since each item must be ' \
'of type "{}"'.format(name, value,
expected_iter_type.__name__)
raise TypeError(msg)
@ -150,18 +151,18 @@ def check_length(name, value, length_min, length_max=None):
"""
if length_max is None:
if len(value) != length_min:
msg = 'Unable to set "{0}" to "{1}" since it must be of ' \
'length "{2}"'.format(name, value, length_min)
if len(value) < length_min:
msg = 'Unable to set "{}" to "{}" since it must be at least of ' \
'length "{}"'.format(name, value, length_min)
raise ValueError(msg)
elif not length_min <= len(value) <= length_max:
if length_min == length_max:
msg = 'Unable to set "{0}" to "{1}" since it must be of ' \
'length "{2}"'.format(name, value, length_min)
msg = 'Unable to set "{}" to "{}" since it must be of ' \
'length "{}"'.format(name, value, length_min)
else:
msg = 'Unable to set "{0}" to "{1}" since it must have length ' \
'between "{2}" and "{3}"'.format(name, value, length_min,
length_max)
msg = 'Unable to set "{}" to "{}" since it must have length ' \
'between "{}" and "{}"'.format(name, value, length_min,
length_max)
raise ValueError(msg)
@ -184,6 +185,7 @@ def check_value(name, value, accepted_values):
name, value, accepted_values)
raise ValueError(msg)
def check_less_than(name, value, maximum, equality=False):
"""Ensure that an object's value is less than a given value.
@ -211,6 +213,7 @@ def check_less_than(name, value, maximum, equality=False):
'or equal to "{2}"'.format(name, value, maximum)
raise ValueError(msg)
def check_greater_than(name, value, minimum, equality=False):
"""Ensure that an object's value is greater than a given value.
@ -265,13 +268,13 @@ def check_filetype_version(obj, expected_type, expected_version):
if this_version[0] != expected_version:
raise IOError('{} file has a version of {} which is not '
'consistent with the version expected by OpenMC, {}'
.format(this_filetype,
'.'.join(str(v) for v in this_version),
expected_version))
.format(this_filetype,
'.'.join(str(v) for v in this_version),
expected_version))
except AttributeError:
raise IOError('Could not read {} file. This most likely means the {} '
raise IOError('Could not read {} file. This most likely means the '
'file was produced by a different version of OpenMC than '
'the one you are using.'.format(expected_type))
'the one you are using.'.format(obj.filename))
class CheckedList(list):
@ -288,12 +291,13 @@ class CheckedList(list):
"""
def __init__(self, expected_type, name, items=[]):
def __init__(self, expected_type, name, items=None):
super().__init__()
self.expected_type = expected_type
self.name = name
for item in items:
self.append(item)
if items is not None:
for item in items:
self.append(item)
def __add__(self, other):
new_instance = copy.copy(self)