make tasklist.remove() behave like discard()

This commit is contained in:
Anders Ingemann 2013-07-01 00:11:51 +02:00
parent 8479ff4dca
commit 6dfdc2ed6d

View file

@ -13,15 +13,17 @@ class TaskList(object):
self.tasks.update(args) self.tasks.update(args)
def remove(self, *args): def remove(self, *args):
for task in args: for task_type in args:
self.tasks.discard(self.get(task)) task = self.get(task_type)
if task is not None:
self.tasks.discard(task)
def replace(self, task, replacement): def replace(self, task, replacement):
self.remove(task) self.remove(task)
self.add(replacement) self.add(replacement)
def get(self, ref): def get(self, ref):
return next(task for task in self.tasks if type(task) is ref) return next((task for task in self.tasks if type(task) is ref), None)
def run(self, bootstrap_info): def run(self, bootstrap_info):
task_list = self.create_list(self.tasks) task_list = self.create_list(self.tasks)