Use AI agent to analyze if a method's documentation is correct and sufficient.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file genpydoc-1.0.9.tar.gz.
File metadata
- Download URL: genpydoc-1.0.9.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b105019c9c0f0df659216f55341dfdc4f65a0bfe5a7704491521502b2fa913a3
|
|
| MD5 |
96283e14c01e66dc546b7b106d70ab7c
|
|
| BLAKE2b-256 |
a26cccae189bbab431de6f777b604e60624c549773b440a7543772f753ea47d5
|
Provenance
The following attestation bundles were made for genpydoc-1.0.9.tar.gz:
Publisher:
publish.yml on ernestvmo/genpydoc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
genpydoc-1.0.9.tar.gz -
Subject digest:
b105019c9c0f0df659216f55341dfdc4f65a0bfe5a7704491521502b2fa913a3 - Sigstore transparency entry: 1066441570
- Sigstore integration time:
-
Permalink:
ernestvmo/genpydoc@c9302cb09f3071c1de8b5cbf106a3a5648c35b6f -
Branch / Tag:
refs/tags/v1.0.9 - Owner: https://github.com/ernestvmo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c9302cb09f3071c1de8b5cbf106a3a5648c35b6f -
Trigger Event:
push
-
Statement type:
File details
Details for the file genpydoc-1.0.9-py3-none-any.whl.
File metadata
- Download URL: genpydoc-1.0.9-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6b656dc766695e10ffcac114d580993639857179073219b35b39c976b786522
|
|
| MD5 |
bed5300e5b1800c8fc1e3b0e8d2cc962
|
|
| BLAKE2b-256 |
cbcbbfc0e2e9deeb6e6be95ac1d72f6065605f76a2a4fc6acab98c4c19009883
|
Provenance
The following attestation bundles were made for genpydoc-1.0.9-py3-none-any.whl:
Publisher:
publish.yml on ernestvmo/genpydoc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
genpydoc-1.0.9-py3-none-any.whl -
Subject digest:
b6b656dc766695e10ffcac114d580993639857179073219b35b39c976b786522 - Sigstore transparency entry: 1066441576
- Sigstore integration time:
-
Permalink:
ernestvmo/genpydoc@c9302cb09f3071c1de8b5cbf106a3a5648c35b6f -
Branch / Tag:
refs/tags/v1.0.9 - Owner: https://github.com/ernestvmo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c9302cb09f3071c1de8b5cbf106a3a5648c35b6f -
Trigger Event:
push
-
Statement type: