All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
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.
class TaskWarrior(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)
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 = {
if create and not os.path.exists(data_location):
os.makedirs(data_location)
self.config = {
self.version = self._get_version()
def _get_command_args(self, args, config_override={}):
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():
config = self.config.copy()
config.update(config_override)
for item in config.items():