58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
import time
|
|
|
|
# from icecream import ic
|
|
from PySide6.QtCore import QThread
|
|
from PySide6.QtCore import Signal as Signal
|
|
|
|
from src.backend import Database
|
|
import loguru
|
|
import sys
|
|
from src import LOG_DIR
|
|
log = loguru.logger
|
|
log.remove()
|
|
log.add(sys.stdout, level="INFO")
|
|
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
|
|
|
|
|
|
# from src.transformers import RDS_AVAIL_DATA
|
|
|
|
|
|
class AutoAdder(QThread):
|
|
updateSignal = Signal(int)
|
|
|
|
setTextSignal = Signal(int)
|
|
progress = Signal(int)
|
|
|
|
def __init__(self, data=None, app_id=None, prof_id=None, parent=None):
|
|
super().__init__(parent)
|
|
self.data = data
|
|
self.app_id = app_id
|
|
self.prof_id = prof_id
|
|
|
|
# print("Launched AutoAdder")
|
|
# print(self.data, self.app_id, self.prof_id)
|
|
|
|
def run(self):
|
|
self.db = Database()
|
|
# show the dialog, start the thread to gather data and dynamically update progressbar and listwidget
|
|
log.info("Starting worker thread")
|
|
item = 0
|
|
for entry in self.data:
|
|
try:
|
|
self.updateSignal.emit(item)
|
|
self.setTextSignal.emit(entry)
|
|
item += 1
|
|
self.progress.emit(item)
|
|
time.sleep(1)
|
|
|
|
except Exception as e:
|
|
# print(e)
|
|
log.exception(
|
|
f"The query failed with message {e} for signature {entry}"
|
|
)
|
|
continue
|
|
if item == len(self.data):
|
|
log.info("Worker thread finished")
|
|
# teminate thread
|
|
self.finished.emit()
|