@@ -315,6 +315,9 @@ def set_core_metadata(self,
315315 :param list features_list: List of {"name": "feature_name", "type": "feature_type"}
316316 """
317317
318+ if features_list is not None and get_features_from_dataset is not None :
319+ raise Exception ("The information of the features should come either from the features_list or get_features_from_dataset, but not both." )
320+
318321 metadata = self .saved_model .client ._perform_json ("GET" , "/projects/%s/savedmodels/%s/versions/%s/external-ml/metadata" % (self .saved_model .project_key , self .saved_model .sm_id , self .version_id ))
319322
320323 if target_column_name is not None :
@@ -330,9 +333,13 @@ def set_core_metadata(self,
330333 #if get_features_from_signature:
331334 # raise Exception("Get features from signature is not yet implemented")
332335
333- # TODO: Add support for features_list, with validation
336+ if features_list is not None :
337+ for feature in features_list :
338+ if not ("name" in feature and "type" in feature ):
339+ raise Exception ("The features_list should be a list of {'name': 'feature_name', 'type': 'feature_type'}" )
340+ metadata ["features" ] = features_list
334341
335- self .saved_model .client ._perform_empty ("PUT" ,
342+ self .saved_model .client ._perform_empty ("PUT" ,
336343 "/projects/%s/savedmodels/%s/versions/%s/external-ml/metadata" % (self .saved_model .project_key , self .saved_model .sm_id , self .version_id ),
337344 body = metadata )
338345
0 commit comments