4 from core.bits import *
5 from core.marshal import ItemConverter
6 from digraphtools.predicate import predicate
8 want_coffee = ItemConverter().predicate_string_to_callable(' coffee ')
9 assert want_coffee(['coffee','tv']) == True
10 assert want_coffee(['fish','tv']) == False
19 class make_breakfast(Item):
22 class eat_breakfast(Item):
23 depends = (make_breakfast,)
25 class make_coffee(Item):
27 predicate = want_coffee
29 class drink_coffee(Item):
30 depends = (make_coffee,)
31 predicate = want_coffee
33 class have_breakfast(Group):
35 contains = (eat_breakfast, drink_coffee)
37 class walk_out_door(Item):
38 depends = (get_up, have_breakfast)
40 class go_to_work(Item):
41 description = 'Leave to go to work'
42 depends = (walk_out_door,)
46 items = [wake_up, get_up, have_breakfast, make_breakfast, eat_breakfast, make_coffee, drink_coffee, walk_out_door, go_to_work]
47 breakfast_task_factory = lib.loaders.TaskFactory(items)