{ "info": { "author": "Karol \"Kenji Takahashi\" Wo\u017aniak", "author_email": "wozniakk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "**td** is a non-offensive, per project ToDo manager.\n\nHeavily inspired by [devtodo][devtodo], but with some nasty features, like:\n\n* Shorter commands for most used actions.\n* Sorting/Filtering specific levels only.\n* Persistent sort/filter/view options.\n* Written in pure Python (it even has docstrings).\n* Tests ([![Build Status](https://travis-ci.org/KenjiTakahashi/td.png?branch=master)](https://travis-ci.org/KenjiTakahashi/td) [![Coverage](https://coveralls.io/repos/KenjiTakahashi/td/badge.png?branch=master)](https://coveralls.io/r/KenjiTakahashi/td)).\n\nOh, and it will automagically pick up your existing [devtodo][devtodo] lists!\n\n## screenshot\n![screenshot](https://copy.com/GYCQMKw3CF8h)\n\n## requirements\n* python3\n* distribute (for setup)\n* nosetests (for test-suite)\n\n## installation\n\nThrough [PyPI][pypi]\n```sh\n$ pip install td\n```\nor from sources\n```sh\n$ python setup.py install\n```\n\n## usage\n\n#### show\nTo show your complete ToDo list, just run **td** without any parameters.\n```sh\n$ td\n```\n\n#### add\nTyping\n```sh\n$ td a(dd) []\n```\nwill start an interactive item adding session.\n\nOptional *parent_index* parameter specifies item, under which the new one will be nested.\n\nInstead of using interactive session, one can also specify them in command line, like below.\n```sh\n$ td a(dd) [] -- \n$ td a(dd) [] - \n```\n\n#### edit\nTyping\n```sh\n$ td e(dit) \n```\nwhere *index* is an item's index, will start an interactive item editing session.\n\nSimilarly to **a(dd)**, one can also specify new values in command line.\n```sh\n$ td e(dit) -- \n$ td e(dit) - \n```\nOne special cause here is reparenting, done like below.\n```sh\n$ td e(dit) --parent \n```\n\n#### remove\nTyping\n```sh\n$ td r(emove) \n```\nwill remove item under *index*.\n\n#### done/undone\nTyping\n```sh\n$ td d(one) \n```\nwill mark item under *index* as done, while typing\n```sh\n$ td D \n$ td undone \n```\nwill mark it as not done.\n\n#### modify\nPerforms a one time modification of the list and saves it to disk.\n\n**sort**\n\nUsed to sort items on the list.\n\nGeneral syntax is\n```sh\n$ td (v|m|o) -s [+|-]{,}[[]{:}[](+|-)]\n$ td (v|m|o) --sort [+|-]{,}[[]{:}[](+|-)]\n```\nbut it looks cryptic, so lets split it into some more specific use cases.\n\nTo sort everything ascending by name, type\n```sh\n$ td (v|m|o) -s\n$ td (v|m|o) -s +\n```\nTo sort everything descending by name, type\n```sh\n$ td (v|m|o) -s -\n```\nTo sort specific level by name, type (as before, + goes for ascending and - for descending)\n```sh\n$ td (v|m|o) -s (+|-)\n```\nTo sort everything by a field other than name, type\n```sh\n$ td (v|m|o) -s (+|-)\n```\nTo sort specific level by a field other than name, type\n```sh\n$ td (v|m|o) -s :(+|-)\n```\nAnd to specify muliple rules, use a comma (`,`). For example this\n```sh\n$ td (v|m|o) -s +,1-,2:priority+\n```\nwill sort items at the second level ascending by priority, item at the first level descending by name, and all other levels ascending by name.\n\nNote that to sort by multiple conditions, just supply them one by one and they'll be applied in order of appearance.\n\n**purge**\n\nTyping\n```sh\n$ td (v|m|o) -p\n$ td (v|m|o) --purge\n```\nwill remove all completed items.\n\n**done/undone**\n\nUsed to batch mark items as done or not.\n\nGeneral syntax is\n```sh\n$ td (v|m|o) -d [[]{:}[[=]]]\n$ td (v|m|o) --done [[]{:}[[=]]]\n```\n```sh\n$ td (v|m|o) -D [[]{:}[[=]]]\n$ td (v|m|o) --undone [[]{:}[[=]]]\n```\nAs with **sort**, we'll split it into use cases.\n\nTo mark all items, type\n```sh\n$ td (v|m|o) -(d|D)\n```\nTo mark all items at specific level, type\n```sh\n$ td (v|m|o) -(d|D) \n```\nTo mark items matching regexp at *any* field and level, type\n```sh\n$ td (v|m|o) -(d|D) \n```\nTo mark items matching regexp at *specific* field and *any* level, type\n```sh\n$ td (v|m|o) -(d|D) =\n```\nTo mark items matching regexp at *any* field and *specific* level, type\n```sh\n$ td (v|m|o) -(d|D) :\n```\nTo mark items matching regexp at *specific* field and level, type\n```sh\n$ td (v|m|o) -(d|D) :=\n```\nOf course, these rules can also be chained using comma (`,`).\n\n#### view\nAffects how the list is displayed on the screen. It does not modify the list physically and only takes effect for one run, all settings are then gone.\n\nShares the interface of `modify` command, with following additions.\n\n**nocolor**\n\nDisables any possible color codes, i.e. prints pure textual data. Might be useful for storing and/or reusing the output.\n\n```sh\n$ td v --no-color\n```\n\n#### options\nDescribes persistent options, which will be applied every next time **td** is run.\n\nShares the interface of `modify` command, with following additions.\n\n**global**\nStores options globally (in `~/.tdrc`), which means that they will be applied to all lists.\n\n**Note:** Local options take precedence over global ones.\n\n```sh\n$ td o -g \n$ td o --global \n```\n\n[devtodo]: http://swapoff.org/devtodo1.html\n[pypi]: https://pypi.python.org/pypi/td", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/KenjiTakahashi/td", "keywords": null, "license": "GPL3", "maintainer": null, "maintainer_email": null, "name": "td", "package_url": "https://pypi.org/project/td/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/td/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/KenjiTakahashi/td" }, "release_url": "https://pypi.org/project/td/0.4/", "requires_dist": null, "requires_python": null, "summary": "A non-offensive, per project ToDo manager.", "version": "0.4" }, "last_serial": 1176667, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7bc55f32e9f470b0bbc50ee5f4e86b5c", "sha256": "c2dd0efbcd5b7a2032f7ab84f759dcef5378c28624b51cbd0ce681446135f100" }, "downloads": -1, "filename": "td-0.1.tar.gz", "has_sig": false, "md5_digest": "7bc55f32e9f470b0bbc50ee5f4e86b5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24608, "upload_time": "2013-01-05T20:57:04", "url": "https://files.pythonhosted.org/packages/4a/39/102e766c7917251122ef47e74733e87834b10a6b430cbbc8cf5f60987e1b/td-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "94807f51af85f5aff96d14662f34d829", "sha256": "5896d75079b0e62ead480e7aad22d0647549a428ba74a313893fb6382dbfafcb" }, "downloads": -1, "filename": "td-0.2.tar.gz", "has_sig": false, "md5_digest": "94807f51af85f5aff96d14662f34d829", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25930, "upload_time": "2013-02-22T16:24:24", "url": "https://files.pythonhosted.org/packages/41/2e/b34a1ad63d463dc77914f39597ae72edd34d198a9acd6862ba266268e49c/td-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "008e1d3465fe4c997659847bf4b74184", "sha256": "7d2a98a96ef172cbf1d59eacc49aada34513d6cf0ac3ab4afbff62019bfc6213" }, "downloads": -1, "filename": "td-0.2.1.tar.gz", "has_sig": false, "md5_digest": "008e1d3465fe4c997659847bf4b74184", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25957, "upload_time": "2013-04-12T08:24:23", "url": "https://files.pythonhosted.org/packages/80/09/b99628a5a0b9f2c0aab16ed51ebd8e4f562e676cbb454921828ede89ba51/td-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "3e055ed0adcae68850f5d70c1ea4b194", "sha256": "b85524aa42fbccc465a949f6cd1a91d9085afda609b0733e94ad035d2ce92d91" }, "downloads": -1, "filename": "td-0.3.tar.gz", "has_sig": false, "md5_digest": "3e055ed0adcae68850f5d70c1ea4b194", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27749, "upload_time": "2013-07-19T22:42:41", "url": "https://files.pythonhosted.org/packages/02/d9/ed20ecbd233082da1782731854c15d80cc9161f3b097fd44ff233d11453a/td-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "f9f2722f38c03ff608bb1263a500f406", "sha256": "e3d032d88c401b7c9d25777245df4e1e29e75af938949ee0dad6c2be38787246" }, "downloads": -1, "filename": "td-0.4.tar.gz", "has_sig": false, "md5_digest": "f9f2722f38c03ff608bb1263a500f406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27968, "upload_time": "2014-07-19T12:52:14", "url": "https://files.pythonhosted.org/packages/7e/8b/1f1b95907bb86da3c95b0f14e8847de3b87228909fd62d151110686a4f78/td-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f9f2722f38c03ff608bb1263a500f406", "sha256": "e3d032d88c401b7c9d25777245df4e1e29e75af938949ee0dad6c2be38787246" }, "downloads": -1, "filename": "td-0.4.tar.gz", "has_sig": false, "md5_digest": "f9f2722f38c03ff608bb1263a500f406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27968, "upload_time": "2014-07-19T12:52:14", "url": "https://files.pythonhosted.org/packages/7e/8b/1f1b95907bb86da3c95b0f14e8847de3b87228909fd62d151110686a4f78/td-0.4.tar.gz" } ] }