{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "\n\n[![](https://img.shields.io/pypi/pyversions/task.svg?longCache=True)](https://pypi.org/project/task/)\n\n#### Installation\n```bash\n$ [sudo] pip install task\n```\n\n#### Benefits\n+ **no manual edit**. only classes and scripts!\n+ **dynamic tasks state**\n+ **standalone django models usage**\n\n#### How it works\n```bash\nsite-packages/task_.py\n```\n\n`task_.py`\n```python\nfrom task.classes import Task\n\nclass Name(Task):\n def todo(self):\n return True if ... else False\n```\n\n#### Config\n`TASK_SETTINGS_MODULE` or `DJANGO_SETTINGS_MODULE`, default is `task.settings`\n\n`task.settings` `DATABASE` variables:\n\nvariable|environment value|default value\n-|-|-\n`ENGINE`|`TASK_ENGINE`|`django.db.backends.postgresql_psycopg2`\n`NAME`|`TASK_DBNAME`|`tasks`\n`USER`|`TASK_USERNAME`|`$USER`\n`PASSWORD`|`TASK_PASSWORD`|`''`\n`HOST`|`TASK_HOST`|`localhost`\n`PORT`|`TASK_PORT`|`5432`\n\nor use custom `TASK_SETTINGS_MODULE`/`DJANGO_SETTINGS_MODULE` module:\n\n```bash\nexport TASK_SETTINGS_MODULE=\"task_settings\" # site-packages/task_settings.py\n```\n\n#### Models\nmodel|`__doc__`\n-|-\n`task.models.Category` |fields: `name`, `disabled`, `parent` (optional). methods: `getclass()`\n`task.models.Task` |fields: `module_name`, `class_name`, `name`, `slug`, `todo`, `disabled`, `completed_at`, `reminded_at`, `category` (optional). methods: `getclass()`. properties: `elapsed`\n\n#### Classes\nclass|`__doc__`\n-|-\n`task.classes.Task` |base class for a Task model. attrs: `name`, `category`, `description`, `disabled`. methods: `complete()`, `update()`. properties: `completed_at`. not implemented: `todo()`, ...\n\n#### Functions\nfunction|`__doc__`\n-|-\n`task.getmodules()` |return a list of `task_*` module objects\n`task.classes.scan()` |scan site-packages and sync Task classes\n`task.classes.update()` |update all tasks\n\n#### Executable modules\nusage|`__doc__`\n-|-\n`python -m task.complete value` |complete task by id/name/class_name\n`python -m task.scan` |scan site-packages and sync task classes\n`python -m task.update` |create/update all tasks\n\n#### Examples\n```python\nimport task.setup\nfrom task.classes import Task\n\nclass Stand_up(Task):\n def todo(self):\n return not self.elapsed or self.elapsed >= 30*60\n```\n\n```bash\n$ python -m task.scan\n$ python -m task.update\n```\n\n#### What's Next?\ncreate services (cron, launchd, etc) with notifications, Desktop widgets, applications, web interface\n\n

\n django-readme-generator\n

", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/looking-for-a-job/task.py", "keywords": "task todo", "license": "", "maintainer": "", "maintainer_email": "", "name": "task", "package_url": "https://pypi.org/project/task/", "platform": "", "project_url": "https://pypi.org/project/task/", "project_urls": { "Homepage": "https://github.com/looking-for-a-job/task.py" }, "release_url": "https://pypi.org/project/task/2019.6.11/", "requires_dist": null, "requires_python": "", "summary": "ask management based on python classes and django models", "version": "2019.6.11" }, "last_serial": 5587271, "releases": { "2019.3.23": [ { "comment_text": "", "digests": { "md5": "b24f225fcd1ffb99a7dd9544a993b600", "sha256": "04f1606ce7af478a794d8213e641b953b57b700f8e90ce444d1c161bcfb8a713" }, "downloads": -1, "filename": "task-2019.3.23-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b24f225fcd1ffb99a7dd9544a993b600", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 176377, "upload_time": "2019-03-24T11:24:04", "url": "https://files.pythonhosted.org/packages/18/91/2d96abdf8fa6104625638b3ef5318cf4096f3dc7e7e3bbd7ef6efa78fbb6/task-2019.3.23-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ab9c542db9a7a600e6c5d2781764e79", "sha256": "27a0c32b456e195e1d7a3fef4704550f5dc8c27e62a5f4280bd7b719fb4ab283" }, "downloads": -1, "filename": "task-2019.3.23.tar.gz", "has_sig": false, "md5_digest": "7ab9c542db9a7a600e6c5d2781764e79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4069, "upload_time": "2019-03-24T11:24:06", "url": "https://files.pythonhosted.org/packages/45/c1/bd89c4af4cd26d0878a5f90200374aacd036a30f834532966836f43a4bf7/task-2019.3.23.tar.gz" } ], "2019.3.8": [ { "comment_text": "", "digests": { "md5": "08fa86cbb1a0f67a3831aa1e2e5042fd", "sha256": "62edf93998cbc9e3f1896dc9e83a4a6d4928160c2e1ee1a546c39b7847b3cf40" }, "downloads": -1, "filename": "task-2019.3.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08fa86cbb1a0f67a3831aa1e2e5042fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6175, "upload_time": "2019-03-16T12:11:47", "url": "https://files.pythonhosted.org/packages/7f/cb/f5c727c9fd4c72d27c8cf37b621b00cf79ec62a48f4eacc37d7a980e564a/task-2019.3.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3b9e48c2881b2752888fae76ebf08ee", "sha256": "c3ace1cf9331742d9a7e3f2612d66a3b92a4e8dc49b5e2433429c6f61a2976b1" }, "downloads": -1, "filename": "task-2019.3.8.tar.gz", "has_sig": false, "md5_digest": "b3b9e48c2881b2752888fae76ebf08ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3859, "upload_time": "2019-03-16T12:11:48", "url": "https://files.pythonhosted.org/packages/20/a9/5b2f625196e9c1cb530da301c65b68f251f3f33643e000341ea21ff68a51/task-2019.3.8.tar.gz" } ], "2019.4.13": [ { "comment_text": "", "digests": { "md5": "da571427c7d6a00c65e7294b10cae143", "sha256": "2cb2269a991e5873939aaaf2fb827fa2de66cf1b182d61638cb11c6eee33ab5b" }, "downloads": -1, "filename": "task-2019.4.13.tar.gz", "has_sig": false, "md5_digest": "da571427c7d6a00c65e7294b10cae143", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4160, "upload_time": "2019-04-13T08:23:35", "url": "https://files.pythonhosted.org/packages/0c/c2/cb14f6d00c543e5aff169256f44533a022b8b0108abc97cfd69297240b9b/task-2019.4.13.tar.gz" } ], "2019.6.10": [ { "comment_text": "", "digests": { "md5": "50e6e1cba436e3eccdc697d11977546e", "sha256": "07fa627e9acca91415c2580d7c518c680135e31848d36eb6d7e13639d73eefa8" }, "downloads": -1, "filename": "task-2019.6.10.tar.gz", "has_sig": false, "md5_digest": "50e6e1cba436e3eccdc697d11977546e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5227, "upload_time": "2019-06-10T17:18:10", "url": "https://files.pythonhosted.org/packages/bd/0c/61e468ed3d077dabc66e8f832fe5edd0af7e56ea06badf42bcfef95b3772/task-2019.6.10.tar.gz" } ], "2019.6.11": [ { "comment_text": "", "digests": { "md5": "01c8ef3ce59ef49623dcc1bfe08e7606", "sha256": "a925501321ba6123b2e23206293e14e1f5661cc5ff0afbe45e0ae992a43f7a0b" }, "downloads": -1, "filename": "task-2019.6.11.tar.gz", "has_sig": false, "md5_digest": "01c8ef3ce59ef49623dcc1bfe08e7606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5216, "upload_time": "2019-06-10T17:24:18", "url": "https://files.pythonhosted.org/packages/1f/20/9435afd718eab372ad49790457f073d7876ce04b105f19b1a1ab82dade39/task-2019.6.11.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "01c8ef3ce59ef49623dcc1bfe08e7606", "sha256": "a925501321ba6123b2e23206293e14e1f5661cc5ff0afbe45e0ae992a43f7a0b" }, "downloads": -1, "filename": "task-2019.6.11.tar.gz", "has_sig": false, "md5_digest": "01c8ef3ce59ef49623dcc1bfe08e7606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5216, "upload_time": "2019-06-10T17:24:18", "url": "https://files.pythonhosted.org/packages/1f/20/9435afd718eab372ad49790457f073d7876ce04b105f19b1a1ab82dade39/task-2019.6.11.tar.gz" } ] }