Skip to content

Commit

Permalink
DriverDataCube methods: give context a default value
Browse files Browse the repository at this point in the history
requiring explicit context breaks too much tests in openeo-geopyspark-driver
  • Loading branch information
soxofaan committed May 24, 2023
1 parent 411d0f4 commit 35b4e38
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 15 deletions.
2 changes: 1 addition & 1 deletion openeo_driver/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.51.0a1"
__version__ = "0.51.1a1"
19 changes: 11 additions & 8 deletions openeo_driver/datacube.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ def filter_spatial(self, geometries) -> 'DriverDataCube':
def filter_bands(self, bands) -> 'DriverDataCube':
self._not_implemented()

def apply(self, process: dict, *, context: Optional[dict], env: EvalEnv) -> "DriverDataCube":
def apply(self, process: dict, *, context: Optional[dict] = None, env: EvalEnv) -> "DriverDataCube":
self._not_implemented()

def apply_kernel(self, kernel: list, factor=1, border=0, replace_invalid=0) -> 'DriverDataCube':
self._not_implemented()

def apply_neighborhood(
self, process: dict, *, size: List[dict], overlap: List[dict], context: Optional[dict], env: EvalEnv
self, process: dict, *, size: List[dict], overlap: List[dict], context: Optional[dict] = None, env: EvalEnv
) -> "DriverDataCube":
self._not_implemented()

Expand All @@ -73,20 +73,22 @@ def apply_dimension(
*,
dimension: str,
target_dimension: Optional[str],
context: Optional[dict],
context: Optional[dict] = None,
env: EvalEnv,
) -> "DriverDataCube":
self._not_implemented()

def apply_tiles_spatiotemporal(self, process, context={}) -> 'DriverDataCube':
def apply_tiles_spatiotemporal(self, process, *, context: Optional[dict] = None) -> "DriverDataCube":
self._not_implemented()

def reduce_dimension(
self, reducer: dict, *, dimension: str, context: Optional[dict], env: EvalEnv
self, reducer: dict, *, dimension: str, context: Optional[dict] = None, env: EvalEnv
) -> "DriverDataCube":
self._not_implemented()

def chunk_polygon(self, reducer, chunks, mask_value: float, env: EvalEnv, context={}) -> 'DriverDataCube':
def chunk_polygon(
self, reducer, chunks, mask_value: float, env: EvalEnv, context: Optional[dict] = None
) -> "DriverDataCube":
# TODO: rename/update `chunk_polygon` to `apply_polygon` (https://github.com/Open-EO/openeo-processes/pull/298)
self._not_implemented()

Expand Down Expand Up @@ -131,8 +133,9 @@ def merge_cubes(self, other: 'DriverDataCube', overlap_resolver) -> 'DriverDataC
def resample_cube_spatial(self, target: 'DriverDataCube', method: str = 'near') -> 'DriverDataCube':
self._not_implemented()

def aggregate_temporal(self, intervals: list, reducer, labels: list = None,
dimension: str = None, context:dict = None) -> 'DriverDataCube':
def aggregate_temporal(
self, intervals: list, reducer, labels: list = None, dimension: str = None, context: Optional[dict] = None
) -> "DriverDataCube":
self._not_implemented()

def aggregate_spatial(
Expand Down
14 changes: 9 additions & 5 deletions openeo_driver/dry_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,15 +564,19 @@ def resample_cube_spatial(self, target: 'DryRunDataCube', method: str = 'near')
metadata=self.metadata
)

def reduce_dimension(self, reducer, *, dimension: str, context: Optional[dict], env: EvalEnv) -> "DryRunDataCube":
def reduce_dimension(
self, reducer, *, dimension: str, context: Optional[dict] = None, env: EvalEnv
) -> "DryRunDataCube":
dc = self
if self.metadata.has_temporal_dimension() and self.metadata.temporal_dimension.name == dimension:
# TODO: reduce is not necessarily global in call cases
dc = self._process("process_type", [ProcessType.GLOBAL_TIME])

return dc._process_metadata(self.metadata.reduce_dimension(dimension_name=dimension))

def chunk_polygon(self, reducer, chunks: MultiPolygon, mask_value: float, env: EvalEnv, context={}) -> 'DryRunDataCube':
def chunk_polygon(
self, reducer, chunks: MultiPolygon, mask_value: float, env: EvalEnv, context: Optional[dict] = None
) -> "DryRunDataCube":
# TODO: rename/update `chunk_polygon` to `apply_polygon` (https://github.com/Open-EO/openeo-processes/pull/298)
polygons: List[Polygon] = chunks.geoms
# TODO #71 #114 Deprecate/avoid usage of GeometryCollection
Expand Down Expand Up @@ -612,7 +616,7 @@ def apply_kernel(self, kernel: numpy.ndarray, factor=1, border=0, replace_invali
return cube._process("apply_kernel", arguments={"kernel": kernel})

def apply_dimension(
self, process, *, dimension: str, target_dimension: Optional[str], context: Optional[dict], env: EvalEnv
self, process, *, dimension: str, target_dimension: Optional[str], context: Optional[dict] = None, env: EvalEnv
) -> "DriverDataCube":
cube = self
if self.metadata.has_temporal_dimension() and self.metadata.temporal_dimension.name == dimension:
Expand All @@ -624,8 +628,8 @@ def apply_dimension(

return cube._process("apply_dimension", arguments={"dimension": dimension})

def apply_tiles_spatiotemporal(self, process, context={}) -> 'DriverDataCube':
if (self.metadata.has_temporal_dimension()):
def apply_tiles_spatiotemporal(self, process, context: Optional[dict] = None) -> "DriverDataCube":
if self.metadata.has_temporal_dimension():
return self._process("process_type", [ProcessType.GLOBAL_TIME])
else:
return self
Expand Down
4 changes: 3 additions & 1 deletion openeo_driver/dummy/dummy_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,9 @@ def __init__(self, metadata: CollectionMetadata = None):
setattr(self, name, Mock(side_effect=getattr(self, name)))

@mock_side_effect
def reduce_dimension(self, reducer, *, dimension: str, context: Optional[dict], env: EvalEnv) -> "DummyDataCube":
def reduce_dimension(
self, reducer, *, dimension: str, context: Optional[dict] = None, env: EvalEnv
) -> "DummyDataCube":
return DummyDataCube(self.metadata.reduce_dimension(dimension_name=dimension))

@mock_side_effect
Expand Down

0 comments on commit 35b4e38

Please sign in to comment.