Skip to main content

Automated Python Module Documentation in Markdown File (README)

Project description

Automated (Python) Module Documentation in README

What's this?

Automated docstring extraction and creation/update of documentation (of python modules) in README File.

Why?

Because it's nice :-)

How?

doc_to_md.py loops through all Python files in the Repository and extracts the function calls + the corresponding short description from the docstrings. These are added to a dictionary and afterwards converted to a Markdown Table. Finally, the section Functions & Classes is appended / updated in the README File.

There are several options how to use it:
a) Python Package
b) CI Pipeline

a) install & use Python Package

Available on PyPI

pip install doc-to-readme
  • Use within Python
import doc_to_md.doc_to_md as dtm

dtm.update_markdown_file(
    file="README.md",
    root_dir=None,              # Directory used as root for searching modules, defaults to folder containing README.md
    exclude_modules=None,       # List of modules to be excluded
    specified_modules=None,     # Only these modules will be included
    separate=True               # Create one table per module
)
  • Command Line
python -m doc_to_md.doc_to_md -f "README.md" [-r ROOT_DIR] [-e EXCLUDE_MODULES] [-m SELECTED_MODULES] [--separated]

-r ROOT_DIR             # Directory used as root for searching modules, defaults to folder containing README.md
-e EXCLUDE_MODULES      # List of modules to be excluded
-s SELECTED_MODULES     # Only these modules will be included
--separated             # Create one table per module

b) add to Pipeline (GitHub, GitLab or Bitbucket)

Documentation on how to set up the pipelines to update a file on every push.

Step-by-step guide on how to integrate doc_to_readme in your Repository


Copyright © 2023 by Mirjam Ziselsberger
This code is free to use under the terms of the MIT license.

Functions & Classes

doc_to_md.py

Type Name/Call Description
function loop_through_repo(file: str, root_dir: str = None, exclude_modules: Optional[Tuple[str, ...]] = None, specified_modules: Optional[Tuple[str, ...]] = None) -> None Collect documentation from functions & classes
function add_summary_to_md(overview_dict: Dict[str, Optional[Union[str, Dict[str, str]]]], markdown: str, separate: bool = True) Add Table with all Functions & Classes to Markdown file.
function update_markdown_file(file: str = "../../README.md", root_dir: str = None, exclude_modules: Optional[Tuple[str, ...]] = ("test", "functions_for_testing", "classes_for_testing", "doc_to_md"), specified_modules: Optional[Tuple[str, ...]] = None, separate: bool = True) Add/update 'Functions & Classes' Section in Markdown file.
function parse_through_file(file: str) -> Dict[str, Dict[str, str]] Parse through module and gather info on classes and functions

Created with: doc_to_readme
MIT © 2023 Mirjam Ziselsberger


Last Update: 2023-04-28

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doc-to-readme-1.0.1.tar.gz (300.2 kB view details)

Uploaded Source

Built Distribution

doc_to_readme-1.0.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file doc-to-readme-1.0.1.tar.gz.

File metadata

  • Download URL: doc-to-readme-1.0.1.tar.gz
  • Upload date:
  • Size: 300.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for doc-to-readme-1.0.1.tar.gz
Algorithm Hash digest
SHA256 a87602af1c3ea15ebce7414bb899b05418c004d6e6aa9a18dfef9276f0df90a5
MD5 1e06974484cabc25ebe56d4112b90eef
BLAKE2b-256 7c5921b67a676ea41cd8e0e0b8e9be6b985161fc5afc8d65ea08fc886386a346

See more details on using hashes here.

File details

Details for the file doc_to_readme-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for doc_to_readme-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 665084d2ab7ddc145c190e37bcad5da121e0a74793e31146656c93b5f17cbfc0
MD5 edd57e6d80b2ea1f7b60ed0f19d463ca
BLAKE2b-256 fbe26188619d234474a33127213bdd7bd9ad7b4fb1f6274d1dcaf312170e7a35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page