diff --git a/parcels/_compat.py b/parcels/_compat.py index 416ed2905b..6efab15a76 100644 --- a/parcels/_compat.py +++ b/parcels/_compat.py @@ -17,17 +17,3 @@ from sklearn.cluster import KMeans # type: ignore[no-redef] except ModuleNotFoundError: pass - - -def add_note(e: Exception, note: str, *, before=False) -> Exception: # TODO: Remove once py3.10 support is dropped - """Implements something similar to PEP 678 but for python <3.11. - - https://stackoverflow.com/a/75549200/15545258 - """ - args = e.args - if not args: - arg0 = note - else: - arg0 = f"{note}\n{args[0]}" if before else f"{args[0]}\n{note}" - e.args = (arg0,) + args[1:] - return e diff --git a/parcels/_datasets/utils.py b/parcels/_datasets/utils.py index d64c628c46..19c64643d9 100644 --- a/parcels/_datasets/utils.py +++ b/parcels/_datasets/utils.py @@ -3,8 +3,6 @@ import numpy as np import xarray as xr -from parcels._compat import add_note - _SUPPORTED_ATTR_TYPES = int | float | str | np.ndarray @@ -34,7 +32,7 @@ def assert_common_attrs_equal( else: assert d1[key] == d2[key], f"{d1[key]} != {d2[key]}" except AssertionError as e: - add_note(e, f"error on key {key!r}") + e.add_note(f"error on key {key!r}") raise diff --git a/parcels/field.py b/parcels/field.py index 9a78fc578d..8063a85afc 100644 --- a/parcels/field.py +++ b/parcels/field.py @@ -10,7 +10,6 @@ import xarray as xr from uxarray.grid.neighbors import _barycentric_coordinates -from parcels._compat import add_note from parcels._typing import ( Mesh, VectorType, @@ -409,7 +408,7 @@ def _interpolate(self, time: datetime, z, y, x, ei): return val except (FieldSamplingError, FieldOutOfBoundError, FieldOutOfBoundSurfaceError) as e: - e = add_note(e, f"Error interpolating field '{self.name}'.", before=True) + e.add_note(f"Error interpolating field '{self.name}'.") raise e def _check_velocitysampling(self): diff --git a/tests/test_compat.py b/tests/test_compat.py deleted file mode 100644 index 4ad9c9e070..0000000000 --- a/tests/test_compat.py +++ /dev/null @@ -1,14 +0,0 @@ -import pytest - -from parcels._compat import add_note - - -def test_add_note_and_raise_value_error(): - with pytest.raises(ValueError) as excinfo: - try: - raise ValueError("original message") - except ValueError as e: - e = add_note(e, "additional note") - raise e - assert "additional note" in str(excinfo.value) - assert "original message" in str(excinfo.value)