diff --git a/openeo_processes_dask/process_implementations/__init__.py b/openeo_processes_dask/process_implementations/__init__.py index aa7c3d15..64c4014d 100644 --- a/openeo_processes_dask/process_implementations/__init__.py +++ b/openeo_processes_dask/process_implementations/__init__.py @@ -5,6 +5,7 @@ from .arrays import * from .comparison import * from .cubes import * +from .inspect import * from .logic import * from .math import * diff --git a/openeo_processes_dask/process_implementations/inspect.py b/openeo_processes_dask/process_implementations/inspect.py new file mode 100644 index 00000000..a10da245 --- /dev/null +++ b/openeo_processes_dask/process_implementations/inspect.py @@ -0,0 +1,28 @@ +import logging +from typing import Any, Optional + +__all__ = ["inspect"] + +logger = logging.getLogger(__name__) + + +def inspect( + data: Any, + message: Optional[str] = "", + code: Optional[str] = "User", + level: Optional[str] = "info", +) -> Any: + + if level == "info": + logger.info(f"{code}: {message} {data}.") + + elif level == "warning": + logger.warning(f"{code}: {message} {data}.") + + elif level == "error": + logger.error(f"{code}: {message} {data}.") + + elif level == "debug": + logger.debug(f"{code}: {message} {data}.") + + return data diff --git a/tests/test_inspect.py b/tests/test_inspect.py new file mode 100644 index 00000000..a353e4c9 --- /dev/null +++ b/tests/test_inspect.py @@ -0,0 +1,20 @@ +import numpy as np +import pytest +import xarray as xr + +from openeo_processes_dask.process_implementations.inspect import inspect +from tests.mockdata import create_fake_rastercube + + +@pytest.mark.parametrize("size", [(6, 5, 4, 4)]) +@pytest.mark.parametrize("dtype", [np.float32]) +def test_inspect(temporal_interval, bounding_box, random_raster_data): + raster_cube = create_fake_rastercube( + data=random_raster_data, + spatial_extent=bounding_box, + temporal_extent=temporal_interval, + bands=["B02", "B03", "B04", "B08"], + ) + + assert inspect(np.zeros((1))) == np.zeros((1)) + xr.testing.assert_equal(raster_cube, inspect(raster_cube))