only warn on errors/missing values in external data

This commit is contained in:
Yannik Schmidt
2021-02-23 19:03:57 +01:00
parent 57f7ca56e6
commit 912a51801d
3 changed files with 28 additions and 7 deletions

View File

@@ -3,6 +3,7 @@ from config_parse import CFG
from datetime import datetime, timedelta from datetime import datetime, timedelta
import requests import requests
import os import os
import localization.de as de
from dbfread import DBF from dbfread import DBF
import timeutils import timeutils
@@ -131,6 +132,7 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype):
content = f.read() content = f.read()
skipBecauseFirstLine = True skipBecauseFirstLine = True
error = None
for l in content.split("\n"): for l in content.split("\n"):
if not ";" in l: if not ";" in l:
continue continue
@@ -152,8 +154,10 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype):
datapoints[plotNameKey].data += [float(cleanFloat)] datapoints[plotNameKey].data += [float(cleanFloat)]
datapoints[plotNameKey].times += [timestamp] datapoints[plotNameKey].times += [timestamp]
except ValueError as e: except ValueError as e:
print(l) error = de.warning_ext_data
raise e
# return a warning indication for qt #
return error
def read_in_file(path, backend=None, outsideData=False, plotOutsideTemp=True, plotOutsideHum=True): def read_in_file(path, backend=None, outsideData=False, plotOutsideTemp=True, plotOutsideHum=True):
@@ -213,15 +217,22 @@ def read_in_file(path, backend=None, outsideData=False, plotOutsideTemp=True, pl
raise NotImplementedError("Cannot determine filetype, cannot continue. Exit.") raise NotImplementedError("Cannot determine filetype, cannot continue. Exit.")
# if nessesary download and process external data # # if nessesary download and process external data #
error = None
if outsideData: if outsideData:
fromTime = datapoints[CFG("plot_temperatur_key")].getFirstTime() fromTime = datapoints[CFG("plot_temperatur_key")].getFirstTime()
toTime = datapoints[CFG("plot_temperatur_key")].getLastTime() toTime = datapoints[CFG("plot_temperatur_key")].getLastTime()
processExternalData(datapoints, pto, fromTime, toTime, CFG("dtype_temperatur")) error1 = processExternalData(datapoints, pto, fromTime, toTime, CFG("dtype_temperatur"))
processExternalData(datapoints, pho, fromTime, toTime, CFG("dtype_humidity")) error2 = processExternalData(datapoints, pho, fromTime, toTime, CFG("dtype_humidity"))
return datapoints # pass on warnings #
if error1:
error = error1;
else:
error = error2
return (datapoints, error)
def dbfread(path,datapoints,pt,ph,pd): def dbfread(path,datapoints,pt,ph,pd):
for record in DBF(path): for record in DBF(path):

View File

@@ -20,3 +20,6 @@ start_section = "Ausführen"
close = "Schließen" close = "Schließen"
open_pic = "Bild öffnen.." open_pic = "Bild öffnen.."
bad_time = "Fehlerhafte Zeitangabe!" bad_time = "Fehlerhafte Zeitangabe!"
warning = "Warnung"
button_idc = "Egal, weiter!"
warning_ext_data = "Fehlerhafte oder fehlende Werte in externen Daten für angegebenen Zeitraum."

View File

@@ -153,11 +153,18 @@ class WidgetGallery(QDialog):
# workaround for checkboxes changed # # workaround for checkboxes changed #
outsideDataNeeded = self.boxOTemp.isChecked() or self.boxOHumidity.isChecked() outsideDataNeeded = self.boxOTemp.isChecked() or self.boxOHumidity.isChecked()
self.datapoints = input_backend.read_in_file(self.srcFileString, self.datapoints, error = input_backend.read_in_file(self.srcFileString,
outsideData=outsideDataNeeded, outsideData=outsideDataNeeded,
plotOutsideTemp=self.boxOTemp.isChecked(), plotOutsideTemp=self.boxOTemp.isChecked(),
plotOutsideHum=self.boxOHumidity.isChecked()) plotOutsideHum=self.boxOHumidity.isChecked())
if error:
errorBox = QMessageBox(self)
errorBox.setAttribute(PyQt5.QtCore.Qt.WA_DeleteOnClose)
errorBox.setText(self.localization.warning)
errorBox.setDetailedText(error)
errorBox.show()
# build dates # # build dates #
try: try:
startTimeHelper = dt.datetime.strptime(self.startTimeEdit.text(),"%H:%M") startTimeHelper = dt.datetime.strptime(self.startTimeEdit.text(),"%H:%M")
@@ -212,7 +219,7 @@ class WidgetGallery(QDialog):
waitDialog.setText(self.localization.wait_dialog_text) waitDialog.setText(self.localization.wait_dialog_text)
waitDialog.show() waitDialog.show()
try: try:
self.datapoints = input_backend.read_in_file(self.srcFileString, self.datapoints, error = input_backend.read_in_file(self.srcFileString,
outsideData=False, outsideData=False,
plotOutsideTemp=False, plotOutsideTemp=False,
plotOutsideHum=False) plotOutsideHum=False)