Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Huggingface Diffusers Modular Auto Docstring

From Leeroopedia
Knowledge Sources
Domains Documentation, Code_Generation, Tooling
Last Updated 2026-02-13 21:00 GMT

Overview

Concrete tool for automatically generating and inserting docstrings into modular pipeline block classes that are marked with `# auto_docstring` comments in the diffusers library.

Description

The modular_auto_docstring.py utility scans Python files for classes preceded by the `# auto_docstring` marker comment. For each marked class, it instantiates the class and calls its `doc` property to retrieve the docstring content, then inserts or updates the class docstring in the source file. It uses AST parsing to locate class definitions and their positions, regex matching to find the marker comments, and `ruff format` for post-processing to ensure consistent line wrapping. The tool supports both check mode (for CI) and fix mode (for development).

Usage

Run this script from the repository root when adding or modifying modular pipeline blocks. In check mode (default), it reports classes that need docstring updates. In fix mode (`--fix_and_overwrite`), it automatically inserts docstrings from the `doc` property. It is part of the CI quality gate pipeline.

Code Reference

Source Location

Signature

def setup_diffusers_import():
    """Setup import path to use the local diffusers module."""
    ...

def get_module_from_filepath(filepath: str) -> str:
    """Convert a filepath to a module name."""
    ...

def load_module(filepath: str):
    """Load a module from filepath."""
    ...

def get_doc_from_class(module, class_name: str) -> str:
    """Get the doc property from an instantiated class."""
    ...

def find_auto_docstring_classes(filepath: str) -> list[tuple[str, int, str, str]]:
    """Find classes with # auto_docstring marker in a file.
    Returns list of (class_name, line_number, existing_docstring, marker_comment).
    """
    ...

def process_file(filepath: str, overwrite: bool = False) -> list[tuple[str, str, int]]:
    """Process a single file for auto_docstring markers."""
    ...

def check_auto_docstrings(path: str = None, overwrite: bool = False):
    """Check all files for # auto_docstring markers and optionally fix them."""
    ...

Import

# CLI script — not imported as a module:
# python utils/modular_auto_docstring.py
# python utils/modular_auto_docstring.py --fix_and_overwrite

I/O Contract

Inputs

Name Type Required Description
path str No File or directory to process (default: `src/diffusers`)
fix_and_overwrite bool No Whether to insert/update docstrings (default: False, check-only)

Outputs

Name Type Description
Modified files Files Source files with inserted/updated docstrings (in fix mode)
ValueError Exception Raised in check mode if markers are found without proper docstrings
stdout str Summary of processed docstrings or validation results

Usage Examples

Check Mode (CI)

# Check all files for missing auto_docstrings (exits non-zero if found)
python utils/modular_auto_docstring.py

# Check specific directory
python utils/modular_auto_docstring.py src/diffusers/modular_pipelines/

Fix Mode

# Auto-insert docstrings from doc property
python utils/modular_auto_docstring.py --fix_and_overwrite

# Fix specific file
python utils/modular_auto_docstring.py src/diffusers/modular_pipelines/flux/pipeline_flux.py --fix_and_overwrite

Source Code Pattern

# auto_docstring
class QwenImageAutoVaeEncoderStep(AutoPipelineBlocks):
    # Docstring will be automatically inserted here by the tool

    @property
    def doc(self):
        return "Encodes images using the VAE encoder for QwenImage pipeline."

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment