@@ -936,22 +936,18 @@ def save_result(args: Dict, env: EvalEnv) -> SaveResult: # TODO: return type no
936
936
937
937
@process_registry_100 .add_function (spec = read_spec ("openeo-processes/experimental/save_ml_model.json" ))
938
938
@process_registry_2xx .add_function (spec = read_spec ("openeo-processes/experimental/save_ml_model.json" ))
939
- def save_ml_model (args : dict , env : EvalEnv ) -> MlModelResult :
940
- data : DriverMlModel = extract_arg (args , "data" , process_id = "save_ml_model" )
941
- if not isinstance (data , DriverMlModel ):
942
- raise ProcessParameterInvalidException (
943
- parameter = "data" , process = "save_ml_model" , reason = f"Invalid data type { type (data )!r} expected raster-cube."
944
- )
945
- options = args .get ("options" , {})
939
+ def save_ml_model (args : ProcessArgs , env : EvalEnv ) -> MlModelResult :
940
+ data = args .get_required ("data" , expected_type = DriverMlModel )
941
+ options = args .get_optional ("options" , default = {}, expected_type = dict )
946
942
return MlModelResult (ml_model = data , options = options )
947
943
948
944
949
945
@process_registry_100 .add_function (spec = read_spec ("openeo-processes/experimental/load_ml_model.json" ))
950
946
@process_registry_2xx .add_function (spec = read_spec ("openeo-processes/experimental/load_ml_model.json" ))
951
- def load_ml_model (args : dict , env : EvalEnv ) -> DriverMlModel :
947
+ def load_ml_model (args : ProcessArgs , env : EvalEnv ) -> DriverMlModel :
952
948
if env .get (ENV_DRY_RUN_TRACER ):
953
949
return DriverMlModel ()
954
- job_id = extract_arg ( args , "id" )
950
+ job_id = args . get_required ( "id" , expected_type = str )
955
951
return env .backend_implementation .load_ml_model (job_id )
956
952
957
953
@@ -1430,17 +1426,17 @@ def filter_temporal(args: dict, env: EvalEnv) -> DriverDataCube:
1430
1426
extent = _extract_temporal_extent (args , field = "extent" , process_id = "filter_temporal" )
1431
1427
return cube .filter_temporal (start = extent [0 ], end = extent [1 ])
1432
1428
1429
+
1433
1430
@process_registry_100 .add_function (spec = read_spec ("openeo-processes/1.x/proposals/filter_labels.json" ))
1434
1431
@process_registry_2xx .add_function (spec = read_spec ("openeo-processes/2.x/proposals/filter_labels.json" ))
1435
- def filter_labels (args : dict , env : EvalEnv ) -> DriverDataCube :
1436
- cube = extract_arg ( args , 'data' )
1437
- if not isinstance ( cube , DriverDataCube ):
1438
- raise ProcessParameterInvalidException (
1439
- parameter = "data " , process = "filter_labels" ,
1440
- reason = f"Invalid data type { type ( cube )!r } expected cube."
1441
- )
1432
+ def filter_labels (args : ProcessArgs , env : EvalEnv ) -> DriverDataCube :
1433
+ cube : DriverDataCube = args . get_required ( "data" , expected_type = DriverDataCube )
1434
+ # TODO: validation that condition is a process graph construct
1435
+ condition = args . get_required ( "condition" , expected_type = dict )
1436
+ dimension = args . get_required ( "dimension " , expected_type = str )
1437
+ context = args . get_optional ( "context" , default = None )
1438
+ return cube . filter_labels ( condition = condition , dimension = dimension , context = context , env = env )
1442
1439
1443
- return cube .filter_labels (condition = extract_arg (args ,"condition" ),dimension = extract_arg (args ,"dimension" ),context = args .get ("context" ,None ),env = env )
1444
1440
1445
1441
def _extract_bbox_extent (args : dict , field = "extent" , process_id = "filter_bbox" , handle_geojson = False ) -> dict :
1446
1442
extent = extract_arg (args , name = field , process_id = process_id )
@@ -1505,13 +1501,11 @@ def filter_spatial(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1505
1501
1506
1502
1507
1503
@process
1508
- def filter_bands (args : Dict , env : EvalEnv ) -> Union [DriverDataCube , DriverVectorCube ]:
1509
- cube : Union [DriverDataCube , DriverVectorCube ] = extract_arg (args , "data" )
1510
- if not isinstance (cube , DriverDataCube ) and not isinstance (cube , DriverVectorCube ):
1511
- raise ProcessParameterInvalidException (
1512
- parameter = "data" , process = "filter_bands" , reason = f"Invalid data type { type (cube )!r} expected raster-cube."
1513
- )
1514
- bands = extract_arg (args , "bands" , process_id = "filter_bands" )
1504
+ def filter_bands (args : ProcessArgs , env : EvalEnv ) -> Union [DriverDataCube , DriverVectorCube ]:
1505
+ cube : Union [DriverDataCube , DriverVectorCube ] = args .get_required (
1506
+ "data" , expected_type = (DriverDataCube , DriverVectorCube )
1507
+ )
1508
+ bands = args .get_required ("bands" , expected_type = list )
1515
1509
return cube .filter_bands (bands = bands )
1516
1510
1517
1511
@@ -2325,10 +2319,11 @@ def load_result(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
2325
2319
2326
2320
@process_registry_100 .add_function (spec = read_spec ("openeo-processes/1.x/proposals/inspect.json" ))
2327
2321
@process_registry_2xx .add_function (spec = read_spec ("openeo-processes/2.x/proposals/inspect.json" ))
2328
- def inspect (args : dict , env : EvalEnv ):
2329
- data = extract_arg (args , "data" )
2330
- message = args .get ("message" , "" )
2331
- level = args .get ("level" , "info" )
2322
+ def inspect (args : ProcessArgs , env : EvalEnv ):
2323
+ data = args .get_required ("data" )
2324
+ message = args .get_optional ("message" , default = "" )
2325
+ code = args .get_optional ("code" , default = "User" )
2326
+ level = args .get_optional ("level" , default = "info" )
2332
2327
if message :
2333
2328
_log .log (level = logging .getLevelName (level .upper ()), msg = message )
2334
2329
data_message = str (data )
0 commit comments