From 5838d10dc58071153ceb95fbd4efd9bc6be02f58 Mon Sep 17 00:00:00 2001 From: Dario Coscia Date: Fri, 4 Jul 2025 17:22:50 +0200 Subject: [PATCH 1/2] rich error msg for check_consistency --- pina/utils.py | 46 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/pina/utils.py b/pina/utils.py index 569ba632c..b72d50071 100644 --- a/pina/utils.py +++ b/pina/utils.py @@ -47,15 +47,43 @@ class or, if ``subclass=True``, whether it is a subclass of the specified object_ = [object_] for obj in object_: - try: - if not subclass: - assert isinstance(obj, object_instance) - else: - assert issubclass(obj, object_instance) - except AssertionError as e: - raise ValueError( - f"{type(obj).__name__} must be {object_instance}." - ) from e + is_class = isinstance(obj, type) + expected_type_name = ( + object_instance.__name__ + if isinstance(object_instance, type) + else str(object_instance) + ) + + if subclass: + 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): From 8c15ba9b0269ef855d484b641a34292e80703e94 Mon Sep 17 00:00:00 2001 From: FilippoOlivo Date: Mon, 7 Jul 2025 10:05:22 +0200 Subject: [PATCH 2/2] fix codacy --- pina/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pina/utils.py b/pina/utils.py index b72d50071..ddbd2e8ac 100644 --- a/pina/utils.py +++ b/pina/utils.py @@ -63,7 +63,7 @@ class or, if ``subclass=True``, whether it is a subclass of the specified f"Please pass a {expected_type_name} class or a " "derived one." ) - elif not issubclass(obj, object_instance): + if not issubclass(obj, object_instance): raise ValueError( f"You passed {obj.__name__} class, but a " f"{expected_type_name} class was expected. " @@ -77,7 +77,7 @@ class or, if ``subclass=True``, whether it is a subclass of the specified f"{expected_type_name} instance was expected. " f"Please pass a {expected_type_name} instance." ) - elif not isinstance(obj, object_instance): + if not isinstance(obj, object_instance): raise ValueError( f"You passed {repr(obj)} " f"(an instance of {type(obj).__name__}), "