{ "info": { "author": "Hunter McGushion", "author_email": "hunter@mcgushion.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Documentation", "Topic :: Documentation :: Sphinx", "Topic :: Software Development", "Topic :: Software Development :: Documentation", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance", "Topic :: Utilities" ], "description": "Docstr-Coverage\n===============\n\nIf the health of your documentation is in dire straits, `docstr-coverage` will see you now.\n\n`docstr-coverage` is a simple tool that lets you measure your Python source code's\n[docstring](http://www.python.org/dev/peps/pep-0257/#what-is-a-docstring) coverage. It can show you which of your functions,\nclasses, methods, and modules don't have docstrings. It also provide statistics about overall docstring coverage for individual\nfiles, and for your entire project.\n\n* **Source:** https://github.com/HunterMcGushion/docstr_coverage\n* **Documentation:** [https://docstr-coverage.readthedocs.io](https://docstr-coverage.readthedocs.io/en/latest/api_essentials.html)\n\nExample\n-------\n\n```\n>>> HunterMcGushion$ docstr-coverage /docstr_coverage/\n\nFile: \"docstr_coverage/setup.py\"\n - No module docstring\n - No docstring for `readme`\n Needed: 2; Found: 0; Missing: 2; Coverage: 0.0%\n\nFile: \"docstr_coverage/docstr_coverage/__init__.py\"\n - No module docstring\n Needed: 1; Found: 0; Missing: 1; Coverage: 0.0%\n\nFile: \"docstr_coverage/docstr_coverage/coverage.py\"\n - No docstring for `DocStringCoverageVisitor.__init__`\n Needed: 11; Found: 10; Missing: 1; Coverage: 90.9%\n\n\nOverall statistics for 3 files:\nDocstrings needed: 14; Docstrings found: 10; Docstrings missing: 4\nTotal docstring coverage: 71.4%; Grade: Very good\n```\n\nHow Do I Use It?\n----------------\n\n#### Command-line Tool\nGeneral usage is: `docstr-coverage [options]`\n\nTo test a single module, named `some_module.py`, run:\n\n```\n$ docstr-coverage some_module.py\n```\n\nTo test a directory (recursively), just supply the directory `some_project/src` instead:\n\n```\n$ docstr-coverage some_project/src\n```\n\n##### Options:\n* *--skipmagic, -m* - Ignore all magic methods (like `__init__`, and `__str__`)\n* *--skipfiledoc, -f* - Ignore module docstrings (at the top of files)\n* *--exclude=\\, -e \\* - Filepath pattern to exclude from analysis\n\t* To exclude the contents of a virtual environment `env` and your `tests` directory, run:\n\t
```$ docstr-coverage some_project/ -e \"env/*|tests/*\"```\n* *--verbose=\\, -v \\* - Set verbosity level (0-3)\n\t* 0 - Silence\n\t* 1 - Print overall statistics\n\t* 2 - Also print individual statistics for each file\n\t* 3 - Also print missing docstrings (function names, class names, etc.)\n\n#### Package in Your Project\nYou can also use `docstr-coverage` as a part of your project by importing it thusly:\n\n```python\nfrom docstr_coverage import get_docstring_coverage\nmy_coverage = get_docstring_coverage(['some_dir/file_0.py', 'some_dir/file_1.py'])\n```\n\n##### Arguments:\n* Required arg: `filenames` \\\n* Optional kwargs: `skip_magic` \\, `skip_file_docstring` \\, `verbose` \\\n\t* For more info on `get_docstring_coverage` and its parameters, please see its [documentation](https://docstr-coverage.readthedocs.io/en/latest/api_essentials.html#get-docstring-coverage)\n\n##### Results:\n```get_docstring_coverage``` returns two dicts: 1) stats for each file, and 2) total stats.\nFor more info, please see the `get_docstring_coverage` [documentation](https://docstr-coverage.readthedocs.io/en/latest/api_essentials.html#get-docstring-coverage)\n\nWhy Should I Use It?\n--------------------\n* Thorough documentation is important to help others (and even yourself) understand your code\n* As a developer, improve your code's maintainability for when you need to make updates and fix bugs\n* As a user, instantly know how easy it's going to be to understand a new library\n\t* If its documentation coverage is low, you may need to figure a lot out for yourself\n\nInstallation\n------------\n\n```\npip install docstr-coverage\n```\n\nIf you like being on the cutting-edge, and you want all the latest developments, run:\n\n```\npip install git+https://github.com/HunterMcGushion/docstr_coverage.git\n```\n\nSpecial Thanks\n--------------\nThank you to Alexey \"DataGreed\" Strelkov, and James Harlow for doing all the hard work.\n`docstr-coverage` simply revives and brings their efforts to Python 3. See 'THANKS.txt' for more information.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/HunterMcGushion/docstr_coverage", "keywords": "docstring coverage documentation audit source code statistics report", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "docstr-coverage", "package_url": "https://pypi.org/project/docstr-coverage/", "platform": "", "project_url": "https://pypi.org/project/docstr-coverage/", "project_urls": { "Homepage": "https://github.com/HunterMcGushion/docstr_coverage" }, "release_url": "https://pypi.org/project/docstr-coverage/1.0.4/", "requires_dist": null, "requires_python": "", "summary": "Utility for examining python source files to ensure proper documentation. Lists missing docstrings, and calculates overall docstring coverage percentage rating", "version": "1.0.4" }, "last_serial": 5157699, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d618699e98d2533a1dfa2ac94dad4b2e", "sha256": "0832624639f5c7700cc62aad4ef19a9c05c11a32f9ba20dc06372ec7fc67a1a2" }, "downloads": -1, "filename": "docstr_coverage-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d618699e98d2533a1dfa2ac94dad4b2e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7724, "upload_time": "2018-08-02T05:46:55", "url": "https://files.pythonhosted.org/packages/8f/c2/e3f033b0ad1a1cbaffa49e7b8208fa8b1bb9daf99c3a32127ce8327d8c94/docstr_coverage-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a259224a332f09db22e9371967090a0c", "sha256": "8acbb11ba87a28a1c6f1fc5bcd7f81dba7e92b3682c7a60ddbda2622cdc8d544" }, "downloads": -1, "filename": "docstr_coverage-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a259224a332f09db22e9371967090a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6973, "upload_time": "2018-08-02T05:46:56", "url": "https://files.pythonhosted.org/packages/cb/9e/63facf2e6cc4936ec8c2bd19588ebf5f9a37f3788a8fe4ebc5441062439a/docstr_coverage-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "fed5a245d37be53ff99ca7ccba5629f1", "sha256": "c1f058717278c0ab07cfa47cbab48f706713a100b65a91385c303684003c2793" }, "downloads": -1, "filename": "docstr_coverage-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fed5a245d37be53ff99ca7ccba5629f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7931, "upload_time": "2018-08-21T00:45:58", "url": "https://files.pythonhosted.org/packages/76/fc/1abc25914f8527a0ec07b378e0f8bbb6c077742a42ab175304d67359ed28/docstr_coverage-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3f04912429454e9373a6d1a36b7091f", "sha256": "309a98a6835b8afb4bd144687ad41b6eb01a6019eb1d1c4455faabb52bf4b602" }, "downloads": -1, "filename": "docstr_coverage-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b3f04912429454e9373a6d1a36b7091f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7198, "upload_time": "2018-08-21T00:45:59", "url": "https://files.pythonhosted.org/packages/94/74/b4a71ac3e75bf4033b337be5a856b9745d9918ae295b703b515b05b6c579/docstr_coverage-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a29b1449afe13cb514e23619ac983615", "sha256": "9abd00431844bce54f781d655478fd62bdaa7e2c91fb6e2f191378a633ed7269" }, "downloads": -1, "filename": "docstr_coverage-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a29b1449afe13cb514e23619ac983615", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7928, "upload_time": "2018-08-21T00:49:48", "url": "https://files.pythonhosted.org/packages/af/ed/47536b3ea94f008735606629e637948ac4c0d4c2bb5cf0d4d05d165cefe0/docstr_coverage-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b71a0687d0f00381e79ce618f97c0cbd", "sha256": "0501b60a074385aeb78cd2b2ee672d6e74e29a94ba5411e2cd4882e4acdefd7d" }, "downloads": -1, "filename": "docstr_coverage-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b71a0687d0f00381e79ce618f97c0cbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7210, "upload_time": "2018-08-21T00:49:50", "url": "https://files.pythonhosted.org/packages/45/41/885a97c475a21b3cfca1a656c38a82e7c4d3a74e98fb47c25c265ecdf031/docstr_coverage-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "780e928f6c4388067eaa25227cd57bd7", "sha256": "c80189b54d3957c9d140e01ef1f634e3a8ddd638e415d1d805d947ddd5c3a751" }, "downloads": -1, "filename": "docstr_coverage-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "780e928f6c4388067eaa25227cd57bd7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7976, "upload_time": "2019-01-25T19:51:40", "url": "https://files.pythonhosted.org/packages/42/54/339a87b11a31051483ace49f3605c6ed6c08d49a246b932af72196f25aea/docstr_coverage-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20e2483afac279c55af7e7e0c2c622f3", "sha256": "01aee9ae8b1326fc6c4d8d56246142ae9507d4a945d9cf14fb9ff77764d2413f" }, "downloads": -1, "filename": "docstr_coverage-1.0.2.tar.gz", "has_sig": false, "md5_digest": "20e2483afac279c55af7e7e0c2c622f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7664, "upload_time": "2019-01-25T19:51:41", "url": "https://files.pythonhosted.org/packages/aa/2b/61b78044bd8dc8a19b349b2c7af71de98dd445afaa745fda978b97a18873/docstr_coverage-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "d1170e86557cf6ffcf5d8344e0d09559", "sha256": "6bb7aa86971819f075bbc2a72985c9eb09b0e6c2a14a7d693c5b9862456015d4" }, "downloads": -1, "filename": "docstr_coverage-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d1170e86557cf6ffcf5d8344e0d09559", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7978, "upload_time": "2019-01-28T16:33:35", "url": "https://files.pythonhosted.org/packages/16/3b/6744ea9c7b7746ef3e0d2221ac209e90c01a205fbf9e2fa225e9fb7475b9/docstr_coverage-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14c85d88e7dca24f508eeec01d6b38ce", "sha256": "596ca985aedf373f0a0294b774e21f3e5410221ab06eda1fcc7e0d849e51c06c" }, "downloads": -1, "filename": "docstr_coverage-1.0.3.tar.gz", "has_sig": false, "md5_digest": "14c85d88e7dca24f508eeec01d6b38ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7673, "upload_time": "2019-01-28T16:33:37", "url": "https://files.pythonhosted.org/packages/9d/e7/bd8322540d62fb9f448a263787ffd751feffe512279d7b7fbf8f23ebbe5f/docstr_coverage-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "bb1c1f6173cb2c93c79f4d779b145d8e", "sha256": "2651c34793ff1437f72bb15827c7e5df1327971a3f539e58397ba42047af36e9" }, "downloads": -1, "filename": "docstr_coverage-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "bb1c1f6173cb2c93c79f4d779b145d8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7991, "upload_time": "2019-04-18T00:14:41", "url": "https://files.pythonhosted.org/packages/a7/11/0606f37ac396657dbaf58c585361853f471adb40e82a7d782639c8d9f32f/docstr_coverage-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9eb7fbbe9ca721fdc26b15a4c8669f79", "sha256": "24b0c8ea2d6a6538eb0fba06acb8222f4c5a6bc0f6485f1028d2a5197455292f" }, "downloads": -1, "filename": "docstr_coverage-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9eb7fbbe9ca721fdc26b15a4c8669f79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7675, "upload_time": "2019-04-18T00:14:43", "url": "https://files.pythonhosted.org/packages/5f/88/6859d3afd7b4df7596b3289e0179784f004ef3d2e5cca7b48b07a1d12422/docstr_coverage-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bb1c1f6173cb2c93c79f4d779b145d8e", "sha256": "2651c34793ff1437f72bb15827c7e5df1327971a3f539e58397ba42047af36e9" }, "downloads": -1, "filename": "docstr_coverage-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "bb1c1f6173cb2c93c79f4d779b145d8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7991, "upload_time": "2019-04-18T00:14:41", "url": "https://files.pythonhosted.org/packages/a7/11/0606f37ac396657dbaf58c585361853f471adb40e82a7d782639c8d9f32f/docstr_coverage-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9eb7fbbe9ca721fdc26b15a4c8669f79", "sha256": "24b0c8ea2d6a6538eb0fba06acb8222f4c5a6bc0f6485f1028d2a5197455292f" }, "downloads": -1, "filename": "docstr_coverage-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9eb7fbbe9ca721fdc26b15a4c8669f79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7675, "upload_time": "2019-04-18T00:14:43", "url": "https://files.pythonhosted.org/packages/5f/88/6859d3afd7b4df7596b3289e0179784f004ef3d2e5cca7b48b07a1d12422/docstr_coverage-1.0.4.tar.gz" } ] }