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, project_uuid = None): if project_uuid == None: return self._project_list else: for project in self._project_list: if project.uuid == project_uuid: return project def run_project(self, project): project.start() def stop_project(self, project): _project = self.get(project) _project.stop()