From a91ab20dc842883482bf28e0dde3ea8d137b8028 Mon Sep 17 00:00:00 2001 From: Ramin Toosi Date: Sun, 16 Jul 2023 10:30:55 +0330 Subject: [PATCH] bug fixed --- ross_ui/controller/mainWindow.py | 28 ++++++++++++++++++---------- ross_ui/controller/signin.py | 7 ++++++- ross_ui/view/exportResults.py | 6 +++++- ross_ui/view/mainWindow.py | 2 +- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/ross_ui/controller/mainWindow.py b/ross_ui/controller/mainWindow.py index 9e7261d..ed61d85 100644 --- a/ross_ui/controller/mainWindow.py +++ b/ross_ui/controller/mainWindow.py @@ -729,14 +729,18 @@ def onPlotClusterWave(self): def onPlotLiveTime(self): try: - number_of_clusters = self.number_of_clusters + clus_un = np.unique(self.clusters_tmp) + number_of_clusters = len(clus_un) colors = self.colors spike_clustered_time = dict() - for i in range(number_of_clusters): - spike_clustered_time[i] = self.spike_time[self.clusters == i] + for i in clus_un: + if i == -1: + number_of_clusters -= 1 + continue + spike_clustered_time[i] = self.spike_time[self.clusters_tmp == i] figure = MatPlotFigures('LiveTime', number_of_clusters, width=10, height=6, dpi=100) - for i, ax in enumerate(figure.axes): + for i, ax in zip(spike_clustered_time, figure.axes): ax.hist(spike_clustered_time[i], bins=100, color=tuple(colors[i] / 255)) ax.set_title('Cluster {}'.format(i + 1)) plt.tight_layout() @@ -745,21 +749,25 @@ def onPlotLiveTime(self): except: print(traceback.format_exc()) - def onPlotIsi(self): + def onPlotISI(self): try: - number_of_clusters = self.number_of_clusters + clus_un = np.unique(self.clusters_tmp) + number_of_clusters = len(clus_un) colors = self.colors spike_clustered_time = dict() spike_clustered_delta = dict() - for i in range(number_of_clusters): - spike_clustered_time[i] = self.spike_time[self.clusters == i] + for i in clus_un: + if i == -1: + number_of_clusters -= 1 + continue + spike_clustered_time[i] = self.spike_time[self.clusters_tmp == i] tmp2 = spike_clustered_time[i][:len(spike_clustered_time[i]) - 1].copy() tmp1 = spike_clustered_time[i][1:].copy() spike_clustered_delta[i] = tmp1 - tmp2 figure = MatPlotFigures('ISI', number_of_clusters, width=10, height=6, dpi=100) - for i, ax in enumerate(figure.axes): + for i, ax in zip(spike_clustered_delta, figure.axes): gamma = stats.gamma x = np.linspace(0, np.max(spike_clustered_delta[i]), 100) param = gamma.fit(spike_clustered_delta[i], floc=0) @@ -775,7 +783,7 @@ def onPlotIsi(self): plt.show() except: - pass + print(traceback.format_exc()) def onPlot3d(self): # self.subwindow_3d.setVisible(self.plot3dAct.isChecked()) diff --git a/ross_ui/controller/signin.py b/ross_ui/controller/signin.py index 4a662e5..c668af5 100644 --- a/ross_ui/controller/signin.py +++ b/ross_ui/controller/signin.py @@ -1,4 +1,5 @@ from PyQt5 import QtWidgets +import requests from model.api import API from view.signin import Signin_Dialog @@ -15,7 +16,11 @@ def accept_in(self): username = self.textEdit_username.text() password = self.textEdit_password.text() self.user = API(self.url) - res = self.user.sign_in(username, password) + try: + res = self.user.sign_in(username, password) + except requests.exceptions.ConnectionError as e: + QtWidgets.QMessageBox.critical(self, "Connection Error", str(e)) + return None if res['stat']: super().accept() else: diff --git a/ross_ui/view/exportResults.py b/ross_ui/view/exportResults.py index dca3a65..4b9cac9 100644 --- a/ross_ui/view/exportResults.py +++ b/ross_ui/view/exportResults.py @@ -30,12 +30,16 @@ def __init__(self): groupboxradio.setLayout(hboxradio) self.radioPickle = QtWidgets.QRadioButton("pickle") - self.radioMat = QtWidgets.QRadioButton("mat") + self.radioMat = QtWidgets.QRadioButton("MAT") + self.radioCSV = QtWidgets.QRadioButton("CSV") + self.radioJSON = QtWidgets.QRadioButton("JSON") self.radioPickle.setChecked(True) hboxradio.addWidget(self.radioPickle) hboxradio.addWidget(self.radioMat) + hboxradio.addWidget(self.radioCSV) + hboxradio.addWidget(self.radioJSON) hboxpush = QtWidgets.QHBoxLayout() self.pushExport = QtWidgets.QPushButton("Export") diff --git a/ross_ui/view/mainWindow.py b/ross_ui/view/mainWindow.py index fc2e5d6..fb71320 100644 --- a/ross_ui/view/mainWindow.py +++ b/ross_ui/view/mainWindow.py @@ -284,7 +284,7 @@ def createActions(self): # self.isiAct.setCheckable(True) # self.isiAct.setChecked(False) self.isiAct.setStatusTip(self.tr("Plotting Inter Spike Interval Histogram")) - self.isiAct.triggered.connect(self.onPlotIsi) + self.isiAct.triggered.connect(self.onPlotISI) self.plot3dAct = QtWidgets.QAction(self.tr("&3D Plot")) # self.plot3dAct.setCheckable(True)