pip install code2docsgit clone https://github.com/wronai/code2docs
cd code2docs
pip install -e .code2docs ./my-project
code2docs ./my-project --readme-only
code2docs ./my-project --dry-run
code2docs check ./my-project
code2docs sync ./my-project
### Python API
```python
from code2docs import generate_readme, generate_docs, Code2DocsConfig
# Quick: generate README
generate_readme("./my-project")
# Full: generate all documentation
config = Code2DocsConfig(project_name="mylib", verbose=True)
docs = generate_docs("./my-project", config=config)
code2docs can update only specific sections of an existing README using HTML comment markers:
<!-- code2docs:start --># code2docs
   
> **365** functions | **62** classes | **56** files | CC̄ = 3.7
> Auto-generated project documentation from source code analysis.
**Author:** Tom Sapletta
**License:** Apache-2.0[(LICENSE)](./LICENSE)
**Repository:** [https://github.com/wronai/code2docs](https://github.com/wronai/code2docs)
## Installation
### From PyPI
```bash
pip install code2docsgit clone https://github.com/wronai/code2docs
cd code2docs
pip install -e .pip install code2docs[llm] # LLM integration (litellm)
pip install code2docs[git] # Git integration (GitPython)
pip install code2docs[watch] # file watcher (watchdog)
pip install code2docs[mkdocs] # MkDocs integration
pip install code2docs[dev] # development tools
pip install code2docs[all] # all optional features# Generate full documentation for your project
code2docs ./my-project
# Only regenerate README
code2docs ./my-project --readme-only
# Preview what would be generated (no file writes)
code2docs ./my-project --dry-run
# Check documentation health
code2docs check ./my-project
# Sync — regenerate only changed modules
code2docs sync ./my-projectfrom code2docs import generate_readme, generate_docs, Code2DocsConfig
# Quick: generate README
generate_readme("./my-project")
# Full: generate all documentation
config = Code2DocsConfig(project_name="mylib", verbose=True)
docs = generate_docs("./my-project", config=config)code2docs/
├── project
├── advanced_usage
├── badges
├── toc
├── formatters/
├── registry
├── coverage_gen
├── _source_links
├── readme_gen
├── __main__
├── watcher
├── depgraph_gen
├── generators/
├── getting_started_gen
├── config_docs_gen
├── module_docs_gen
├── org_readme_gen
├── code2llm_gen
├── code2docs/
├── api_reference_gen
├── changelog_gen
├── mkdocs_gen
├── advanced_usage
├── contributing_gen
├── updater
├── analyzers/
├── architecture_gen
├── _registry_adapters
├── api_changelog_gen
├── 04_sync_and_watch
├── quickstart
├── quickstart
├── 05_custom_generators
├── advanced_usage
├── 06_formatters
├── 03_programmatic_api
├── entry_points
├── class_examples
├── basic_usage
├── 07_web_frameworks
├── 01_cli_usage
├── 02_configuration
├── examples_gen
├── differ
├── markdown
├── sync/
├── quickstart
├── base
├── markdown_validator
├── cli
├── endpoint_detector
├── project_scanner
├── dependency_scanner
├── config
├── docstring_extractor
├── llm_helper
GeneratorRegistry— Registry of documentation generators.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).ReadmeGenerator— Generate README.md from AnalysisResult.DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.Updater— Apply selective documentation updates based on detected changes.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.MarkdownIssue— A single validation issue in a markdown file.ValidationReport— Aggregate result of markdown validation.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.LLMHelper— Thin wrapper around litellm for documentation generation.
generate_badges(project_name, badge_types, stats, deps)— Generate shields.io badge Markdown strings.generate_toc(markdown_content, max_depth)— Generate a table of contents from Markdown headings.extract_headings(content, max_depth)— Extract headings from Markdown content.generate_readme(project_path, output, sections, sync_markers)— Convenience function to generate a README.start_watcher(project_path, config)— Start watching project for file changes and auto-resync docs.generate_docs(project_path, config)— High-level function to generate all documentation.parse_gitignore(project_path)— Parse .gitignore file and return list of patterns to exclude.generate_code2llm_analysis(project_path, config)— Convenience function to generate code2llm analysis.detect_changes_example(project_path)— Detect what files have changed since last documentation generation.update_docs_incrementally(project_path)— Update only the parts of docs that need changing.force_full_regeneration(project_path)— Force full regeneration of all documentation.watch_and_auto_regenerate(project_path, interval)— Watch for file changes and auto-regenerate documentation.custom_watcher_with_hooks(project_path)— Set up a custom watcher with pre/post generation hooks.sync_with_git_changes(project_path)— Only regenerate docs for files changed in git.generate_custom_report(project_path)— Generate a custom metrics report.markdown_formatting_examples()— Demonstrate markdown formatting utilities.generate_complex_document()— Generate a complex markdown document using the formatter.badge_examples()— Generate various badge examples.toc_examples()— Demonstrate table of contents generation.build_custom_readme()— Build a custom README using formatters.generate_readme_simple(project_path)— Generate README.md content from a project.generate_full_documentation(project_path)— Generate complete documentation for a project.custom_documentation_pipeline(project_path)— Create a custom documentation pipeline.inspect_project_structure(project_path)— Inspect project structure from analysis.generate_docs_if_needed(project_path, force)— Only generate docs if code has changed.detect_flask_endpoints(project_path)— Detect Flask endpoints in a project.detect_fastapi_endpoints(project_path)— Detect FastAPI endpoints in a project.generate_api_docs_from_endpoints(project_path, output_dir)— Generate API documentation from detected endpoints.create_example_web_apps(target_dir)— Create example Flask and FastAPI apps for testing.document_web_project(project_path)— Complete workflow: detect endpoints and generate docs.run_cli_basic(project_path)— Run code2docs CLI programmatically.run_cli_with_config(project_path, config_path)— Run with custom configuration.create_basic_config()— Create a basic configuration.create_advanced_config()— Create advanced configuration with all options.save_yaml_config_example(path)— Save example YAML config to file.load_config_from_yaml(path)— Load configuration from YAML file.validate_markdown_file(md_path, project_root)— Validate a single markdown file.validate_markdown_tree(root, patterns, ignore)— Validate every markdown file underrootmatchingpatterns.main()— code2docs — Auto-generate project documentation from source code.generate(project_path, config_path, readme_only, sections)— Generate documentation (default command).sync(project_path, config_path, verbose, dry_run)— Synchronize documentation with source code changes.watch(project_path, config_path, verbose)— Watch for file changes and auto-regenerate docs.init(project_path, output)— Initialize code2docs.yaml configuration file.check(project_path, config_path, target)— Health check — verify documentation completeness.validate(project_path, pattern, strict)— Validate generated markdown: broken links, table shape, duplicate headings.diff(project_path, config_path)— Preview what would change without writing anything.analyze_and_document(project_path, config)— Convenience function: analyze a project in one call.
📦 code2docs (1 functions)
📄 code2docs.__main__
📦 code2docs.analyzers
📄 code2docs.analyzers.dependency_scanner (11 functions, 3 classes)
📄 code2docs.analyzers.docstring_extractor (10 functions, 2 classes)
📄 code2docs.analyzers.endpoint_detector (3 functions, 2 classes)
📄 code2docs.analyzers.markdown_validator (10 functions, 2 classes)
📄 code2docs.analyzers.project_scanner (4 functions, 1 classes)
📄 code2docs.base (3 functions, 2 classes)
📄 code2docs.cli (15 functions, 1 classes)
📄 code2docs.config (5 functions, 7 classes)
📄 code2docs.examples.advanced_usage
📄 code2docs.examples.quickstart
📦 code2docs.formatters
📄 code2docs.formatters.badges (3 functions)
📄 code2docs.formatters.markdown (13 functions, 1 classes)
📄 code2docs.formatters.toc (3 functions)
📦 code2docs.generators (1 functions)
📄 code2docs.generators._registry_adapters (35 functions, 15 classes)
📄 code2docs.generators._source_links (6 functions, 1 classes)
📄 code2docs.generators.api_changelog_gen (9 functions, 2 classes)
📄 code2docs.generators.api_reference_gen (12 functions, 1 classes)
📄 code2docs.generators.architecture_gen (10 functions, 1 classes)
📄 code2docs.generators.changelog_gen (6 functions, 2 classes)
📄 code2docs.generators.code2llm_gen (17 functions, 1 classes)
📄 code2docs.generators.config_docs_gen (4 functions, 1 classes)
📄 code2docs.generators.contributing_gen (11 functions, 1 classes)
📄 code2docs.generators.coverage_gen (7 functions, 1 classes)
📄 code2docs.generators.depgraph_gen (9 functions, 1 classes)
📄 code2docs.generators.examples_gen (19 functions, 1 classes)
📄 code2docs.generators.getting_started_gen (14 functions, 1 classes)
📄 code2docs.generators.mkdocs_gen (5 functions, 1 classes)
📄 code2docs.generators.module_docs_gen (20 functions, 1 classes)
📄 code2docs.generators.org_readme_gen (15 functions, 1 classes)
📄 code2docs.generators.readme_gen (23 functions, 1 classes)
📄 code2docs.llm_helper (7 functions, 1 classes)
📄 code2docs.registry (4 functions, 1 classes)
📦 code2docs.sync
📄 code2docs.sync.differ (7 functions, 2 classes)
📄 code2docs.sync.updater (2 functions, 1 classes)
📄 code2docs.sync.watcher (1 functions)
📄 docs.examples.advanced_usage
📄 docs.examples.quickstart
📄 examples.01_cli_usage (2 functions)
📄 examples.02_configuration (4 functions)
📄 examples.03_programmatic_api (5 functions)
📄 examples.04_sync_and_watch (6 functions)
📄 examples.05_custom_generators (13 functions, 3 classes)
📄 examples.06_formatters (5 functions)
📄 examples.07_web_frameworks (5 functions)
📄 examples.advanced_usage
📄 examples.basic_usage
📄 examples.class_examples
📄 examples.entry_points
📄 examples.quickstart
📄 project
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest- 🚀 Getting Started — Quick start guide
- 📚 API Reference — Complete API documentation
- 📦 Module Reference — Module reference with metrics
- 🏛️ Architecture — Architecture with diagrams
- 🔗 Dependency Graph — Module dependency graphs
- 📊 Coverage — Docstring coverage report
- 🔧 Configuration — Configuration reference
- 🤝 Contributing — Contribution guidelines
- 💡 Examples — Usage examples and code samples
- ⚙️ MkDocs Config — MkDocs site configuration
| Output | Description | Link |
|---|---|---|
README.md |
Project overview (this file) | — |
docs/getting-started.md |
Quick start guide | View |
docs/api.md |
Complete API documentation | View |
docs/modules.md |
Module reference with metrics | View |
docs/architecture.md |
Architecture with diagrams | View |
docs/dependency-graph.md |
Module dependency graphs | View |
docs/coverage.md |
Docstring coverage report | View |
docs/configuration.md |
Configuration reference | View |
CONTRIBUTING.md |
Contribution guidelines | View |
examples |
Usage examples and code samples | View |
mkdocs.yml |
MkDocs site configuration | View |
Content outside the markers is preserved when regenerating. Enable this with `sync_markers: true` in your configuration.
## Architecture
code2docs/ ├── project ├── quickstart ├── advanced_usage ├── registry ├── base├── code2docs/ ├── main ├── updater ├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc ├── formatters/ ├── readme_gen ├── coverage_gen ├── _source_links ├── depgraph_gen ├── cli ├── getting_started_gen ├── config_docs_gen ├── changelog_gen ├── generators/ ├── code2llm_gen ├── module_docs_gen ├── org_readme_gen ├── api_reference_gen ├── mkdocs_gen ├── examples_gen ├── _registry_adapters ├── api_changelog_gen ├── config ├── contributing_gen ├── analyzers/ ├── architecture_gen ├── dependency_scanner ├── project_scanner ├── 04_sync_and_watch ├── 05_custom_generators ├── quickstart ├── 06_formatters ├── advanced_usage ├── 03_programmatic_api ├── entry_points ├── 07_web_frameworks ├── basic_usage ├── 01_cli_usage ├── 02_configuration ├── docstring_extractor ├── endpoint_detector ├── llm_helper```
GeneratorRegistry— Registry of documentation generators.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.ReadmeGenerator— Generate README.md from AnalysisResult.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.LLMHelper— Thin wrapper around litellm for documentation generation.
start_watcher(project_path, config)— Start watching project for file changes and auto-resync docs.generate_badges(project_name, badge_types, stats, deps)— Generate shields.io badge Markdown strings.generate_toc(markdown_content, max_depth)— Generate a table of contents from Markdown headings.extract_headings(content, max_depth)— Extract headings from Markdown content.generate_readme(project_path, output, sections, sync_markers)— Convenience function to generate a README.main()— code2docs — Auto-generate project documentation from source code.generate(project_path, config_path, readme_only, sections)— Generate documentation (default command).sync(project_path, config_path, verbose, dry_run)— Synchronize documentation with source code changes.watch(project_path, config_path, verbose)— Watch for file changes and auto-regenerate docs.init(project_path, output)— Initialize code2docs.yaml configuration file.check(project_path, config_path, target)— Health check — verify documentation completeness.diff(project_path, config_path)— Preview what would change without writing anything.generate_docs(project_path, config)— High-level function to generate all documentation.parse_gitignore(project_path)— Parse .gitignore file and return list of patterns to exclude.generate_code2llm_analysis(project_path, config)— Convenience function to generate code2llm analysis.analyze_and_document(project_path, config)— Convenience function: analyze a project in one call.detect_changes_example(project_path)— Detect what files have changed since last documentation generation.update_docs_incrementally(project_path)— Update only the parts of docs that need changing.force_full_regeneration(project_path)— Force full regeneration of all documentation.watch_and_auto_regenerate(project_path, interval)— Watch for file changes and auto-regenerate documentation.custom_watcher_with_hooks(project_path)— Set up a custom watcher with pre/post generation hooks.sync_with_git_changes(project_path)— Only regenerate docs for files changed in git.generate_custom_report(project_path)— Generate a custom metrics report.markdown_formatting_examples()— Demonstrate markdown formatting utilities.generate_complex_document()— Generate a complex markdown document using the formatter.badge_examples()— Generate various badge examples.toc_examples()— Demonstrate table of contents generation.build_custom_readme()— Build a custom README using formatters.generate_readme_simple(project_path)— Generate README.md content from a project.generate_full_documentation(project_path)— Generate complete documentation for a project.custom_documentation_pipeline(project_path)— Create a custom documentation pipeline.inspect_project_structure(project_path)— Inspect project structure from analysis.generate_docs_if_needed(project_path, force)— Only generate docs if code has changed.detect_flask_endpoints(project_path)— Detect Flask endpoints in a project.detect_fastapi_endpoints(project_path)— Detect FastAPI endpoints in a project.generate_api_docs_from_endpoints(project_path, output_dir)— Generate API documentation from detected endpoints.create_example_web_apps(target_dir)— Create example Flask and FastAPI apps for testing.document_web_project(project_path)— Complete workflow: detect endpoints and generate docs.run_cli_basic(project_path)— Run code2docs CLI programmatically.run_cli_with_config(project_path, config_path)— Run with custom configuration.create_basic_config()— Create a basic configuration.create_advanced_config()— Create advanced configuration with all options.save_yaml_config_example(path)— Save example YAML config to file.load_config_from_yaml(path)— Load configuration from YAML file.
📦 code2docs (1 functions)
📄 code2docs.__main__
📦 code2docs.analyzers
📄 code2docs.analyzers.dependency_scanner (10 functions, 3 classes)
📄 code2docs.analyzers.docstring_extractor (10 functions, 2 classes)
📄 code2docs.analyzers.endpoint_detector (3 functions, 2 classes)
📄 code2docs.analyzers.project_scanner (4 functions, 1 classes)
📄 code2docs.base (3 functions, 2 classes)
📄 code2docs.cli (14 functions, 1 classes)
📄 code2docs.config (5 functions, 7 classes)
📄 code2docs.examples.advanced_usage
📄 code2docs.examples.quickstart
📦 code2docs.formatters
📄 code2docs.formatters.badges (2 functions)
📄 code2docs.formatters.markdown (13 functions, 1 classes)
📄 code2docs.formatters.toc (3 functions)
📦 code2docs.generators (1 functions)
📄 code2docs.generators._registry_adapters (35 functions, 15 classes)
📄 code2docs.generators._source_links (6 functions, 1 classes)
📄 code2docs.generators.api_changelog_gen (9 functions, 2 classes)
📄 code2docs.generators.api_reference_gen (12 functions, 1 classes)
📄 code2docs.generators.architecture_gen (10 functions, 1 classes)
📄 code2docs.generators.changelog_gen (6 functions, 2 classes)
📄 code2docs.generators.code2llm_gen (17 functions, 1 classes)
📄 code2docs.generators.config_docs_gen (4 functions, 1 classes)
📄 code2docs.generators.contributing_gen (11 functions, 1 classes)
📄 code2docs.generators.coverage_gen (7 functions, 1 classes)
📄 code2docs.generators.depgraph_gen (9 functions, 1 classes)
📄 code2docs.generators.examples_gen (19 functions, 1 classes)
📄 code2docs.generators.getting_started_gen (14 functions, 1 classes)
📄 code2docs.generators.mkdocs_gen (5 functions, 1 classes)
📄 code2docs.generators.module_docs_gen (20 functions, 1 classes)
📄 code2docs.generators.org_readme_gen (15 functions, 1 classes)
📄 code2docs.generators.readme_gen (22 functions, 1 classes)
📄 code2docs.llm_helper (7 functions, 1 classes)
📄 code2docs.registry (4 functions, 1 classes)
📦 code2docs.sync
📄 code2docs.sync.differ (7 functions, 2 classes)
📄 code2docs.sync.updater (2 functions, 1 classes)
📄 code2docs.sync.watcher (1 functions)
📄 docs.examples.advanced_usage
📄 docs.examples.quickstart
📄 examples.01_cli_usage (2 functions)
📄 examples.02_configuration (4 functions)
📄 examples.03_programmatic_api (5 functions)
📄 examples.04_sync_and_watch (6 functions)
📄 examples.05_custom_generators (13 functions, 3 classes)
📄 examples.06_formatters (5 functions)
📄 examples.07_web_frameworks (5 functions)
📄 examples.advanced_usage
📄 examples.basic_usage
📄 examples.entry_points
📄 examples.quickstart
📄 project
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest- 📖 Full Documentation — API reference, module docs, architecture
- 🚀 Getting Started — Quick start guide
- 📚 API Reference — Complete API documentation
- 🔧 Configuration — Configuration options
- 💡 Examples — Usage examples and code samples
| Output | Description | Link |
|---|---|---|
README.md |
Project overview (this file) | — |
docs/api.md |
Consolidated API reference | View |
docs/modules.md |
Module reference with metrics | View |
docs/architecture.md |
Architecture with diagrams | View |
docs/dependency-graph.md |
Dependency graphs | View |
docs/coverage.md |
Docstring coverage report | View |
docs/getting-started.md |
Getting started guide | View |
docs/configuration.md |
Configuration reference | View |
docs/api-changelog.md |
API change tracking | View |
CONTRIBUTING.md |
Contribution guidelines | View |
examples/ |
Usage examples | Browse |
mkdocs.yml |
MkDocs configuration | — |
Content outside the markers is preserved when regenerating. Enable this with `sync_markers: true` in your configuration.
## Architecture
code2docs/ ├── project ├── quickstart ├── advanced_usage ├── registry ├── base├── code2docs/ ├── main ├── updater ├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc ├── formatters/ ├── readme_gen ├── coverage_gen ├── _source_links ├── depgraph_gen ├── cli ├── getting_started_gen ├── config_docs_gen ├── generators/ ├── changelog_gen ├── code2llm_gen ├── module_docs_gen ├── org_readme_gen ├── api_reference_gen ├── mkdocs_gen ├── examples_gen ├── _registry_adapters ├── config ├── architecture_gen ├── api_changelog_gen ├── analyzers/ ├── contributing_gen ├── endpoint_detector ├── project_scanner ├── 04_sync_and_watch ├── 05_custom_generators ├── quickstart ├── 06_formatters ├── advanced_usage ├── 03_programmatic_api ├── entry_points ├── 07_web_frameworks ├── basic_usage ├── 01_cli_usage ├── 02_configuration ├── dependency_scanner ├── docstring_extractor ├── llm_helper```
GeneratorRegistry— Registry of documentation generators.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.ReadmeGenerator— Generate README.md from AnalysisResult.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.LLMHelper— Thin wrapper around litellm for documentation generation.
start_watcher(project_path, config)— Start watching project for file changes and auto-resync docs.generate_badges(project_name, badge_types, stats, deps)— Generate shields.io badge Markdown strings.generate_toc(markdown_content, max_depth)— Generate a table of contents from Markdown headings.extract_headings(content, max_depth)— Extract headings from Markdown content.generate_readme(project_path, output, sections, sync_markers)— Convenience function to generate a README.main()— code2docs — Auto-generate project documentation from source code.generate(project_path, config_path, readme_only, sections)— Generate documentation (default command).sync(project_path, config_path, verbose, dry_run)— Synchronize documentation with source code changes.watch(project_path, config_path, verbose)— Watch for file changes and auto-regenerate docs.init(project_path, output)— Initialize code2docs.yaml configuration file.check(project_path, config_path, target)— Health check — verify documentation completeness.diff(project_path, config_path)— Preview what would change without writing anything.generate_docs(project_path, config)— High-level function to generate all documentation.parse_gitignore(project_path)— Parse .gitignore file and return list of patterns to exclude.generate_code2llm_analysis(project_path, config)— Convenience function to generate code2llm analysis.analyze_and_document(project_path, config)— Convenience function: analyze a project in one call.detect_changes_example(project_path)— Detect what files have changed since last documentation generation.update_docs_incrementally(project_path)— Update only the parts of docs that need changing.force_full_regeneration(project_path)— Force full regeneration of all documentation.watch_and_auto_regenerate(project_path, interval)— Watch for file changes and auto-regenerate documentation.custom_watcher_with_hooks(project_path)— Set up a custom watcher with pre/post generation hooks.sync_with_git_changes(project_path)— Only regenerate docs for files changed in git.generate_custom_report(project_path)— Generate a custom metrics report.markdown_formatting_examples()— Demonstrate markdown formatting utilities.generate_complex_document()— Generate a complex markdown document using the formatter.badge_examples()— Generate various badge examples.toc_examples()— Demonstrate table of contents generation.build_custom_readme()— Build a custom README using formatters.generate_readme_simple(project_path)— Generate README.md content from a project.generate_full_documentation(project_path)— Generate complete documentation for a project.custom_documentation_pipeline(project_path)— Create a custom documentation pipeline.inspect_project_structure(project_path)— Inspect project structure from analysis.generate_docs_if_needed(project_path, force)— Only generate docs if code has changed.detect_flask_endpoints(project_path)— Detect Flask endpoints in a project.detect_fastapi_endpoints(project_path)— Detect FastAPI endpoints in a project.generate_api_docs_from_endpoints(project_path, output_dir)— Generate API documentation from detected endpoints.create_example_web_apps(target_dir)— Create example Flask and FastAPI apps for testing.document_web_project(project_path)— Complete workflow: detect endpoints and generate docs.run_cli_basic(project_path)— Run code2docs CLI programmatically.run_cli_with_config(project_path, config_path)— Run with custom configuration.create_basic_config()— Create a basic configuration.create_advanced_config()— Create advanced configuration with all options.save_yaml_config_example(path)— Save example YAML config to file.load_config_from_yaml(path)— Load configuration from YAML file.
📦 code2docs (1 functions)
📄 code2docs.__main__
📦 code2docs.analyzers
📄 code2docs.analyzers.dependency_scanner (10 functions, 3 classes)
📄 code2docs.analyzers.docstring_extractor (10 functions, 2 classes)
📄 code2docs.analyzers.endpoint_detector (3 functions, 2 classes)
📄 code2docs.analyzers.project_scanner (4 functions, 1 classes)
📄 code2docs.base (3 functions, 2 classes)
📄 code2docs.cli (14 functions, 1 classes)
📄 code2docs.config (5 functions, 7 classes)
📄 code2docs.examples.advanced_usage
📄 code2docs.examples.quickstart
📦 code2docs.formatters
📄 code2docs.formatters.badges (2 functions)
📄 code2docs.formatters.markdown (13 functions, 1 classes)
📄 code2docs.formatters.toc (3 functions)
📦 code2docs.generators (1 functions)
📄 code2docs.generators._registry_adapters (35 functions, 15 classes)
📄 code2docs.generators._source_links (6 functions, 1 classes)
📄 code2docs.generators.api_changelog_gen (9 functions, 2 classes)
📄 code2docs.generators.api_reference_gen (12 functions, 1 classes)
📄 code2docs.generators.architecture_gen (10 functions, 1 classes)
📄 code2docs.generators.changelog_gen (6 functions, 2 classes)
📄 code2docs.generators.code2llm_gen (17 functions, 1 classes)
📄 code2docs.generators.config_docs_gen (4 functions, 1 classes)
📄 code2docs.generators.contributing_gen (11 functions, 1 classes)
📄 code2docs.generators.coverage_gen (7 functions, 1 classes)
📄 code2docs.generators.depgraph_gen (9 functions, 1 classes)
📄 code2docs.generators.examples_gen (19 functions, 1 classes)
📄 code2docs.generators.getting_started_gen (14 functions, 1 classes)
📄 code2docs.generators.mkdocs_gen (5 functions, 1 classes)
📄 code2docs.generators.module_docs_gen (20 functions, 1 classes)
📄 code2docs.generators.org_readme_gen (15 functions, 1 classes)
📄 code2docs.generators.readme_gen (22 functions, 1 classes)
📄 code2docs.llm_helper (7 functions, 1 classes)
📄 code2docs.registry (4 functions, 1 classes)
📦 code2docs.sync
📄 code2docs.sync.differ (7 functions, 2 classes)
📄 code2docs.sync.updater (2 functions, 1 classes)
📄 code2docs.sync.watcher (1 functions)
📄 docs.examples.advanced_usage
📄 docs.examples.quickstart
📄 examples.01_cli_usage (2 functions)
📄 examples.02_configuration (4 functions)
📄 examples.03_programmatic_api (5 functions)
📄 examples.04_sync_and_watch (6 functions)
📄 examples.05_custom_generators (13 functions, 3 classes)
📄 examples.06_formatters (5 functions)
📄 examples.07_web_frameworks (5 functions)
📄 examples.advanced_usage
📄 examples.basic_usage
📄 examples.entry_points
📄 examples.quickstart
📄 project
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
code2docs/
├── project ├── advanced_usage ├── quickstart ├── registry ├── base├── code2docs/ ├── __main__ ├── updater ├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc ├── formatters/ ├── readme_gen ├── coverage_gen ├── _source_links ├── depgraph_gen ├── getting_started_gen ├── cli ├── config_docs_gen ├── generators/ ├── code2llm_gen ├── changelog_gen ├── module_docs_gen ├── org_readme_gen ├── api_reference_gen ├── mkdocs_gen ├── config ├── examples_gen ├── _registry_adapters ├── contributing_gen ├── api_changelog_gen ├── analyzers/ ├── architecture_gen ├── docstring_extractor ├── project_scanner ├── 04_sync_and_watch ├── 05_custom_generators ├── quickstart ├── 06_formatters ├── advanced_usage ├── 03_programmatic_api ├── entry_points ├── 07_web_frameworks ├── basic_usage ├── 01_cli_usage ├── 02_configuration ├── dependency_scanner ├── endpoint_detector ├── llm_helper```
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Project Structure
📦 `code2docs` (1 functions)
📄 `code2docs.__main__`
📦 `code2docs.analyzers`
📄 `code2docs.analyzers.dependency_scanner` (10 functions, 3 classes)
📄 `code2docs.analyzers.docstring_extractor` (10 functions, 2 classes)
📄 `code2docs.analyzers.endpoint_detector` (3 functions, 2 classes)
📄 `code2docs.analyzers.project_scanner` (4 functions, 1 classes)
📄 `code2docs.base` (3 functions, 2 classes)
📄 `code2docs.cli` (14 functions, 1 classes)
📄 `code2docs.config` (5 functions, 7 classes)
📄 `code2docs.examples.advanced_usage`
📄 `code2docs.examples.quickstart`
📦 `code2docs.formatters`
📄 `code2docs.formatters.badges` (2 functions)
📄 `code2docs.formatters.markdown` (13 functions, 1 classes)
📄 `code2docs.formatters.toc` (3 functions)
📦 `code2docs.generators` (1 functions)
📄 `code2docs.generators._registry_adapters` (31 functions, 15 classes)
📄 `code2docs.generators._source_links` (6 functions, 1 classes)
📄 `code2docs.generators.api_changelog_gen` (9 functions, 2 classes)
📄 `code2docs.generators.api_reference_gen` (7 functions, 1 classes)
📄 `code2docs.generators.architecture_gen` (10 functions, 1 classes)
📄 `code2docs.generators.changelog_gen` (6 functions, 2 classes)
📄 `code2docs.generators.code2llm_gen` (6 functions, 1 classes)
📄 `code2docs.generators.config_docs_gen` (4 functions, 1 classes)
📄 `code2docs.generators.contributing_gen` (8 functions, 1 classes)
📄 `code2docs.generators.coverage_gen` (7 functions, 1 classes)
📄 `code2docs.generators.depgraph_gen` (9 functions, 1 classes)
📄 `code2docs.generators.examples_gen` (15 functions, 1 classes)
📄 `code2docs.generators.getting_started_gen` (8 functions, 1 classes)
📄 `code2docs.generators.mkdocs_gen` (5 functions, 1 classes)
📄 `code2docs.generators.module_docs_gen` (9 functions, 1 classes)
📄 `code2docs.generators.org_readme_gen` (10 functions, 1 classes)
📄 `code2docs.generators.readme_gen` (18 functions, 1 classes)
📄 `code2docs.llm_helper` (7 functions, 1 classes)
📄 `code2docs.registry` (4 functions, 1 classes)
📦 `code2docs.sync`
📄 `code2docs.sync.differ` (7 functions, 2 classes)
📄 `code2docs.sync.updater` (2 functions, 1 classes)
📄 `code2docs.sync.watcher` (1 functions)
📄 `docs.examples.advanced_usage`
📄 `docs.examples.quickstart`
📄 `examples.01_cli_usage` (2 functions)
📄 `examples.02_configuration` (4 functions)
📄 `examples.03_programmatic_api` (5 functions)
📄 `examples.04_sync_and_watch` (6 functions)
📄 `examples.05_custom_generators` (13 functions, 3 classes)
📄 `examples.06_formatters` (5 functions)
📄 `examples.07_web_frameworks` (5 functions)
📄 `examples.advanced_usage`
📄 `examples.basic_usage`
📄 `examples.entry_points`
📄 `examples.quickstart`
📄 `project`
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Architecture
code2docs/ ├── project ├── quickstart ├── advanced_usage ├── registry ├── base├── code2docs/ ├── main ├── updater ├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc ├── formatters/ ├── cli ├── readme_gen ├── coverage_gen ├── _source_links ├── depgraph_gen ├── getting_started_gen ├── config_docs_gen ├── changelog_gen ├── generators/ ├── code2llm_gen ├── module_docs_gen ├── api_reference_gen ├── org_readme_gen ├── mkdocs_gen ├── _registry_adapters ├── api_changelog_gen ├── config ├── contributing_gen ├── examples_gen ├── analyzers/ ├── architecture_gen ├── dependency_scanner ├── endpoint_detector ├── 04_sync_and_watch ├── 05_custom_generators ├── quickstart ├── project_scanner ├── advanced_usage ├── 06_formatters ├── entry_points ├── 03_programmatic_api ├── basic_usage ├── 01_cli_usage ├── 07_web_frameworks ├── 02_configuration ├── docstring_extractor ├── llm_helper```
GeneratorRegistry— Registry of documentation generators.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.ReadmeGenerator— Generate README.md from AnalysisResult.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.LLMHelper— Thin wrapper around litellm for documentation generation.
start_watcher(project_path, config)— Start watching project for file changes and auto-resync docs.generate_badges(project_name, badge_types, stats, deps)— Generate shields.io badge Markdown strings.generate_toc(markdown_content, max_depth)— Generate a table of contents from Markdown headings.extract_headings(content, max_depth)— Extract headings from Markdown content.main()— code2docs — Auto-generate project documentation from source code.generate(project_path, config_path, readme_only, sections)— Generate documentation (default command).sync(project_path, config_path, verbose, dry_run)— Synchronize documentation with source code changes.watch(project_path, config_path, verbose)— Watch for file changes and auto-regenerate docs.init(project_path, output)— Initialize code2docs.yaml configuration file.check(project_path, config_path, target)— Health check — verify documentation completeness.diff(project_path, config_path)— Preview what would change without writing anything.generate_readme(project_path, output, sections, sync_markers)— Convenience function to generate a README.generate_docs(project_path, config)— High-level function to generate all documentation.parse_gitignore(project_path)— Parse .gitignore file and return list of patterns to exclude.generate_code2llm_analysis(project_path, config)— Convenience function to generate code2llm analysis.detect_changes_example(project_path)— Detect what files have changed since last documentation generation.update_docs_incrementally(project_path)— Update only the parts of docs that need changing.force_full_regeneration(project_path)— Force full regeneration of all documentation.watch_and_auto_regenerate(project_path, interval)— Watch for file changes and auto-regenerate documentation.custom_watcher_with_hooks(project_path)— Set up a custom watcher with pre/post generation hooks.sync_with_git_changes(project_path)— Only regenerate docs for files changed in git.generate_custom_report(project_path)— Generate a custom metrics report.analyze_and_document(project_path, config)— Convenience function: analyze a project in one call.markdown_formatting_examples()— Demonstrate markdown formatting utilities.generate_complex_document()— Generate a complex markdown document using the formatter.badge_examples()— Generate various badge examples.toc_examples()— Demonstrate table of contents generation.build_custom_readme()— Build a custom README using formatters.generate_readme_simple(project_path)— Generate README.md content from a project.generate_full_documentation(project_path)— Generate complete documentation for a project.custom_documentation_pipeline(project_path)— Create a custom documentation pipeline.inspect_project_structure(project_path)— Inspect project structure from analysis.generate_docs_if_needed(project_path, force)— Only generate docs if code has changed.run_cli_basic(project_path)— Run code2docs CLI programmatically.run_cli_with_config(project_path, config_path)— Run with custom configuration.detect_flask_endpoints(project_path)— Detect Flask endpoints in a project.detect_fastapi_endpoints(project_path)— Detect FastAPI endpoints in a project.generate_api_docs_from_endpoints(project_path, output_dir)— Generate API documentation from detected endpoints.create_example_web_apps(target_dir)— Create example Flask and FastAPI apps for testing.document_web_project(project_path)— Complete workflow: detect endpoints and generate docs.create_basic_config()— Create a basic configuration.create_advanced_config()— Create advanced configuration with all options.save_yaml_config_example(path)— Save example YAML config to file.load_config_from_yaml(path)— Load configuration from YAML file.
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
GeneratorRegistry— Registry of documentation generators.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.ReadmeGenerator— Generate README.md from AnalysisResult.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.LLMHelper— Thin wrapper around litellm for documentation generation.
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
code2docs/
├── project ├── quickstart ├── advanced_usage ├── registry ├── base├── code2docs/ ├── __main__ ├── updater ├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc ├── formatters/ ├── config ├── coverage_gen ├── _source_links ├── depgraph_gen ├── getting_started_gen ├── config_docs_gen ├── changelog_gen ├── generators/ ├── code2llm_gen ├── module_docs_gen ├── org_readme_gen ├── api_reference_gen ├── readme_gen ├── mkdocs_gen ├── examples_gen ├── api_changelog_gen ├── _registry_adapters ├── contributing_gen ├── architecture_gen ├── analyzers/ ├── docstring_extractor ├── endpoint_detector ├── dependency_scanner ├── cli ├── 04_sync_and_watch ├── quickstart ├── 05_custom_generators ├── 06_formatters ├── advanced_usage ├── entry_points ├── 03_programmatic_api ├── class_examples ├── basic_usage ├── 07_web_frameworks ├── 01_cli_usage ├── 02_configuration ├── project_scanner ├── llm_helper```
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Architecture
code2docs/ ├── registry ├── base├── code2docs/ ├── main ├── 04_sync_and_watch ├── 05_custom_generators ├── quickstart ├── 06_formatters ├── advanced_usage ├── 03_programmatic_api ├── entry_points ├── 07_web_frameworks ├── class_examples ├── basic_usage ├── 01_cli_usage ├── 02_configuration ├── updater ├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc ├── formatters/ ├── cli ├── coverage_gen ├── _source_links ├── readme_gen ├── depgraph_gen ├── config_docs_gen ├── getting_started_gen ├── generators/ ├── code2llm_gen ├── module_docs_gen ├── changelog_gen ├── org_readme_gen ├── config ├── mkdocs_gen ├── api_reference_gen ├── examples_gen ├── api_changelog_gen ├── contributing_gen ├── _registry_adapters ├── architecture_gen ├── analyzers/ ├── endpoint_detector ├── project_scanner ├── quickstart├── project ├── docstring_extractor ├── dependency_scanner ├── llm_helper```
GeneratorRegistry— Registry of documentation generators.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).ReadmeGenerator— Generate README.md from AnalysisResult.DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.LLMHelper— Thin wrapper around litellm for documentation generation.
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
GeneratorRegistry— Registry of documentation generators.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.MetricsReportGenerator— Generate a metrics report from code analysis.APIChangelogGenerator— Generate changelog based on API changes.CustomGenerator— Example of extending the base generator class.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.ReadmeGenerator— Generate README.md from AnalysisResult.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).CoverageGenerator— Generate docs/coverage.md — docstring coverage report.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.IndexHtmlAdapter— Adapter for generating index.html for GitHub Pages browsing.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.LLMHelper— Thin wrapper around litellm for documentation generation.
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
code2docs/
├── registry ├── llm_helper├── code2docs/ ├── __main__ ├── 04_sync_and_watch ├── 05_custom_generators ├── quickstart ├── 06_formatters ├── advanced_usage ├── 03_programmatic_api ├── entry_points ├── 07_web_frameworks ├── class_examples ├── basic_usage ├── 01_cli_usage ├── 02_configuration ├── updater ├── sync/ ├── watcher ├── base ├── quickstart ├── advanced_usage ├── markdown ├── differ ├── badges ├── formatters/ ├── toc ├── coverage_gen ├── _source_links ├── depgraph_gen ├── readme_gen ├── config_docs_gen ├── getting_started_gen ├── generators/ ├── changelog_gen ├── code2llm_gen ├── module_docs_gen ├── org_readme_gen ├── api_reference_gen ├── mkdocs_gen ├── examples_gen ├── cli ├── _registry_adapters ├── api_changelog_gen ├── contributing_gen ├── analyzers/ ├── architecture_gen ├── config ├── project_scanner ├── quickstart├── project ├── docstring_extractor ├── dependency_scanner ├── endpoint_detector```
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
- **`MetricsReportGenerator`** — Generate a metrics report from code analysis.
- **`APIChangelogGenerator`** — Generate changelog based on API changes.
- **`CustomGenerator`** — Example of extending the base generator class.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`IndexHtmlAdapter`** — Adapter for generating index.html for GitHub Pages browsing.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Requirements
- Python >= >=3.9
- code2llm >=0.5.0- jinja2 >=3.1- click >=8.0- pyyaml >=6.0- rich >=13.0
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Architecture
code2docs/ ├── registry├── llm_helper├── code2docs/ ├── updater├── sync/ ├── watcher ├── differ ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc├── formatters/├── base ├── readme_gen ├── coverage_gen ├── _source_links ├── depgraph_gen ├── getting_started_gen ├── config_docs_gen├── generators/ ├── changelog_gen ├── code2llm_gen ├── module_docs_gen ├── org_readme_gen ├── api_reference_gen ├── mkdocs_gen ├── examples_gen ├── _registry_adapters ├── api_changelog_gen ├── architecture_gen ├── contributing_gen├── analyzers/├── cli├── config ├── project_scanner ├── docstring_extractor ├── dependency_scanner ├── endpoint_detector```
GeneratorRegistry— Registry of documentation generators.LLMHelper— Thin wrapper around litellm for documentation generation.Updater— Apply selective documentation updates based on detected changes.ChangeInfo— Describes a detected change.Differ— Detect changes between current source and previous state.MarkdownFormatter— Helper for constructing Markdown documents.GenerateContext— Shared context passed to all generators during a run.BaseGenerator— Abstract base for all documentation generators.ReadmeGenerator— Generate README.md from AnalysisResult.CoverageGenerator— Generate docs/coverage.md — docstring coverage report.SourceLinker— Build source-code links (relative paths + optional GitHub/GitLab URLs).DepGraphGenerator— Generate docs/dependency-graph.md with Mermaid diagrams.GettingStartedGenerator— Generate docs/getting-started.md from entry points and dependencies.ConfigDocsGenerator— Generate docs/configuration.md from Code2DocsConfig dataclass.ChangelogEntry— A single changelog entry.ChangelogGenerator— Generate CHANGELOG.md from git log and analysis diff.Code2LlmGenerator— Generate code2llm analysis files in project/ directory.ModuleDocsGenerator— Generate docs/modules.md — consolidated module documentation.OrgReadmeGenerator— Generate organization README with list of projects and brief descriptions.ApiReferenceGenerator— Generate docs/api.md — consolidated API reference.MkDocsGenerator— Generate mkdocs.yml from the docs/ directory structure.ExamplesGenerator— Generate examples/ — usage examples from public API signatures.ReadmeGeneratorAdapter— —ApiReferenceAdapter— —ModuleDocsAdapter— —ArchitectureAdapter— —DepGraphAdapter— —CoverageAdapter— —ApiChangelogAdapter— —ExamplesAdapter— —MkDocsAdapter— —GettingStartedAdapter— —ConfigDocsAdapter— —ContributingAdapter— —Code2LlmAdapter— Adapter for code2llm analysis generation.OrgReadmeAdapter— Adapter for organization README generation.ApiChange— A single API change between two analysis snapshots.ApiChangelogGenerator— Generate API changelog by diffing current analysis with a saved snapshot.ArchitectureGenerator— Generate docs/architecture.md — architecture overview with diagrams.ContributingGenerator— Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.DefaultGroup— Click Group that routes unknown subcommands to 'generate'.ReadmeConfig— Configuration for README generation.DocsConfig— Configuration for docs/ generation.ExamplesConfig— Configuration for examples/ generation.SyncConfig— Configuration for synchronization.Code2LlmConfig— Configuration for code2llm analysis generation.LLMConfig— Configuration for optional LLM-assisted documentation generation.Code2DocsConfig— Main configuration for code2docs.ProjectScanner— Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.DocstringInfo— Parsed docstring with sections.DocstringExtractor— Extract and parse docstrings from AnalysisResult.DependencyInfo— Information about a project dependency.ProjectDependencies— All detected project dependencies.DependencyScanner— Scan and parse project dependency files.Endpoint— Represents a detected web endpoint.EndpointDetector— Detects web endpoints from decorator patterns in source code.
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
Contributors:
- Tom Softreck tom@sapletta.com
- Tom Sapletta tom-sapletta-com@users.noreply.github.com
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/wronai/code2docs cd code2docs
pip install -e ".[dev]"
code2docs/
├── registry├── llm_helper├── code2docs/ ├── updater├── sync/ ├── watcher├── base ├── quickstart ├── advanced_usage ├── markdown ├── badges ├── toc├── formatters/ ├── differ ├── coverage_gen ├── readme_gen ├── _source_links ├── depgraph_gen ├── config_docs_gen ├── getting_started_gen ├── changelog_gen├── generators/ ├── code2llm_gen ├── org_readme_gen ├── module_docs_gen ├── api_reference_gen├── cli ├── mkdocs_gen ├── api_changelog_gen ├── _registry_adapters ├── examples_gen ├── contributing_gen├── analyzers/ ├── architecture_gen├── config ├── project_scanner ├── endpoint_detector ├── docstring_extractor ├── dependency_scanner```
### Classes
- **`GeneratorRegistry`** — Registry of documentation generators.
- **`LLMHelper`** — Thin wrapper around litellm for documentation generation.
- **`Updater`** — Apply selective documentation updates based on detected changes.
- **`GenerateContext`** — Shared context passed to all generators during a run.
- **`BaseGenerator`** — Abstract base for all documentation generators.
- **`MarkdownFormatter`** — Helper for constructing Markdown documents.
- **`ChangeInfo`** — Describes a detected change.
- **`Differ`** — Detect changes between current source and previous state.
- **`CoverageGenerator`** — Generate docs/coverage.md — docstring coverage report.
- **`ReadmeGenerator`** — Generate README.md from AnalysisResult.
- **`SourceLinker`** — Build source-code links (relative paths + optional GitHub/GitLab URLs).
- **`DepGraphGenerator`** — Generate docs/dependency-graph.md with Mermaid diagrams.
- **`ConfigDocsGenerator`** — Generate docs/configuration.md from Code2DocsConfig dataclass.
- **`GettingStartedGenerator`** — Generate docs/getting-started.md from entry points and dependencies.
- **`ChangelogEntry`** — A single changelog entry.
- **`ChangelogGenerator`** — Generate CHANGELOG.md from git log and analysis diff.
- **`Code2LlmGenerator`** — Generate code2llm analysis files in project/ directory.
- **`OrgReadmeGenerator`** — Generate organization README with list of projects and brief descriptions.
- **`ModuleDocsGenerator`** — Generate docs/modules.md — consolidated module documentation.
- **`ApiReferenceGenerator`** — Generate docs/api.md — consolidated API reference.
- **`DefaultGroup`** — Click Group that routes unknown subcommands to 'generate'.
- **`MkDocsGenerator`** — Generate mkdocs.yml from the docs/ directory structure.
- **`ApiChange`** — A single API change between two analysis snapshots.
- **`ApiChangelogGenerator`** — Generate API changelog by diffing current analysis with a saved snapshot.
- **`ReadmeGeneratorAdapter`** — —
- **`ApiReferenceAdapter`** — —
- **`ModuleDocsAdapter`** — —
- **`ArchitectureAdapter`** — —
- **`DepGraphAdapter`** — —
- **`CoverageAdapter`** — —
- **`ApiChangelogAdapter`** — —
- **`ExamplesAdapter`** — —
- **`MkDocsAdapter`** — —
- **`GettingStartedAdapter`** — —
- **`ConfigDocsAdapter`** — —
- **`ContributingAdapter`** — —
- **`Code2LlmAdapter`** — Adapter for code2llm analysis generation.
- **`OrgReadmeAdapter`** — Adapter for organization README generation.
- **`ExamplesGenerator`** — Generate examples/ — usage examples from public API signatures.
- **`ContributingGenerator`** — Generate CONTRIBUTING.md by detecting dev tools from pyproject.toml.
- **`ArchitectureGenerator`** — Generate docs/architecture.md — architecture overview with diagrams.
- **`ReadmeConfig`** — Configuration for README generation.
- **`DocsConfig`** — Configuration for docs/ generation.
- **`ExamplesConfig`** — Configuration for examples/ generation.
- **`SyncConfig`** — Configuration for synchronization.
- **`Code2LlmConfig`** — Configuration for code2llm analysis generation.
- **`LLMConfig`** — Configuration for optional LLM-assisted documentation generation.
- **`Code2DocsConfig`** — Main configuration for code2docs.
- **`ProjectScanner`** — Wraps code2llm's ProjectAnalyzer with code2docs-specific defaults.
- **`Endpoint`** — Represents a detected web endpoint.
- **`EndpointDetector`** — Detects web endpoints from decorator patterns in source code.
- **`DocstringInfo`** — Parsed docstring with sections.
- **`DocstringExtractor`** — Extract and parse docstrings from AnalysisResult.
- **`DependencyInfo`** — Information about a project dependency.
- **`ProjectDependencies`** — All detected project dependencies.
- **`DependencyScanner`** — Scan and parse project dependency files.
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"
## Contributing
**Contributors:**
- Tom Softreck <tom@sapletta.com>
- Tom Sapletta <tom-sapletta-com@users.noreply.github.com>
We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
# Clone the repository
git clone https://github.com/wronai/code2docs
cd code2docs
# Install in development mode
pip install -e ".[dev]"