from io import StringIO from json import loads as json_parse, dumps as _json_stringify from typing import Dict, Optional, Any import paho.mqtt.client as mqtt from .project import Project from biopro.device.manager import DeviceManager def json_stringify(o: Any) -> str: return _json_stringify(o, separators=(',', ':')) class ProjectManager(): def __init__(self, device_manager: DeviceManager, mqtt_thread=None) : self._project_list = [] self._mqtt_thread = mqtt_thread self._device_manager = device_manager def create(self, project): new_project = Project(project, self._device_manager, self._mqtt_thread) self._project_list.append(new_project) return new_project def remove(self, index): self._project_list[index].stop() del self._project_list[index] def get(self): return self._project_list def run(self, project): project.start() def stop(self, project): project.stop()