Source code for eegunity.utils.handle_errors
import functools
[docs]
def handle_errors(miss_bad_data: bool, error_list: list = None):
"""
Decorator to handle errors in function execution based on the `miss_bad_data` flag.
Parameters
----------
miss_bad_data : bool
If True, errors are caught and logged instead of raising exceptions.
error_list : list, optional
If provided, errors will be added to this list. Default is None (do not store errors).
Returns
-------
Decorated function that handles errors as specified.
"""
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
# Assuming the first argument is `row` and contains a "File Path" key
row = args[0] if args else None
file_path = row["File Path"]
if miss_bad_data:
print(f"Error: {e} (File: {file_path})")
if error_list is not None:
error_list.append(f"Error in file '{file_path}': {e}") # Append the error with file path
return None
else:
raise
return wrapper
return decorator