From 6ea1a6327ed2e21eba68b48590c9dbb7eedf3be5 Mon Sep 17 00:00:00 2001
From: Yifan Zhao <yifanz16@illinois.edu>
Date: Thu, 28 Jan 2021 21:43:43 -0600
Subject: [PATCH] Made _load inplace for easier inheritance

---
 predtuner/modeledapp.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/predtuner/modeledapp.py b/predtuner/modeledapp.py
index 680c5f1..c0eeb47 100644
--- a/predtuner/modeledapp.py
+++ b/predtuner/modeledapp.py
@@ -291,7 +291,7 @@ class QoSModelP2(IQoSModel):
 
     def _init(self):
         if self.storage and self.storage.is_file():
-            self.qos_df, self.baseline_qos = self._load(self.storage)
+            self._load(self.storage)
         else:
             knob_names = [k.name for k in self.app.knobs]
             self.qos_df = pd.DataFrame(index=self.app.ops, columns=knob_names)
@@ -306,11 +306,9 @@ class QoSModelP2(IQoSModel):
             self._save(self.storage)
         super()._init()
 
-    def _load(self, path: Path) -> Tuple[pd.DataFrame, float]:
+    def _load(self, path: Path):
         with path.open() as f:
             data = json.load(f)
-        df = pd.DataFrame(data["df"])
-        baseline_qos = float(data["bqos"])
         if "app_name" in data:
             name = data["app_name"]
             if self.app.name != name:
@@ -321,7 +319,8 @@ class QoSModelP2(IQoSModel):
         else:
             msg_logger.warning("Loaded profile does not have app name identifier")
         msg_logger.info(f"Model {self.name} loaded saved model at {path}")
-        return df, baseline_qos
+        self.qos_df = pd.DataFrame(data["df"])
+        self.baseline_qos = float(data["bqos"])
 
     def _save(self, path: Path):
         import os
-- 
GitLab