"""Displays the number of pending tasks in TaskWarrior. Requires the following library: * taskw Parameters: * taskwarrior.taskrc : path to the taskrc file (defaults to ~/.taskrc) """ from taskw import TaskWarrior import core.module import core.widget import core.decorators class Module(core.module.Module): def __init__(self, config, theme): super().__init__(config, theme, core.widget.Widget(self.output)) self.__pending_tasks = "0" def update(self): """Return a string with the number of pending tasks from TaskWarrior.""" try: taskrc = self.parameter("taskrc", "~/.taskrc") w = TaskWarrior(config_filename=taskrc) pending_tasks = w.filter_tasks({"status": "pending"}) self.__pending_tasks = str(len(pending_tasks)) except: self.__pending_tasks = "n/a" def output(self, _): """Format the task counter to output in bumblebee.""" return "{}".format(self.__pending_tasks) # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4