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
import requests
import os
import localization.de as de
from dbfread import DBF
import timeutils
@@ -131,6 +132,7 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype):
content = f.read()
skipBecauseFirstLine = True
error = None
for l in content.split("\n"):
if not ";" in l:
continue
@@ -152,8 +154,10 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype):
datapoints[plotNameKey].data += [float(cleanFloat)]
datapoints[plotNameKey].times += [timestamp]
except ValueError as e:
print(l)
raise e
error = de.warning_ext_data
# return a warning indication for qt #
return error
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.")
# if nessesary download and process external data #
error = None
if outsideData:
fromTime = datapoints[CFG("plot_temperatur_key")].getFirstTime()
toTime = datapoints[CFG("plot_temperatur_key")].getLastTime()
processExternalData(datapoints, pto, fromTime, toTime, CFG("dtype_temperatur"))
processExternalData(datapoints, pho, fromTime, toTime, CFG("dtype_humidity"))
error1 = processExternalData(datapoints, pto, fromTime, toTime, CFG("dtype_temperatur"))
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):
for record in DBF(path):

View File

@@ -20,3 +20,6 @@ start_section = "Ausführen"
close = "Schließen"
open_pic = "Bild öffnen.."
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 #
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,
plotOutsideTemp=self.boxOTemp.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 #
try:
startTimeHelper = dt.datetime.strptime(self.startTimeEdit.text(),"%H:%M")
@@ -212,7 +219,7 @@ class WidgetGallery(QDialog):
waitDialog.setText(self.localization.wait_dialog_text)
waitDialog.show()
try:
self.datapoints = input_backend.read_in_file(self.srcFileString,
self.datapoints, error = input_backend.read_in_file(self.srcFileString,
outsideData=False,
plotOutsideTemp=False,
plotOutsideHum=False)