{ "info": { "author": "Alexandre Chabot-Leclerc", "author_email": "github@alexchabot.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: iOS", "Operating System :: MacOS :: MacOS X", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "# popthings\n\niOS and command line tool to import a TaskPaper template with placeholders\ninto Things by Cultured Code\n\n## Installation\n\n### On macOS\n\nInstall popthings using pip. Both Python 2 and Python 3 are supported.\n\n```bash\n$ pip install popthings\n```\n\n### On iOS\n\nUse\n[Pythonista](https://itunes.apple.com/us/app/pythonista-3/id1085978097?ls=1&mt=8)\nto execute the script. Download the [`popthings.py`](./popthings.py)\nfile to the \"This iPhone/iPad\" location. The script cannot be on iCloud\nif you want to use the Share Sheet Extension. To add popthings to\nthe Share Extension shortcut, add the `popthings.py` script as\na new shortcut in the Pythonista settings. See the [Pythonista\nDocumentation](http://omz-software.com/pythonista/docs/ios/pythonista.html')\nfor more details.\n\n![Pythonista Edit Shortcut](img/pythonista-edit-shortcut.png)\n\nTo add a button on the Today Widget, use the following entry for the\n`SHORTCUT` variable in the `Examples/Widget/Launcher.py` file:\n\n```python\n{\n 'title': 'PopThings',\n 'url': 'pythonista3://popthings.py?action=run',\n 'color': '#5e96ff',\n 'icon': 'iow:checkmark_24'\n},\n```\n\n## Usage\n\n`popthings` supports placeholder replacement, headers and checklist items.\nDate parsing is done by Things itself, so anything Things supports is also\nsupported here.\n\n- The indentation _must_ be done with Tabs, which is the normal TaskPaper behavior.\n- Placeholders must be defined on the second line of the file. They must have\n a `$` prefix and be space-separated.\n- The `@start` and `@due` tags expect a value and will be used for the \"when\"\n and \"deadline\" attributes of a project or task. All other tags are passed\n through and their values are ignored.\n- A project under a project is a considered a heading. It can't have notes.\n Tasks under it can be indented or not, which is more flexible than the\n TaskPaper format.\n- A task under a task is a checklist item.\n\nHere is a packing list template with 3 placeholders:\n\n```taskpaper\nPrepare luggage for trip to $destination: @start($start)\n $start $due $destination\n Before leaving:\n - Find good place for dinner @research\n Don't forget to check NYT's \"36 hours in ...\"\n Packing:\n - Passport @due($due)\n - Clothes @due($due)\n - Pants\n - T-shirts\n Last minute: @due($due)\n - Set thermostat to travel mode @due($due) @home\n - Water plants @due($due) @home\n```\n\nTo import the template on the Mac, pass the TaskPaper filename to the\n`popthings` executable. If there are any placeholders, you'll be prompted for\ntheir value.\n\n```bash\n$ popthings templatex-travel.taskpaper\nStart value? 2018-09-01\nDue value? 2018-09-10\nDestination value? Paris\n```\n\nHere's the result of parsing the template above.\n\n![Parsed template in Things](./img/templatex-travel-things.png)\n\nOn iOS, you can use popthings via:\n\n- **The Share Sheet** to share the content of a TaskPaper document from any\n application.\n- **From Pythonista or from the Today Widget** where you'll be prompted to\n pick a file using the File picker.\n\nIn both cases, Pythonista will prompt you for the placeholder values if there\nare any.\n\n![](img/ipad-run-from-pythonista.gif)\n\n\n## Known limitations\n\n- The TaskPaper file must start with a project.\n- If a header has a comment, the previous task or project is going to end up\n with that comment.\n\n\n## Making a Release\n\n1. Bump the version in `popthings.py`\n2. Update the changelog, link the versions.\n3. Commit and tag with version number\n4. Build a source dist with `python setup.py clean && rm dist/* && python setup.py sdist`\n5. Test upload to PyPI test with `twine upload --repository-url https://test.pypi.org/legacy/ dist/*`\n6. Create a temporary environment `mktmpenv` and test install with `pip install --index-url https://test.pypi.org/simple/ popthings`\n7. If everything looks good, upload for real with `twine upload --repository-url https://test.pypi.org/legacy/ dist/*`\n\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/achabotl/popthings", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "popthings", "package_url": "https://pypi.org/project/popthings/", "platform": "", "project_url": "https://pypi.org/project/popthings/", "project_urls": { "Homepage": "https://github.com/achabotl/popthings" }, "release_url": "https://pypi.org/project/popthings/1.0.1/", "requires_dist": null, "requires_python": "", "summary": "iOS and command line tool to import a TaskPaper template with placeholders into Things by Cultured Code", "version": "1.0.1" }, "last_serial": 4745169, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "80b5287dc95f3c6c3ec027a4e7c67c80", "sha256": "fc19b43db380e4258380c7381ab7b95833b5f506307274655297668a7f677329" }, "downloads": -1, "filename": "popthings-1.0.0.tar.gz", "has_sig": false, "md5_digest": "80b5287dc95f3c6c3ec027a4e7c67c80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9971, "upload_time": "2018-07-08T03:43:34", "url": "https://files.pythonhosted.org/packages/a3/ee/12c97e94e41df2d2fb7bee9c1b2c2023b74bcd082e7c8cb78a9bf6886207/popthings-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "57d830ee65d92ae70881c220fa3d194d", "sha256": "c39fe05b43b95f84a49d58a84ec35acb7aa57bbc412e68c33d65abf41f642d7f" }, "downloads": -1, "filename": "popthings-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "57d830ee65d92ae70881c220fa3d194d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10828, "upload_time": "2019-01-27T04:13:03", "url": "https://files.pythonhosted.org/packages/9f/56/a6b5a83f40c1296acf0557b28dc54e1cffb96c8abfe040b813bfd85ffd41/popthings-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c1a61999fb76aa6bab65946881c7902", "sha256": "d73f29b3797cfd4a245dce1d1f2f49bcf51bcb08501b265b6fc3f5a6313d351e" }, "downloads": -1, "filename": "popthings-1.0.1.tar.gz", "has_sig": false, "md5_digest": "8c1a61999fb76aa6bab65946881c7902", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9549, "upload_time": "2019-01-27T04:13:05", "url": "https://files.pythonhosted.org/packages/61/15/b360270564c10e0cc8063900b769b96ad9dc4fe4abae920bd01a208c304e/popthings-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "57d830ee65d92ae70881c220fa3d194d", "sha256": "c39fe05b43b95f84a49d58a84ec35acb7aa57bbc412e68c33d65abf41f642d7f" }, "downloads": -1, "filename": "popthings-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "57d830ee65d92ae70881c220fa3d194d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10828, "upload_time": "2019-01-27T04:13:03", "url": "https://files.pythonhosted.org/packages/9f/56/a6b5a83f40c1296acf0557b28dc54e1cffb96c8abfe040b813bfd85ffd41/popthings-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c1a61999fb76aa6bab65946881c7902", "sha256": "d73f29b3797cfd4a245dce1d1f2f49bcf51bcb08501b265b6fc3f5a6313d351e" }, "downloads": -1, "filename": "popthings-1.0.1.tar.gz", "has_sig": false, "md5_digest": "8c1a61999fb76aa6bab65946881c7902", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9549, "upload_time": "2019-01-27T04:13:05", "url": "https://files.pythonhosted.org/packages/61/15/b360270564c10e0cc8063900b769b96ad9dc4fe4abae920bd01a208c304e/popthings-1.0.1.tar.gz" } ] }