- 25 May, 2016 1 commit
-
-
MinchinWeb authored
-
- 12 Apr, 2016 1 commit
-
-
MinchinWeb authored
Windows typically prints a free line after program output; Linux doesn't.
-
- 12 Mar, 2016 2 commits
-
-
MinchinWeb authored
-
MinchinWeb authored
Looks at the prompt or PS1 environmental variables to determine the number of newlines contained in them. Fixes 102.
-
- 23 Feb, 2016 1 commit
-
-
Bram Schoenmakers authored
Don't crash on shlex.split error
-
- 21 Feb, 2016 2 commits
-
-
Jacek Sowiński authored
Show some meaningful error messages instead. Fixes #107
-
Bram Schoenmakers authored
Add recurrence and postponing by business days
-
- 20 Feb, 2016 2 commits
-
-
Jacek Sowiński authored
-
Jacek Sowiński authored
Inspired and also supported by simpletask[1]. `rec:1b` will recur after 1 business day and `rec:5b` after one full business week. Negative values are supported. This feature doesn't of course take holidays into account. [1]: https://github.com/mpcjanssen/simpletask-android/blob/master/src/main/assets/index.en.md
-
- 15 Feb, 2016 1 commit
-
-
Bram Schoenmakers authored
-
- 11 Feb, 2016 3 commits
-
-
Bram Schoenmakers authored
Allow iteration of TodoList items.
-
MinchinWeb authored
-
Bram Schoenmakers authored
Thanks @mruwek for mentioning.
-
- 04 Feb, 2016 1 commit
-
-
Bram Schoenmakers authored
This shows more consistent behavior with other prompt applications. This commit fixes issue #106.
-
- 29 Jan, 2016 4 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Not all commands always need dependencies (pri, depri, ls -x), but all administration is still built up every time a TodoList is instantiated. Now, as soon as something dependency related is requested from the TodoList, the dependency graph and caches are initialized. A decorator is used to mark methods in TodoList that require an initialized graph. This change impacts the calculation of the average importance (based on the todo's ancestors). Importance doesn't have a notion of TodoList (and I would like to keep it that way), so the calculation needs access to the parents somehow. This was done with a parents attribute stored with each Todo item, carefully kept up to date by the TodoList. This is cumbersome, instead, now a Todo item gets a parents() method that obtains the parents from the TodoList that keeps the todo item.
-
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 1 commit
-
-
Bram Schoenmakers authored
Create placeholder for args in aliases
-