Library for automatic docstrings check
Project description
fulldoc
fulldoc is a Python docstring content checker focused on completeness and consistency.
It validates that docstrings are not only present, but also contain the required structured content for your public and internal API.
What it checks
fulldoc enforces:
- full argument documentation for all callable parameters, even when no
Args/Attributessection is present Attributessection validation for classes and data containers- docstrings for private and protected entities, so internal APIs are documented for other developers
Supported docstring styles
GooglereStructuredText
What makes fulldoc different
Most docstring tools only check whether a docstring exists.
fulldoc checks whether the docstring is actually complete.
That includes:
- required parameter descriptions
- attribute documentation
- internal API documentation
- consistent parsing of common docstring formats
Requirements
fulldoc is designed for Python projects that want stricter documentation standards.
It is especially useful when you want to enforce documentation for:
- public functions and classes
- protected members
- private members
- dataclasses and other attribute-heavy classes
- library code maintained by multiple developers
Status codes
fulldoc reports findings using status codes.
Main status groups
D— docstring structure or content issueDOC— missing, incomplete, or invalid documentationN— naming or entity-related issueF— parser or formatting support code used for internal parsing only
Example meanings
| Code | Meaning |
|---|---|
D... |
documentation rule violation |
DOC... |
docstring content problem |
N... |
naming or entity classification issue |
F... |
parsing helper / internal formatting-related code |
Exact code meanings depend on the rule set configured in your project.
Installation
pip install fulldoc
Usage
Run fulldoc against your project source tree from the root directory:
fulldoc
Or integrate it into your CI pipeline:
- name: Check docstrings
run: fulldoc
Or you can help debug library errors running it from python file:
from fulldoc import ProjectParser
ProjectParser().check()
Rules enforced by fulldoc
Arguments
All callable arguments must be documented.
This includes cases where:
- the docstring has no
Args/Attributessection - the section exists but is incomplete
- some parameters are documented and others are missing
Attributes
Class attributes are checked against the docstring Attributes section.
fulldoc can detect missing documentation for class state and related fields.
Private and protected members
fulldoc can require docstrings for internal APIs such as:
- protected members like
_name - private members like
__name
This helps teams keep internal code understandable and maintainable.
Examples
Google style
def add_user(name: str, age: int) -> None:
"""Add a user.
Args:
name: User name.
age: User age.
"""
reStructuredText style
def add_user(name: str, age: int) -> None:
"""Add a user.
:param name: User name.
:param age: User age.
"""
Notes
fulldocis strict by design.- It is intended for teams that want documentation quality checks, not just docstring presence checks.
- Internal and protected code can be included in the documentation policy.
License
MIT
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 fulldoc-0.0.4.tar.gz.
File metadata
- Download URL: fulldoc-0.0.4.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f84efcb984e284230e976884d053abfecba83c9909b2d693965a0ca46c4ea45
|
|
| MD5 |
531cdb0c75bb12e7793842921300403f
|
|
| BLAKE2b-256 |
6ced807094d1ad81badd2c77f2e68720d237a0b809fcaafd46a20724445009b2
|
File details
Details for the file fulldoc-0.0.4-py3-none-any.whl.
File metadata
- Download URL: fulldoc-0.0.4-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e00fc3c57855bf692646009fc93bcc2d7f1a10ab563739957558bbeb115fb22
|
|
| MD5 |
a42470ba17b97cac64bd08fb422d247e
|
|
| BLAKE2b-256 |
9eda7f46394edb6d4a4b3f674092dc68cf737a1568a355958d70630f9ed329c6
|