@@ -936,22 +936,18 @@ def save_result(args: Dict, env: EvalEnv) -> SaveResult: # TODO: return type no
936936
937937@process_registry_100 .add_function (spec = read_spec ("openeo-processes/experimental/save_ml_model.json" ))
938938@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 )
946942 return MlModelResult (ml_model = data , options = options )
947943
948944
949945@process_registry_100 .add_function (spec = read_spec ("openeo-processes/experimental/load_ml_model.json" ))
950946@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 :
952948 if env .get (ENV_DRY_RUN_TRACER ):
953949 return DriverMlModel ()
954- job_id = extract_arg ( args , "id" )
950+ job_id = args . get_required ( "id" , expected_type = str )
955951 return env .backend_implementation .load_ml_model (job_id )
956952
957953
@@ -1430,17 +1426,17 @@ def filter_temporal(args: dict, env: EvalEnv) -> DriverDataCube:
14301426 extent = _extract_temporal_extent (args , field = "extent" , process_id = "filter_temporal" )
14311427 return cube .filter_temporal (start = extent [0 ], end = extent [1 ])
14321428
1429+
14331430@process_registry_100 .add_function (spec = read_spec ("openeo-processes/1.x/proposals/filter_labels.json" ))
14341431@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 )
14421439
1443- return cube .filter_labels (condition = extract_arg (args ,"condition" ),dimension = extract_arg (args ,"dimension" ),context = args .get ("context" ,None ),env = env )
14441440
14451441def _extract_bbox_extent (args : dict , field = "extent" , process_id = "filter_bbox" , handle_geojson = False ) -> dict :
14461442 extent = extract_arg (args , name = field , process_id = process_id )
@@ -1505,13 +1501,11 @@ def filter_spatial(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
15051501
15061502
15071503@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 )
15151509 return cube .filter_bands (bands = bands )
15161510
15171511
@@ -2325,10 +2319,11 @@ def load_result(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
23252319
23262320@process_registry_100 .add_function (spec = read_spec ("openeo-processes/1.x/proposals/inspect.json" ))
23272321@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" )
23322327 if message :
23332328 _log .log (level = logging .getLevelName (level .upper ()), msg = message )
23342329 data_message = str (data )
0 commit comments