rich error msg for check_consistency
This commit is contained in:
committed by
Dario Coscia
parent
008888fb1e
commit
c559a5763b
@@ -47,15 +47,43 @@ def check_consistency(object_, object_instance, subclass=False):
|
|||||||
object_ = [object_]
|
object_ = [object_]
|
||||||
|
|
||||||
for obj in object_:
|
for obj in object_:
|
||||||
try:
|
is_class = isinstance(obj, type)
|
||||||
if not subclass:
|
expected_type_name = (
|
||||||
assert isinstance(obj, object_instance)
|
object_instance.__name__
|
||||||
else:
|
if isinstance(object_instance, type)
|
||||||
assert issubclass(obj, object_instance)
|
else str(object_instance)
|
||||||
except AssertionError as e:
|
)
|
||||||
raise ValueError(
|
|
||||||
f"{type(obj).__name__} must be {object_instance}."
|
if subclass:
|
||||||
) from e
|
if not is_class:
|
||||||
|
raise ValueError(
|
||||||
|
f"You passed {repr(obj)} "
|
||||||
|
f"(an instance of {type(obj).__name__}), "
|
||||||
|
f"but a {expected_type_name} class was expected. "
|
||||||
|
f"Please pass a {expected_type_name} class or a "
|
||||||
|
"derived one."
|
||||||
|
)
|
||||||
|
elif not issubclass(obj, object_instance):
|
||||||
|
raise ValueError(
|
||||||
|
f"You passed {obj.__name__} class, but a "
|
||||||
|
f"{expected_type_name} class was expected. "
|
||||||
|
f"Please pass a {expected_type_name} class or a "
|
||||||
|
"derived one."
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
if is_class:
|
||||||
|
raise ValueError(
|
||||||
|
f"You passed {obj.__name__} class, but a "
|
||||||
|
f"{expected_type_name} instance was expected. "
|
||||||
|
f"Please pass a {expected_type_name} instance."
|
||||||
|
)
|
||||||
|
elif not isinstance(obj, object_instance):
|
||||||
|
raise ValueError(
|
||||||
|
f"You passed {repr(obj)} "
|
||||||
|
f"(an instance of {type(obj).__name__}), "
|
||||||
|
f"but a {expected_type_name} instance was expected. "
|
||||||
|
f"Please pass a {expected_type_name} instance."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def labelize_forward(forward, input_variables, output_variables):
|
def labelize_forward(forward, input_variables, output_variables):
|
||||||
|
|||||||
Reference in New Issue
Block a user