def archive(self, args): archived = [] project = None for task in self.tasks: if isinstance(task, Project): archived_project = None archived_tasks = task.get_done() if archived_tasks: archived_project = Project(task.name, archived_tasks) archived.append(archived_project) elif task.done: archived.append(task) self.tasks.remove(task) if archived: date = datetime.now().isoformat() name = _archive_tmpl + "_" + date with file(name, "w") as f: pass parserGenerator = TaskParserGenerator(name) parserGenerator.generate(archived) return True
def archive(self, args): archived = [] project = None for task in self.tasks: if isinstance(task, Project): archived_project = None archived_tasks = task.get_done() if archived_tasks: archived_project = Project(task.name, archived_tasks) archived.append(archived_project) elif task.done: archived.append(task) self.tasks.remove(task) if archived: date = datetime.now().isoformat() name = _archive_tmpl + '_' + date with file(name, 'w') as f: pass parserGenerator = TaskParserGenerator(name) parserGenerator.generate(archived) return True
def test_todo_add_to_new_project(): tmp = mktmpdir() todofile = create_todo_file(tmp, todo_content_complex) parsergenerator = TaskParserGenerator(todofile) tasks, lastindex = parsergenerator.parse() todo = Todo.TodoCommands(tasks, lastindex) todo.add(('@test-project-3', 'hello there world')) parsergenerator.generate(tasks) with file(todofile) as fobj: want = ( "$version 1", "A - - test-task-1", "B - - test-task-2", "@test-project-1", "B - - test-task-4", "C - - test-task-3", "@test-project-2", "B - - test-task-5", "@test-project-3", "C - - hello there world" ) result = fobj.read() assert result == '\n'.join(want) + '\n'
def __init__(self, args): self.no_colors = False def parse_args_and_opts(args): optionParser = OptionParser() for opt in Todo.opts: optionParser.add_option(*opt[4:], help=opt[0], action=opt[1], dest=opt[2], default=opt[3]) return optionParser.parse_args() if not os.path.exists(os.path.dirname(_todo_file)): os.mkdir(os.path.dirname(_todo_file)) if not os.path.exists(_todo_file): with file(_todo_file, 'w') as f: pass try: opts, args = parse_args_and_opts(args) setattr(Todo, 'no_colors', opts.no_colors) parserGenerator = TaskParserGenerator(_todo_file) tasks, last_index = parserGenerator.parse() commandParser = CommandParser([cmd[1] for cmd in Todo.cmds]) command, args_left = commandParser.parse(args) changes = getattr(Todo.TodoCommands(tasks, last_index), command)(args_left) if changes: parserGenerator.generate(tasks) except (TodoError, IOError, ValueError) as err: print('error: {0}'.format(err))
def test_todo_pri(): tmp = mktmpdir() todofile = create_todo_file(tmp, todo_content_complex) parsergenerator = TaskParserGenerator(todofile) tasks, lastindex = parsergenerator.parse() todo = Todo.TodoCommands(tasks, lastindex) todo.pri(['@test-project-1', "A"]) parsergenerator.generate(tasks) with file(todofile) as fobj: want = ( "$version 1", "A - - test-task-1", "B - - test-task-2", "@test-project-1", "A - - test-task-3", "A - - test-task-4", "@test-project-2", "B - - test-task-5") result = fobj.read() assert result == '\n'.join(want) + '\n'
def __init__(self, args): self.no_colors = False def parse_args_and_opts(args): optionParser = OptionParser() for opt in Todo.opts: optionParser.add_option(*opt[4:], help=opt[0], action=opt[1], dest=opt[2], default=opt[3]) return optionParser.parse_args() if not os.path.exists(os.path.dirname(_todo_file)): os.mkdir(os.path.dirname(_todo_file)) if not os.path.exists(_todo_file): with file(_todo_file, "w") as f: pass try: opts, args = parse_args_and_opts(args) setattr(Todo, "no_colors", opts.no_colors) parserGenerator = TaskParserGenerator(_todo_file) tasks, last_index = parserGenerator.parse() commandParser = CommandParser([cmd[1] for cmd in Todo.cmds]) command, args_left = commandParser.parse(args) changes = getattr(Todo.TodoCommands(tasks, last_index), command)(args_left) if changes: parserGenerator.generate(tasks) except (TodoError, IOError, ValueError) as err: print ("error: {0}".format(err))