Library to automate the generation of docstrings.
What is it?
The aim of the project is to employ AI to evaluate documented (and undocumented) code to establish their accuracy, and improving said documentation automatically.
Requirements
genpydoc supports Python 3.11 and above.
Currently, we only support OpenAI models, so you must provide a valid OpenAI API key.
export OPENAI_API_KEY=<your-key>
Installation
Usage
Run it on one of your projects:
genpydoc [PATH]
Configuration
You can specify the following parameters, either in the pyproject.toml or through command line.
pyproject.toml Configuration
[tool.genpydoc]
exclude = ["./tests", "./docs"]
ignore-magic = false
ignore-nested-classes = false
ignore-nested-functions = false
ignore-overloaded-functions = false
ignore-private = false
ignore-property-decorators = false
ignore-setters = false
ignore-semiprivate = false
include-only-covered = true
run-on-diff = false
run-staged = false
target-branch = "main"
use-llm-provider = "openai"
use-model = "gpt-5-nano"
style = "google"
Command line options
Usage: python -m genpydoc [OPTIONS] [PATHS]...
Options:
-e, --exclude PATH Exclude PATHs of files and/or directories.
Multiple `-e/--exclude` invocations
supported.
-m, --ignore-magic Ignore all magic methods of classes.
[default: False]
NOTE: This does not include the `__init__`
method. To ignore `__init__` methods, use
`--ignore-init-method`.
-C, --ignore-nested-classes Ignore nested classes.
-n, --ignore-nested-functions Ignore nested functions and methods.
-O, --ignore-overloaded-functions
Ignore `@typing.overload`-decorated
functions.
-p, --ignore-private Ignore private classes, methods, and
functions starting with two underscores.
[default: False]
NOTE: This does not include magic methods;
use `--ignore-magic` and/or `--ignore-init-
method` instead.
-P, --ignore-property-decorators
Ignore methods with property
setter/getter/deleter decorators.
-S, --ignore-setters Ignore methods with property setter
decorators.
-s, --ignore-semiprivate Ignore semiprivate classes, methods, and
functions starting with a single underscore.
-o, --include-only-covered Only include Node that have a docstring in
the processing. [default: False]
-D, --run-on-diff Only run the evaluator on Git diffed Nodes.
-d, --run-staged Run on staged diff changes (good for running
locally before a commit).
--target-branch TEXT Provide the target branch for running git
comparison. [default: main]
--use-llm-provider [openai] Select the LLM provider. [default: openai]
--use-model [gpt-5-nano] Select which LLM model to use for
documenting. [default: gpt-5-nano]
--style [google|numpy|epytext|reST]
Docstring types allowed. [default: google]
-h, --help Show this message and exit.
-c, --config FILE Read configuration from ``pyproject.toml``.
include_only_covered
By default, the package will extract every node of a script, regardless if they already contain a docstring. To only evaluate nodes already covered by docstrings, set this tag to True, or use -o in the CLI.
run_on_diff
Use this flag when you want to run the tool and only cover nodes that have been diffed. Paired up with run_staged or target_branch.
run_staged
Use this flag if you want to run the tool only local diffed changes, for example, if running with a commit hook. The tool will use the local staged changes and compare it to the git index.
target_branch
Specify the target branch to run the git diff against. Nodes affected by the diff will be filtered and used for analysis when commenting.
use_llm_provider
Specify the LLM provider to use to generate documentation. Only OPENAI is currently accepted.
use_model
Specify the LLM to use to generate documentation. As only OPENAI is currently accepted as provider, we only accept gpt-5-nano.
Release files for genpydoc 1.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| genpydoc-1.0.9.tar.gz | 15.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| genpydoc-1.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.5 kB
Release files / genpydoc-1.0.9.tar.gz
| Download URL | genpydoc-1.0.9.tar.gz |
|---|---|
| Size | 15.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b105019c9c0f0df659216f55341dfdc4f65a0bfe5a7704491521502b2fa913a3
|
|
BLAKE2b-256 checksum How to use checksums |
a26cccae189bbab431de6f777b604e60624c549773b440a7543772f753ea47d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.
Transparency logRelease files / genpydoc-1.0.9-py3-none-any.whl
| Download URL | genpydoc-1.0.9-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6b656dc766695e10ffcac114d580993639857179073219b35b39c976b786522
|
|
BLAKE2b-256 checksum How to use checksums |
cbcbbfc0e2e9deeb6e6be95ac1d72f6065605f76a2a4fc6acab98c4c19009883
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.
Transparency log