63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
import time
|
|
|
|
# from icecream import ic
|
|
from PyQt6.QtCore import QThread
|
|
from PyQt6.QtCore import pyqtSignal as Signal
|
|
|
|
from src.backend import Database
|
|
from loguru import logger as log
|
|
import sys
|
|
|
|
logger = log
|
|
logger.remove()
|
|
logger.add("logs/application.log", rotation="1 week", enqueue=True)
|
|
log.add(
|
|
"logs/autoadder.log",
|
|
compression="zip",
|
|
)
|
|
|
|
# logger.add(sys.stderr, format="{time} {level} {message}", level="INFO")
|
|
logger.add(sys.stdout)
|
|
|
|
# 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
|
|
logger.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)
|
|
logger.exception(
|
|
f"The query failed with message {e} for signature {entry}"
|
|
)
|
|
continue
|
|
if item == len(self.data):
|
|
logger.info("Worker thread finished")
|
|
# teminate thread
|
|
self.finished.emit()
|