def __enter__(self): """Load tasks from self.taskfile""" with open(self.taskfile, mode="rb") as t: tasklist = task_pb2.Tasks() tasklist.ParseFromString(t.read()) logging.info(f"Loaded data from {self.taskfile}") self.tasks: Mapping[int, task_pb2.Task] = {} self.history: Mapping[int, task_pb2.Task] = {} # add to the dict and set id with maximum value for t in tasklist.pending: self.tasks[t.id] = t self.history[t.id] = [] if self.task_id < t.id: self.task_id = t.id self.task_id += 1 print(f"next task id = {self.task_id}") with open("taskhistory.protobuf", mode="rb") as pt: historyTasklist = task_pb2.Tasks() historyTasklist.ParseFromString(pt.read()) logging.info(f"Loaded data from taskhistory.protobuf") # add to the dict for task in historyTasklist.pending: self.history[task.id].append(task) print(self.history[task.id]) return self
def __exit__(self, exc_type, exc_val, exc_tb): """Save tasks to self.taskfile""" with open(self.taskfile, mode="wb") as t: tasks = task_pb2.Tasks(pending=self.tasks.values()) t.write(tasks.SerializeToString()) logging.info(f"Saved data to {self.taskfile}") with open("taskhistory.protobuf", mode="wb") as pt: for taskList in self.history.values(): tasks = task_pb2.Tasks(pending=taskList) pt.write(tasks.SerializeToString()) logging.info(f"Saved data to taskhistory.protobuf\n")
def listTasks(self, request: task_pb2.TaskQuery, context) -> task_pb2.Tasks: logging.debug(f"listTasks parameters {pformat(request)}") # return a list of tasks that are in the specified states if len(request.selected) != 0: # for state in request.selected: # task_list = [i for i in self.tasks.values() if i.state == state] # return task_pb2.Tasks(pending=task_list) return task_pb2.Tasks(pending=[ i for i in self.tasks.values() if i.state in request.selected ]) else: return task_pb2.Tasks(pending=self.tasks.values())
def __exit__(self, exc_type, exc_val, exc_tb): """Save tasks to self.taskfile""" with open(self.taskfile, mode="wb") as t: #get all the tasks from self.tasks dict tasks = task_pb2.Tasks(pending=self.tasks.values()) t.write(tasks.SerializeToString()) logging.info(f"Saved data to {self.taskfile}")
def listTasks(self, request, context) -> task_pb2.Tasks: # print list #print(request.selected) tem = {} if len(request.selected) == 0: # if input zero state logging.debug("listTasks") context.set_code(grpc.StatusCode.OK) return self.tasks if (max(request.selected) > 4) or (min(request.selected) < 0): # state range logging.debug(f"out of range {pformat(request)}") context.set_code(grpc.StatusCode.OUT_OF_RANGE) context.set_details(f"out of range {pformat(request)}") return tem for i in self.tasks: # filter y = task_pb2.Task(id=i, description=self.tasks[i].description, state=self.tasks[i].state) tem[i] = y #print(tem[2]) remove = [ k for k in self.tasks.keys() if not tem[k].state in request.selected ] for k in remove: del tem[k] print(tem) logging.debug(f"listTasks parameters {pformat(request)}") context.set_code(grpc.StatusCode.OK) return task_pb2.Tasks(pending=tem.values())
def __enter__(self): """Load tasks from self.taskfile""" with open(self.taskfile, mode="rb") as t: # load tasklist = task_pb2.Tasks() tasklist.ParseFromString(t.read()) logging.info(f"Loaded data from {self.taskfile}") self.tasks: Mapping[int, task_pb2.Task] = { t.id: t for t in tasklist.pending } return self
def __enter__(self): """Load tasks from self.taskfile""" with open(self.taskfile, mode="rb") as t: tasklist = task_pb2.Tasks() tasklist.ParseFromString(t.read()) logging.info(f"Loaded data from {self.taskfile}") self.tasks: Mapping[int, task_pb2.Task] = self.mmp(tasklist) #TODO #for keep histry self.hist_tasks: Mapping[int, List[data_str]] = {} return self
def __enter__(self): """Load tasks from self.taskfile""" with open(self.taskfile, mode="rb") as t: tasklist = task_pb2.Tasks() tasklist.ParseFromString(t.read()) logging.info(f"Loaded data from {self.taskfile}") self.tasks: Mapping[int, task_pb2.Task] = {} taskid_temp: int for item in tasklist.pending: self.tasks[item.id] = item taskid_temp = item.id self.task_id = taskid_temp + 1 return self
def process_tasks_yaml(file_name, start_time): config = yaml.load(open(file_name, "r")) # From the config file, prepare the task. end_time = parse_time(config["_End_Time_"]) tasks = task_pb2.Tasks() for group, content in config.iteritems(): if not isinstance(content, list): continue is_sequence = group[-1] != "_" prev_task_id = "" global_segment = {} prereq = None for task_item in content: # print task_item task_id, spec = task_item.split(" ", 2) if task_id == "set_": global_segment = parse_time_seg(spec, start_time=start_time) continue if task_id == "pre_req_": prereq = spec.split(",") continue segment = parse_time_seg(spec, additional=global_segment, start_time=start_time) # print segment this_times = convert_time_seg(segment, start_time, end_time) for idx, time in enumerate(this_times): task = tasks.tasks.add() if idx > 0: task.id = task_id + "-" + str(idx) else: task.id = task_id task.group = group task.time.CopyFrom(time) if prereq: task.pre_req_ids.extend(prereq) if is_sequence and prev_task_id: task.pre_req_ids.append(prev_task_id) prev_task_id = task_id tasks.global_start_time = util_dt_time(start_time) tasks.rest_time = time_to_rest tasks.max_heap_size = 100 return tasks
def __enter__(self): """Load tasks from self.taskfile""" with open(self.taskfile, mode="rb") as t: tasklist = task_pb2.Tasks() tasklist.ParseFromString(t.read()) logging.info(f"Loaded data from {self.taskfile}") self.tasks: Mapping[int, task_pb2.Task] = {} # add to the dict and set id with maximum value for t in tasklist.pending: self.tasks[t.id] = t if self.task_id < t.id : self.task_id = t.id self.task_id +=1 print(f"next task id = {self.task_id}") return self
def process_tasks_yaml(file_name, start_time): config = yaml.load(open(file_name, "r")) # From the config file, prepare the task. end_time = parse_time(config["_End_Time_"]) global_segment = {} tasks = task_pb2.Tasks() for task_id, content in config.iteritems(): if not isinstance(content, dict): continue spec = content["labels"] # print task_item # if task_id == "set_": # global_segment = parse_time_seg(spec, start_time=start_time); # continue; segment = parse_time_seg(spec, additional=global_segment, start_time=start_time) # print segment this_times = convert_time_seg(segment, start_time, end_time) for idx, time in enumerate(this_times): task = tasks.tasks.add() if idx > 0: task.id = task_id + "-" + str(idx) else: task.id = task_id task.time.CopyFrom(time) if "prereqs" in content: # print "Task " + task_id + " has prereqs = " + content["prereqs"]; task.pre_req_ids.extend(content["prereqs"].split(",")) tasks.global_start_time = util_dt_time(start_time) tasks.rest_time = time_to_rest tasks.max_heap_size = 100000 return tasks
def __init__(self): # TODO: initialise attributes to store our tasks. self.tasks = task_pb2.Tasks()
def listTasks(self, request: empty_pb2.Empty, context) -> task_pb2.Tasks: logging.debug(f"listTasks parameters {pformat(request)}") return task_pb2.Tasks(pending=self.tasks.values())
def listTasks(self, request: task_pb2.TaskQuery, context) -> task_pb2.Tasks: logging.debug(f"listTasks parameters {pformat(request)}") tasks = [ task for task in self.tasks.values() if task.state in request.selected or len(request.selected) == 0 ] print(tasks) return task_pb2.Tasks(pending=tasks)
def __init__(self): # initialise a Tasks attribute to store our tasks. self.Tasks = task_pb2.Tasks()
task.pre_req_ids.append(pre_req_id) return task def PrintSchedule(schedules): print "num of steps = %d" % schedules.search_steps table = PrettyTable(["Task", "Start", "End"]) table.align["Task"] = "l" table.padding_width = 1 for schedule in schedules.schedules: table.add_row([schedule.id, schedule.start, schedule.end]) print table tasks = task_pb2.Tasks() tasks.tasks.extend([ AddTask("Work-1", 30, 0, ""), AddTask("Work-2", 20, 30, "Work-1"), AddTask("Work-3", 40, 10, "Work-2"), AddTask("Work-4", 40, 20, "Work-3"), AddTask("Work-5", 40, 40, "Work-4"), AddTask("Work-6", 40, 10, "Work-5"), AddTask("Research-1", 20, 0, ""), AddTask("Research-2", 20, 90, "Research-1"), AddTask("Research-3", 30, 10, "Research-2"), AddTask("Research-4", 70, 20, "Research-3"), AddTask("Research-5", 20, 60, "Research-4"), AddTask("Research-6", 30, 50, "Research-5") ])
def listTasks(self, request, context): logging.info("returning task list") # TODO: implement this! print("returning task list") return task_pb2.Tasks(tasks=self.tasks.tasks)