@@ -510,13 +510,13 @@ def save_appending(self, result, overwrite=True):
510510 vc = result .ValueCount
511511 # set in df
512512 values ["resultid" ] = result .ResultID
513- # update result
514- self .updateResult (result )
513+
515514 # count = overlap calc
516515 count = self .overlapcalc (result , values , overwrite )
517516 # set value count = res.vc+valuecount-count
518- result .ValueCount = result .ValueCount + vc - count
519- self .memDB .series_service .update .updateResult (result .ResultID , result .ValueCount )
517+ valuecount = result .ValueCount + vc - count
518+ # update result
519+ self .updateResult (result , valuecount )
520520 # insert values
521521 self .memDB .series_service .upsert_values (values )
522522 # save new annotations
@@ -618,7 +618,7 @@ def getResult(self, var, meth, proc, action, action_by):
618618 return self .updateResult (result )
619619
620620
621- def updateResult (self , result ):
621+ def updateResult (self , result , valuecount = - 10 ):
622622 form = "%Y-%m-%d %H:%M:%S"
623623 # get pd
624624 values = self .memDB .getDataValuesDF ()
@@ -627,7 +627,12 @@ def updateResult(self, result):
627627 action = result .FeatureActionObj .ActionObj
628628 action .BeginDateTime = datetime .datetime .strptime (str (np .min (values ['valuedatetime' ])), form )
629629 action .EndDateTime = datetime .datetime .strptime (str (np .max (values ["valuedatetime" ])), form )
630- result .ValueCount = len (values )
630+ if valuecount > 0 :
631+ result .ValueCount = valuecount
632+ else :
633+ result .ValueCount = len (values )
634+
635+ setSchema (self .memDB .series_service ._session_factory .engine )
631636 self .memDB .series_service .update .updateResult (result .ResultID , result .ValueCount )
632637 self .memDB .series_service .update .updateAction (actionID = action .ActionID , begin = action .BeginDateTime , end = action .EndDateTime )
633638
@@ -641,7 +646,7 @@ def overlapcalc(self, result, values, overwrite):
641646 dfstart = datetime .datetime .strptime (str (np .min (values ["valuedatetime" ])), form )
642647 overlap = dbend >= dfstart
643648 #number of overlapping values
644- overlapdf = values [(values ["valuedatetime" ]> = dfstart ) & (values ["valudatetime" ] < = dbend )]
649+ overlapdf = values [(values ["valuedatetime" ]< = dfstart ) & (values ["valuedatetime" ] > = dbend )]
645650 count = len (overlapdf )
646651 #if not overwrite. remove any overlapping values from df
647652 if overlap :
0 commit comments