Skip to content

Commit c47cb34

Browse files
draft
1 parent 9587b33 commit c47cb34

8 files changed

Lines changed: 556 additions & 90 deletions

File tree

docs/README.md

Lines changed: 466 additions & 0 deletions
Large diffs are not rendered by default.

project/calls.mmd

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,40 @@ flowchart LR
33
code2docs__analyzers__project_scanner__ProjectScanner__analyze["analyze"]
44
end
55
subgraph code2docs__cli
6-
code2docs__cli__check["check"]
6+
code2docs__cli___run_diff["_run_diff"]
7+
code2docs__cli___run_sync["_run_sync"]
8+
code2docs__cli__diff["diff"]
79
code2docs__cli___load_config["_load_config"]
8-
code2docs__cli___run_watch["_run_watch"]
9-
code2docs__cli__watch["watch"]
1010
code2docs__cli___run_check["_run_check"]
11-
code2docs__cli__diff["diff"]
12-
code2docs__cli___run_diff["_run_diff"]
11+
code2docs__cli___run_watch["_run_watch"]
1312
code2docs__cli__sync["sync"]
14-
code2docs__cli___run_sync["_run_sync"]
13+
code2docs__cli__check["check"]
14+
code2docs__cli__watch["watch"]
1515
end
1616
subgraph code2docs__config
1717
code2docs__config__Code2DocsConfig__from_yaml["from_yaml"]
1818
end
1919
subgraph code2docs__formatters
2020
code2docs__formatters__badges__generate_badges["generate_badges"]
21-
code2docs__formatters__toc__extract_headings["extract_headings"]
21+
code2docs__formatters__badges___make_badge["_make_badge"]
2222
code2docs__formatters__toc__generate_toc["generate_toc"]
23+
code2docs__formatters__toc__extract_headings["extract_headings"]
2324
code2docs__formatters__toc___slugify["_slugify"]
24-
code2docs__formatters__badges___make_badge["_make_badge"]
2525
end
2626
subgraph code2docs__generators
27-
code2docs__generators__contributing_gen__ContributingGenerator___get_jsts_style_lines["_get_jsts_style_lines"]
28-
code2docs__generators__code2llm_gen___process_line["_process_line"]
29-
code2docs__generators__contributing_gen__ContributingGenerator___render_code_style["_render_code_style"]
3027
code2docs__generators__code2llm_gen___is_valid_pattern["_is_valid_pattern"]
31-
code2docs__generators__readme_gen__generate_readme["generate_readme"]
32-
code2docs__generators__code2llm_gen___clean_pattern["_clean_pattern"]
33-
code2docs__generators__contributing_gen__ContributingGenerator___get_python_style_lines["_get_python_style_lines"]
34-
code2docs__generators__code2llm_gen__parse_gitignore["parse_gitignore"]
3528
code2docs__generators__code2llm_gen__Code2LlmGenerator___add_exclude_patterns["_add_exclude_patterns"]
36-
code2docs__generators__code2llm_gen___extract_patterns["_extract_patterns"]
29+
code2docs__generators__contributing_gen__ContributingGenerator___get_python_style_lines["_get_python_style_lines"]
30+
code2docs__generators__code2llm_gen___clean_pattern["_clean_pattern"]
31+
code2docs__generators__readme_gen__generate_readme["generate_readme"]
3732
code2docs__generators__contributing_gen__ContributingGenerator___get_style_lines["_get_style_lines"]
33+
code2docs__generators__contributing_gen__ContributingGenerator___render_code_style["_render_code_style"]
34+
code2docs__generators__code2llm_gen__parse_gitignore["parse_gitignore"]
3835
code2docs__generators__code2llm_gen___should_skip_line["_should_skip_line"]
36+
code2docs__generators__code2llm_gen___extract_patterns["_extract_patterns"]
37+
code2docs__generators__code2llm_gen___process_line["_process_line"]
3938
code2docs__generators__readme_gen__ReadmeGenerator___build_context["_build_context"]
39+
code2docs__generators__contributing_gen__ContributingGenerator___get_jsts_style_lines["_get_jsts_style_lines"]
4040
end
4141
subgraph code2docs__llm_helper
4242
code2docs__llm_helper__LLMHelper__complete["complete"]
@@ -49,11 +49,11 @@ flowchart LR
4949
examples__02_configuration__load_config_from_yaml["load_config_from_yaml"]
5050
end
5151
subgraph examples__03_programmatic_api
52-
examples__03_programmatic_api__generate_full_documentation["generate_full_documentation"]
53-
examples__03_programmatic_api__generate_docs_if_needed["generate_docs_if_needed"]
54-
examples__03_programmatic_api__custom_documentation_pipeline["custom_documentation_pipeline"]
5552
examples__03_programmatic_api__inspect_project_structure["inspect_project_structure"]
53+
examples__03_programmatic_api__custom_documentation_pipeline["custom_documentation_pipeline"]
54+
examples__03_programmatic_api__generate_docs_if_needed["generate_docs_if_needed"]
5655
examples__03_programmatic_api__generate_readme_simple["generate_readme_simple"]
56+
examples__03_programmatic_api__generate_full_documentation["generate_full_documentation"]
5757
end
5858
subgraph examples__04_sync_and_watch
5959
examples__04_sync_and_watch__watch_and_auto_regenerate["watch_and_auto_regenerate"]
@@ -62,15 +62,15 @@ flowchart LR
6262
examples__05_custom_generators__generate_custom_report["generate_custom_report"]
6363
end
6464
subgraph examples__06_formatters
65+
examples__06_formatters__build_custom_readme["build_custom_readme"]
6566
examples__06_formatters__toc_examples["toc_examples"]
6667
examples__06_formatters__badge_examples["badge_examples"]
67-
examples__06_formatters__build_custom_readme["build_custom_readme"]
6868
end
6969
subgraph examples__07_web_frameworks
70-
examples__07_web_frameworks__generate_api_docs_from_endpoints["generate_api_docs_from_endpoin"]
71-
examples__07_web_frameworks__document_web_project["document_web_project"]
72-
examples__07_web_frameworks__detect_fastapi_endpoints["detect_fastapi_endpoints"]
7370
examples__07_web_frameworks__detect_flask_endpoints["detect_flask_endpoints"]
71+
examples__07_web_frameworks__detect_fastapi_endpoints["detect_fastapi_endpoints"]
72+
examples__07_web_frameworks__document_web_project["document_web_project"]
73+
examples__07_web_frameworks__generate_api_docs_from_endpoints["generate_api_docs_from_endpoin"]
7474
end
7575
code2docs__formatters__badges__generate_badges --> code2docs__formatters__badges___make_badge
7676
code2docs__formatters__toc__generate_toc --> code2docs__formatters__toc__extract_headings

project/calls.png

-8.29 KB
Loading

project/context.md

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@
4343
- **Classes**: 1
4444
- **File**: `org_readme_gen.py`
4545

46-
### code2docs.cli
46+
### code2docs.generators.getting_started_gen
4747
- **Functions**: 14
4848
- **Classes**: 1
49-
- **File**: `cli.py`
49+
- **File**: `getting_started_gen.py`
5050

51-
### code2docs.generators.getting_started_gen
51+
### code2docs.cli
5252
- **Functions**: 14
5353
- **Classes**: 1
54-
- **File**: `getting_started_gen.py`
54+
- **File**: `cli.py`
5555

5656
### code2docs.formatters.markdown
5757
- **Functions**: 13
@@ -78,16 +78,16 @@
7878
- **Classes**: 1
7979
- **File**: `architecture_gen.py`
8080

81-
### code2docs.analyzers.dependency_scanner
82-
- **Functions**: 10
83-
- **Classes**: 3
84-
- **File**: `dependency_scanner.py`
85-
8681
### code2docs.analyzers.docstring_extractor
8782
- **Functions**: 10
8883
- **Classes**: 2
8984
- **File**: `docstring_extractor.py`
9085

86+
### code2docs.analyzers.dependency_scanner
87+
- **Functions**: 10
88+
- **Classes**: 3
89+
- **File**: `dependency_scanner.py`
90+
9191
### code2docs.generators.depgraph_gen
9292
- **Functions**: 9
9393
- **Classes**: 1
@@ -117,14 +117,14 @@
117117

118118
Main execution flows into the system:
119119

120-
### code2docs.generators.examples_gen.ExamplesGenerator._generate_quickstart
121-
> Generate quickstart.py — minimal working example.
122-
- **Calls**: self._find_convenience_functions, self._find_api_classes, set, lines.extend, lines.append, self._find_class_by_name, lines.append, lines.append
123-
124120
### code2docs.config.Code2DocsConfig.from_yaml
125121
> Load configuration from code2docs.yaml.
126122
- **Calls**: Path, cls, data.get, project.get, project.get, project.get, project.get, project.get
127123

124+
### code2docs.generators.examples_gen.ExamplesGenerator._generate_quickstart
125+
> Generate quickstart.py — minimal working example.
126+
- **Calls**: self._find_convenience_functions, self._find_api_classes, set, lines.extend, lines.append, self._find_class_by_name, lines.append, lines.append
127+
128128
### code2docs.generators.architecture_gen.ArchitectureGenerator.generate
129129
> Generate architecture documentation.
130130
- **Calls**: lines.append, self._generate_llm_summary, lines.append, self._detect_layers, lines.append, lines.append, lines.append, lines.append
@@ -241,14 +241,14 @@ Main execution flows into the system:
241241

242242
Key execution flows identified:
243243

244-
### Flow 1: _generate_quickstart
244+
### Flow 1: from_yaml
245245
```
246-
_generate_quickstart [code2docs.generators.examples_gen.ExamplesGenerator]
246+
from_yaml [code2docs.config.Code2DocsConfig]
247247
```
248248

249-
### Flow 2: from_yaml
249+
### Flow 2: _generate_quickstart
250250
```
251-
from_yaml [code2docs.config.Code2DocsConfig]
251+
_generate_quickstart [code2docs.generators.examples_gen.ExamplesGenerator]
252252
```
253253

254254
### Flow 3: generate
@@ -345,16 +345,16 @@ This generator wraps the code2llm CLI to pr
345345
- **Methods**: 10
346346
- **Key Methods**: code2docs.generators.architecture_gen.ArchitectureGenerator.__init__, code2docs.generators.architecture_gen.ArchitectureGenerator.generate, code2docs.generators.architecture_gen.ArchitectureGenerator._generate_pipeline_overview, code2docs.generators.architecture_gen.ArchitectureGenerator._generate_layer_diagram, code2docs.generators.architecture_gen.ArchitectureGenerator._get_public_entry_points, code2docs.generators.architecture_gen.ArchitectureGenerator._generate_llm_summary, code2docs.generators.architecture_gen.ArchitectureGenerator._generate_module_graph, code2docs.generators.architecture_gen.ArchitectureGenerator._generate_class_diagram, code2docs.generators.architecture_gen.ArchitectureGenerator._detect_layers, code2docs.generators.architecture_gen.ArchitectureGenerator._generate_metrics_table
347347

348-
### code2docs.analyzers.dependency_scanner.DependencyScanner
349-
> Scan and parse project dependency files.
350-
- **Methods**: 10
351-
- **Key Methods**: code2docs.analyzers.dependency_scanner.DependencyScanner.scan, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject_regex, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_setup_py, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_requirements_txt, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_package_json, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_cargo_toml, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_go_mod, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_dep_string, code2docs.analyzers.dependency_scanner.DependencyScanner._detect_version
352-
353348
### code2docs.analyzers.docstring_extractor.DocstringExtractor
354349
> Extract and parse docstrings from AnalysisResult.
355350
- **Methods**: 10
356351
- **Key Methods**: code2docs.analyzers.docstring_extractor.DocstringExtractor.extract_all, code2docs.analyzers.docstring_extractor.DocstringExtractor.parse, code2docs.analyzers.docstring_extractor.DocstringExtractor._extract_summary, code2docs.analyzers.docstring_extractor.DocstringExtractor._classify_section, code2docs.analyzers.docstring_extractor.DocstringExtractor._parse_sections, code2docs.analyzers.docstring_extractor.DocstringExtractor._parse_param_line, code2docs.analyzers.docstring_extractor.DocstringExtractor._parse_returns_line, code2docs.analyzers.docstring_extractor.DocstringExtractor._parse_raises_line, code2docs.analyzers.docstring_extractor.DocstringExtractor._parse_examples_line, code2docs.analyzers.docstring_extractor.DocstringExtractor.coverage_report
357352

353+
### code2docs.analyzers.dependency_scanner.DependencyScanner
354+
> Scan and parse project dependency files.
355+
- **Methods**: 10
356+
- **Key Methods**: code2docs.analyzers.dependency_scanner.DependencyScanner.scan, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject_regex, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_setup_py, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_requirements_txt, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_package_json, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_cargo_toml, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_go_mod, code2docs.analyzers.dependency_scanner.DependencyScanner._parse_dep_string, code2docs.analyzers.dependency_scanner.DependencyScanner._detect_version
357+
358358
### code2docs.generators.depgraph_gen.DepGraphGenerator
359359
> Generate docs/dependency-graph.md with Mermaid diagrams.
360360
- **Methods**: 9
@@ -406,13 +406,13 @@ Key functions that process and transform data:
406406
> Format coverage stats as a Markdown table.
407407
- **Output to**: None.join, lines.append
408408

409-
### code2docs.cli.DefaultGroup.parse_args
410-
- **Output to**: None.parse_args, super
411-
412409
### code2docs.generators.getting_started_gen.GettingStartedGenerator._format_func_args
413410
> Format function arguments for example code.
414411
- **Output to**: None.join, enumerate
415412

413+
### code2docs.cli.DefaultGroup.parse_args
414+
- **Output to**: None.parse_args, super
415+
416416
### code2docs.generators.code2llm_gen.parse_gitignore
417417
> Parse .gitignore file and return list of patterns to exclude.
418418
@@ -437,37 +437,9 @@ Filters out:
437437
> Render formatter usage examples.
438438
- **Output to**: lines.append, lines.append, lines.append, lines.append, lines.append
439439

440-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject
441-
> Parse pyproject.toml for dependencies.
442-
- **Output to**: ProjectDependencies, data.get, project.get, project.get, project.get
443-
444-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject_regex
445-
> Fallback regex-based pyproject.toml parser.
446-
- **Output to**: ProjectDependencies, path.read_text, re.search, re.search, re.findall
447-
448-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_setup_py
449-
> Parse setup.py for dependencies (regex-based, no exec).
450-
- **Output to**: ProjectDependencies, path.read_text, re.search, re.search, re.findall
451-
452-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_requirements_txt
453-
> Parse requirements.txt.
454-
- **Output to**: ProjectDependencies, None.splitlines, line.strip, deps.dependencies.append, path.read_text
455-
456-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_package_json
457-
> Parse package.json for dependencies.
458-
- **Output to**: ProjectDependencies, data.get, data.get, data.get, engines.get
459-
460-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_cargo_toml
461-
> Parse Cargo.toml for Rust dependencies.
462-
- **Output to**: ProjectDependencies, path.read_text, re.search, content.splitlines, ver_match.group
463-
464-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_go_mod
465-
> Parse go.mod for Go dependencies.
466-
- **Output to**: ProjectDependencies, path.read_text, re.search, re.search, re.finditer
467-
468-
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_dep_string
469-
> Parse a dependency string like 'package>=1.0'.
470-
- **Output to**: re.match, DependencyInfo, dep_str.strip, DependencyInfo, dep_str.strip
440+
### code2docs.analyzers.endpoint_detector.EndpointDetector._parse_decorator
441+
> Try to parse a route decorator string.
442+
- **Output to**: self.FASTAPI_PATTERNS.search, self.FLASK_PATTERNS.search, Endpoint, Endpoint, None.upper
471443

472444
### examples.05_custom_generators.MetricsReportGenerator._format_stats_table
473445
> Format statistics as markdown table.
@@ -500,9 +472,37 @@ Filters out:
500472
> Parse an examples line.
501473
- **Output to**: info.examples.append
502474

503-
### code2docs.analyzers.endpoint_detector.EndpointDetector._parse_decorator
504-
> Try to parse a route decorator string.
505-
- **Output to**: self.FASTAPI_PATTERNS.search, self.FLASK_PATTERNS.search, Endpoint, Endpoint, None.upper
475+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject
476+
> Parse pyproject.toml for dependencies.
477+
- **Output to**: ProjectDependencies, data.get, project.get, project.get, project.get
478+
479+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_pyproject_regex
480+
> Fallback regex-based pyproject.toml parser.
481+
- **Output to**: ProjectDependencies, path.read_text, re.search, re.search, re.findall
482+
483+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_setup_py
484+
> Parse setup.py for dependencies (regex-based, no exec).
485+
- **Output to**: ProjectDependencies, path.read_text, re.search, re.search, re.findall
486+
487+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_requirements_txt
488+
> Parse requirements.txt.
489+
- **Output to**: ProjectDependencies, None.splitlines, line.strip, deps.dependencies.append, path.read_text
490+
491+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_package_json
492+
> Parse package.json for dependencies.
493+
- **Output to**: ProjectDependencies, data.get, data.get, data.get, engines.get
494+
495+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_cargo_toml
496+
> Parse Cargo.toml for Rust dependencies.
497+
- **Output to**: ProjectDependencies, path.read_text, re.search, content.splitlines, ver_match.group
498+
499+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_go_mod
500+
> Parse go.mod for Go dependencies.
501+
- **Output to**: ProjectDependencies, path.read_text, re.search, re.search, re.finditer
502+
503+
### code2docs.analyzers.dependency_scanner.DependencyScanner._parse_dep_string
504+
> Parse a dependency string like 'package>=1.0'.
505+
- **Output to**: re.match, DependencyInfo, dep_str.strip, DependencyInfo, dep_str.strip
506506

507507
## Behavioral Patterns
508508

@@ -551,8 +551,8 @@ Functions exposed as public API (no underscore prefix):
551551
- `examples.07_web_frameworks.document_web_project` - 9 calls
552552
- `code2docs.formatters.markdown.MarkdownFormatter.table` - 8 calls
553553
- `code2docs.generators.depgraph_gen.DepGraphGenerator.generate` - 8 calls
554-
- `code2docs.cli.sync` - 8 calls
555554
- `code2docs.generators.getting_started_gen.GettingStartedGenerator.generate` - 8 calls
555+
- `code2docs.cli.sync` - 8 calls
556556
- `code2docs.generators.code2llm_gen.Code2LlmGenerator.generate_all` - 8 calls
557557
- `code2docs.generators.org_readme_gen.OrgReadmeGenerator.generate` - 8 calls
558558
- `examples.03_programmatic_api.custom_documentation_pipeline` - 8 calls
@@ -567,14 +567,14 @@ How components interact:
567567

568568
```mermaid
569569
graph TD
570+
from_yaml --> Path
571+
from_yaml --> cls
572+
from_yaml --> get
570573
_generate_quickstart --> _find_convenience_fu
571574
_generate_quickstart --> _find_api_classes
572575
_generate_quickstart --> set
573576
_generate_quickstart --> extend
574577
_generate_quickstart --> append
575-
from_yaml --> Path
576-
from_yaml --> cls
577-
from_yaml --> get
578578
generate --> append
579579
generate --> _generate_llm_summar
580580
generate --> _detect_layers

project/duplication.toon.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ SUMMARY:
66
dup_groups: 6
77
dup_fragments: 19
88
saved_lines: 69
9-
scan_ms: 3900
9+
scan_ms: 4006
1010

1111
DUPLICATES[6] (ranked by impact):
1212
[88c0cfa6561a3637] EXAC __init__ L=3 N=9 saved=24 sim=1.00

project/evolution.toon.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ PATTERNS (language parser shared logic):
3636
- Standardized FunctionInfo/ClassInfo models
3737

3838
HISTORY:
39-
prev CC̄=4.2 → now CC̄=3.8
39+
prev CC̄=3.8 → now CC̄=3.8

project/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

project/map.toon.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# stats: 311 func | 0 cls | 39 mod | CC̄=3.8 | critical:0 | cycles:0
33
# alerts[5]: fan-out _run_check=24; fan-out start_watcher=22; fan-out Code2DocsConfig.from_yaml=19; fan-out ReadmeGenerator._build_context=17; fan-out ArchitectureGenerator.generate=16
44
# hotspots[5]: _run_check fan=24; start_watcher fan=22; Code2DocsConfig.from_yaml fan=19; ReadmeGenerator._build_context fan=17; Updater.apply fan=16
5-
# evolution: CC̄ 4.2→3.8 (improved -0.4)
5+
# evolution: CC̄ 3.8→3.8 (flat 0.0)
66
# Keys: M=modules, D=details, i=imports, e=exports, c=classes, f=functions, m=methods
77
M[39]:
88
code2docs/__init__.py,24

0 commit comments

Comments
 (0)