From a3ed26cfb75a3ccaaa6e208231e7d3b78c9f20dd Mon Sep 17 00:00:00 2001
From: Nikolai <osterei33@gmx.de>
Date: Mon, 30 Apr 2018 10:21:44 +0200
Subject: [PATCH] getters and setters for more datasets

---
 toolkit.py | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/toolkit.py b/toolkit.py
index eb5b02c..d18fe5f 100755
--- a/toolkit.py
+++ b/toolkit.py
@@ -100,10 +100,13 @@ class KerasROOTClassification(object):
         self.b_train = None
         self.s_test = None
         self.b_test = None
-        self.x_train = None
-        self.x_test = None
-        self.y_train = None
-        self.y_test = None
+
+        self._x_train = None
+        self._x_test = None
+        self._y_train = None
+        self._y_test = None
+        self._w_train = None
+        self._w_test = None
 
         self.s_eventlist_train = None
         self.b_eventlist_train = None
@@ -560,6 +563,25 @@ class KerasROOTClassification(object):
         plt.savefig(os.path.join(self.project_dir, "accuracy.pdf"))
         plt.clf()
 
+def create_getter(dataset_name):
+    def getx(self):
+        if getattr(self, "_"+dataset_name) is None:
+            self._load_from_hdf5([dataset_name])
+        return getattr(self, "_"+dataset_name)
+    return getx
+
+def create_setter(dataset_name):
+    def setx(self, value):
+        # maybe change this at some point to also dump into hdf
+        setattr(self, "_"+dataset_name, value)
+    return setx
+
+# define getters and setters for all datasets
+for dataset_name in KerasROOTClassification.dataset_names:
+    setattr(KerasROOTClassification, dataset_name, property(create_getter(dataset_name),
+                                                            create_setter(dataset_name)))
+
+
 if __name__ == "__main__":
 
     logging.basicConfig()
-- 
GitLab