rdial
is a simple way to track the time you spend on tasks. It tracks the
name of a task, its start time, its duration and optionally a message… nothing
more.
rdial
is released under the GPL v3 license.
rdial
’s mandatory dependencies outside of the standard library are:
It should work with Python version 3.6, or newer. If rdial
doesn’t work
with the version of Python you have installed, file an issue and I’ll
endeavour to fix it.
The package has been tested on many UNIX-like systems, including Linux and OS X, but it may work fine on other systems too.
To run the tests you’ll need pytest. Once you have pytest installed you can run the tests with the following commands:
$ pytest tests
The database is just a directory of simple CSV files, making it useful to use
and abuse in other applications. A sample database could be a file named
task.csv
with the following contents:
start,delta,message 2011-05-04T08:00:00Z,PT01H00M00S,working on issue 4 2011-05-04T09:30:00Z,,
and a task2.csv
file with the following contents:
start,delta,message 2011-05-04T09:15:00Z,PT00H15M00S,
The CSV files contain the following fields:
- Start time expressed in UTC
- Task duration
- An optional message associated with the event
The start time and duration fields are given as ISO 8601 formatted strings.
If a line does not contain a duration entry, then the task is considered to be running.
$ rdial start <task_name>
$ rdial stop
$ rdial report
+-------+----------------+
| task | time |
+-------+----------------+
| task | 1:00:00 |
| task2 | 1 day, 0:15:00 |
+-------+----------------+
I’d like to thank the following people who have contributed to rdial
.
- Nathan McGregor
- Delphine Beauchemin
- Henry Richards
- James Gaffney
- Ryan Sutton
- Stephen Thorne
- Adam Baxter
- Kevin Simmons
- Thomas Gallagher
If I’ve forgotten to include your name I wholeheartedly apologise. Just drop me a mail and I’ll update the list!
If you find any problems, bugs or just have a question about this package either file an issue or drop me a mail.
If you’ve found a bug please try to include a minimal testcase that reproduces the problem, or even better a patch that fixes it!