{ "info": { "author": "Felix Bernhardt", "author_email": "felix.bernhardt@mailbox.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "Prototag\n========\n\n.. image:: https://travis-ci.org/flxbe/prototag.svg?branch=master\n :target: https://travis-ci.org/flxbe/prototag\n\nA simple CLI tool to filter and list ``.md`` files based on comment headers.\n\nMotivation\n----------\n\nAfter testing multiple sophisticated tools to document small ideas or meetups,\nI found plain ``.md`` files and a flat directory structure to work best\nfor me. I have built this tool to help me search these protocols in the\nterminal.\n\nThe cli tool ``ptag`` scans a given directory for ``.md`` files and tries to\nextract a block comment at the start. If this comment includes valid ``yaml``,\nthe file is considered valid. One can specify selectors to further filter all\nvalid files. The list of results is then printed to stdout.\n\nInstallation\n------------\n\n.. code-block:: bash\n\n pip install prototag\n\nSynopsis\n--------\n\nUsage: ``ptag [options] []``\n\n-h, --help \n Show help.\n-v, --version \n Show version.\n-t , --tag \n Filter the files by tags by specifying a selector.\n-a , --author \n Filter the files by their author by specifying a selector.\n\nOne can use logical AND and OR conditions to filter the found files with\nvalid headers. AND terms are combined using ',' and OR terms are\ncombined using ':'. OR terms are evaluated before AND terms. The OR\nconditions are not exclusive.\n\nSelect all files, that have both tag1 and tag2.\n\n.. code-block:: bash\n\n ptag -t tag1,tag2\n\nSelect all files, that have at least one of both tags.\n\n.. code-block:: bash\n\n ptag -t tag1:tag2\n \nSelect all files, that have either tag1 and tag2 or tag3 or both.\n\n.. code-block:: bash\n\n ptag -t tag1,tag2:tag3\n\nExample\n-------\n\nConsider the file ``~/protocols/example.md``:\n\n.. code-block:: md\n\n \n\n # Heading\n\n Some text.\n\nOne can filter the ``~/protocols`` directory using the cli tool ``ptag``. The\nfollowing command would return the filename of the above created file.\n\n.. code-block:: bash\n\n ptag -t idea,python -a jan ~/protocols\n\nThe directory is optional and defaults to the current working directory. This\nis therefore equivalent to\n\n.. code-block:: bash\n\n cd ~/protocols\n ptag -t idea,python -a jan\n\n\nChangelog\n=========\n\n0.1.3 (2017-12-26)\n------------------\n- Support Python ``2.7``.\n\n0.1.2 (2017-12-23)\n------------------\n- Extract cli to ``prototag/cli.py``.\n\n0.1.1 (2017-12-23)\n------------------\n- Add ``CHANGELOG.rst``.\n- Update ``README.rst``.\n\n0.1.0 (2017-12-22)\n------------------\n- Initial release.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/flxbe/prototag", "keywords": "cli", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "prototag", "package_url": "https://pypi.org/project/prototag/", "platform": "", "project_url": "https://pypi.org/project/prototag/", "project_urls": { "Homepage": "https://github.com/flxbe/prototag" }, "release_url": "https://pypi.org/project/prototag/0.1.3/", "requires_dist": null, "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "summary": "A small cli tool to filter plain text files by header tags.", "version": "0.1.3" }, "last_serial": 3443105, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "02f3d09ca899f6b0d0f5e9e3564fdbfb", "sha256": "b0d74e2993a3b96787e84d2aa5085b47c252e9d2e2566a56873504eb67090d54" }, "downloads": -1, "filename": "prototag-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "02f3d09ca899f6b0d0f5e9e3564fdbfb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3", "size": 10042, "upload_time": "2017-12-22T15:48:16", "url": "https://files.pythonhosted.org/packages/b0/1e/4a2a97e578d476121a7cf692469e30fd4311a506ae3fb2ad5eaf4a6c2cbb/prototag-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ab4427ad6b3f6043e16f51f325d25cd", "sha256": "e56ac000635bdedbaeda080236d1863145199cf956d340ae9420dbdfe8809140" }, "downloads": -1, "filename": "prototag-0.1.0.tar.gz", "has_sig": true, "md5_digest": "9ab4427ad6b3f6043e16f51f325d25cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7297, "upload_time": "2017-12-22T15:48:08", "url": "https://files.pythonhosted.org/packages/60/56/06b80b4ca6a322b34b7d3cc25732ae5450cde119536d9fffd71d5b0aca4e/prototag-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "76c45bc8ab1a5e6ea575d7f97d2db87b", "sha256": "50fc70f21f91fb7aa013f4bd68e929c849fb580fcfcd5a57cd377619c1ed45f7" }, "downloads": -1, "filename": "prototag-0.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "76c45bc8ab1a5e6ea575d7f97d2db87b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3", "size": 7522, "upload_time": "2017-12-23T09:25:38", "url": "https://files.pythonhosted.org/packages/ac/d7/ce8caea4c8825cb9b5a23a898517241c27663f9c041826da5ebdcb4641fb/prototag-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "940415edd6329330120b8c7966800612", "sha256": "40b71de238f461996917fdfa63ccb33010e994fbd79e8e8264c1615e56c16a9a" }, "downloads": -1, "filename": "prototag-0.1.1.tar.gz", "has_sig": true, "md5_digest": "940415edd6329330120b8c7966800612", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7902, "upload_time": "2017-12-23T09:25:31", "url": "https://files.pythonhosted.org/packages/8f/27/48c1a00095d72c89e0d204fb6981640c9270c3faf933b215827f669b99cf/prototag-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9a8caf253dc03146de9fe8b2d0e0cda9", "sha256": "e89a2dfcd909bf714a099ac65a3efd98363519f31ec8485b9e1161df4d97bb1d" }, "downloads": -1, "filename": "prototag-0.1.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "9a8caf253dc03146de9fe8b2d0e0cda9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 7919, "upload_time": "2017-12-26T11:16:39", "url": "https://files.pythonhosted.org/packages/8b/df/560763a53a98cdfab870b1b1655bddf05d53ef47cceaf13669bcef3e9752/prototag-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec1daa5572ca76e9e90845c2de4a22c6", "sha256": "b8a34773abe2b4c2265f669bea91634e3af02c03b3fbeaf6346f4c630f9f91e1" }, "downloads": -1, "filename": "prototag-0.1.2.tar.gz", "has_sig": true, "md5_digest": "ec1daa5572ca76e9e90845c2de4a22c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 8135, "upload_time": "2017-12-26T11:16:28", "url": "https://files.pythonhosted.org/packages/10/92/60610c7d358f31285d1ade0fdbae84431638f19626f7f749a0b49fadb1e9/prototag-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "0ce0a7c54bae541a26f7a5dd0c1245c3", "sha256": "ff6a69c8c10916863f6b7b2b8b054dcd724d212cb911826406f50f52410ae4b1" }, "downloads": -1, "filename": "prototag-0.1.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "0ce0a7c54bae541a26f7a5dd0c1245c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 7923, "upload_time": "2017-12-26T11:19:34", "url": "https://files.pythonhosted.org/packages/eb/87/d4cb572aa781f7caf17de567a3eab775f98fd19f45d6f8dc465296939f25/prototag-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5149a014656346a2758cdd5f92838613", "sha256": "2acfc072dbb02ed3cec6b1af0713370e4e45e16d85ae6c697f90b08e71320d79" }, "downloads": -1, "filename": "prototag-0.1.3.tar.gz", "has_sig": true, "md5_digest": "5149a014656346a2758cdd5f92838613", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 8138, "upload_time": "2017-12-26T11:19:18", "url": "https://files.pythonhosted.org/packages/d9/2b/8d84d93c3e4820196856b3beef9ddbfc3c13031964a5df1793d5736ec44a/prototag-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0ce0a7c54bae541a26f7a5dd0c1245c3", "sha256": "ff6a69c8c10916863f6b7b2b8b054dcd724d212cb911826406f50f52410ae4b1" }, "downloads": -1, "filename": "prototag-0.1.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "0ce0a7c54bae541a26f7a5dd0c1245c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 7923, "upload_time": "2017-12-26T11:19:34", "url": "https://files.pythonhosted.org/packages/eb/87/d4cb572aa781f7caf17de567a3eab775f98fd19f45d6f8dc465296939f25/prototag-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5149a014656346a2758cdd5f92838613", "sha256": "2acfc072dbb02ed3cec6b1af0713370e4e45e16d85ae6c697f90b08e71320d79" }, "downloads": -1, "filename": "prototag-0.1.3.tar.gz", "has_sig": true, "md5_digest": "5149a014656346a2758cdd5f92838613", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 8138, "upload_time": "2017-12-26T11:19:18", "url": "https://files.pythonhosted.org/packages/d9/2b/8d84d93c3e4820196856b3beef9ddbfc3c13031964a5df1793d5736ec44a/prototag-0.1.3.tar.gz" } ] }