@@ -164,8 +164,7 @@ def create_performance_definition(
164
164
multiple models, input a list of model names, or a list of dictionaries. If no models are specified, all
165
165
models in the project specified will be used. Defaults to None.
166
166
modelVersions: str, list, optional
167
- The name of the model version(s) for models used in the performance definition. If no model versions
168
- are specified, all models will use the latest version. Defaults to None.
167
+ The name of the model version(s). Defaults to None, where all models are latest.
169
168
library_name : str
170
169
The library containing the input data, default is 'Public'.
171
170
name : str, optional
@@ -268,39 +267,9 @@ def create_performance_definition(
268
267
"Project %s must have the 'predictionVariable' "
269
268
"property set." % project .name
270
269
)
271
- print ("sup" )
272
- if not modelVersions :
273
- updated_models = [model .id for model in models ]
274
- else :
275
- updated_models = []
276
- if not isinstance (modelVersions , list ):
277
- modelVersions = [modelVersions ]
278
-
279
- if len (models ) < len (modelVersions ):
280
- raise ValueError (
281
- "There are too many versions for the amount of models specified."
282
- )
283
-
284
- modelVersions = modelVersions + ["" ] * (len (models ) - len (modelVersions ))
285
- for model , modelVersionName in zip (models , modelVersions ):
286
-
287
- if (
288
- isinstance (modelVersionName , dict )
289
- and "modelVersionName" in modelVersionName
290
- ):
291
270
292
- modelVersionName = modelVersionName ["modelVersionName" ]
293
- elif (
294
- isinstance (modelVersionName , dict )
295
- and "modelVersionName" not in modelVersionName
296
- ):
297
-
298
- raise ValueError ("Model version is not recognized." )
299
-
300
- if modelVersionName != "" :
301
- updated_models .append (model .id + ":" + modelVersionName )
302
- else :
303
- updated_models .append (model .id )
271
+ # Creating the new array of modelIds with version names appended
272
+ updated_models = cls .check_model_versions (models , modelVersions )
304
273
305
274
request = {
306
275
"projectId" : project .id ,
@@ -350,6 +319,57 @@ def create_performance_definition(
350
319
},
351
320
)
352
321
322
+ @classmethod
323
+ def check_model_versions (cls , models , modelVersions ):
324
+ """
325
+ Checking if the model version(s) are valid. Appending them to the model_id accordingly.
326
+
327
+ Parameters
328
+ ----------
329
+ models: list of str
330
+ List of models.
331
+ modelVersions : list of str
332
+ List of model versions associated with models.
333
+
334
+ Returns
335
+ -------
336
+ String list
337
+ """
338
+ if not modelVersions :
339
+ return [model .id for model in models ]
340
+ else :
341
+ updated_models = []
342
+ if not isinstance (modelVersions , list ):
343
+ modelVersions = [modelVersions ]
344
+
345
+ if len (models ) < len (modelVersions ):
346
+ raise ValueError (
347
+ "There are too many versions for the amount of models specified."
348
+ )
349
+
350
+ modelVersions = modelVersions + ["" ] * (len (models ) - len (modelVersions ))
351
+ for model , modelVersionName in zip (models , modelVersions ):
352
+
353
+ if (
354
+ isinstance (modelVersionName , dict )
355
+ and "modelVersionName" in modelVersionName
356
+ ):
357
+
358
+ modelVersionName = modelVersionName ["modelVersionName" ]
359
+ elif (
360
+ isinstance (modelVersionName , dict )
361
+ and "modelVersionName" not in modelVersionName
362
+ ):
363
+
364
+ raise ValueError ("Model version is not recognized." )
365
+
366
+ if modelVersionName != "" :
367
+ updated_models .append (model .id + ":" + modelVersionName )
368
+ else :
369
+ updated_models .append (model .id )
370
+
371
+ return updated_models
372
+
353
373
@classmethod
354
374
def execute_performance_definition (cls , definition ):
355
375
"""Launches a job to run a performance definition.
0 commit comments