import queue from collections import namedtuple from datetime import datetime, timedelta from multiprocessing import Process, Queue, freeze_support import _ed_lrr # from PyQt5.QtWidgets import QProgressDialog # class RouteProgress(QProgressDialog): # def __init__(self, *args, **kwargs): # super().__init__(*args, **kwargs) # self.setWindowModality(Qt.WindowModal) class Router(Process): def __init__(self, *args, **kwargs): super().__init__() self.state = {} self.queue = Queue() self.daemon = True self.args = args self.kwargs = kwargs self.kwargs["callback"] = self.callback def callback(self, state): self.queue.put({"status": state}) def run(self): route = _ed_lrr.route(*self.args, **self.kwargs) self.queue.put({"return": route}) if __name__ == "__main__": freeze_support() r = Router( ["Ix", "Beagle Point"], 48, "BFS", False, False, None, None, r"D:\devel\rust\ED_LRR\stars.csv", ) for e in r: print(e)