|
1 | | -# code2llm | 39f 5392L | py:39 | 2026-03-09 |
2 | | -# CC̄=4.2 | critical:25/292 | dups:0 | cycles:1 |
| 1 | +# code2llm | 39f 5657L | py:39 | 2026-03-09 |
| 2 | +# CC̄=4.4 | critical:27/295 | dups:0 | cycles:1 |
3 | 3 |
|
4 | | -HEALTH[10]: |
| 4 | +HEALTH[11]: |
5 | 5 | 🟡 CC _render_first_usage CC=15 (limit:15) |
6 | 6 | 🟡 CC _generate_intro CC=16 (limit:15) |
7 | 7 | 🟡 CC parse_gitignore CC=15 (limit:15) |
@@ -11,10 +11,11 @@ HEALTH[10]: |
11 | 11 | 🟡 CC _extract_description CC=17 (limit:15) |
12 | 12 | 🟡 CC _render_module_section CC=25 (limit:15) |
13 | 13 | 🟡 CC _generate_advanced CC=22 (limit:15) |
| 14 | + 🟡 CC _render_code_style CC=16 (limit:15) |
14 | 15 | 🟡 CC _extract_project_metadata CC=29 (limit:15) |
15 | 16 |
|
16 | 17 | REFACTOR[2]: |
17 | | - 1. split 10 high-CC methods (CC>15) |
| 18 | + 1. split 11 high-CC methods (CC>15) |
18 | 19 | 2. break 1 circular dependencies |
19 | 20 |
|
20 | 21 | COUPLING: |
@@ -26,24 +27,24 @@ COUPLING: |
26 | 27 | CYCLES: 1 |
27 | 28 |
|
28 | 29 | LAYERS: |
29 | | - code2docs/ CC̄=4.2 ←in:0 →out:1 |
30 | | - │ !! readme_gen 463L 1C 18m CC=29 ←1 |
| 30 | + code2docs/ CC̄=4.4 ←in:0 →out:1 |
| 31 | + │ !! readme_gen 477L 1C 18m CC=29 ←1 |
31 | 32 | │ !! examples_gen 443L 1C 15m CC=22 ←0 |
| 33 | + │ dependency_scanner 325L 3C 10m CC=9 ←0 |
32 | 34 | │ ! cli 319L 1C 14m CC=10 ←0 |
33 | 35 | │ ! config 297L 7C 5m CC=10 ←2 |
34 | 36 | │ ! architecture_gen 294L 1C 10m CC=13 ←0 |
35 | 37 | │ _registry_adapters 287L 14C 28m CC=7 ←0 |
| 38 | + │ !! contributing_gen 231L 1C 8m CC=16 ←0 |
36 | 39 | │ !! org_readme_gen 227L 1C 10m CC=17 ←0 |
37 | 40 | │ !! code2llm_gen 206L 1C 6m CC=17 ←0 |
38 | 41 | │ !! module_docs_gen 198L 1C 9m CC=25 ←0 |
39 | | - │ dependency_scanner 197L 3C 7m CC=8 ←0 |
| 42 | + │ !! getting_started_gen 196L 1C 8m CC=16 ←0 |
40 | 43 | │ ! api_changelog_gen 196L 2C 9m CC=14 ←0 |
41 | | - │ !! getting_started_gen 167L 1C 8m CC=16 ←0 |
42 | 44 | │ !! api_reference_gen 163L 1C 7m CC=25 ←0 |
43 | 45 | │ llm_helper 161L 1C 7m CC=7 ←0 |
44 | 46 | │ depgraph_gen 140L 1C 9m CC=9 ←0 |
45 | 47 | │ docstring_extractor 140L 2C 10m CC=8 ←0 |
46 | | - │ contributing_gen 137L 1C 8m CC=8 ←0 |
47 | 48 | │ differ 125L 2C 7m CC=6 ←0 |
48 | 49 | │ ! config_docs_gen 125L 1C 4m CC=10 ←0 |
49 | 50 | │ changelog_gen 121L 2C 6m CC=6 ←0 |
@@ -72,7 +73,7 @@ LAYERS: |
72 | 73 |
|
73 | 74 | DUPLICATES[0]: none |
74 | 75 |
|
75 | | -FUNCTIONS (CC≥10, 25 of 252): |
| 76 | +FUNCTIONS (CC≥10, 27 of 255): |
76 | 77 | 29.0 ReadmeGenerator._extract_project_metadata 14n 2exit loops+cond+ret !! split |
77 | 78 | 25.0 ModuleDocsGenerator._render_module_detail 18n 2exit loops+cond+ret !! split |
78 | 79 | 25.0 ApiReferenceGenerator._render_module_section 13n 2exit loops+cond+ret !! split |
@@ -81,6 +82,7 @@ FUNCTIONS (CC≥10, 25 of 252): |
81 | 82 | 17.0 Code2LlmGenerator._run_code2llm 20n 1exit cond !! split |
82 | 83 | 17.0 OrgReadmeGenerator._extract_description 9n 3exit loops+cond+ret !! split |
83 | 84 | 16.0 GettingStartedGenerator._generate_intro 6n 3exit cond+ret !! split |
| 85 | + 16.0 ContributingGenerator._render_code_style 29n 2exit cond+ret !! split |
84 | 86 | 15.0 GettingStartedGenerator._render_first_usage 7n 2exit cond+ret !! split |
85 | 87 | 15.0 parse_gitignore 6n 3exit cond+ret !! split |
86 | 88 | 14.0 ApiChangelogGenerator._render 17n 4exit loops+cond+ret |
@@ -92,6 +94,7 @@ FUNCTIONS (CC≥10, 25 of 252): |
92 | 94 | 11.0 ApiReferenceGenerator.generate 10n 2exit loops+cond+ret |
93 | 95 | 11.0 ExamplesGenerator._example_from_type 18n 7exit cond+ret |
94 | 96 | 11.0 ArchitectureGenerator._generate_class_diagram 12n 2exit loops+cond+ret |
| 97 | + 10.0 GettingStartedGenerator._render_prerequisites 15n 2exit cond+ret |
95 | 98 | 10.0 ConfigDocsGenerator._render_section 14n 2exit loops+cond+ret |
96 | 99 | 10.0 ApiReferenceGenerator._has_content 6n 3exit cond+ret |
97 | 100 | 10.0 Code2DocsConfig.from_yaml 20n 3exit cond+ret |
@@ -100,8 +103,8 @@ FUNCTIONS (CC≥10, 25 of 252): |
100 | 103 | 10.0 _run_check 11n 1exit loops+cond |
101 | 104 |
|
102 | 105 | summary: |
103 | | - critical(≥10): 25 | high(5-10): 52 | medium(2-5): 105 | low(<2): 70 |
104 | | - 10% CC≥10 31% CC≥5 |
| 106 | + critical(≥10): 27 | high(5-10): 58 | medium(2-5): 100 | low(<2): 70 |
| 107 | + 11% CC≥10 33% CC≥5 |
105 | 108 |
|
106 | 109 | HOTSPOTS: |
107 | 110 | #1 _run_check fan=24 "calls 24 functions" |
@@ -116,20 +119,20 @@ HOTSPOTS: |
116 | 119 | #10 ModuleDocsGenerator._render_module_detail fan=16 "ModuleDocsGenerator method, fan-out=16" |
117 | 120 |
|
118 | 121 | CLASSES: |
119 | | - ReadmeGenerator ████████████████████████ 17m CC̄=5.9 max=29 !! |
| 122 | + ReadmeGenerator ████████████████████████ 17m CC̄=6.2 max=29 !! |
120 | 123 | ExamplesGenerator █████████████████████ 15m CC̄=6.1 max=22 !! |
121 | 124 | MarkdownFormatter ██████████████████ 13m CC̄=1.2 max=4 |
122 | 125 | OrgReadmeGenerator ██████████████ 10m CC̄=5.2 max=17 !! |
123 | 126 | ArchitectureGenerator ██████████████ 10m CC̄=6.9 max=13 |
124 | 127 | DocstringExtractor ██████████████ 10m CC̄=3.5 max=8 |
| 128 | + DependencyScanner ██████████████ 10m CC̄=6.0 max=9 |
125 | 129 | DepGraphGenerator ████████████ 9m CC̄=3.9 max=9 |
126 | 130 | ModuleDocsGenerator ████████████ 9m CC̄=8.0 max=25 !! |
127 | 131 | ApiChangelogGenerator ████████████ 9m CC̄=5.4 max=14 |
128 | | - GettingStartedGenerator ███████████ 8m CC̄=5.9 max=16 !! |
129 | | - ContributingGenerator ███████████ 8m CC̄=2.6 max=8 |
| 132 | + GettingStartedGenerator ███████████ 8m CC̄=7.1 max=16 !! |
| 133 | + ContributingGenerator ███████████ 8m CC̄=4.6 max=16 !! |
130 | 134 | CoverageGenerator █████████ 7m CC̄=4.4 max=12 |
131 | 135 | ApiReferenceGenerator █████████ 7m CC̄=8.7 max=25 !! |
132 | | - DependencyScanner █████████ 7m CC̄=4.6 max=8 |
133 | 136 | LLMHelper ████████ 6m CC̄=2.0 max=7 |
134 | 137 | Differ ████████ 6m CC̄=4.0 max=6 |
135 | 138 | SourceLinker ████████ 6m CC̄=3.0 max=5 |
@@ -168,10 +171,10 @@ CLASSES: |
168 | 171 | SyncConfig 0m CC̄=0.0 max=0.0 |
169 | 172 | Code2LlmConfig 0m CC̄=0.0 max=0.0 |
170 | 173 | ApiChange 0m CC̄=0.0 max=0.0 |
171 | | - DependencyInfo 0m CC̄=0.0 max=0.0 |
172 | | - ProjectDependencies 0m CC̄=0.0 max=0.0 |
173 | 174 | DocstringInfo 0m CC̄=0.0 max=0.0 |
174 | 175 | Endpoint 0m CC̄=0.0 max=0.0 |
| 176 | + DependencyInfo 0m CC̄=0.0 max=0.0 |
| 177 | + ProjectDependencies 0m CC̄=0.0 max=0.0 |
175 | 178 |
|
176 | 179 | D: |
177 | 180 | code2docs/generators/readme_gen.py: |
@@ -208,6 +211,10 @@ Thi... |
208 | 211 | e: GettingStartedGenerator |
209 | 212 | GettingStartedGenerator # Generate docs/getting-started.md from entry points and depen... |
210 | 213 | __init__(2) CC=1.0 |
| 214 | + code2docs/generators/contributing_gen.py: |
| 215 | + e: ContributingGenerator |
| 216 | + ContributingGenerator # Generate CONTRIBUTING.md by detecting dev tools from pyproje... |
| 217 | + __init__(2) CC=1.0 |
211 | 218 | code2docs/generators/api_changelog_gen.py: |
212 | 219 | e: ApiChange,ApiChangelogGenerator |
213 | 220 | ApiChange # A single API change between two analysis snapshots.... |
@@ -270,31 +277,30 @@ Thi... |
270 | 277 | e: DepGraphGenerator |
271 | 278 | DepGraphGenerator # Generate docs/dependency-graph.md with Mermaid diagrams.... |
272 | 279 | __init__(2) CC=1.0 |
273 | | - examples/05_custom_generators.py: |
274 | | - e: MetricsReportGenerator,APIChangelogGenerator,CustomGenerator,generate_custom_report |
275 | | - MetricsReportGenerator # Generate a metrics report from code analysis.... |
276 | | - __init__(2) CC=1.0 |
277 | | - APIChangelogGenerator # Generate changelog based on API changes.... |
278 | | - __init__(2) CC=1.0 |
279 | | - CustomGenerator # Example of extending the base generator class.... |
280 | | - generate(0) CC=1.0 |
281 | | - generate_custom_report(project_path) |
282 | | - code2docs/generators/contributing_gen.py: |
283 | | - e: ContributingGenerator |
284 | | - ContributingGenerator # Generate CONTRIBUTING.md by detecting dev tools from pyproje... |
285 | | - __init__(2) CC=1.0 |
286 | 280 | code2docs/analyzers/dependency_scanner.py: |
287 | 281 | e: DependencyInfo,ProjectDependencies,DependencyScanner |
288 | 282 | DependencyInfo # Information about a project dependency.... |
289 | 283 | ProjectDependencies # All detected project dependencies.... |
290 | 284 | DependencyScanner # Scan and parse project dependency files.... |
291 | | - scan(1) CC=4.0 |
| 285 | + scan(1) CC=8.0 |
| 286 | + → _parse_package_json(1) CC=7.0 |
| 287 | + → _parse_cargo_toml(1) CC=9.0 |
| 288 | + → _parse_go_mod(1) CC=8.0 |
292 | 289 | → _parse_pyproject(1) CC=8.0 |
293 | 290 | → _detect_version(2) CC=5.0 |
294 | 291 | → _parse_pyproject_regex(1) CC=4.0 |
295 | 292 | → _parse_dep_string(0) CC=2.0 |
296 | 293 | → _parse_setup_py(1) CC=4.0 |
297 | 294 | → _parse_requirements_txt(1) CC=5.0 |
| 295 | + examples/05_custom_generators.py: |
| 296 | + e: MetricsReportGenerator,APIChangelogGenerator,CustomGenerator,generate_custom_report |
| 297 | + MetricsReportGenerator # Generate a metrics report from code analysis.... |
| 298 | + __init__(2) CC=1.0 |
| 299 | + APIChangelogGenerator # Generate changelog based on API changes.... |
| 300 | + __init__(2) CC=1.0 |
| 301 | + CustomGenerator # Example of extending the base generator class.... |
| 302 | + generate(0) CC=1.0 |
| 303 | + generate_custom_report(project_path) |
298 | 304 | code2docs/analyzers/docstring_extractor.py: |
299 | 305 | e: DocstringInfo,DocstringExtractor |
300 | 306 | DocstringInfo # Parsed docstring with sections.... |
@@ -453,5 +459,5 @@ Subclasses ... |
453 | 459 | code2docs/examples/advanced_usage.py: |
454 | 460 | code2docs/formatters/__init__.py: |
455 | 461 | code2docs/analyzers/__init__.py: |
456 | | - project.sh: |
457 | 462 | docs/examples/quickstart.py: |
| 463 | + project.sh: |