diff --git a/src/main/python/input_backend.py b/src/main/python/input_backend.py index ad445bc..fc04ab7 100644 --- a/src/main/python/input_backend.py +++ b/src/main/python/input_backend.py @@ -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): diff --git a/src/main/python/localization/de.py b/src/main/python/localization/de.py index 0c0307b..3fad5b6 100644 --- a/src/main/python/localization/de.py +++ b/src/main/python/localization/de.py @@ -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." diff --git a/src/main/python/main.py b/src/main/python/main.py index 864e001..045190a 100755 --- a/src/main/python/main.py +++ b/src/main/python/main.py @@ -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)