2022-02-07 20:27:30 +08:00
|
|
|
from json import loads as json_parse, dumps as _json_stringify
|
|
|
|
|
from typing import Dict, Optional, Any
|
|
|
|
|
import paho.mqtt.client as mqtt
|
|
|
|
|
from .task import Task
|
|
|
|
|
|
|
|
|
|
_RUNTIME_COMPILE = False
|
|
|
|
|
|
|
|
|
|
def json_stringify(o: Any) -> str:
|
|
|
|
|
return _json_stringify(o, separators=(',', ':'))
|
|
|
|
|
|
|
|
|
|
class TaskManager():
|
2022-02-08 20:12:44 +08:00
|
|
|
def __init__(self, all_task):
|
|
|
|
|
self.task_graph = {}
|
|
|
|
|
self.my_list = []
|
|
|
|
|
self._all_task = all_task
|
|
|
|
|
self.create_task_list(all_task)
|
2022-02-07 20:27:30 +08:00
|
|
|
|
|
|
|
|
def remove(self, index):
|
2022-02-08 20:12:44 +08:00
|
|
|
pass
|
2022-02-07 20:27:30 +08:00
|
|
|
|
|
|
|
|
def get(self):
|
2022-02-08 20:12:44 +08:00
|
|
|
pass
|
2022-02-07 20:27:30 +08:00
|
|
|
|
2022-02-08 20:12:44 +08:00
|
|
|
def create_task_list(self, all_task):
|
|
|
|
|
for key, task in all_task.items():
|
|
|
|
|
print(key, task)
|
|
|
|
|
|
|
|
|
|
def add_task(self, node):
|
|
|
|
|
if node not in self.my_list:
|
|
|
|
|
self.my_list.append(node)
|
2022-02-07 20:27:30 +08:00
|
|
|
else:
|
2022-02-08 20:12:44 +08:00
|
|
|
print("Node ",node," already exists!")
|
2022-02-07 20:27:30 +08:00
|
|
|
|
2022-02-08 20:12:44 +08:00
|
|
|
def add_edge(self, node1, node2):
|
|
|
|
|
temp = []
|
|
|
|
|
if node1 in self.my_list and node2 in self.my_list:
|
|
|
|
|
if node1 not in self.task_graph:
|
|
|
|
|
temp.append(node2)
|
|
|
|
|
self.task_graph[node1] = temp
|
|
|
|
|
|
|
|
|
|
elif node1 in self.task_graph:
|
|
|
|
|
temp.extend(self.task_graph[node1])
|
|
|
|
|
temp.append(node2)
|
|
|
|
|
self.task_graph[node1] = temp
|
|
|
|
|
else:
|
|
|
|
|
print("Nodes don't exist!")
|