def create_project(self): """ Create a new project. Returns: int: ID of created project. """ request = {"type": "request", "cmd": "otii_create_project"} response = self.connection.send_and_receive(request) if response["type"] == "error": raise otii_exception.Otii_Exception(response) return project.Project(response["data"]["project_id"], self.connection)
def get_active_project(self): """ Returns the active project if there is one. Returns: :obj:Project: Project object. """ request = {"type": "request", "cmd": "otii_get_active_project"} response = self.connection.send_and_receive(request) if response["type"] == "error": raise otii_exception.Otii_Exception(response) if response["data"]["project_id"] == -1: return None else: return project.Project(response["data"]["project_id"], self.connection)
def open_project(self, filename, force=False, progress=False): """ Open an existing project. Args: filename (str): Name of project file. force (bool, optional): True to open even if unsaved data exists, False not to. progress (bool, optional): True to receive notifications about progress of opening file, False not to. Returns: int: ID of opened project. """ data = {"filename": filename, "force": force, "progress": progress} request = {"type": "request", "cmd": "otii_open_project", "data": data} # Set timeout to None (blocking) as command can operate over large quantities of data to avoid timeout response = self.connection.send_and_receive(request, None) if response["type"] == "error": raise otii_exception.Otii_Exception(response) proj = project.Project(response["data"]["project_id"], self.connection) proj.filename = response["data"]["filename"] return proj