The code had a backport shim for importing shutil get_terminal_size.
For modern versions, the call is in shutil in the standard library.
Starting with 3.9, on Debian, the backport reference causes a FTBFS.
Drop the workaround.
Support for security fixes for Python 3.2 ended in 2016.
This reverts commit bbdfb2a5ce.
(Wheel) dependencies are evaluated at build time, so they should stay in
extras_require, which are evaluated at install-time.
See issue #79.
Supporting Python 2 resulted in some additional dependencies (six,
ushlex, get_terminal_size). Removing 2.7 support makes things a bit
easier and maintainable.
Installing from the source distribution (sdist), ushlex and
shutil_get_terminal_size were not installed. Putting the condition in
install_requires addresses this.
It has a backward incompatible change to rename the get_input() function
to prompt(). For now it's still supported, but it's better to anticipate
the removal of get_prompt() in the (near?) future.
Started on the UI that I envisioned since the very beginning of this
project, 364 days ago.
The UI is inspired by TweetDeck, the column-like Twitter interface.
Every column is associated with a View object (which has a filter and a
sort order on the active todo.txt file). So each column can show a
particular part of the todo.txt files. E.g, a column for today's items,
a column for overdue items or a column for a particular project
(filter: GrepFilter("+SomeProject")).
The way topydo is designed was always with this UI in mind. Commands
('add', 'do', etc.) should be independent of the UI that invoked them,
therefore they never print to stdout but output to a function such that
the current UI will show it properly. Also the View class, which hasn't
been incredibly useful sofar, can finally fulfil its role better.
This is still a very immature version of the UI. It shows a single
column with all the todos. It can execute commands, but it will do so
silently, no output or errors are shown yet.
The navigation will be Vim-like. Press : to toggle the command-line at
the bottom of the screen, where you can enter any command that you're
used to. Press Escape entering a command to set the focus back on the
columns.
The next few items to address:
* show output, errors and handle input
* ability to dynamically add/edit/delete columns
* add navigation keys to 'walk' through the items in the columns and act
on them with shortcuts. E.g. highlight a todo, press 'x' to complete
it.
I chose urwid as the widget library for the console, since using curses
directly gave me a headache.
The idea is that we can focus on Unicode issues in this branch, getting
both the CLI and the Prompt mode properly in shape having Python 3
support.
Conflicts:
test/AddCommandTest.py
test/AppendCommandTest.py
test/ArchiveCommandTest.py
test/DepCommandTest.py
test/DepriCommandTest.py
test/DoCommandTest.py
test/EditCommandTest.py
test/IcalCommandTest.py
test/ListCommandTest.py
test/ListContextCommandTest.py
test/ListProjectCommandTest.py
test/PostponeCommandTest.py
test/PriorityCommandTest.py
test/SortCommandTest.py
test/TagCommandTest.py
topydo/cli/CLIApplicationBase.py