From 85bf33ef3b7220918d53711b90a49ee29de65836 Mon Sep 17 00:00:00 2001
From: speckhard <dts@stanford.edu>
Date: Mon, 29 Apr 2019 19:11:49 +0200
Subject: [PATCH] merge migration branch.

---
 common/python/nomadcore/local_backend.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/common/python/nomadcore/local_backend.py b/common/python/nomadcore/local_backend.py
index 6ab3e8a..4cdb877 100644
--- a/common/python/nomadcore/local_backend.py
+++ b/common/python/nomadcore/local_backend.py
@@ -112,7 +112,8 @@ class LocalBackend(object):
         self.closeSection(metaName, openGIndexes[0][1])
 
     def addValue(self, metaName, value, gIndex=-1):
-
+        """override will cause the backend to rewrite the
+        first value of MetaName in gindex in the backend"""
         dataManager = self.dataManagers[metaName]
 
         if self.debug:
@@ -140,7 +141,7 @@ class LocalBackend(object):
     def addRealValue(self, metaName, value, gIndex=-1):
         self.addValue(metaName, value, gIndex)
 
-    def addArrayValues(self, metaName, values, gIndex=-1):
+    def addArrayValues(self, metaName, values, gIndex=-1, **kwargs):
 
         dataManager = self.dataManagers[metaName]
 
@@ -182,7 +183,7 @@ class LocalBackend(object):
             if actual_numpy_type not in array_types:
                 raise TypeError("The given array for metainfo '{}' has incorrect type of values in it. The values given are '{}', whereas the datatype given in metainfo is '{}'".format(metaName, actual_numpy_type, dtype_str))
 
-        dataManager.superSectionManager.addArrayValues(dataManager.metaInfo, values, gIndex=gIndex)
+        dataManager.superSectionManager.addArrayValues(dataManager.metaInfo, values, gIndex=gIndex, **kwargs)
 
     def setSectionInfo(self, metaName, gIndex, references):
         """
@@ -529,7 +530,7 @@ class Section(object):
         return key in keys
 
     def addValue(self, metaInfo, value):
-        if self.backend.store:
+        if self.backend.store:  # Check if backend set to store values.
             if self.debug:
                 vals = self.simple_values.get(metaInfo.name, None)
                 if vals is None:
@@ -551,9 +552,9 @@ class Section(object):
                     idxs = [slice(0, x) for x in values.shape]
                 vals[len(vals) - 1][idxs] = values
 
-    def addArrayValues(self, metaInfo, values):
+    def addArrayValues(self, metaInfo, values, override: bool = False):
         if self.backend.store:
-            if self.debug:
+            if self.debug and not override:
                 vals = self.array_values.get(metaInfo.name, None)
                 if vals is None:
                     self.array_values[metaInfo.name] = values
@@ -637,13 +638,13 @@ class SectionManager(object):
         except KeyError:
             raise Exception("Cannot set array values for metadata %s to section %d (%d) of %s, as it is not open" % (valueMetaInfo.name, gI, gIndex, self.metaInfo.name))
 
-    def addArrayValues(self, valueMetaInfo, value, gIndex=-1):
+    def addArrayValues(self, valueMetaInfo, value, gIndex=-1, **kwargs):
         if gIndex == -1:
             gI = self.lastSectionGIndex
         else:
             gI = gIndex
         try:
-            self.openSections[gI].addArrayValues(valueMetaInfo, value)
+            self.openSections[gI].addArrayValues(valueMetaInfo, value, **kwargs)
         except KeyError:
             raise Exception("Cannot add array values for metadata %s to section %d (%d) of %s, as it is not open" % (valueMetaInfo.name, gI, gIndex, self.metaInfo.name))
 
-- 
GitLab