# HG changeset patch # User chanux # Date 1315557839 -19800 # Node ID 2d2bbd81ed586d48f34cff15b69e7c97fd58d9a5 # Parent 2f7fcbc59b021cbcea2205977d5091a32e757796 Added remove task functionality. diff -r 2f7fcbc59b02 -r 2d2bbd81ed58 t.py --- a/t.py Mon May 09 21:22:15 2011 -0400 +++ b/t.py Fri Sep 09 14:13:59 2011 +0530 @@ -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") @@ -270,6 +283,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) @@ -280,9 +296,9 @@ td.print_list(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__':