Skip to content

KenjiTakahashi/td

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

td is a non-offensive, per project ToDo manager.

Heavily inspired by devtodo, but with some nasty features, like:

  • Shorter commands for most used actions.
  • Sorting/Filtering specific levels only.
  • Persistent sort/filter/view options.
  • Written in pure Python (it even has docstrings).
  • Tests (Build StatusCoverage).

Oh, and it will automagically pick up your existing devtodo lists!

screenshot

screenshot

requirements

  • python >= 3.2
  • colorama
  • distribute (for setup)
  • nosetests (for test-suite)

usage

show

To show your complete ToDo list, just run td without any parameters.

$ td

add

Typing

$ td a(dd) [<parent_index>]

will start an interactive item adding session.

Optional parent_index parameter specifies item, under which the new one will be nested.

Instead of using interactive session, one can also specify them in command line, like below.

$ td a(dd) [<parent_index>] --<field_name> <field_value>
$ td a(dd) [<parent_index>] -<field_name's_first_letter> <field_value>

edit

Typing

$ td e(dit) <index>

where index is an item's index, will start an interactive item editing session.

Similarly to a(dd), one can also specify new values in command line.

$ td e(dit) <index> --<field_name> <field_value>
$ td e(dit) <index> -<field_name's_first_letter> <field_value>

One special cause here is reparenting, done like below.

$ td e(dit) <index> --parent <parent_index>

remove

Typing

$ td r(emove) <index>

will remove item under index.

done/undone

Typing

$ td d(one) <index>

will mark item under index as done, while typing

$ td D <index>
$ td undone <index>

will mark it as not done.

view/modify/options

All view, modify and options commands have exactly the same interface, but:

  • v(iew) is temporary, which means that changes affect only one session and are then gone,
  • m(odify) is permanent, which means that the changes made are saved to disk,
  • o(ptions) sets persistent modifiers, which will be applied on every future change.

sort

General syntax is

$ td (v|m|o) -s [+|-]{,}[[<level>]{:}[<field_name>](+|-)]
$ td (v|m|o) --sort [+|-]{,}[[<level>]{:}[<field_name>](+|-)]

but it looks cryptic, so lets split it into some more specific use cases.

To sort everything asceding by name, type

$ td (v|m|o) -s
$ td (v|m|o) -s +

To sort everything desceding by name, type

$ td (v|m|o) -s -

To sort specific level by name, type (as before, + goes for asceding and - for desceding)

$ td (v|m|o) -s <level>(+|-)

To sort everything by a field other than name, type

$ td (v|m|o) -s <field_name>(+|-)

To sort specific level by a field other than name, type

$ td (v|m|o) -s <level>:<field_name>(+|-)

And to specify muliple rules, use a comma (,). For example this

$ td (v|m|o) -s +,1-,2:priority+

will sort items at the second level asceding by priority, item at the first level desceding by name, and all other levels asceding by name.

purge

Typing

$ td (v|m|o) -p
$ td (v|m|o) --purge

will remove all completed items.

done/undone

This command is used to batch mark items as done or not.

General syntax is

$ td (v|m|o) -d [[<level>]{:}[[<field_name>=]<regexp>]]
$ td (v|m|o) --done [[<level>]{:}[[<field_name>=]<regexp>]]
$ td (v|m|o) -D [[<level>]{:}[[<field_name>=]<regexp>]]
$ td (v|m|o) --undone [[<level>]{:}[[<field_name>=]<regexp>]]

As with sort, we'll split it into use cases.

To mark all items, type

$ td (v|m|o) -(d|D)

To mark all items at specific level, type

$ td (v|m|o) -(d|D) <level>

To mark items matching regexp at any field and level, type

$ td (v|m|o) -(d|D) <regexp>

To mark items matching regexp at specific field and any level, type

$ td (v|m|o) -(d|D) <field_name>=<regexp>

To mark items matching regexp at any field and specific level, type

$ td (v|m|o) -(d|D) <level>:<regexp>

To mark items matching regexp at specific field and level, type

$ td (v|m|o) -(d|D) <level>:<field_name>=<regexp>

Of course, these rules can also be chained using comma (,).

About

a non-offensive, per project ToDo manager.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages