# HG changeset patch # User Steve Losh # Date 1316558875 14400 # Node ID 2e3102258623a49519e72d130528e815e67704f3 # Parent e8ad76b464c29cb82ae973d1227d918bbb7efc8b# Parent 6af374f5229500e9b28f60b7d61cbcb4116c0c44 Merge. diff -r 6af374f52295 -r 2e3102258623 t.py --- a/t.py Thu Sep 08 22:46:50 2011 -0400 +++ b/t.py Tue Sep 20 18:47:55 2011 -0400 @@ -192,6 +192,17 @@ task = self.tasks.pop(self[prefix]['id']) self.done[task['id']] = task + def remove_task(self, prefix): + """Remove the task from tasks list. + + If more than one task matches the prefix an AmbiguousPrefix exception + will be raised, if no tasks match it an UnknownPrefix exception will + be raised. + + """ + task = self.tasks.pop(self[prefix]['id']) + + def print_list(self, kind='tasks', verbose=False, quiet=False, grep=''): """Print out a nicely formatted list of unfinished tasks.""" tasks = dict(getattr(self, kind).items()) @@ -234,6 +245,8 @@ help="edit TASK to contain TEXT", metavar="TASK") actions.add_option("-f", "--finish", dest="finish", help="mark TASK as finished", metavar="TASK") + actions.add_option("-r", "--remove", dest="remove", + help="Remove TASK from list", metavar="TASK") parser.add_option_group(actions) config = OptionGroup(parser, "Configuration Options") @@ -255,6 +268,9 @@ output.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False, help="print less detailed output (no task ids, etc)") + output.add_option("--done", + action="store_true", dest="done", default=False, + help="list done tasks instead of unfinished ones") parser.add_option_group(output) return parser @@ -270,6 +286,9 @@ if options.finish: td.finish_task(options.finish) td.write(options.delete) + elif options.remove: + td.remove_task(options.remove) + td.write(options.delete) elif options.edit: td.edit_task(options.edit, text) td.write(options.delete) @@ -277,12 +296,13 @@ td.add_task(text) td.write(options.delete) else: - td.print_list(verbose=options.verbose, quiet=options.quiet, + kind = 'tasks' if not options.done else 'done' + td.print_list(kind=kind, verbose=options.verbose, quiet=options.quiet, grep=options.grep) except AmbiguousPrefix, e: - sys.stderr.write('The ID "%s" matches more than one task.' % e.prefix) + sys.stderr.write('The ID "%s" matches more than one task.\n' % e.prefix) except UnknownPrefix, e: - sys.stderr.write('The ID "%s" does not match any task.' % e.prefix) + sys.stderr.write('The ID "%s" does not match any task.\n' % e.prefix) if __name__ == '__main__':