Skip to content

Commit 2b607e2

Browse files
soxofaanPeter Van Bouwel
authored and
Peter Van Bouwel
committed
Issue Open-EO#346 some more ProcessArgs porting
for less boilerplate code and better error messages
1 parent cecd24b commit 2b607e2

File tree

1 file changed

+20
-37
lines changed

1 file changed

+20
-37
lines changed

openeo_driver/ProcessGraphDeserializer.py

+20-37
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import time
1414
import warnings
1515
from pathlib import Path
16-
from typing import Any, Callable, Dict, Iterable, List, Tuple, Union, Sequence
16+
from typing import Any, Callable, Dict, Iterable, List, Tuple, Union, Sequence, Optional
1717

1818
import geopandas as gpd
1919
import numpy as np
@@ -1187,51 +1187,34 @@ def add_dimension(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
11871187

11881188

11891189
@process
1190-
def drop_dimension(args: dict, env: EvalEnv) -> DriverDataCube:
1191-
data_cube = extract_arg(args, 'data')
1192-
if not isinstance(data_cube, DriverDataCube):
1193-
raise ProcessParameterInvalidException(
1194-
parameter="data", process="drop_dimension",
1195-
reason=f"Invalid data type {type(data_cube)!r} expected raster-cube."
1196-
)
1197-
return data_cube.drop_dimension(name=extract_arg(args, 'name'))
1190+
def drop_dimension(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1191+
cube: DriverDataCube = args.get_required("data", expected_type=DriverDataCube)
1192+
name: str = args.get_required("name", expected_type=str)
1193+
return cube.drop_dimension(name=name)
11981194

11991195

12001196
@process
1201-
def dimension_labels(args: dict, env: EvalEnv) -> DriverDataCube:
1202-
data_cube = extract_arg(args, 'data')
1203-
if not isinstance(data_cube, DriverDataCube):
1204-
raise ProcessParameterInvalidException(
1205-
parameter="data", process="dimension_labels",
1206-
reason=f"Invalid data type {type(data_cube)!r} expected raster-cube."
1207-
)
1208-
return data_cube.dimension_labels(dimension=extract_arg(args, 'dimension'))
1197+
def dimension_labels(args: ProcessArgs, env: EvalEnv) -> List[str]:
1198+
cube: DriverDataCube = args.get_required("data", expected_type=DriverDataCube)
1199+
dimension: str = args.get_required("dimension", expected_type=str)
1200+
return cube.dimension_labels(dimension=dimension)
12091201

12101202

12111203
@process
1212-
def rename_dimension(args: dict, env: EvalEnv) -> DriverDataCube:
1213-
data_cube = extract_arg(args, 'data')
1214-
if not isinstance(data_cube, DriverDataCube):
1215-
raise ProcessParameterInvalidException(
1216-
parameter="data", process="rename_dimension",
1217-
reason=f"Invalid data type {type(data_cube)!r} expected raster-cube."
1218-
)
1219-
return data_cube.rename_dimension(source=extract_arg(args, 'source'),target=extract_arg(args, 'target'))
1204+
def rename_dimension(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1205+
cube: DriverDataCube = args.get_required("data", expected_type=DriverDataCube)
1206+
source: str = args.get_required("source", expected_type=str)
1207+
target: str = args.get_required("target", expected_type=str)
1208+
return cube.rename_dimension(source=source, target=target)
12201209

12211210

12221211
@process
1223-
def rename_labels(args: dict, env: EvalEnv) -> DriverDataCube:
1224-
data_cube = extract_arg(args, 'data')
1225-
if not isinstance(data_cube, DriverDataCube):
1226-
raise ProcessParameterInvalidException(
1227-
parameter="data", process="rename_labels",
1228-
reason=f"Invalid data type {type(data_cube)!r} expected raster-cube."
1229-
)
1230-
return data_cube.rename_labels(
1231-
dimension=extract_arg(args, 'dimension'),
1232-
target=extract_arg(args, 'target'),
1233-
source=args.get('source',[])
1234-
)
1212+
def rename_labels(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1213+
cube: DriverDataCube = args.get_required("data", expected_type=DriverDataCube)
1214+
dimension: str = args.get_required("dimension", expected_type=str)
1215+
target: List = args.get_required("target", expected_type=list)
1216+
source: Optional[list] = args.get_optional("source", default=None, expected_type=list)
1217+
return cube.rename_labels(dimension=dimension, target=target, source=source)
12351218

12361219

12371220
@process

0 commit comments

Comments
 (0)