Fix checksum_ok if no internet connection

This commit is contained in:
alessandro90
2019-03-29 19:54:48 +01:00
parent 0d83bf4ab0
commit 94ac35071f
6 changed files with 127 additions and 110 deletions

View File

@@ -22,7 +22,7 @@ class Messages(object):
NO_DB = "No database" NO_DB = "No database"
DOWNLOAD_NOW_QUESTION = "Do you want to download it now?" DOWNLOAD_NOW_QUESTION = "Do you want to download it now?"
DOWNLOAD_ANYWAY_QUESTION = "Do you want to download it anyway?" DOWNLOAD_ANYWAY_QUESTION = "Do you want to download it anyway?"
NO_CONNECTION = "No internet connection" NO_CONNECTION = "No connection"
NO_CONNECTION_MSG = "Unable to establish an internet connection." NO_CONNECTION_MSG = "Unable to establish an internet connection."
BAD_DOWNLOAD = "Something went wrong" BAD_DOWNLOAD = "Something went wrong"
BAD_DOWNLOAD_MSG = "Something went wrong with the downaload.\nCheck your internet connection and try again." BAD_DOWNLOAD_MSG = "Something went wrong with the downaload.\nCheck your internet connection and try again."

View File

@@ -2,7 +2,7 @@ from PyQt5 import uic
from PyQt5.QtCore import Qt, pyqtSlot from PyQt5.QtCore import Qt, pyqtSlot
from PyQt5.QtWidgets import QWidget from PyQt5.QtWidgets import QWidget
from threads import DownloadThread, ThreadStatus from threads import DownloadThread, ThreadStatus
from utilities import throwable_message from utilities import pop_up
from constants import Messages from constants import Messages
Ui_Download_window, _ = uic.loadUiType("download_db_window.ui") Ui_Download_window, _ = uic.loadUiType("download_db_window.ui")
@@ -20,13 +20,13 @@ class DownloadWindow(QWidget, Ui_Download_window):
) )
self.everything_ok = True self.everything_ok = True
self.no_internet_msg = throwable_message(self, title = Messages.NO_CONNECTION, self.no_internet_msg = pop_up(self, title = Messages.NO_CONNECTION,
text = Messages.NO_CONNECTION_MSG, text = Messages.NO_CONNECTION_MSG,
connection = self.close) connection = self.close)
self.bad_db_download_msg = throwable_message(self, title = Messages.BAD_DOWNLOAD, self.bad_db_download_msg = pop_up(self, title = Messages.BAD_DOWNLOAD,
text = Messages.BAD_DOWNLOAD_MSG, text = Messages.BAD_DOWNLOAD_MSG,
connection = self.close) connection = self.close)
self.download_thread = DownloadThread() self.download_thread = DownloadThread()
self.download_thread.finished.connect(self.wait_close) self.download_thread.finished.connect(self.wait_close)
@@ -45,7 +45,7 @@ class DownloadWindow(QWidget, Ui_Download_window):
def terminate_process(self): def terminate_process(self):
if self.download_thread.isRunning(): if self.download_thread.isRunning():
self.download_thread.terminate() self.download_thread.terminate()
self.download_thread.wait() self.download_thread.wait()
self.close() self.close()
@pyqtSlot() @pyqtSlot()

156
main.py
View File

@@ -18,7 +18,7 @@ from PyQt5.QtWidgets import (QMainWindow,
QTreeWidgetItem,) QTreeWidgetItem,)
from PyQt5.QtGui import QPixmap from PyQt5.QtGui import QPixmap
from PyQt5 import uic from PyQt5 import uic
from PyQt5.QtCore import (QFileInfo, from PyQt5.QtCore import (QFileInfo,
Qt, Qt,
pyqtSlot,) pyqtSlot,)
@@ -31,8 +31,8 @@ import constants
from themes import Theme from themes import Theme
from utilities import (checksum_ok, from utilities import (checksum_ok,
uncheck_and_emit, uncheck_and_emit,
throwable_message, pop_up,
connect_to, connect_to,
filters_ok, filters_ok,
is_undef_freq, is_undef_freq,
@@ -81,9 +81,9 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.upper_freq_filter_unit.currentTextChanged, self.upper_freq_filter_unit.currentTextChanged,
self.activate_low_freq_filter_btn.toggled], self.activate_low_freq_filter_btn.toggled],
fun_to_connect = self.set_min_value_upper_limit, fun_to_connect = self.set_min_value_upper_limit,
fun_args = [self.lower_freq_filter_unit, fun_args = [self.lower_freq_filter_unit,
self.lower_freq_spinbox, self.lower_freq_spinbox,
self.upper_freq_filter_unit, self.upper_freq_filter_unit,
self.upper_freq_spinbox] self.upper_freq_spinbox]
) )
@@ -134,7 +134,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
], ],
self.activate_low_freq_filter_btn, self.activate_low_freq_filter_btn,
[ [
self.lower_freq_spinbox, self.lower_freq_spinbox,
self.lower_freq_filter_unit, self.lower_freq_filter_unit,
self.lower_freq_confidence, self.lower_freq_confidence,
], ],
@@ -157,9 +157,9 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.upper_band_filter_unit.currentTextChanged, self.upper_band_filter_unit.currentTextChanged,
self.activate_low_band_filter_btn.toggled], self.activate_low_band_filter_btn.toggled],
fun_to_connect = self.set_min_value_upper_limit, fun_to_connect = self.set_min_value_upper_limit,
fun_args = [self.lower_band_filter_unit, fun_args = [self.lower_band_filter_unit,
self.lower_band_spinbox, self.lower_band_spinbox,
self.upper_band_filter_unit, self.upper_band_filter_unit,
self.upper_band_spinbox] self.upper_band_spinbox]
) )
@@ -209,7 +209,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
], ],
self.activate_low_band_filter_btn, self.activate_low_band_filter_btn,
[ [
self.lower_band_spinbox, self.lower_band_spinbox,
self.lower_band_filter_unit, self.lower_band_filter_unit,
self.lower_band_confidence, self.lower_band_confidence,
], ],
@@ -244,7 +244,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.number_stations_btn, self.number_stations_btn,
self.time_signal_btn,] self.time_signal_btn,]
self.apply_remove_cat_filter_btn.set_texts(constants.APPLY, constants.REMOVE) self.apply_remove_cat_filter_btn.set_texts(constants.APPLY, constants.REMOVE)
self.apply_remove_cat_filter_btn.set_slave_filters([*self.cat_filter_btns, self.apply_remove_cat_filter_btn.set_slave_filters([*self.cat_filter_btns,
self.cat_at_least_one, self.cat_at_least_one,
self.cat_all]) self.cat_all])
@@ -291,7 +291,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.mode_tree_widget.itemSelectionChanged.connect(self.manage_mode_selections) self.mode_tree_widget.itemSelectionChanged.connect(self.manage_mode_selections)
self.reset_mode_filters_btn.clicked.connect(self.reset_mode_filters) self.reset_mode_filters_btn.clicked.connect(self.reset_mode_filters)
self.apply_remove_mode_filter_btn.set_texts(constants.APPLY, constants.REMOVE) self.apply_remove_mode_filter_btn.set_texts(constants.APPLY, constants.REMOVE)
self.apply_remove_mode_filter_btn.set_slave_filters([self.mode_tree_widget, self.apply_remove_mode_filter_btn.set_slave_filters([self.mode_tree_widget,
self.include_unknown_modes_btn]) self.include_unknown_modes_btn])
self.apply_remove_mode_filter_btn.clicked.connect(self.display_signals) self.apply_remove_mode_filter_btn.clicked.connect(self.display_signals)
@@ -344,10 +344,10 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.result_list.currentItemChanged.connect(self.display_specs) self.result_list.currentItemChanged.connect(self.display_specs)
self.result_list.itemDoubleClicked.connect(lambda: self.main_tab.setCurrentWidget(self.signal_properties_tab)) self.result_list.itemDoubleClicked.connect(lambda: self.main_tab.setCurrentWidget(self.signal_properties_tab))
# self.display_signals() # self.display_signals()
self.audio_widget = AudioPlayer(self.play, self.audio_widget = AudioPlayer(self.play,
self.pause, self.pause,
self.stop, self.stop,
self.volume, self.volume,
self.audio_progress, self.audio_progress,
self.active_color, self.active_color,
self.inactive_color) self.inactive_color)
@@ -486,7 +486,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.download_window.download_thread.finished.connect(self.show_downloaded_signals) self.download_window.download_thread.finished.connect(self.show_downloaded_signals)
self.download_window.download_thread.start() self.download_window.download_thread.start()
self.download_window.show() self.download_window.show()
@pyqtSlot() @pyqtSlot()
def ask_if_download(self): def ask_if_download(self):
if not self.download_window.isVisible(): if not self.download_window.isVisible():
@@ -497,16 +497,22 @@ class MyApp(QMainWindow, Ui_MainWindow):
except: except:
self.download_db() self.download_db()
else: else:
if not checksum_ok(db, constants.ChecksumWhat.DB): try:
self.download_db() is_checksum_ok = checksum_ok(db, constants.ChecksumWhat.DB)
except:
pop_up(self, title = constants.Messages.NO_CONNECTION,
text = constants.Messages.NO_CONNECTION_MSG).show()
else: else:
answer = throwable_message(self, title = constants.Messages.DB_UP_TO_DATE, if not is_checksum_ok:
text = constants.Messages.DB_UP_TO_DATE_MSG,
informative_text = constants.Messages.DOWNLOAD_ANYWAY_QUESTION,
is_question = True,
default_btn = QMessageBox.No).exec()
if answer == QMessageBox.Yes:
self.download_db() self.download_db()
else:
answer = pop_up(self, title = constants.Messages.DB_UP_TO_DATE,
text = constants.Messages.DB_UP_TO_DATE_MSG,
informative_text = constants.Messages.DOWNLOAD_ANYWAY_QUESTION,
is_question = True,
default_btn = QMessageBox.No).exec()
if answer == QMessageBox.Yes:
self.download_db()
@pyqtSlot() @pyqtSlot()
def check_db_ver(self): def check_db_ver(self):
@@ -517,22 +523,28 @@ class MyApp(QMainWindow, Ui_MainWindow):
with open(db_path, "rb") as file_db: with open(db_path, "rb") as file_db:
db = file_db.read() db = file_db.read()
except: except:
answer = throwable_message(self, title = constants.Messages.NO_DB, answer = pop_up(self, title = constants.Messages.NO_DB,
text = constants.Messages.NO_DB_AVAIL, text = constants.Messages.NO_DB_AVAIL,
informative_text = constants.Messages.DOWNLOAD_NOW_QUESTION, informative_text = constants.Messages.DOWNLOAD_NOW_QUESTION,
is_question = True).exec() is_question = True).exec()
else: else:
if checksum_ok(db, constants.ChecksumWhat.DB): try:
throwable_message(self, title = constants.Messages.DB_UP_TO_DATE, is_checksum_ok = checksum_ok(db, constants.ChecksumWhat.DB)
text = constants.Messages.DB_UP_TO_DATE_MSG).show() except:
pop_up(self, title = constants.Messages.NO_CONNECTION,
text = constants.Messages.NO_CONNECTION_MSG).show()
else: else:
answer = throwable_message(self, title = constants.Messages.DB_NEW_VER, if is_checksum_ok:
text = constants.Messages.DB_NEW_VER_MSG, pop_up(self, title = constants.Messages.DB_UP_TO_DATE,
informative_text = constants.Messages.DOWNLOAD_NOW_QUESTION, text = constants.Messages.DB_UP_TO_DATE_MSG).show()
is_question = True).exec()
if answer == QMessageBox.Yes: else:
self.download_db() answer = pop_up(self, title = constants.Messages.DB_NEW_VER,
text = constants.Messages.DB_NEW_VER_MSG,
informative_text = constants.Messages.DOWNLOAD_NOW_QUESTION,
is_question = True).exec()
if answer == QMessageBox.Yes:
self.download_db()
@pyqtSlot() @pyqtSlot()
def show_downloaded_signals(self): def show_downloaded_signals(self):
@@ -544,7 +556,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
def load_db(self): def load_db(self):
names = constants.Database.NAMES names = constants.Database.NAMES
try: try:
self.db = read_csv(os.path.join(constants.DATA_FOLDER, constants.Database.NAME), self.db = read_csv(os.path.join(constants.DATA_FOLDER, constants.Database.NAME),
sep = constants.Database.DELIMITER, sep = constants.Database.DELIMITER,
header = None, header = None,
index_col = 0, index_col = 0,
@@ -552,10 +564,10 @@ class MyApp(QMainWindow, Ui_MainWindow):
names = names,) names = names,)
except FileNotFoundError: except FileNotFoundError:
self.search_bar.setDisabled(True) self.search_bar.setDisabled(True)
answer = throwable_message(self, title = constants.Messages.NO_DB, answer = pop_up(self, title = constants.Messages.NO_DB,
text = constants.Messages.NO_DB_AVAIL, text = constants.Messages.NO_DB_AVAIL,
informative_text = constants.Messages.DOWNLOAD_NOW_QUESTION, informative_text = constants.Messages.DOWNLOAD_NOW_QUESTION,
is_question = True).exec() is_question = True).exec()
if answer == QMessageBox.Yes: if answer == QMessageBox.Yes:
self.download_db() self.download_db()
else: else:
@@ -567,9 +579,9 @@ class MyApp(QMainWindow, Ui_MainWindow):
self.result_list.addItems(self.signal_names) self.result_list.addItems(self.signal_names)
@pyqtSlot() @pyqtSlot()
def set_min_value_upper_limit(self, lower_combo_box, def set_min_value_upper_limit(self, lower_combo_box,
lower_spin_box, lower_spin_box,
upper_combo_box, upper_combo_box,
upper_spin_box): upper_spin_box):
if lower_spin_box.isEnabled(): if lower_spin_box.isEnabled():
unit_conversion = {'Hz' : ['kHz', 'MHz', 'GHz'], unit_conversion = {'Hz' : ['kHz', 'MHz', 'GHz'],
@@ -592,23 +604,23 @@ class MyApp(QMainWindow, Ui_MainWindow):
upper_combo_box.disconnect() upper_combo_box.disconnect()
upper_combo_box.setCurrentText(new_unit) upper_combo_box.setCurrentText(new_unit)
upper_combo_box.currentTextChanged.connect( upper_combo_box.currentTextChanged.connect(
partial(self.set_min_value_upper_limit, partial(self.set_min_value_upper_limit,
lower_combo_box, lower_combo_box,
lower_spin_box, lower_spin_box,
upper_combo_box, upper_combo_box,
upper_spin_box) upper_spin_box)
) )
@pyqtSlot() @pyqtSlot()
def set_band_filter_label(self, def set_band_filter_label(self,
activate_low_btn, activate_low_btn,
lower_spinbox, lower_spinbox,
lower_unit, lower_unit,
lower_confidence, lower_confidence,
activate_up_btn, activate_up_btn,
upper_spinbox, upper_spinbox,
upper_unit, upper_unit,
upper_confidence, upper_confidence,
range_lbl): range_lbl):
activate_low = False activate_low = False
activate_high = False activate_high = False
@@ -774,7 +786,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
else: else:
return False return False
signal_freqs = (int(self.db.at[signal_name, constants.Signal.INF_FREQ]), signal_freqs = (int(self.db.at[signal_name, constants.Signal.INF_FREQ]),
int(self.db.at[signal_name, constants.Signal.SUP_FREQ])) int(self.db.at[signal_name, constants.Signal.SUP_FREQ]))
band_filter_ok = False band_filter_ok = False
@@ -787,12 +799,12 @@ class MyApp(QMainWindow, Ui_MainWindow):
lower_limit_ok = True lower_limit_ok = True
upper_limit_ok = True upper_limit_ok = True
if self.activate_low_freq_filter_btn.isChecked(): if self.activate_low_freq_filter_btn.isChecked():
if not signal_freqs[1] >= filters_ok(self.lower_freq_spinbox, if not signal_freqs[1] >= filters_ok(self.lower_freq_spinbox,
self.lower_freq_filter_unit, self.lower_freq_filter_unit,
self.lower_freq_confidence, -1): self.lower_freq_confidence, -1):
lower_limit_ok = False lower_limit_ok = False
if self.activate_up_freq_filter_btn.isChecked(): if self.activate_up_freq_filter_btn.isChecked():
if not signal_freqs[0] < filters_ok(self.upper_freq_spinbox, if not signal_freqs[0] < filters_ok(self.upper_freq_spinbox,
self.upper_freq_filter_unit, self.upper_freq_filter_unit,
self.upper_freq_confidence): self.upper_freq_confidence):
upper_limit_ok = False upper_limit_ok = False
@@ -811,18 +823,18 @@ class MyApp(QMainWindow, Ui_MainWindow):
else: else:
return False return False
signal_bands = (int(self.db.at[signal_name, constants.Signal.INF_BAND]), signal_bands = (int(self.db.at[signal_name, constants.Signal.INF_BAND]),
int(self.db.at[signal_name, constants.Signal.SUP_BAND])) int(self.db.at[signal_name, constants.Signal.SUP_BAND]))
lower_limit_ok = True lower_limit_ok = True
upper_limit_ok = True upper_limit_ok = True
if self.activate_low_band_filter_btn.isChecked(): if self.activate_low_band_filter_btn.isChecked():
if not signal_bands[1] >= filters_ok(self.lower_band_spinbox, if not signal_bands[1] >= filters_ok(self.lower_band_spinbox,
self.lower_band_filter_unit, self.lower_band_filter_unit,
self.lower_band_confidence, -1): self.lower_band_confidence, -1):
lower_limit_ok = False lower_limit_ok = False
if self.activate_up_band_filter_btn.isChecked(): if self.activate_up_band_filter_btn.isChecked():
if not signal_bands[0] < filters_ok(self.upper_band_spinbox, if not signal_bands[0] < filters_ok(self.upper_band_spinbox,
self.upper_band_filter_unit, self.upper_band_filter_unit,
self.upper_band_confidence): self.upper_band_confidence):
upper_limit_ok = False upper_limit_ok = False
@@ -836,7 +848,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
positive_cases = 0 positive_cases = 0
for index, cat in enumerate(self.cat_filter_btns): for index, cat in enumerate(self.cat_filter_btns):
if cat.isChecked(): if cat.isChecked():
cat_checked += 1 cat_checked += 1
if cat_code[index] == '1': if cat_code[index] == '1':
positive_cases += 1 positive_cases += 1
if self.cat_at_least_one.isChecked(): if self.cat_at_least_one.isChecked():
@@ -901,7 +913,7 @@ class MyApp(QMainWindow, Ui_MainWindow):
return True return True
else: else:
return False return False
@pyqtSlot(QListWidgetItem, QListWidgetItem) @pyqtSlot(QListWidgetItem, QListWidgetItem)
def display_specs(self, item, previous_item): def display_specs(self, item, previous_item):
self.display_spectrogram() self.display_spectrogram()
@@ -955,14 +967,14 @@ class MyApp(QMainWindow, Ui_MainWindow):
lab.setStyleSheet(f"color: {self.inactive_color};") lab.setStyleSheet(f"color: {self.inactive_color};")
self.set_band_range() self.set_band_range()
self.audio_widget.set_audio_player() self.audio_widget.set_audio_player()
def display_spectrogram(self): def display_spectrogram(self):
default_pic = os.path.join(self.default_images_folder, constants.NOT_SELECTED) default_pic = os.path.join(self.default_images_folder, constants.NOT_SELECTED)
item = self.result_list.currentItem() item = self.result_list.currentItem()
if item: if item:
spectrogram_name = item.text() spectrogram_name = item.text()
path_spectr = os.path.join(constants.DATA_FOLDER, path_spectr = os.path.join(constants.DATA_FOLDER,
constants.SPECTRA_FOLDER, constants.SPECTRA_FOLDER,
spectrogram_name + constants.SPECTRA_EXT) spectrogram_name + constants.SPECTRA_EXT)
if not QFileInfo(path_spectr).exists(): if not QFileInfo(path_spectr).exists():
path_spectr = os.path.join(self.default_images_folder, constants.NOT_AVAILABLE) path_spectr = os.path.join(self.default_images_folder, constants.NOT_AVAILABLE)

View File

@@ -4,8 +4,7 @@ from PyQt5.QtWidgets import QAction
from PyQt5.QtCore import pyqtSlot from PyQt5.QtCore import pyqtSlot
from PyQt5.QtGui import QPixmap from PyQt5.QtGui import QPixmap
import constants import constants
from utilities import (throwable_message, from utilities import pop_up, is_valid_html_color
is_valid_html_color,)
class ThemeConstants(object): class ThemeConstants(object):
FOLDER = "themes" FOLDER = "themes"
@@ -69,7 +68,7 @@ class Theme(object):
themes.append(relative_folder) themes.append(relative_folder)
for theme_path in themes: for theme_path in themes:
theme_name = '&' + ' '.join( theme_name = '&' + ' '.join(
map(lambda s: s.capitalize(), map(lambda s: s.capitalize(),
os.path.basename(theme_path).split('-')[1].split('_') os.path.basename(theme_path).split('-')[1].split('_')
) )
) )
@@ -81,17 +80,17 @@ class Theme(object):
try: try:
with open(os.path.join( with open(os.path.join(
self.__theme_path, self.__theme_path,
os.path.basename(self.__theme_path).split('-')[1] + ThemeConstants.EXTENSION)) as stylesheet: os.path.basename(self.__theme_path).split('-')[1] + ThemeConstants.EXTENSION), "r") as stylesheet:
style = stylesheet.read() style = stylesheet.read()
self.__parent.setStyleSheet(style) self.__parent.setStyleSheet(style)
self.__parent.download_window.setStyleSheet(style) self.__parent.download_window.setStyleSheet(style)
except FileNotFoundError: except FileNotFoundError:
throwable_message(self.__parent, title = ThemeConstants.THEME_NOT_FOUND, pop_up(self.__parent, title = ThemeConstants.THEME_NOT_FOUND,
text = ThemeConstants.MISSING_THEME).show() text = ThemeConstants.MISSING_THEME).show()
else: else:
icons_path = os.path.join(self.__theme_path, ThemeConstants.ICONS_FOLDER) icons_path = os.path.join(self.__theme_path, ThemeConstants.ICONS_FOLDER)
default_icons_path = os.path.join(ThemeConstants.FOLDER, default_icons_path = os.path.join(ThemeConstants.FOLDER,
ThemeConstants.DEFAULT, ThemeConstants.DEFAULT,
ThemeConstants.ICONS_FOLDER) ThemeConstants.ICONS_FOLDER)
if os.path.exists(os.path.join(icons_path, constants.NOT_SELECTED)) and \ if os.path.exists(os.path.join(icons_path, constants.NOT_SELECTED)) and \
@@ -111,7 +110,7 @@ class Theme(object):
self.__parent.search_label.setPixmap(QPixmap(default_search_label)) self.__parent.search_label.setPixmap(QPixmap(default_search_label))
self.__parent.modulation_search_label.setPixmap(QPixmap(default_search_label)) self.__parent.modulation_search_label.setPixmap(QPixmap(default_search_label))
self.__parent.location_search_label.setPixmap(QPixmap(default_search_label)) self.__parent.location_search_label.setPixmap(QPixmap(default_search_label))
self.__parent.search_label.setScaledContents(True) self.__parent.search_label.setScaledContents(True)
self.__parent.modulation_search_label.setScaledContents(True) self.__parent.modulation_search_label.setScaledContents(True)
self.__parent.location_search_label.setScaledContents(True) self.__parent.location_search_label.setScaledContents(True)
@@ -145,13 +144,13 @@ class Theme(object):
if quality.lower() == constants.INACTIVE and is_valid_html_color(color): if quality.lower() == constants.INACTIVE and is_valid_html_color(color):
self.__parent.inactive_color = color self.__parent.inactive_color = color
inactive_color_ok = True inactive_color_ok = True
if not all([valid_file, valid_format, active_color_ok, inactive_color_ok]): if not all([valid_file, valid_format, active_color_ok, inactive_color_ok]):
self.__parent.active_color = ThemeConstants.DEFAULT_ACTIVE_COLOR self.__parent.active_color = ThemeConstants.DEFAULT_ACTIVE_COLOR
self.__parent.inactive_color = ThemeConstants.DEFAULT_INACTIVE_COLOR self.__parent.inactive_color = ThemeConstants.DEFAULT_INACTIVE_COLOR
try: try:
with open(os.path.join(ThemeConstants.FOLDER, with open(os.path.join(ThemeConstants.FOLDER,
ThemeConstants.CURRENT), "w") as current_theme: ThemeConstants.CURRENT), "w") as current_theme:
current_theme.write(self.__theme_path) current_theme.write(self.__theme_path)
except: except:
@@ -160,7 +159,7 @@ class Theme(object):
def initialize(self): def initialize(self):
current_theme_file = os.path.join(ThemeConstants.FOLDER, ThemeConstants.CURRENT) current_theme_file = os.path.join(ThemeConstants.FOLDER, ThemeConstants.CURRENT)
if os.path.exists(current_theme_file): if os.path.exists(current_theme_file):
with open(current_theme_file) as current_theme_path: with open(current_theme_file, "r") as current_theme_path:
theme_path = current_theme_path.read() theme_path = current_theme_path.read()
if theme_path != ThemeConstants.DEFAULT: if theme_path != ThemeConstants.DEFAULT:
self.__apply(theme_path) self.__apply(theme_path)

View File

@@ -42,9 +42,15 @@ class DownloadThread(QThread):
self.reason = db.reason self.reason = db.reason
self.__status = ThreadStatus.BAD_DOWNLOAD_ERR self.__status = ThreadStatus.BAD_DOWNLOAD_ERR
return return
if not checksum_ok(db.data, constants.ChecksumWhat.FOLDER): try:
self.__status = ThreadStatus.BAD_DOWNLOAD_ERR is_checksum_ok = checksum_ok(db.data, constants.ChecksumWhat.FOLDER)
except:
self.__status = ThreadStatus.NO_CONNECTION_ERR
return return
else:
if not is_checksum_ok:
self.__status = ThreadStatus.BAD_DOWNLOAD_ERR
return
if os.path.exists(constants.DATA_FOLDER): if os.path.exists(constants.DATA_FOLDER):
rmtree(constants.DATA_FOLDER) rmtree(constants.DATA_FOLDER)
try: try:

View File

@@ -13,11 +13,11 @@ def uncheck_and_emit(button):
button.setChecked(False) button.setChecked(False)
button.clicked.emit() button.clicked.emit()
def throwable_message(cls, title, text, def pop_up(cls, title, text,
informative_text = None, informative_text = None,
connection = None, connection = None,
is_question = False, is_question = False,
default_btn = QMessageBox.Yes): default_btn = QMessageBox.Yes):
msg = QMessageBox(cls) msg = QMessageBox(cls)
msg.setWindowTitle(title) msg.setWindowTitle(title)
msg.setText(text) msg.setText(text)
@@ -41,10 +41,10 @@ def checksum_ok(data, what):
else: else:
raise ValueError("Wrong entry name.") raise ValueError("Wrong entry name.")
try: try:
reference = read_csv(constants.Database.LINK_REF, reference = read_csv(constants.Database.LINK_REF,
delimiter = constants.Database.DELIMITER).iat[-1, n] delimiter = constants.Database.DELIMITER).iat[-1, n]
except HTTPError: except:
return False raise
return code.hexdigest() == reference return code.hexdigest() == reference
def is_valid_html_color(color): def is_valid_html_color(color):
@@ -52,11 +52,11 @@ def is_valid_html_color(color):
def connect_to(events_to_connect, fun_to_connect, fun_args): def connect_to(events_to_connect, fun_to_connect, fun_args):
if fun_args: if fun_args:
for signal in events_to_connect: for event in events_to_connect:
signal.connect(partial(fun_to_connect, *fun_args)) event.connect(partial(fun_to_connect, *fun_args))
else: else:
for signal in events_to_connect: for event in events_to_connect:
signal.connect(fun_to_connect) event.connect(fun_to_connect)
def filters_ok(spinbox, filter_unit, confidence, sign = 1): def filters_ok(spinbox, filter_unit, confidence, sign = 1):
band_filter = spinbox.value() * constants.CONVERSION_FACTORS[filter_unit.currentText()] band_filter = spinbox.value() * constants.CONVERSION_FACTORS[filter_unit.currentText()]
@@ -95,7 +95,7 @@ def format_numbers(lower, upper):
lower = int(lower) lower = int(lower)
if upper.is_integer(): if upper.is_integer():
upper = int(upper) upper = int(upper)
if pre_lower != pre_upper: if pre_lower != pre_upper:
return f"{lower:,} {units[lower_factor]} - {upper:,} {units[upper_factor]}" return f"{lower:,} {units[lower_factor]} - {upper:,} {units[upper_factor]}"
else: else:
return f"{lower:,} {units[lower_factor]}" return f"{lower:,} {units[lower_factor]}"