Skip to content

Commit 60519db

Browse files
committed
Connect first button with api process to be inactive during run
1 parent 0ba3b42 commit 60519db

File tree

3 files changed

+56
-52
lines changed

3 files changed

+56
-52
lines changed

build_with_pyinstaller.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
pip install -e .
33
pyinstaller \
44
--console \
5-
--collect-all pypef \
65
--collect-data torch \
76
--collect-data biotite \
87
--collect-all biotite \

gui/qt_window.py

Lines changed: 56 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,14 @@
99
pypef_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
1010
#sys.path.append(pypef_root)
1111
from pypef import __version__
12-
from pypef.main import __doc__, run_main
12+
from pypef.main import __doc__, run_main, logger
1313

14+
import logging
15+
16+
17+
#logging.getLogger("pypef").setLevel(logging.INFO)
18+
#logging.basicConfig(level=logging.INFO)
19+
logger.setLevel(logging.INFO)
1420

1521
EXEC_API_OR_CLI = ['api', 'cli'][0]
1622

@@ -280,42 +286,51 @@ def __init__(
280286

281287
layout.addWidget(self.textedit_out, 8, 0, 1, -1)
282288

283-
self.process = QtCore.QProcess(self)
289+
#self.process = QtCore.QProcess(self)
284290
#self.process.setProcessChannelMode(QtCore.QProcess.MergedChannels)
285291
#self.process.readyReadStandardOutput.connect(self.on_readyReadStandardOutput)
286-
self.process.started.connect(lambda: self.button_help.setEnabled(False))
287-
self.process.finished.connect(lambda: self.button_help.setEnabled(True))
288-
self.process.started.connect(lambda: self.button_mklsts.setEnabled(False))
289-
self.process.finished.connect(lambda: self.button_mklsts.setEnabled(True))
290-
self.process.started.connect(lambda: self.button_dca_inference_gremlin.setEnabled(False))
291-
self.process.finished.connect(lambda: self.button_dca_inference_gremlin.setEnabled(True))
292-
self.process.started.connect(lambda: self.button_dca_inference_gremlin_msa_info.setEnabled(False))
293-
self.process.finished.connect(lambda: self.button_dca_inference_gremlin_msa_info.setEnabled(True))
294-
self.process.started.connect(lambda: self.button_dca_test_dca.setEnabled(False))
295-
self.process.finished.connect(lambda: self.button_dca_test_dca.setEnabled(True))
296-
self.process.started.connect(lambda: self.button_dca_predict_dca.setEnabled(False))
297-
self.process.finished.connect(lambda: self.button_dca_predict_dca.setEnabled(True))
298-
self.process.started.connect(lambda: self.button_hybrid_train_dca.setEnabled(False))
299-
self.process.finished.connect(lambda: self.button_hybrid_train_dca.setEnabled(True))
300-
self.process.started.connect(lambda: self.button_hybrid_train_test_dca.setEnabled(False))
301-
self.process.finished.connect(lambda: self.button_hybrid_train_test_dca.setEnabled(True))
302-
self.process.started.connect(lambda: self.button_hybrid_test_dca.setEnabled(False))
303-
self.process.finished.connect(lambda: self.button_hybrid_test_dca.setEnabled(True))
304-
self.process.started.connect(lambda: self.button_hybrid_prediction_dca.setEnabled(False))
305-
self.process.finished.connect(lambda: self.button_hybrid_prediction_dca.setEnabled(True))
306-
###### TODO
307-
self.process.started.connect(lambda: self.button_hybrid_train_test_dca_llm.setEnabled(False))
308-
self.process.finished.connect(lambda: self.button_hybrid_train_test_dca_llm.setEnabled(True))
309-
###### TODO END
310-
self.process.started.connect(lambda: self.button_supervised_train_test_dca.setEnabled(False))
311-
self.process.finished.connect(lambda: self.button_supervised_train_test_dca.setEnabled(True))
312-
self.process.started.connect(lambda: self.button_supervised_train_test_onehot.setEnabled(False))
313-
self.process.finished.connect(lambda: self.button_supervised_train_test_onehot.setEnabled(True))
314-
315-
def on_readyReadStandardOutput(self):
316-
text = self.process.readAllStandardOutput().data().decode()
317-
self.c += 1
318-
self.textedit_out.append(text.strip())
292+
#self.process.started.connect(lambda: self.button_help.setEnabled(False))
293+
#self.process.finished.connect(lambda: self.button_help.setEnabled(True))
294+
#self.process.started.connect(lambda: self.button_mklsts.setEnabled(False))
295+
#self.process.finished.connect(lambda: self.button_mklsts.setEnabled(True))
296+
#self.process.started.connect(lambda: self.button_dca_inference_gremlin.setEnabled(False))
297+
#self.process.finished.connect(lambda: self.button_dca_inference_gremlin.setEnabled(True))
298+
#self.process.started.connect(lambda: self.button_dca_inference_gremlin_msa_info.setEnabled(False))
299+
#self.process.finished.connect(lambda: self.button_dca_inference_gremlin_msa_info.setEnabled(True))
300+
#self.process.started.connect(lambda: self.button_dca_test_dca.setEnabled(False))
301+
#self.process.finished.connect(lambda: self.button_dca_test_dca.setEnabled(True))
302+
#self.process.started.connect(lambda: self.button_dca_predict_dca.setEnabled(False))
303+
#self.process.finished.connect(lambda: self.button_dca_predict_dca.setEnabled(True))
304+
#self.process.started.connect(lambda: self.button_hybrid_train_dca.setEnabled(False))
305+
#self.process.finished.connect(lambda: self.button_hybrid_train_dca.setEnabled(True))
306+
#self.process.started.connect(lambda: self.button_hybrid_train_test_dca.setEnabled(False))
307+
#self.process.finished.connect(lambda: self.button_hybrid_train_test_dca.setEnabled(True))
308+
#self.process.started.connect(lambda: self.button_hybrid_test_dca.setEnabled(False))
309+
#self.process.finished.connect(lambda: self.button_hybrid_test_dca.setEnabled(True))
310+
#self.process.started.connect(lambda: self.button_hybrid_prediction_dca.setEnabled(False))
311+
#self.process.finished.connect(lambda: self.button_hybrid_prediction_dca.setEnabled(True))
312+
####### TODO
313+
#self.process.started.connect(lambda: self.button_hybrid_train_test_dca_llm.setEnabled(False))
314+
#self.process.finished.connect(lambda: self.button_hybrid_train_test_dca_llm.setEnabled(True))
315+
####### TODO END
316+
#self.process.started.connect(lambda: self.button_supervised_train_test_dca.setEnabled(False))
317+
#self.process.finished.connect(lambda: self.button_supervised_train_test_dca.setEnabled(True))
318+
#self.process.started.connect(lambda: self.button_supervised_train_test_onehot.setEnabled(False))
319+
#self.process.finished.connect(lambda: self.button_supervised_train_test_onehot.setEnabled(True))
320+
321+
def start_process(self, button):
322+
self.c += 1
323+
button.setEnabled(False)
324+
325+
def end_process(self, button):
326+
button.setEnabled(True)
327+
self.version_text.setText("Finished...")
328+
self.textedit_out.append("=" * 104 + " Job: " + str(self.c) + "\n")
329+
330+
#def on_readyReadStandardOutput(self):
331+
# text = self.process.readAllStandardOutput().data().decode()
332+
# self.c += 1
333+
# self.textedit_out.append(text.strip())
319334

320335
def selection_ncores(self, i):
321336
if i == 0:
@@ -331,23 +346,23 @@ def selection_llm_model(self, i):
331346

332347
@QtCore.Slot()
333348
def pypef_help(self):
349+
button = self.button_help
350+
self.start_process(button=button)
334351
self.version_text.setText("Getting help...")
335352
self.textedit_out.append(__doc__)
336-
self.process.finished.connect(self.process_finished)
337-
self.c += 1
338-
if self.c > 0:
339-
self.textedit_out.append("=" * 104 + " Job: " + str(self.c) + "\n")
340-
self.version_text.setText("Finished...")
341-
353+
self.end_process(button=button)
342354

343355
@QtCore.Slot()
344356
def pypef_mklsts(self):
357+
button = self.button_mklsts
358+
self.start_process(button=button)
345359
wt_fasta_file = QtWidgets.QFileDialog.getOpenFileName(self, "Select WT FASTA File")[0]
346360
csv_variant_file = QtWidgets.QFileDialog.getOpenFileName(self, "Select variant CSV File")[0]
347361
if wt_fasta_file and csv_variant_file:
348362
self.version_text.setText("Running MKLSTS...")
349363
#self.exec_pypef_cli(f'mklsts --wt {wt_fasta_file} --input {csv_variant_file}')
350364
self.exec_pypef(f'mklsts --wt {wt_fasta_file} --input {csv_variant_file}')
365+
self.end_process(button=button)
351366

352367

353368
@QtCore.Slot()
@@ -474,30 +489,20 @@ def exec_pypef(self, cmd):
474489
raise SystemError("Choose between 'api' or 'cli'!")
475490

476491
def exec_pypef_cli(self, cmd):
477-
print(cmd) # TODO remove
478492
self.process.start(f'python', ['-u', f'{self.pypef_root}/run.py'] + cmd.split(' '))
479493
self.process.finished.connect(self.process_finished)
480494
if self.c > 0:
481495
self.textedit_out.append("=" * 104 + "\n")
482496

483497
def exec_pypef_api(self, cmd):
484-
print(cmd) # TODO remove
485498
self.textedit_out.append(f'Executing command:\n\t{cmd}')
486-
self.c += 1
487499
try:
488500
with Capturing() as captured_output:
489501
run_main(argv=cmd)
490-
print(captured_output)
491502
for cap_out_text in captured_output:
492503
self.textedit_out.append(cap_out_text)
493504
except Exception as e: # anything
494505
self.textedit_out.append(f"Provided wrong inputs! Error:\n\t{e}")
495-
finally:
496-
self.process.finished.connect(self.process_finished)
497-
if self.c > 0:
498-
self.textedit_out.append("=" * 104 + " Job: " + str(self.c) + "\n")
499-
self.version_text.setText("Finished...")
500-
501506

502507
def process_finished(self):
503508
self.version_text.setText("Finished...")

pypef/hybrid/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)