code2docs 3.0.21__tar.gz → 3.0.23__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {code2docs-3.0.21 → code2docs-3.0.23}/PKG-INFO +23 -6
- {code2docs-3.0.21 → code2docs-3.0.23}/README.md +19 -5
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/__init__.py +1 -1
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/examples_gen.py +2 -1
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs.egg-info/PKG-INFO +23 -6
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs.egg-info/requires.txt +3 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/pyproject.toml +33 -1
- {code2docs-3.0.21 → code2docs-3.0.23}/LICENSE +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/__main__.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/analyzers/__init__.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/analyzers/dependency_scanner.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/analyzers/docstring_extractor.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/analyzers/endpoint_detector.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/analyzers/project_scanner.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/base.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/cli.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/config.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/examples/advanced_usage.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/examples/quickstart.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/formatters/__init__.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/formatters/badges.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/formatters/markdown.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/formatters/toc.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/__init__.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/_registry_adapters.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/_source_links.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/api_changelog_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/api_reference_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/architecture_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/changelog_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/code2llm_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/config_docs_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/contributing_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/coverage_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/depgraph_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/getting_started_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/mkdocs_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/module_docs_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/org_readme_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/generators/readme_gen.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/llm_helper.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/registry.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/sync/__init__.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/sync/differ.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/sync/updater.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/sync/watcher.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/templates/api_module.md.j2 +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/templates/architecture.md.j2 +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/templates/example_usage.py.j2 +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/templates/index.md.j2 +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/templates/module_doc.md.j2 +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs/templates/readme.md.j2 +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs.egg-info/SOURCES.txt +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs.egg-info/dependency_links.txt +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs.egg-info/entry_points.txt +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/code2docs.egg-info/top_level.txt +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/setup.cfg +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_analyzers.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_cli.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_code2docs.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_config.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_formatters.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_generators.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_llm_helper.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_registry.py +0 -0
- {code2docs-3.0.21 → code2docs-3.0.23}/tests/test_sync.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2docs
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.23
|
|
4
4
|
Summary: Auto-generate and sync project documentation from source code analysis
|
|
5
5
|
Author-email: Tom Sapletta <tom@sapletta.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -44,13 +44,31 @@ Requires-Dist: ruff>=0.1; extra == "dev"
|
|
|
44
44
|
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
45
45
|
Requires-Dist: build>=1.0; extra == "dev"
|
|
46
46
|
Requires-Dist: twine>=5.0; extra == "dev"
|
|
47
|
+
Requires-Dist: goal>=2.1.0; extra == "dev"
|
|
48
|
+
Requires-Dist: costs>=0.1.20; extra == "dev"
|
|
49
|
+
Requires-Dist: pfix>=0.1.60; extra == "dev"
|
|
47
50
|
Provides-Extra: all
|
|
48
51
|
Requires-Dist: code2docs[git,llm,mkdocs,watch]; extra == "all"
|
|
49
52
|
Dynamic: license-file
|
|
50
53
|
|
|
51
54
|
# code2docs
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
|
|
57
|
+
## AI Cost Tracking
|
|
58
|
+
|
|
59
|
+
   
|
|
60
|
+
  
|
|
61
|
+
|
|
62
|
+
- 🤖 **LLM usage:** $7.5000 (52 commits)
|
|
63
|
+
- 👤 **Human dev:** ~$1621 (16.2h @ $100/h, 30min dedup)
|
|
64
|
+
|
|
65
|
+
Generated on 2026-03-31 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
  
|
|
54
72
|
|
|
55
73
|
> Auto-generate and sync project documentation from source code analysis.
|
|
56
74
|
|
|
@@ -190,7 +208,7 @@ code2docs can update only specific sections of an existing README using markers:
|
|
|
190
208
|
```markdown
|
|
191
209
|
<!-- code2docs:start --># code2docs
|
|
192
210
|
|
|
193
|
-
   
|
|
194
212
|
> **276** functions | **57** classes | **51** files | CC̄ = 3.8
|
|
195
213
|
|
|
196
214
|
> Auto-generated project documentation from source code analysis.
|
|
@@ -823,8 +841,7 @@ code2docs/
|
|
|
823
841
|
|
|
824
842
|
## License
|
|
825
843
|
|
|
826
|
-
|
|
827
|
-
|
|
844
|
+
Licensed under Apache-2.0.
|
|
828
845
|
## Author
|
|
829
846
|
|
|
830
|
-
|
|
847
|
+
Tom Sapletta
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
# code2docs
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
## AI Cost Tracking
|
|
5
|
+
|
|
6
|
+
   
|
|
7
|
+
  
|
|
8
|
+
|
|
9
|
+
- 🤖 **LLM usage:** $7.5000 (52 commits)
|
|
10
|
+
- 👤 **Human dev:** ~$1621 (16.2h @ $100/h, 30min dedup)
|
|
11
|
+
|
|
12
|
+
Generated on 2026-03-31 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
  
|
|
4
19
|
|
|
5
20
|
> Auto-generate and sync project documentation from source code analysis.
|
|
6
21
|
|
|
@@ -140,7 +155,7 @@ code2docs can update only specific sections of an existing README using markers:
|
|
|
140
155
|
```markdown
|
|
141
156
|
<!-- code2docs:start --># code2docs
|
|
142
157
|
|
|
143
|
-
   
|
|
144
159
|
> **276** functions | **57** classes | **51** files | CC̄ = 3.8
|
|
145
160
|
|
|
146
161
|
> Auto-generated project documentation from source code analysis.
|
|
@@ -773,8 +788,7 @@ code2docs/
|
|
|
773
788
|
|
|
774
789
|
## License
|
|
775
790
|
|
|
776
|
-
|
|
777
|
-
|
|
791
|
+
Licensed under Apache-2.0.
|
|
778
792
|
## Author
|
|
779
793
|
|
|
780
|
-
|
|
794
|
+
Tom Sapletta
|
|
@@ -5,7 +5,7 @@ Uses code2llm's AnalysisResult to produce human-readable documentation:
|
|
|
5
5
|
README.md, API references, module docs, examples, and architecture diagrams.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "3.0.
|
|
8
|
+
__version__ = "3.0.23"
|
|
9
9
|
__author__ = "Tom Sapletta"
|
|
10
10
|
|
|
11
11
|
from .config import Code2DocsConfig
|
|
@@ -233,8 +233,9 @@ class ExamplesGenerator:
|
|
|
233
233
|
lines.append("")
|
|
234
234
|
lines.append("# Step 1: Analyze the project")
|
|
235
235
|
lines.append("config = Code2DocsConfig(project_name=\"my-project\")")
|
|
236
|
+
lines.append("project_name_adv = config.project_name")
|
|
236
237
|
lines.append("scanner = ProjectScanner(config)")
|
|
237
|
-
lines.append('result = scanner.analyze(f"
|
|
238
|
+
lines.append('result = scanner.analyze(f"./{project_name_adv}") if project_name_adv != "." else scanner.analyze("./")')
|
|
238
239
|
lines.append("")
|
|
239
240
|
|
|
240
241
|
for i, cls in enumerate(gen_classes[:4], start=2):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2docs
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.23
|
|
4
4
|
Summary: Auto-generate and sync project documentation from source code analysis
|
|
5
5
|
Author-email: Tom Sapletta <tom@sapletta.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -44,13 +44,31 @@ Requires-Dist: ruff>=0.1; extra == "dev"
|
|
|
44
44
|
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
45
45
|
Requires-Dist: build>=1.0; extra == "dev"
|
|
46
46
|
Requires-Dist: twine>=5.0; extra == "dev"
|
|
47
|
+
Requires-Dist: goal>=2.1.0; extra == "dev"
|
|
48
|
+
Requires-Dist: costs>=0.1.20; extra == "dev"
|
|
49
|
+
Requires-Dist: pfix>=0.1.60; extra == "dev"
|
|
47
50
|
Provides-Extra: all
|
|
48
51
|
Requires-Dist: code2docs[git,llm,mkdocs,watch]; extra == "all"
|
|
49
52
|
Dynamic: license-file
|
|
50
53
|
|
|
51
54
|
# code2docs
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
|
|
57
|
+
## AI Cost Tracking
|
|
58
|
+
|
|
59
|
+
   
|
|
60
|
+
  
|
|
61
|
+
|
|
62
|
+
- 🤖 **LLM usage:** $7.5000 (52 commits)
|
|
63
|
+
- 👤 **Human dev:** ~$1621 (16.2h @ $100/h, 30min dedup)
|
|
64
|
+
|
|
65
|
+
Generated on 2026-03-31 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
  
|
|
54
72
|
|
|
55
73
|
> Auto-generate and sync project documentation from source code analysis.
|
|
56
74
|
|
|
@@ -190,7 +208,7 @@ code2docs can update only specific sections of an existing README using markers:
|
|
|
190
208
|
```markdown
|
|
191
209
|
<!-- code2docs:start --># code2docs
|
|
192
210
|
|
|
193
|
-
   
|
|
194
212
|
> **276** functions | **57** classes | **51** files | CC̄ = 3.8
|
|
195
213
|
|
|
196
214
|
> Auto-generated project documentation from source code analysis.
|
|
@@ -823,8 +841,7 @@ code2docs/
|
|
|
823
841
|
|
|
824
842
|
## License
|
|
825
843
|
|
|
826
|
-
|
|
827
|
-
|
|
844
|
+
Licensed under Apache-2.0.
|
|
828
845
|
## Author
|
|
829
846
|
|
|
830
|
-
|
|
847
|
+
Tom Sapletta
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code2docs"
|
|
7
|
-
version = "3.0.
|
|
7
|
+
version = "3.0.23"
|
|
8
8
|
description = "Auto-generate and sync project documentation from source code analysis"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -54,6 +54,9 @@ dev = [
|
|
|
54
54
|
"mypy>=1.0",
|
|
55
55
|
"build>=1.0",
|
|
56
56
|
"twine>=5.0",
|
|
57
|
+
"goal>=2.1.0",
|
|
58
|
+
"costs>=0.1.20",
|
|
59
|
+
"pfix>=0.1.60",
|
|
57
60
|
]
|
|
58
61
|
all = ["code2docs[llm,git,watch,mkdocs]"]
|
|
59
62
|
|
|
@@ -86,3 +89,32 @@ include = ["code2docs*"]
|
|
|
86
89
|
|
|
87
90
|
[tool.setuptools.package-data]
|
|
88
91
|
code2docs = ["templates/*.j2"]
|
|
92
|
+
|
|
93
|
+
[tool.pfix]
|
|
94
|
+
# Self-healing Python configuration
|
|
95
|
+
model = "openrouter/qwen/qwen3-coder-next"
|
|
96
|
+
auto_apply = true
|
|
97
|
+
auto_install_deps = true
|
|
98
|
+
auto_restart = false
|
|
99
|
+
max_retries = 3
|
|
100
|
+
create_backups = false
|
|
101
|
+
git_auto_commit = false
|
|
102
|
+
|
|
103
|
+
[tool.pfix.runtime_todo]
|
|
104
|
+
enabled = true
|
|
105
|
+
todo_file = "TODO.md"
|
|
106
|
+
min_severity = "low"
|
|
107
|
+
deduplicate = true
|
|
108
|
+
|
|
109
|
+
[tool.costs]
|
|
110
|
+
# AI Cost tracking configuration
|
|
111
|
+
badge = true
|
|
112
|
+
update_readme = true
|
|
113
|
+
readme_path = "README.md"
|
|
114
|
+
default_model = "openrouter/qwen/qwen3-coder-next"
|
|
115
|
+
analysis_mode = "byok"
|
|
116
|
+
full_history = true
|
|
117
|
+
max_commits = 500
|
|
118
|
+
|
|
119
|
+
# Cost thresholds for badge colors (USD)
|
|
120
|
+
badge_color_thresholds = { low = 1.0, medium = 5.0, high = 10.0, critical = 50.0 }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|