{ "info": { "author": "Dan Gass", "author_email": "dan.gass@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "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", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Text Processing" ], "description": "#####################################\n[MarryDoc] Easy DocString Maintenance\n#####################################\n\n.. currentmodule:: marrydoc\n\n.. image:: https://readthedocs.org/projects/marrydoc/badge/?version=latest\n :target: https://marrydoc.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\nThe :mod:`marrydoc` Python module makes maintaining consistency of\nrelated Python docstrings easy. :mod:`marrydoc` provides decorators to\n\"wed\" a docstring to another and provides a command line tool to\nautomatically update a module's docstrings when their basis docstrings\nhave changed.\n\nThe decorators offered annotate class, function, and method docstrings to\nidentify if their docstring is to be inherited from, maintained as a copy\nof, or maintained as a modified copy of a docstring of another program\nconstruct.\n\n\n***********\nQuick Start\n***********\n\n@inherit\n========\n\nUse the :func:`inherit()` decorator to dynamically copy a docstring from\none program construct to another when a module is imported. For example:\n\n.. code-block:: python\n\n import marrydoc\n from foo import bar\n\n @marrydoc.inherit(bar)\n def my_bar():\n pass\n\n assert bar.__doc__ == my_bar.__doc__\n\n\n@copied_from\n============\n\nUse the :func:`copied_from` decorator in combination with the command line\ntool to evaluate if one program construct docstring is up to date with\nanother and automatically update the script if they are unequal. For\nexample:\n\n.. code-block:: python\n\n import marrydoc\n from foo import bar\n\n @marrydoc.copied_from(bar)\n def my_bar():\n \"\"\"Perform foo bar.\"\"\"\n pass\n\n\nThen use the command line tool to evaluate if the source docstring has\nchanged and automatically update if so:\n\n.. code-block:: shell\n\n $ python -m marrydoc --merge my_foo.py\n my_foo.py ... OK\n\n\n@based_on\n=========\n\nUse the :func:`based_on` decorator instead of :func:`copied_from`\nwhen the docstring is a copy but has been modified. Pass an unmodified\ncopy of the source docstring as the second argument to :func:`based_on`\n(to facilitate source docstring change detection and provide a basis of\na three way merge). For example:\n\n.. code-block:: python\n\n import marrydoc\n from foo import bar\n\n @marrydoc.based_on(\n bar,\n \"\"\"Perform foo bar.\"\"\")\n def my_bar():\n \"\"\"Perform my special foo bar.\"\"\"\n pass\n\n\nThen use the command line tool to evaluate if the source docstring has\nchanged and automatically perform a three way merge if so:\n\n.. code-block:: shell\n\n $ python -m marrydoc --merge my_foo.py\n my_foo.py ... UPDATED\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://gitlab.com/dangass/marrydoc", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/dangass/marrydoc", "keywords": "docstring", "license": "MIT License ; http://opensource.org/licenses/MIT", "maintainer": "Dan Gass", "maintainer_email": "dan.gass@gmail.com", "name": "marrydoc", "package_url": "https://pypi.org/project/marrydoc/", "platform": "any", "project_url": "https://pypi.org/project/marrydoc/", "project_urls": { "Download": "https://gitlab.com/dangass/marrydoc", "Homepage": "https://gitlab.com/dangass/marrydoc" }, "release_url": "https://pypi.org/project/marrydoc/0.2.0/", "requires_dist": [ "setuptools (>=39.0.1)", "enum34 (>=1.1.6); python_version < \"3.0\"", "Sphinx (>=1.6.7); extra == 'doc'", "sphinx-rtd-theme; extra == 'doc'", "sphinxcontrib-programoutput; extra == 'doc'", "baseline; extra == 'test'", "nose; extra == 'test'", "mock (>=2.0.0); python_version < \"3.0\" and extra == 'test'", "unittest2; python_version < \"3.0\" and extra == 'test'" ], "requires_python": ">=2.7.0,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "summary": "Easy docstring maintenance.", "version": "0.2.0" }, "last_serial": 3893669, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "eae6a349bb3749cd3c6c55fcdede97d2", "sha256": "37b29fbddc84624e3397aa00b68b5aa361683f2ac5a9585e103c25e6347043ac" }, "downloads": -1, "filename": "marrydoc-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eae6a349bb3749cd3c6c55fcdede97d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 35963, "upload_time": "2018-05-07T04:16:29", "url": "https://files.pythonhosted.org/packages/05/10/20e870ec03f9281b60f05f5a9776a2a7a12438f00c9af24fa40fb564d7b2/marrydoc-0.1.0-py2.py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1ef1678046e3de655f1f08a284678da7", "sha256": "032004628805f65f6ed6ae782593e9de57f84104d0a997ba063f6a8f1c561505" }, "downloads": -1, "filename": "marrydoc-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1ef1678046e3de655f1f08a284678da7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 36687, "upload_time": "2018-05-24T04:24:28", "url": "https://files.pythonhosted.org/packages/7d/aa/c387fbba2220e065888236359470b4b0b0182880a09e254b92ccc119d75e/marrydoc-0.2.0-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1ef1678046e3de655f1f08a284678da7", "sha256": "032004628805f65f6ed6ae782593e9de57f84104d0a997ba063f6a8f1c561505" }, "downloads": -1, "filename": "marrydoc-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1ef1678046e3de655f1f08a284678da7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 36687, "upload_time": "2018-05-24T04:24:28", "url": "https://files.pythonhosted.org/packages/7d/aa/c387fbba2220e065888236359470b4b0b0182880a09e254b92ccc119d75e/marrydoc-0.2.0-py2.py3-none-any.whl" } ] }