{ "info": { "author": "William Minchin", "author_email": "w_minchin@hotmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Plugins", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Documentation", "Topic :: Office/Business", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing" ], "description": "prjct\n=====\n\nProject Management for Living Life, v0.6, 2017-11-13\n\n.. note:: Not all features have been implemented yet. I use this day-to-day, but really, it's alpha-level software.\n\nBackground\n----------\n\nI have used todo lists to manage my workload for many years. I have also found\nseveral good programs for managing my todo list, particularly when using a flat\ntext file (*a la* todo.txt) Recently, after hearing many good things about\n*Getting Things Done*, I picked up the book. As I understand it, he recommends\nthat your todo list actually become more of a 'next items' list, derived from\nyour project list. I couldn't find anything particularly suited to this, so I\ndecided to write something myself.\n\nGoal\n----\n\nManage my project list, and from this derive my todo list.\n\nPhilosophy\n----------\n\nA couple of philosophical notes that are built in to this project:\n\n* where possible, data should be stored in text files. Furthermore, these text\n files should be editable on the go with a simple text editor.\n* a 'project' is some end goal that requires more than one action\n* by writing everything that needs done down, I can spend my mental energy on\n projects other than remembering what needs to be done. This only works if it\n is easy, at a glance, to review what I need to do next.\n* if something exists that does the job well, there is no need to rebuild it\n\nProgramming Language\n--------------------\n\nPython 3.5 on Windows.\n\njrnl Integration\n''''''''''''''''\n\n``jrnl`` is a command line program written in Python. It allows notes to be\nwritten in plain text, and has various importers and exporters. The thought is\nto write a note in ``jrnl`` about a project, and include todo items as part of\nthe note. The though was to use the checkbox style used on GitHub.\n\nSo an entry might look like:\n\n.. code-block:: text\n\n [2015-07-20 20:34] Project Update -- July 20\n\n All about my new project...blah, blah, blah.\n\n More about my project.\n\n - [ ] something that needs done\n - [ ] some other todo item\n\n +Project_Name\n\n\nTodo items in an entry would automatically be assigned the creation date of\nthe entry, and any tags on the entry would apply to the todo items in that\nentry.\n\nPelican Integration\n'''''''''''''''''''\n\n*Pelican* integration has been deprciated in favour of Sphinx, which now\nallows *jrnl* content to be written in Markdown, but allows more powerful\ncontrol of the rest of the site presentation.\n\nSphinx Integration\n''''''''''''''''''\n\n*Sphinx* is a static site generator, originally concieved for generating\nPython documentation, written in Python. Currently, entries from\n*jrnl* can be exported to Markdown formatted text files, and these text files\ncan then be fed to *Sphinx* to create a blog using the *ABlog* extension.\n*prjct* can build on this behaviour. For each defined project, a page,\nsimilar to a tag page, will be generated. This page will list the project\noverview, a list of the open todo items, the recently completed items, and then\na list entries tagged with the project name.\n\ntodo.txt Integration\n''''''''''''''''''''\n\nOne of the goals of *prjct* is to allow other todo.txt clients to manage the\ntodo list. To this end, a *todo.txt* and a *done.txt* file will need to be\nmaintained. As well, items that are added directly to the todo list (rather\nthat through a *jrnl* entry) will be directly added to the *todo.txt* file.\n\nWhen run, *prjct* would add new items in *jrnl* entries to the *todo.txt*\nfile, and update completed tasks from the *done.txt* file listed in *jrnl*\nentries.\n\nTo cross-reference todo items in *jrnl* entries and on *todo.txt*, I propose\nadding a 'key' to each item. I haven't decided what format to use for the key.\nOne option is using a UUID (128 bits, base 16, typically 35 characters).\nAnother option is to use\n`base32 crockford `_ which\ncould be variable length, but packs 5 bits per character instead of 4,\ndecreasing key lengths by 25% for keys in the same sample space.\n\nThe advantage of using UUID's is they look like numbers because they have so\nmany digits in them. In either case, we may be by referring to items by a\nshortened version of the identifier, a little like *git* treats commit ID's.\n\nSo a todo item might look like this:\n\n.. code-block:: text\n\n 2015-07-20 Some item that needs doing +my_project due:2016-01-01 t:2015-12-01 prjct:d95ff071-9443-49f0-8f11-b2787649a481\n\n(*due* refers to when the task is due; *t* refers to the \"threshold date\",\ni.e. don't show this task before this date; *prjct* is our added key (in this\ncase, an UUID)).\n\nprjct.txt\n'''''''''\n\nThis is a file listing all projects. Format somewhat based on *todo.txt*. One\nproject per line. Projects with the context *@someday* will not be considered\nwhen the user reviews project, unless he explicitly asks to review them.\n\nPackaged Format\n---------------\n\nIn three stages:\n\n1. Python script installable via *pip*\n2. self-contained Windows exe (still command line)\n3. self-contained Windows exe with GUI (although that GUI was effectively be a website)\n\nLibraries / Supporting Programs\n-------------------------------\n\n* Python\n* `jrnl `_ -- useful to store general notes\n* `topydo `_ -- todo list manager\n* `click `_ -- for managing command line options\n* *todo.txt*\n* `Sphinx `_ -- static site generator\n* `ABlog `_ -- blogging extention to Sphinx\n* `Travis-CI `_ -- for automated testing\n\nData File Structure\n-------------------\n\n.. code-block:: text\n\n .prjct\\\n |- .prjct-config (configuration file)\n |- jrnl.txt (jrnl entries)\n |- todo.txt (todo items)\n |- done.txt (completed todo items)\n |- prjct.txt (list of all projects)\n |- source\\ (used as the Sphinx source files)\n | |- _static (folder for storage of images, etc)\n | |- docs (folder contain documenation for\n | | getting prjct, including\n | | philosopy, started, etc.)\n | |- jrnl (temporary folder holding Markdown\n | | | export of jrnl entries)\n | | |- 2015-07-20_project_entry.md\n | | ` ...\n | |- prjct (temporary folder holding reST\n | | | export of project overviews)\n | | |- my_project_name.rst\n | | ` ...\n | |- conf.py (Sphinx main configuraiton file)\n | `- index.rst (source page for website front\n | page)\n `- build\n `- dirhtml (Exported Sphinx site)\n |- index.html\n ` ...\n\nUsage\n-----\n\n.. code-block:: text\n\n Project Management\n\n Usage:\n prjct [options]\n prjct.py [options]\n prjct usage Displays this screen and exits\n prjct review Review all projects listed in in the prjct.txt\n file to ensure they all have a next item.\n If there is nonext item, you are asked to\n either select one ofthe existing todo\n items, or add a new one\n prjct (ls | list) List all projects in the default prjct.txt\n file\n prjct add Add a project to the list\n prjct rm \n Remove a project from the list\n prjct someday \n Move a project from the default list to the\n someday list\n prjct goal (project number | project name)\n Displays the goal for a given project\n prjct generate Generates a list of project based on your todo\n list\n todo top List top todo items\n todo add Add an item to the todo list\n todo do ... Do item on todo.txt\n todo pri ... \n Changes (or adds) the priority (A-Z) to the\n given todo item(s)\n todo depri ... \n Removes the priority to the given todo item(s)\n todo (ls | list) [filter text]\n Lists all items on the todo list after\n applying the filter\n jrnl [jrnl options] calls the jrnl program; allows entry of goals,\n notes, etc\n prjct report Generates a report listing all projects,\n goals, notes, done todo items, and\n outstanding todo items\n todo context Generates a report, listed all todo items,\n which each context in a separate file\n prjct about Displays a more complete 'version' page,\n including the goals of the project and\n import dates\n prjct changes Displays the changelog\n prjct credits Displays all contributors to the project\n prjct (phil | philosophy)\n Displays some philosophical thoughts on how to\n get the most out of the system\n prjct howto Displays a basic tutorial on how to use the\n program\n\n Options:\n -h --help Dispalys a list of available\n commands, recommends running\n 'usage' for more details, and\n exits\n -v --version Show version, and exit\n --config= Select a configuration file\n --todo= Select a todo.txt file\n --done= Select a done.txt file (completed\n todo items)\n --prjct= Select a prjct.txt file (project\n list)\n --export= Specify the export path\n\nGoals are pulled *jrnl* by filtering for entries tagged with the project name\nand looking for a *Goal* heading.\n\nGetting Things Done -- 7 lists\n------------------------------\n\nIn *Getting Things Done*, he mentions 7 types lists to manage:\n\n* a projects list\n* project support material\n* calendared actions and information\n* a waiting for list\n* reference material\n* a someday/maybe list\n\nThis project aims mainly to maintain the first -- the project list. Some project\nsupport material can to provided using ``jrnl`` (particularly goals), but most\nwill be kept elsewhere. Nothing is a attempted (yet) with either calendared\nitems or the 'tickler' file he mentions in the book. A 'waiting for' list can\nquasi implemented by assigning the tasks in question a (W) priority. Reference\nmaterial is intended to be kept elsewhere. The 'someday/maybe' project list\nis designed, ultimately, to be supported.\n\n.. for Version History, see CHANGELOG.rst\n\n.. toctree::\n :hidden:\n\n prjct Changelog\n *", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MinchinWeb/prjct", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "prjct", "package_url": "https://pypi.org/project/prjct/", "platform": "any", "project_url": "https://pypi.org/project/prjct/", "project_urls": { "Homepage": "https://github.com/MinchinWeb/prjct" }, "release_url": "https://pypi.org/project/prjct/0.6.0/", "requires_dist": null, "requires_python": "", "summary": "Project Management for Living Life", "version": "0.6.0" }, "last_serial": 3330573, "releases": { "0.6.0": [ { "comment_text": "", "digests": { "md5": "dc9d2dc7c7d40aa6b9398462c401aa99", "sha256": "ecddf0c11a07c930466e8ae09f7986cba03ad288074456eb65239f3f13b30d2e" }, "downloads": -1, "filename": "prjct-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc9d2dc7c7d40aa6b9398462c401aa99", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 60333, "upload_time": "2017-11-14T04:04:37", "url": "https://files.pythonhosted.org/packages/d8/5d/156e157642e08d22bfeeb0a8e38f8b0cdb1533109241c8a3140dabd834d8/prjct-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae839cf0a776d34b188ec0c8b3c221e4", "sha256": "dd7f3fadc2c5b5d9d339a4ce2c5f116ea9c2b1cf22da3e3ec5bbdb7e6ecaf095" }, "downloads": -1, "filename": "prjct-0.6.0.tar.gz", "has_sig": false, "md5_digest": "ae839cf0a776d34b188ec0c8b3c221e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47485, "upload_time": "2017-11-14T03:56:27", "url": "https://files.pythonhosted.org/packages/bf/fc/e91b71ad47e319875570224b063b19cb7691fad56ff36362366fc1191e26/prjct-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dc9d2dc7c7d40aa6b9398462c401aa99", "sha256": "ecddf0c11a07c930466e8ae09f7986cba03ad288074456eb65239f3f13b30d2e" }, "downloads": -1, "filename": "prjct-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc9d2dc7c7d40aa6b9398462c401aa99", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 60333, "upload_time": "2017-11-14T04:04:37", "url": "https://files.pythonhosted.org/packages/d8/5d/156e157642e08d22bfeeb0a8e38f8b0cdb1533109241c8a3140dabd834d8/prjct-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae839cf0a776d34b188ec0c8b3c221e4", "sha256": "dd7f3fadc2c5b5d9d339a4ce2c5f116ea9c2b1cf22da3e3ec5bbdb7e6ecaf095" }, "downloads": -1, "filename": "prjct-0.6.0.tar.gz", "has_sig": false, "md5_digest": "ae839cf0a776d34b188ec0c8b3c221e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47485, "upload_time": "2017-11-14T03:56:27", "url": "https://files.pythonhosted.org/packages/bf/fc/e91b71ad47e319875570224b063b19cb7691fad56ff36362366fc1191e26/prjct-0.6.0.tar.gz" } ] }