From 8d6b9dda40a822b65e5a0251048029feb746a39f Mon Sep 17 00:00:00 2001 From: "Julian.Endres" Date: Thu, 30 Nov 2023 16:31:00 +0100 Subject: [PATCH 1/2] Add wrapper to enhance info on failed facade creation --- src/oemof/tabular/datapackage/reading.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/oemof/tabular/datapackage/reading.py b/src/oemof/tabular/datapackage/reading.py index fac4ed7d..2d1c4645 100644 --- a/src/oemof/tabular/datapackage/reading.py +++ b/src/oemof/tabular/datapackage/reading.py @@ -29,6 +29,28 @@ FLOW_TYPE = object() +def error_enhancer(func): + def wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as e: + # Add additional information to the error message + facade_type = args[0].get("type", None) + facade_name = args[0].get("name", None) + if facade_type is not None and facade_name is not None: + additional_info = ( + f"\nFailed creating '{facade_type}' with " + f"name '{facade_name}'." + ) + new_error_message = f"{str(e)} - {additional_info}" + else: + new_error_message = str(e) + # Raise the enhanced error + raise type(e)(new_error_message).with_traceback(e.__traceback__) + + return wrapper + + def sequences(r, timeindices=None): """Parses the resource `r` as a sequence.""" result = { @@ -44,6 +66,7 @@ def sequences(r, timeindices=None): return result +@error_enhancer def read_facade( facade, facades, From 407a79706cbe721ad3fe93b5e66d4779d90db0f2 Mon Sep 17 00:00:00 2001 From: "Julian.Endres" Date: Mon, 4 Dec 2023 13:35:15 +0100 Subject: [PATCH 2/2] Add changelog entry --- CHANGELOG.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 42b99fe2..ccfb7654 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -12,6 +12,7 @@ Features * Improve reading error message `#134 `_ * Remove facade relicts `#135 `_ +* Reading error enhancer `#145 `_ Fixes