Skip to content

Commit

Permalink
add inspect (#261)
Browse files Browse the repository at this point in the history
* add inspect first version

* run pre-commit

* update specs for inspect

* add more tests for logging

* add more tests for logging

* update test
  • Loading branch information
ValentinaHutter authored Jul 2, 2024
1 parent 1de1088 commit 1e9e10b
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 21 deletions.
1 change: 1 addition & 0 deletions openeo_processes_dask/process_implementations/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from .arrays import *
from .comparison import *
from .cubes import *
from .inspect import *
from .logic import *
from .math import *

Expand Down
27 changes: 27 additions & 0 deletions openeo_processes_dask/process_implementations/inspect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
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.lower() == "info":
logger.info(f"{code}: {message} {data}.")

elif level.lower() == "warning":
logger.warning(f"{code}: {message} {data}.")

elif level.lower() == "error":
logger.error(f"{code}: {message} {data}.")

elif level.lower() == "debug":
logger.debug(f"{code}: {message} {data}.")

return data
2 changes: 1 addition & 1 deletion openeo_processes_dask/specs/openeo-processes
45 changes: 45 additions & 0 deletions tests/test_inspect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import logging

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_results(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))


def test_inspect_logs(caplog):
with caplog.at_level(logging.INFO):
result = inspect(data=1, message="First log", code="Logging")
assert result == 1
assert "Logging: First log 1." in caplog.text

with caplog.at_level(logging.WARNING):
result = inspect(data=1, message="First log", level="warning")
assert result == 1
assert "User: First log 1." in caplog.text

with caplog.at_level(logging.ERROR):
result = inspect(data=1, level="error")
assert result == 1
assert "User: 1." in caplog.text

with caplog.at_level(logging.DEBUG):
result = inspect(data=1, level="debug")
assert result == 1
assert "User: 1." in caplog.text
assert "User: 2." not in caplog.text
20 changes: 0 additions & 20 deletions tests/test_ml.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,26 +49,6 @@ def test_fit_regr_random_forest_inline_geojson(
assert isinstance(model, xgb.core.Booster)


def test_fit_regr_random_forest_xvec(vector_data_cube, dask_client):
predictors_vars = ["value2"]
target_var = "value1"

predictors = (
xr.Dataset.from_dataframe(vector_data_cube.set_index("geometry", append=True))
.xvec.set_geom_indexes("geometry", crs=DEFAULT_CRS)
.to_array(dim="bands")
)

model = fit_regr_random_forest(
predictors=predictors,
target=vector_data_cube,
target_var=target_var,
predictors_vars=predictors_vars,
)

assert isinstance(model, xgb.core.Booster)


@pytest.mark.parametrize("size", [(6, 5, 4, 3)])
@pytest.mark.parametrize("dtype", [np.float64])
def test_curve_fitting(temporal_interval, bounding_box, random_raster_data):
Expand Down

0 comments on commit 1e9e10b

Please sign in to comment.