From e843dc36b15b64fa0391b9001ed4fab0e82e0e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Pe=CC=81net?= Date: Mon, 4 Oct 2021 14:33:34 +0200 Subject: [PATCH] Trading Run IDs for Evaluation IDs --- dataikuapi/dss/modelevaluationstore.py | 46 +++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/dataikuapi/dss/modelevaluationstore.py b/dataikuapi/dss/modelevaluationstore.py index 4d2d2900..fb3c4947 100644 --- a/dataikuapi/dss/modelevaluationstore.py +++ b/dataikuapi/dss/modelevaluationstore.py @@ -124,18 +124,18 @@ def list_model_evaluations(self): :returns: The list of the model evaluations :rtype: list of :class:`dataikuapi.dss.modelevaluationstore.DSSModelEvaluation` """ - items = self.client._perform_json("GET", "/projects/%s/modelevaluationstores/%s/runs/" % (self.project_key, self.mes_id)) - return [DSSModelEvaluation(self, item["ref"]["runId"]) for item in items] + items = self.client._perform_json("GET", "/projects/%s/modelevaluationstores/%s/evaluations/" % (self.project_key, self.mes_id)) + return [DSSModelEvaluation(self, item["ref"]["evaluationId"]) for item in items] - def get_model_evaluation(self, run_id): + def get_model_evaluation(self, evaluation_id): """ Get a handle to interact with a specific model evaluation - :param string run_id: the id of the desired model evaluation + :param string evaluation_id: the id of the desired model evaluation :returns: A :class:`dataikuapi.dss.modelevaluationstore.DSSModelEvaluation` model evaluation handle """ - return DSSModelEvaluation(self, run_id) + return DSSModelEvaluation(self, evaluation_id) def get_latest_model_evaluation(self): """ @@ -146,11 +146,11 @@ def get_latest_model_evaluation(self): if the store is not empty, else None """ - latest_run_id = self.client._perform_text( - "GET", "/projects/%s/modelevaluationstores/%s/latestRunId" % (self.project_key, self.mes_id)) - if not latest_run_id: + latest_evaluation_id = self.client._perform_text( + "GET", "/projects/%s/modelevaluationstores/%s/latestEvaluationId" % (self.project_key, self.mes_id)) + if not latest_evaluation_id: return None - return DSSModelEvaluation(self, latest_run_id) + return DSSModelEvaluation(self, latest_evaluation_id) def delete_model_evaluations(self, evaluations): """ @@ -159,13 +159,13 @@ def delete_model_evaluations(self, evaluations): obj = [] for evaluation in evaluations: if isinstance(evaluation, DSSModelEvaluation): - obj.append(evaluation.run_id) + obj.append(evaluation.evaluation_id) elif isinstance(evaluation, dict): - obj.append(evaluation['run_id']) + obj.append(evaluation['evaluation_id']) else: obj.append(evaluation) self.client._perform_json( - "DELETE", "/projects/%s/modelevaluationstores/%s/runs/" % (self.project_key, self.mes_id, self.run_id), body=obj) + "DELETE", "/projects/%s/modelevaluationstores/%s/evaluations/" % (self.project_key, self.mes_id), body=obj) def build(self, job_type="NON_RECURSIVE_FORCED_BUILD", wait=True, no_fail=False): """ @@ -263,11 +263,11 @@ class DSSModelEvaluation: Do not create this class directly, instead use :meth:`dataikuapi.dss.DSSModelEvaluationStore.get_model_evaluation` """ - def __init__(self, model_evaluation_store, run_id): + def __init__(self, model_evaluation_store, evaluation_id): self.model_evaluation_store = model_evaluation_store self.client = model_evaluation_store.client # unpack some fields - self.run_id = run_id + self.evaluation_id = evaluation_id self.project_key = model_evaluation_store.project_key self.mes_id = model_evaluation_store.mes_id @@ -276,23 +276,23 @@ def get_full_info(self): Retrieve the model evaluation with its performance data """ data = self.client._perform_json( - "GET", "/projects/%s/modelevaluationstores/%s/runs/%s" % (self.project_key, self.mes_id, self.run_id)) + "GET", "/projects/%s/modelevaluationstores/%s/evaluations/%s" % (self.project_key, self.mes_id, self.evaluation_id)) return DSSModelEvaluationFullInfo(self, data) def get_full_id(self): - return "ME-{}-{}-{}".format(self.project_key, self.mes_id, self.run_id) + return "ME-{}-{}-{}".format(self.project_key, self.mes_id, self.evaluation_id) def delete(self): """ Remove this model evaluation """ - obj = [self.run_id] + obj = [self.evaluation_id] self.client._perform_json( - "DELETE", "/projects/%s/modelevaluationstores/%s/runs/" % (self.project_key, self.mes_id), body=obj) + "DELETE", "/projects/%s/modelevaluationstores/%s/evaluations/" % (self.project_key, self.mes_id), body=obj) @property def full_id(self): - return "ME-%s-%s-%s"%(self.project_key, self.mes_id, self.run_id) + return "ME-%s-%s-%s"%(self.project_key, self.mes_id, self.evaluation_id) def compute_data_drift(self, reference=None, data_drift_params=None, wait=True): """ @@ -310,7 +310,7 @@ def compute_data_drift(self, reference=None, data_drift_params=None, wait=True): reference = reference.full_id future_response = self.client._perform_json( - "POST", "/projects/%s/modelevaluationstores/%s/runs/%s/computeDataDrift" % (self.project_key, self.mes_id, self.run_id), + "POST", "/projects/%s/modelevaluationstores/%s/evaluations/%s/computeDataDrift" % (self.project_key, self.mes_id, self.evaluation_id), body={ "referenceId": reference, "dataDriftParams": data_drift_params @@ -325,7 +325,7 @@ def get_metrics(self): :return: the metrics, as a JSON object """ return self.client._perform_json( - "GET", "/projects/%s/modelevaluationstores/%s/runs/%s/metrics" % (self.project_key, self.mes_id, self.run_id)) + "GET", "/projects/%s/modelevaluationstores/%s/evaluations/%s/metrics" % (self.project_key, self.mes_id, self.evaluation_id)) def get_sample_df(self): """ @@ -337,12 +337,12 @@ def get_sample_df(self): buf = BytesIO() with self.client._perform_raw( "GET", - "/projects/%s/modelevaluationstores/%s/runs/%s/sample" % (self.project_key, self.mes_id, self.run_id) + "/projects/%s/modelevaluationstores/%s/evaluations/%s/sample" % (self.project_key, self.mes_id, self.evaluation_id) ).raw as f: buf.write(f.read()) schema_txt = self.client._perform_raw( "GET", - "/projects/%s/modelevaluationstores/%s/runs/%s/schema" % (self.project_key, self.mes_id, self.run_id) + "/projects/%s/modelevaluationstores/%s/evaluations/%s/schema" % (self.project_key, self.mes_id, self.evaluation_id) ).text schema = json.loads(schema_txt) import pandas as pd