{ "info": { "author": "Miguel \u00c1ngel Garc\u00eda", "author_email": "miguelangel.garcia@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Documentation", "Topic :: Software Development :: Testing" ], "description": "==================== =================================================================================\nTests |travis| |coveralls|\n-------------------- ---------------------------------------------------------------------------------\nDownloads |pip dm| |pip dw| |pip dd|\n-------------------- ---------------------------------------------------------------------------------\nAbout |pip license| |pip wheel| |pip pyversions| |pip implem|\n-------------------- ---------------------------------------------------------------------------------\nStatus |version| |status|\n==================== =================================================================================\n\nAbout\n=====\n\nInspired by Concordion_, and a little bit by Fitnesse_ and RobotFramework_, LiveDoc_ is a way to maintain documentation live.\n\nThe idea is to use documentation as test, so documentation is tested as well. This way you will be sure it is always updated and you can show beautiful reports to the Product Owners.\n\nPrinciples\n----------\n\n- Should be simple, so `eval` will be used to process the embedded code.\n- Should be easy to be used, by supporting Markdown_ to avoid hard HTML.\n- Should be extensible, by allowing custom fixtures, like Concordion_ does.\n- Should be powerful, by providing tools to simplify the work, just like RobotFramework_ libraries do.\n\nComparative\n-----------\n\n==================================== ========== ======== ============== =======\nFeature Concordion Fitnesse RobotFramework LiveDoc\n==================================== ========== ======== ============== =======\nMarkdown support Yes No No Yes\nCustomizable output No No No Yes\nXunit integration Yes Yes Yes No\nXunit results Yes Yes Yes Yes\nREST test facilities No No Yes Planed\nTables to write examples Yes Yes Yes Yes\nFixtures language Java Many Python or Java Python\nHTML generators integration No No No Yes\nDifferent kind of tables No Yes No Planed\nGenerates test code No No No Planed\n==================================== ========== ======== ============== =======\n\nHow does it work?\n=================\n\nLiveDoc_ parses the generated HTML, searching some special code. You can generate that code anyway you want.\n\nIn order to write Markdown_ easily, I've chosen the Concordion_ way: by adding links to ``-`` with code in the ``title`` attribute. Example:\n\n 5\n\nThis will show the value, ``5`` as usual HTML text, but will assign the text to the variable ``a``. Now you can operate with it:\n\n 5\n\nAnd check the result:\n\n 10\n\nOr just show it (LiveDoc_ will show anything assigned to ``OUT`` variable):\n\n \n\nAnd you can add text in between:\n\n By setting the value of 5 and adding 5 more, it will return 10.\n\nBut this is hard to be written and read, so it can be simplified by using Markdown_:\n\n By setting the value of [5](- \"a = TEXT\") and adding [5](- \"a += TEXT\") more, it will return [10](- \"a == TEXT)\".\n\nAdditionally, it is possible to set the test name just assigning the name to `TESTNAME` variable, grouping any following comparision as an assert to that test:\n\n If TESTNAME is set to the [test name](- \"TESTNAME = TEXT\"), then any comparison will be added to that test.\n\nBy default, any title (`h1`, `h2`, ...) is set as the test name.\n\nRemember that to make it even easier, **any comparision is an assertion**.\n\n\nRoadmap\n=======\n\n- **0.5.0**: advanced fixtures\n\nFAQ\n===\n\nDoes LiveDoc support python 2?\n------------------------------\n\nNo. Python 2 is deprecated and will be retired on 2020, so please, move on to Python 3.\n\n\n.. |travis| image:: https://img.shields.io/travis/magmax/livedoc/master.svg\n :target: `Travis`_\n :alt: Travis results\n\n.. |coveralls| image:: https://img.shields.io/coveralls/magmax/livedoc.svg\n :target: `Coveralls`_\n :alt: Coveralls results_\n\n.. |pip version| image:: https://img.shields.io/pypi/v/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Latest PyPI version\n\n.. |pip dm| image:: https://img.shields.io/pypi/dm/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Last month downloads from pypi\n\n.. |pip dw| image:: https://img.shields.io/pypi/dw/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Last week downloads from pypi\n\n.. |pip dd| image:: https://img.shields.io/pypi/dd/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Yesterday downloads from pypi\n\n.. |pip license| image:: https://img.shields.io/pypi/l/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: License\n\n.. |pip wheel| image:: https://img.shields.io/pypi/wheel/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Wheel\n\n.. |pip pyversions| image:: \thttps://img.shields.io/pypi/pyversions/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Python versions\n\n.. |pip implem| image:: \thttps://img.shields.io/pypi/implementation/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Python interpreters\n\n.. |status| image::\thttps://img.shields.io/pypi/status/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Status\n\n.. |version| image:: https://img.shields.io/pypi/v/livedoc.svg\n :target: https://pypi.python.org/pypi/livedoc\n :alt: Status\n\n\n\n.. _Travis: https://travis-ci.org/magmax/livedoc\n.. _Coveralls: https://coveralls.io/r/magmax/livedoc\n\n.. _@magmax9: https://twitter.com/magmax9\n.. _Concordion: http://concordion.org\n.. _LiveDoc: https://github.com/magmax/livedoc\n.. _Fitnesse: http://fitnesse.org/\n.. _RobotFramework: http://robotframework.org/\n.. _Markdown: https://daringfireball.net/projects/markdown/", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/magmax/livedoc", "keywords": "livedoc documentation specification concordion", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "livedoc", "package_url": "https://pypi.org/project/livedoc/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/livedoc/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/magmax/livedoc" }, "release_url": "https://pypi.org/project/livedoc/0.3.4/", "requires_dist": null, "requires_python": null, "summary": "Transforms tests in documentation, and viceversa", "version": "0.3.4" }, "last_serial": 2215975, "releases": { "0.0.0": [ { "comment_text": "built for Linux-4.5.2-1-ARCH-x86_64-with-glibc2.3.4", "digests": { "md5": "3a70c2fba0c0e6039944e160d6b5a0a2", "sha256": "df0d0aa2d6206698d044c4c29a3e8bca14c194cf33ab637df86900452945d94b" }, "downloads": -1, "filename": "livedoc-0.0.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "3a70c2fba0c0e6039944e160d6b5a0a2", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 6338, "upload_time": "2016-05-23T21:37:49", "url": "https://files.pythonhosted.org/packages/d1/0c/db07f13aeadb7341d032ef93e468f32b57ef02f809c2a31fae7f004957ea/livedoc-0.0.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "da9b8ea8bb9f30e958c9037472580d0a", "sha256": "08aa001585dea5568e78097d7f70bf4ebae5f6d74f21a8d5f85740a5ba01b163" }, "downloads": -1, "filename": "livedoc-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "da9b8ea8bb9f30e958c9037472580d0a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5080, "upload_time": "2016-05-23T21:37:59", "url": "https://files.pythonhosted.org/packages/e9/da/647224c0f1ab0dc288a68857d93708f4f4add39fb777906eab2dadc6ef5c/livedoc-0.0.0-py3-none-any.whl" } ], "0.0.1": [ { "comment_text": "built for Linux-4.5.4-1-ARCH-x86_64-with-glibc2.3.4", "digests": { "md5": "a70e406806287e433187ec969c32bbf3", "sha256": "8914dd3b2bdec50a7cba9a0919cdb65f5a695d9fe00611a83a68ce5ddc95cb7e" }, "downloads": -1, "filename": "livedoc-0.0.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "a70e406806287e433187ec969c32bbf3", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 8438, "upload_time": "2016-06-02T01:57:09", "url": "https://files.pythonhosted.org/packages/f9/e3/f9112a0e7672f8796241076274f3c8c342bcb3297a9a2b425f55df3b4796/livedoc-0.0.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "16a958c816f172e4e6481444c0e5d132", "sha256": "97bac39966ce9e6639ec469c1ff2f4c99ecb9500aa1e077a7cf09bd9a1c4e6ea" }, "downloads": -1, "filename": "livedoc-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "16a958c816f172e4e6481444c0e5d132", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8499, "upload_time": "2016-06-02T01:57:14", "url": "https://files.pythonhosted.org/packages/cc/6c/26bdda09c814642bb5b83d509729a5dabda9bef4270554b714544e1a4abc/livedoc-0.0.1-py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "built for Linux-4.5.4-1-ARCH-x86_64-with-glibc2.3.4", "digests": { "md5": "5c796d9c8d0af47f15a28514287552f5", "sha256": "c629d8c53604d369ab921a78b5be4b7ff94d7daf06c896e004b7c3a86c3ecd49" }, "downloads": -1, "filename": "livedoc-0.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "5c796d9c8d0af47f15a28514287552f5", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 12169, "upload_time": "2016-06-06T08:09:18", "url": "https://files.pythonhosted.org/packages/33/78/a84d0c0987b6a3964128cf08bca9e2d7aaf43f36b6e8cbe996140c4e5d38/livedoc-0.1.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "a91b6cb2e5a9b221d3e8f7d67e0e2982", "sha256": "24ed676cf3079b89e008a56ae6c777c746ce6b5ba70f0ffa21492a5921f724fb" }, "downloads": -1, "filename": "livedoc-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a91b6cb2e5a9b221d3e8f7d67e0e2982", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9733, "upload_time": "2016-06-06T08:09:27", "url": "https://files.pythonhosted.org/packages/cf/29/611391fa57f2e8441b0f1441c2b1ca2d5bb236889132aea18216933e8612/livedoc-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4a92b18184839a31bf2fd5add595757", "sha256": "23a7fe0d9346be67c4a2f1e0dcc5f48692f394b700c32514f5b171b6324b62e2" }, "downloads": -1, "filename": "livedoc-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d4a92b18184839a31bf2fd5add595757", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7083, "upload_time": "2016-06-06T08:09:22", "url": "https://files.pythonhosted.org/packages/23/78/9746d09818fd9cc11cca231079504c66c2e7ebd6b45e29b9362aa117317c/livedoc-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "built for Linux-4.5.4-1-ARCH-x86_64-with-glibc2.3.4", "digests": { "md5": "9408f24b018ef4fb7cf7c0721ab41124", "sha256": "2514dc375cfaca887d36baa7b0b27ed4a84131ebcb1c2c89844a4f31e923e103" }, "downloads": -1, "filename": "livedoc-0.2.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "9408f24b018ef4fb7cf7c0721ab41124", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 12312, "upload_time": "2016-06-07T07:26:19", "url": "https://files.pythonhosted.org/packages/e4/f8/5afd553f42f2da1f4582fbe636f5ea916f23017629fe7f3526a482f63e8d/livedoc-0.2.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "222fe1ab987d95d473db024496b85513", "sha256": "dbf0d1d1ccb4496fc4dd7dd7a9e766a55e8bddb74f1d8c213cd65eebf5992a32" }, "downloads": -1, "filename": "livedoc-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "222fe1ab987d95d473db024496b85513", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9797, "upload_time": "2016-06-07T07:26:44", "url": "https://files.pythonhosted.org/packages/c5/95/96b097b3e7eb11e449170307fe9ccdd32777fa35c7ddb5e2df63d261901d/livedoc-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98cfc9e24031e00eed2fa7988e72e3de", "sha256": "6e3e49ce7568f7ebaefec1cd2832e304a26c9dfd2fcc66199d8cff8476b28163" }, "downloads": -1, "filename": "livedoc-0.2.0.tar.gz", "has_sig": false, "md5_digest": "98cfc9e24031e00eed2fa7988e72e3de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7147, "upload_time": "2016-06-07T07:26:32", "url": "https://files.pythonhosted.org/packages/d9/8b/afbdc5b28c5edb7f59e1502cb22162141e546c5049640528bd51e2bacbfa/livedoc-0.2.0.tar.gz" } ], "0.3.0": [], "0.3.1": [ { "comment_text": "", "digests": { "md5": "554040e2b672ccd702dd5b5be3f2ab89", "sha256": "8cee62af9eebe2240592d81b1c1f88c0b030fc7079bb47ad6ff3bd8d4763bad5" }, "downloads": -1, "filename": "livedoc-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "554040e2b672ccd702dd5b5be3f2ab89", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9820, "upload_time": "2016-06-14T02:33:06", "url": "https://files.pythonhosted.org/packages/88/4a/c93eee9c7b79eed70bc6dbe9110a8bd5777b2c5f1c1a3ab585af7c28edd3/livedoc-0.3.1-py3-none-any.whl" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "c76344f42668ec23f1cf69f52f2b9ef6", "sha256": "3e9bf87a349365e046ae080cc7cd79ae5c22690f502491f64aca42282e624b7b" }, "downloads": -1, "filename": "livedoc-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c76344f42668ec23f1cf69f52f2b9ef6", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9819, "upload_time": "2016-06-14T02:38:53", "url": "https://files.pythonhosted.org/packages/91/0c/20c7201bdd9a2897dce3a3c7073606692c478c9c2dc216b8eb3a760df598/livedoc-0.3.2-py3-none-any.whl" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "0683db2e94100065b42912fddc3cc773", "sha256": "6cb1657c29ae99209c19dceafef3c81840d47abea9a675e17078531cc8772bca" }, "downloads": -1, "filename": "livedoc-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0683db2e94100065b42912fddc3cc773", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 12834, "upload_time": "2016-06-19T07:23:14", "url": "https://files.pythonhosted.org/packages/02/26/27c309d61bd2eff2c94c1c417a9e0d941ab0fefc6d889363fe45acbca291/livedoc-0.3.3-py3-none-any.whl" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "61bb3a241ca58c9a891bb8b789f25726", "sha256": "b60fb2a99827f478466f276ae8d88ec287f0831283a2332a0d1713427448a311" }, "downloads": -1, "filename": "livedoc-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "61bb3a241ca58c9a891bb8b789f25726", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 13884, "upload_time": "2016-07-12T05:33:59", "url": "https://files.pythonhosted.org/packages/8a/ae/759d6f172568372904461b00ce6ae58c8d8b1c9f9354afe1ec39ff69ef12/livedoc-0.3.4-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "61bb3a241ca58c9a891bb8b789f25726", "sha256": "b60fb2a99827f478466f276ae8d88ec287f0831283a2332a0d1713427448a311" }, "downloads": -1, "filename": "livedoc-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "61bb3a241ca58c9a891bb8b789f25726", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 13884, "upload_time": "2016-07-12T05:33:59", "url": "https://files.pythonhosted.org/packages/8a/ae/759d6f172568372904461b00ce6ae58c8d8b1c9f9354afe1ec39ff69ef12/livedoc-0.3.4-py3-none-any.whl" } ] }