From: Tomas Babej Date: Tue, 17 Mar 2015 22:19:05 +0000 (+0100) Subject: TaskWarrior: Use default .taskrc X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/commitdiff_plain/d6732e2b96e9f646510985b780d86c667b5eb879?hp=88ecc250bb13b8b338a87a87d838ffe701790a87 TaskWarrior: Use default .taskrc Currently, to make UDAs (adding/modifying tasks with UDA, filtering by UDAs) one needs to update the TaskWarrior's config, as described in docs: http://tasklib.readthedocs.org/en/latest/#working-with-udas This is a little bit tedious, since every application that uses tasklib, and wants to support UDAs, needs to either parse the .taskrc file itself, or have user specify the UDA configuration redundantly by some other mechanism. Also, by using rc:/ we are using default values for other config settings, which may take users by surprise (i.e. if user sets a custom value for recurrence.limit, and then any tasklib call will generate more/less recurrence tasks than he wants to see). This commit changes the approach and makes .taskrc the default config file location. --- diff --git a/tasklib/task.py b/tasklib/task.py index 8a2ea7a..23f9277 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -842,8 +842,15 @@ class TaskQuerySet(object): class TaskWarrior(object): - def __init__(self, data_location='~/.task', create=True): + def __init__(self, data_location='~/.task', create=True, taskrc_location='~/.taskrc'): data_location = os.path.expanduser(data_location) + self.taskrc_location = os.path.expanduser(taskrc_location) + + # If taskrc does not exist, pass / to use defaults and avoid creating + # dummy .taskrc file by TaskWarrior + if not os.path.exists(self.taskrc_location): + self.taskrc_location = '/' + if create and not os.path.exists(data_location): os.makedirs(data_location) self.config = { @@ -856,7 +863,7 @@ class TaskWarrior(object): self.version = self._get_version() def _get_command_args(self, args, config_override={}): - command_args = ['task', 'rc:/'] + command_args = ['task', 'rc:{0}'.format(self.taskrc_location)] config = self.config.copy() config.update(config_override) for item in config.items():