From 27b2081e87e1dbb6c528dddc332d4c71ef177a37 Mon Sep 17 00:00:00 2001
From: Nikolai <osterei33@gmx.de>
Date: Sun, 6 May 2018 20:20:50 +0200
Subject: [PATCH] option to initialise from project directory (without
 specifying options again)

---
 toolkit.py | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/toolkit.py b/toolkit.py
index 8424fd5..99a23a5 100755
--- a/toolkit.py
+++ b/toolkit.py
@@ -50,9 +50,20 @@ class KerasROOTClassification(object):
     dataset_names_tree = ["x_train", "x_test", "y_train", "y_test", "w_train", "w_test"]
 
     def __init__(self, name, *args, **kwargs):
-        self._init_from_args(name, *args, **kwargs)
-        with open(os.path.join(self.project_dir, "options.json"), "w") as of:
-            json.dump(dict(args=args, kwargs=kwargs), of)
+        if len(args) < 1 and len(kwargs) < 1:
+            # if no further arguments given, interpret as directory name
+            self._init_from_dir(name)
+        else:
+            # otherwise initialise new project
+            self._init_from_args(name, *args, **kwargs)
+            with open(os.path.join(self.project_dir, "options.json"), "w") as of:
+                json.dump(dict(args=args, kwargs=kwargs), of)
+
+
+    def _init_from_dir(self, dirname):
+        with open(os.path.join(dirname, "options.json")) as f:
+            options = json.load(f)
+        self._init_from_args(os.path.basename(dirname), *options["args"], **options["kwargs"])
 
 
     def _init_from_args(self, name,
-- 
GitLab