from multiprocessing import Process, Queue, freeze_support import queue from datetime import datetime, timedelta import _ed_lrr from collections import namedtuple 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)