topydo-0.15/000077500000000000000000000000001464042256300127635ustar00rootroot00000000000000topydo-0.15/.coveragerc000066400000000000000000000004111464042256300151000ustar00rootroot00000000000000[run] branch = True [report] exclude_lines = pragma: no cover def __repr__ raise AssertionError raise NotImplementedError if 0: if __name__ == .__main__.: omit = topydo/commands/ExitCommand.py topydo/lib/Version.py topydo/ui/* topydo-0.15/.gitattributes000066400000000000000000000000571464042256300156600ustar00rootroot00000000000000test/data/* text eol=lf test/data/*.ics binary topydo-0.15/.github/000077500000000000000000000000001464042256300143235ustar00rootroot00000000000000topydo-0.15/.github/workflows/000077500000000000000000000000001464042256300163605ustar00rootroot00000000000000topydo-0.15/.github/workflows/test.yml000066400000000000000000000014571464042256300200710ustar00rootroot00000000000000name: Pytests on: [push, pull_request] jobs: test: name: Tests runs-on: ubuntu-latest strategy: matrix: python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] steps: - name: Check out uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install pip dependencies run: | python -m pip install --upgrade pip pip install . pip install .[columns] pip install .[ical] pip install .[prompt] pip install .[test] pip install pylint pip install codecov pip install -U isort pip install pytest - name: Run pytests run: | python -m pytest topydo-0.15/.gitignore000066400000000000000000000003731464042256300147560ustar00rootroot00000000000000*.py[cod] *.sw? *.un~ install .coverage *,cover # Distribution / packaging .Python env/ env*/ build/ develop-eggs/ dist/ eggs/ htmlcov/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg .eggs/ # Sublime Text *.sublime-* !/topydo/lib/ topydo-0.15/.isort.cfg000066400000000000000000000001111464042256300146530ustar00rootroot00000000000000[settings] skip=topydo/ui/CLIApplicationBase.py known_first_party=topydo topydo-0.15/.travis.yml000066400000000000000000000020221464042256300150700ustar00rootroot00000000000000sudo: false # run on new infrastructure language: python python: - "3.3" - "3.4" - "3.5" - "3.6" - "3.7" - "3.8" - "3.9" env: - GREEN_OPTS= matrix: include: - python: "pypy3" env: GREEN_OPTS='--processes 1' allow_failures: - python: "3.3" - python: "3.4" install: - "python -m pip install pip --upgrade" - "pip install ." - "pip install .[columns]" - "pip install .[ical]" - "pip install .[prompt]" - "pip install .[test]" - "pip install pylint" - "pip install codecov" - "pip install -U isort" script: - "green -vvr $GREEN_OPTS" - "python -m pylint --errors-only topydo test" - "isort -c -rc ." # Cache Dependencies after_script: - codecov cache: directories: - $HOME/travis/.cache/pip notifications: webhooks: urls: - https://webhooks.gitter.im/e/b7a69031304c472294ac on_success: change # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always on_start: false # default: false topydo-0.15/AUTHORS.md000066400000000000000000000003511464042256300144310ustar00rootroot00000000000000Main author / maintainer: Bram Schoenmakers (@bram85) Maintainer: David Steele For a list of contributors, please refer to the Contributors page on [Github](https://github.com/topydo/topydo/graphs/contributors). topydo-0.15/CHANGES.md000066400000000000000000000370331464042256300143630ustar00rootroot000000000000000.15 ---- * Add PEP517/518 support. * Use the README for the python package description. * Make creation date optional for recurring tasks. * Add "-d" flag to remove priority. * Use the todo.txt spec for identifying completed tasks (no completion date required). 0.14 ---- * Fix: fix a reported string incompatibility with Python 3.9. * Fix: make all internal tests pass. * Change: report the new repository home. 0.13 ---- * New: make the text editor configurable. It can be specified in the configuration file or the editor can be passed with `topydo edit -E nano`. This makes it also much easier to introduce 'filters', to process (a selection of) todo items through an external command. * New: with `revert ls` you can list all backups, with `revert NUM` you can restore backup NUM (thanks to @mruwek). * New: tab-completion in column mode (thanks to @mruwek). * New: the commandline in column mode understands basic readline shortcuts: - Ctrl-a: move cursor to the beginning - Ctrl-e: move cursor to the end - Ctrl-u: delete from the cursor back to the beginning - Ctrl-k: delete from the cursor to the end (thanks to @mruwek). * New: 'Mark all' in column mode: simply use Ctrl-A (thanks to @mruwek). * New list format specifiers (for `ls -F`): - %n: line number - %N: padded line number - %u: text-based ID - %U: padded text-based ID The identifiers %i and %I print whatever is configured (default: line numbers). * New: `dep ls` was extended to understand the words `before` and `after`. For example `topydo dep ls before 1` is equivalent to `topydo dep ls 1 to` (thanks to @mruwek). * New: introduce 'identifier_alphabet' option in the configuration, allowing you to choose which characters should be used for the text-based identifiers. This is a convenience for Dvorak typists (like me), to only use characters on the base row (and other conveniently positioned characters). * Fix: crash when running `help` in column mode. * Fix: better handling of incorrect dates. The `postpone` command would crash when a todo item has an invalid due date (e.g. 2016-06-31). * Fix: take hide tags into account in column mode. * Fix: print the correct todo IDs in the `do` or `del` output (thanks to @mruwek). * Fix: make `add -f` more robust when the file does not exist (thanks to @mruwek). * Fix: `ls -n` would not print anything under some circumstances, e.g. when todos are hidden. * Fix: Do not apply ordinal filtering (<, >, =) when a tag appears more than once. * Fix: crash when launching column mode in Windows. This mode is not supported, you may use Cygwin instead. * Fix: crash when an option appears twice in the configuration file. The last value for an option will be used (thanks to @mruwek). * Fix: fix padding for todo IDs. * Fix: instruct users to use 'pip3' instead of 'pip' (thanks to @mruwek). * Change: `tag`, `append` and `dep` can work with multiple todo IDs. This allows you to apply these commands on all marked items. Use {} as a placeholder for the multiple IDs, e.g. `tag {} due today` (thanks to @mruwek). * Change: completed items have a grey progress color. * Change: show group names with relative (humanized) dates when they represent dates. * Change: print empty output when `dep ls` has no output. Improves feedback to user in column mode (thanks to @mruwek). * Change: show an error message when parsing the list format fails (thanks to @mruwek). * Change: use filter expression when no title was given for a column in the column definition file (thanks to @mruwek). * Change: Ctrl-C does not abort column mode anymore, use :quit or :exit instead. 0.12 ---- * New: The `tag` subcommand understands relative dates with the `-r` flag: `tag -r foo value` will interpret value as a relative date and convert to an absolute date. * Fix: escape special characters in Dot output. * Fix: when deleting the last column in column mode, no new columns could be added. This is fixed by showing the column definition view to add a new column. * Change: output in column UI remains visible when : is pressed (instead of Enter or Escape to discard). 0.11 ---- * New: `ls` can group items with the `-g` flag, accepting a group expression (which has the same format as a sort expression). To group items by project, run: `topydo ls -g project`. * New: `ls` can print todo items in the Graphviz Dot format, such that dependencies can be visualized. Use `ls -f dot`, or `topydo ls -f dot +ProjectA | dot -Tsvg -o projectA.svg` to make a graph for project A. * New: Focus and mark colors are customizable in the column UI (thanks to @colinsullivan). * New: todo items can be hidden by adding a `h:1` tag (thanks to @MinchinWeb). * New: an alternative column definition file can be given with the `-l` flag: `topydo columns -l /path/to/columns.conf` (thanks to @mruwek). * Fix: column UI reloads automatically when the todo.txt file was changed externally. * Fix: `edit` did not work on some operating systems (e.g. Mac OS X). * Fix: relative dates were sometimes one day off. * Fix: Minor importance calculation fix during the weekend for distant mondays (thanks to @aetherknight). * Fix: completed items are displayed correctly in the column UI. * Fix: tests were made more deterministic. * Change: Performance improvements for the column UI, it scales better with large todo lists. * Change: temporary files (for editing) will be detected as todo.txt files by the todo.txt-vim plugin. 0.10.1 ------ * Fix: items without priority are shown in the console of the Column UI. 0.10 ---- A major release, introducing a new user interface (TUI). Special thanks go to @mruwek for helping out to get this UI in its current shape. * New: A column-based user interface. Each column has its own filters and sort order, allowing you to build a dashboard with your todo items. Launch with `topydo columns`. * New: color blocks that change from green to red (overdue) as time passes by. Use the %z placeholder to add color blocks to the `ls` output. * New: color option can be set to 0, 1, 16 or 256 and if needed overridden by -C on the commandline. * New: recurrence based on business days. Skips Saturdays and Sundays when calculating the next date (thanks to @mruwek). * New: items can be sorted by length (use 'length' as sort field). * New: parents-of and children-of operators with `add`, `dep` and `append` subcommands. The todo item receives the same parents/children from the specified todo item. * New: `append` understands relative dates and other tags that are special to `add` (thanks to @rameshg87). * Fix: dependency ID creation with orphan todo items. * Fix: crash after completing/deleting an edited item. * Fix: crash after completing an item that got a new dependency with `dep add` * Fix: crash when archive filename is empty (fixed by @mruwek). * Change: a new tag value with an existing key can be added with the tag subcommand (thanks to @MinchinWeb) * Change: ~/.config/topydo/config can be used as a configuration file. * Change: No backups are written for read-only commands (e.g. lsprj) * Change: topydo is more scalable for large todo.txt files. * Known issue: color blocks are not shown in `ls` output in the column UI. * Misc: topydo also has its own website at topydo.org. All commands and features are documented there. 0.9 --- * Dropped support for Python 2.7. * Add ability to filter on creation/completion dates: topydo ls created:today topydo ls completed:today topydo -t done.txt completed:today # if auto-archiving is set * `ls -F` supports `%P` that expands to a single space when no priority is set, in contrast to `%p` which expands to an empty string (thanks to @MinchinWeb). * `ls -N` prints enough todo items such that it fits on one screen (thanks to @MinchinWeb). * Aliases can have a `{}` placeholder which is substituted with the alias' arguments (thanks to @mruwek). * `pri` accepts priorities in lowercase (thanks to @MinchinWeb). * Several bugfixes for `dep gc`. * Various test/CI improvements. 0.8 --- * `do -d` understands relative dates. * Introduced `yesterday` as a relative date (abbrev. `yes`). * `tag` command understands relative dates when setting due or t tags. * Fix install of wheels (unnecessarily installed dependencies). Issue #79. * Bugfix: the negation of ordinal tag filters did not work. * Some improvements in test coverage (a.o. thanks to @mruwek). 0.7 --- A big release with many new features. Many thanks to Jacek Sowiński (@mruwek) for the majority of these new features. * `ls` output can be customized with a -F flag or a configuration option: [ls] list_format = |%I| %x %{(}p{)} %c %s %k %{due:}d %{t:}t or `ls -F "%{(}p{)} %s %{due:}d"`. See `help ls` for all placeholders. Each placeholder can optionally be surrounded by optional texts that are only printed when the placeholder is expanded to a value. The format string may contain a tab character: all text that follows is aligned to the right. (thanks to @mruwek) * New subcommand: `revert`. Revert the last executed command(s). The number of revisions can be tuned in the configuration file: [topydo] backup_count = 25 Set to 0 to disable this feature. (thanks to @mruwek) * New feature: aliases. Aliases can be defined in the configuration file: [aliases] showall = ls -x (thanks to @mruwek) * Filter based on priorities (thanks to @mruwek) ls (A) ls (