Classes
CLIExtractor
Extract CLI documentation from Click/argparse/typer applications.
This extractor introspects CLI f…
CLIExtractor
Extract CLI documentation from Click/argparse/typer applications.
This extractor introspects CLI frameworks to build comprehensive documentation for commands, options, arguments, and their relationships.
Currently supported frameworks:
- Click (full support)
- argparse (planned)
- Typer (planned)
ExtractorMethods 3
extract
Extract documentation from CLI application.
extract
def extract(self, source: Any) -> list[DocElement]
Extract documentation from CLI application.
Parameters 1
source |
Any |
CLI application object - For Click: click.Group or click.Command - For argparse: ArgumentParser instance - For Typer: Typer app instance |
Returns
List of DocElements representing the CLI structurelist[DocElement]
—
get_template_dir
Get the template directory name for this extractor.
get_template_dir
def get_template_dir(self) -> str
Get the template directory name for this extractor.
Returns
Template directory name (e.g., 'cli', 'python', 'openapi')str
—
get_output_path
Determine output path for CLI element.
get_output_path
def get_output_path(self, element: DocElement) -> Path
Determine output path for CLI element.
Parameters 1
element |
DocElement |
CLI DocElement |
Returns
Relative path for the generated markdown filePath
—
Internal Methods 10
__init__
Initialize CLI extractor.
__init__
def __init__(self, framework: str = 'click', include_hidden: bool = False)
Initialize CLI extractor.
Parameters 2
framework |
str |
CLI framework to extract from ('click', 'argparse', 'typer') |
include_hidden |
bool |
Include hidden commands (default: False) |
_extract_from_click
Extract documentation from Click command group.
_extract_from_click
def _extract_from_click(self, cli: click.Group) -> list[DocElement]
Extract documentation from Click command group.
Parameters 1
cli |
click.Group |
Click Group or Command instance |
Returns
List containing the main CLI element and all subcommands as separate pageslist[DocElement]
—
_extract_click_group
Extract Click command group documentation.
_extract_click_group
def _extract_click_group(self, group: click.Group, parent_name: str | None = None) -> DocElement
Extract Click command group documentation.
Parameters 2
group |
click.Group |
Click Group instance |
parent_name |
str | None |
Parent command name for nested groups |
Returns
DocElement representing the command groupDocElement
—
_extract_click_command
Extract Click command documentation.
_extract_click_command
def _extract_click_command(self, cmd: click.Command, parent_name: str | None = None) -> DocElement
Extract Click command documentation.
Parameters 2
cmd |
click.Command |
Click Command instance |
parent_name |
str | None |
Parent group name |
Returns
DocElement representing the commandDocElement
—
_extract_click_parameter
Extract Click parameter (option or argument) documentation.
_extract_click_parameter
def _extract_click_parameter(self, param: click.Parameter, parent_name: str) -> DocElement
Extract Click parameter (option or argument) documentation.
Parameters 2
param |
click.Parameter |
Click Parameter instance |
parent_name |
str |
Parent command qualified name |
Returns
DocElement representing the parameterDocElement
—
_strip_examples_from_description
Remove example blocks from docstring description.
_strip_examples_from_description
def _strip_examples_from_description(self, docstring: str) -> str
Remove example blocks from docstring description.
Parameters 1
docstring |
str |
Full docstring |
Returns
Description without Examples sectionstr
—
_extract_examples_from_docstring
Extract example blocks from docstring.
_extract_examples_from_docstring
def _extract_examples_from_docstring(self, docstring: str) -> list[str]
Extract example blocks from docstring.
Parameters 1
docstring |
str |
Function or command docstring |
Returns
List of example code blockslist[str]
—
_extract_from_argparse
Extract documentation from argparse ArgumentParser.
_extract_from_argparse
def _extract_from_argparse(self, parser: Any) -> list[DocElement]
Extract documentation from argparse ArgumentParser.
Parameters 1
parser |
Any |
ArgumentParser instance |
Returns
List of DocElementslist[DocElement]
—
_extract_from_typer
Extract documentation from Typer app.
Typer is built on top of Click, so we ca…
_extract_from_typer
def _extract_from_typer(self, app: Any) -> list[DocElement]
Extract documentation from Typer app.
Typer is built on top of Click, so we can leverage the existing Click extraction logic. Typer apps expose their underlying Click structure through various methods.
Parameters 1
app |
Any |
Typer app instance |
Returns
List of DocElementslist[DocElement]
—
_typer_to_click_group
Helper to convert a Typer app to a Click group recursively.
_typer_to_click_group
def _typer_to_click_group(self, typer_app: Any) -> Any
Helper to convert a Typer app to a Click group recursively.
Parameters 1
typer_app |
Any |
Typer app instance |
Returns
Click group or NoneAny
—
Functions
_is_sentinel_value
Check if a value is a Click sentinel (like UNSET).
Click uses sentinel objects to distinguish betw…
_is_sentinel_value
def _is_sentinel_value(value: Any) -> bool
Check if a value is a Click sentinel (like UNSET).
Click uses sentinel objects to distinguish between "not provided" and None. These should not appear in user-facing documentation.
Parameters 1
| Name | Type | Default | Description |
|---|---|---|---|
value |
Any |
— | Value to check |
Returns
True if value is a sentinel that should be filteredbool
—
_format_default_value
Format a default value for display, filtering sentinel values.
_format_default_value
def _format_default_value(value: Any) -> str | None
Format a default value for display, filtering sentinel values.
Parameters 1
| Name | Type | Default | Description |
|---|---|---|---|
value |
Any |
— | The default value to format |
Returns
Formatted string or None if value should not be displayedstr | None
—