Skip to content

Commit 0d32a79

Browse files
author
stephanie
committed
fix save append
1 parent b43f640 commit 0d32a79

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

odmtools/odmservices/edit_service.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,11 +687,18 @@ def overlapcalc(self, result, values, overwrite):
687687
# number of overlapping values
688688
overlapdf = values[(values["valuedatetime"] <= dfstart) & (values["valuedatetime"] >= dbend)]
689689
count = len(overlapdf)
690+
690691
# if not overwrite. remove any overlapping values from df
691692
if overlap:
692693
if not overwrite:
694+
# delete overlapping from the data frame before saving to the database
693695
values = values[values["valuedatetime"] > dbend]
694696

697+
else:
698+
# delete overlapping values from the series database
699+
count = self.memDB.series_service.delete_values_by_series(str(values["resultid"]), dfstart)
700+
701+
695702
# return the number of overlapping values
696703
return count
697704

odmtools/odmservices/series_service.py

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,8 @@ def insert_values(self, values):
526526
:param values: pandas dataframe
527527
:return:
528528
"""
529-
values.to_sql(name="TimeSeriesResultValues",
529+
setSchema(self._session_factory.engine)
530+
values.to_sql(name=TimeSeriesResultValues.__tablename__,
530531
schema=TimeSeriesResultValues.__table_args__['schema'],
531532
if_exists='append',
532533
chunksize=1000,
@@ -756,38 +757,21 @@ def get_all_affiliations(self):
756757
# raise e
757758
#
758759
#
759-
def delete_values_by_series(self, series, startdate=None):
760+
def delete_values_by_series(self, seriesid, startdate=None):
760761
"""
761762
762763
:param series:
763764
:return:
764765
"""
765-
# todo stephanie: add startdate stuff
766+
766767
try:
767-
self.delete.deleteTSRValues(ids=[series.id])
768+
return self.delete.deleteTSRValues(ids=[seriesid], startdate=startdate)
768769
except Exception as ex:
769770
message = "Values were not successfully deleted: %s" % ex
770771
print message
771772
logger.error(message)
772773
raise ex
773-
# try:
774-
# q= self._edit_session.query(DataValue).filter_by(site_id = series.site_id,
775-
# variable_id = series.variable_id,
776-
# method_id = series.method_id,
777-
# source_id = series.source_id,
778-
# quality_control_level_id = series.quality_control_level_id)
779-
# if startdate is not None:
780-
# #start date indicates what day you should start deleting values. the values will delete to the end of the series
781-
# return q.filter(DataValue.local_date_time >= startdate).delete()
782-
# else:
783-
# return q.delete()
784-
#
785-
# except Exception as ex:
786-
# message = "Values were not successfully deleted: %s" % ex
787-
# print message
788-
# logger.error(message)
789-
# raise ex
790-
#
774+
791775

792776
def delete_dvs(self, id_list):
793777
"""

0 commit comments

Comments
 (0)