- 29 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
todo_by_dep_id was quite inefficient due to the linear search, calling Todo.tag_value() many times to fetch the dependency ID. Instead, maintain a dictionary that maps a parent ID to a todo item so it can be looked up more easily.
-
- 28 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
Call Todo::is_active() only once per match, this halves the execution time (on average).
-
- 27 Jan, 2016 4 commits
-
-
Bram Schoenmakers authored
The except path is relatively often chosen, making these functions (still) quite slow. (Exceptions are slow in Python and they are what they are called: exceptions, not common cases).
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Store tags in a dictionary where the key is the tag name and the value is a list of values for that tag. This makes tag operations much quicker (especially TodoBase::has_tag() and TodoBase::tag_values()). They made quite a dent in execution time with heavy todo.txt files with many tags, due to the numerous list comprehensions that took place.
-
- 25 Jan, 2016 2 commits
-
-
Bram Schoenmakers authored
Spotted by @mruwek.
-
-
- 22 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
-
- 11 Jan, 2016 2 commits
-
-
Bram Schoenmakers authored
arrow is not an optional dependency Mark optional dependencies as such. Remove an indirect dependency from the list.
-
Bram Schoenmakers authored
-
- 08 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
-
- 06 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
The arrow library returns more fine grained humanized dates, taking time of the day into account. topydo only works with dates, so 'just now' actually means 'today'. See also this arrow issue which requests more coarse grained human dates: https://github.com/crsmithdev/arrow/issues/96
-
- 05 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
Python handles one exception at a time (per thread), raising a new exception while still handling another one will result in run-time errors. By linking the second exception to the original one, Python will handle it correctly. This was encountered while developing the alternative column UI, which bailed out on completing a todo item with (invalid) child todo items.
-
- 04 Jan, 2016 1 commit
-
-
Bram Schoenmakers authored
-
- 30 Dec, 2015 1 commit
-
-
Bram Schoenmakers authored
-
- 29 Dec, 2015 1 commit
-
-
Bram Schoenmakers authored
...which is Python 3.2 based.
-
- 20 Dec, 2015 1 commit
-
-
Bram Schoenmakers authored
-
- 19 Dec, 2015 4 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
When a filter with a creation date matches, don't process expression with the remaining filters.
-
Bram Schoenmakers authored
Addresses issue #86 which requested filters on completion date. The following tags are recognized: * create * created * creation * complete * completed * completion They are specific ordinal tag filters, except that these tags don't exist in a todo item. Filtering on completion date does not work when completed items are automatically archived. Archived items are not read when invoking `ls`, so the done.txt file should be read as the main file instead: topydo -t done.txt ls complete:today Also in this commit, decouple ExpressionCommand from Filter class a bit. The expression class shouldn't bother which expressions belong to which filter classes, let the Filter module handle that.
-
- 16 Dec, 2015 2 commits
-
-
Bram Schoenmakers authored
Create placeholder for args in aliases
-
Jacek Sowiński authored
With this change there is now possible to forward args supplied on CLI to desired placed in real command. Example config: [aliases] star = tag {} star 1 unstar = tag {} star Example usage: `topydo star foo` will resolve to: `topydo tag foo star 1` `topydo unstar foo` will resolve to: `topydo tag foo star`
-
- 05 Dec, 2015 1 commit
-
-
Bram Schoenmakers authored
Alternate for `top` command
-
- 04 Dec, 2015 5 commits
-
-
Bram Schoenmakers authored
Suppose the task: Some item p:1 (there is no parent). Then the next time a new ID is selected, it would return 1 because there is no id: tag with value 1. However, this will result in an invalid dependency.
-
Bram Schoenmakers authored
When a UID of 1aa is passed, the code path would try to convert it to a linenumber (integer) when linenumbers are configured. That fails and should be caught accordingly.
-
MinchinWeb authored
-
MinchinWeb authored
Uses new %P format and -N parameter.
-
MinchinWeb authored
`ls -N` will display one 'screen-ful' of lines (the number of lines in the console, less 2).
-
- 03 Dec, 2015 5 commits
-
-
MinchinWeb authored
%P will display the priority if one is given, or print a 'placeholder' space if none is present.
-
Bram Schoenmakers authored
Priority command: allow lowercase priorities to be input
-
MinchinWeb authored
-
MinchinWeb authored
-
Bram Schoenmakers authored
Don't just consider the first p tag value in a todo item, consider all of them.
-
- 01 Dec, 2015 1 commit
-
-
Bram Schoenmakers authored
-
- 30 Nov, 2015 2 commits
-
-
Bram Schoenmakers authored
Given these dependencies: A id:1 B p:1 C p:1 id:2 D p:1 p:2 A -> B A -> C A -> D C -> D The relation A -> D is superfluous (A -> C, C -> D). However, the p:1 tag in D would not be removed, because relation 1 still exists (A -> B). Therefore a new function is added that identifies p: tags which have no corresponding edge in the internal dependency graph (rather than looking at the value of the edge).
-
Bram Schoenmakers authored
-
- 29 Nov, 2015 2 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Conflicts: setup.py topydo/lib/PrettyPrinterFilter.py
-