code2llm 0.5.93__tar.gz → 0.5.95__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.
- {code2llm-0.5.93 → code2llm-0.5.95}/PKG-INFO +1 -1
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/__init__.py +1 -1
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_exports/prompt.py +0 -28
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/nlp/__init__.py +1 -1
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm.egg-info/PKG-INFO +1 -1
- {code2llm-0.5.93 → code2llm-0.5.95}/pyproject.toml +1 -1
- {code2llm-0.5.93 → code2llm-0.5.95}/setup.py +1 -1
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_prompt_txt.py +0 -24
- {code2llm-0.5.93 → code2llm-0.5.95}/LICENSE +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/README.md +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/__main__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/call_graph.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/cfg.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/coupling.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/data_analysis.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/dfg.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/pipeline_detector.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/side_effects.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/smells.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/analysis/type_inference.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/api.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_analysis.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_commands.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_exports/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_exports/code2logic.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_exports/formats.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_exports/orchestrator.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/cli_parser.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/analyzer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/config.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/file_analyzer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/file_cache.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/file_filter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/gitignore.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/base.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/cpp.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/csharp.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/generic.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/go_lang.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/java.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/php.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/ruby.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/rust.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/lang/typescript.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/large_repo.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/models.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/refactoring.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/repo_files.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming/cache.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming/incremental.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming/prioritizer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming/scanner.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming/strategies.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/streaming_analyzer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/core/toon_size_manager.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/article_view.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/base.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/context_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/context_view.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/evolution_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/flow_constants.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/flow_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/flow_renderer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/html_dashboard.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/index_generator.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/json_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/llm_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/map_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/mermaid_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/project_yaml_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/readme_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/report_generators.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon/helpers.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon/metrics.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon/module_detail.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon/renderer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/toon_view.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/validate_project.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/exporters/yaml_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/generators/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/generators/llm_flow.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/generators/llm_task.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/generators/mermaid.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/nlp/config.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/nlp/entity_resolution.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/nlp/intent_matching.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/nlp/normalization.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/nlp/pipeline.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/patterns/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/patterns/detector.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/refactor/__init__.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm/refactor/prompt_engine.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm.egg-info/SOURCES.txt +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm.egg-info/dependency_links.txt +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm.egg-info/entry_points.txt +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm.egg-info/requires.txt +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/code2llm.egg-info/top_level.txt +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/setup.cfg +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_advanced_analysis.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_analyzer.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_deep_analysis.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_edge_cases.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_flow_exporter.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_format_quality.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_multilanguage_e2e.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_nlp_pipeline.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_nonpython_cc_calls.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_pipeline_detector.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_project_toon_export.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_prompt_engine.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_refactoring_engine.py +0 -0
- {code2llm-0.5.93 → code2llm-0.5.95}/tests/test_toon_v2.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2llm
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.95
|
|
4
4
|
Summary: High-performance Python code flow analysis with optimized TOON format - CFG, DFG, call graphs, and intelligent code queries
|
|
5
5
|
Home-page: https://github.com/wronai/stts
|
|
6
6
|
Author: STTS Project
|
|
@@ -8,7 +8,7 @@ Includes NLP Processing Pipeline for query normalization, intent matching,
|
|
|
8
8
|
and entity resolution with multilingual support.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
__version__ = "0.5.
|
|
11
|
+
__version__ = "0.5.95"
|
|
12
12
|
__author__ = "STTS Project"
|
|
13
13
|
|
|
14
14
|
# Core analysis components (lightweight, always needed)
|
|
@@ -14,7 +14,6 @@ def _export_prompt_txt(args, output_dir: Path, formats: list[str], source_path:
|
|
|
14
14
|
lines = _build_prompt_header(project_path)
|
|
15
15
|
lines.extend(_build_main_files_section(output_dir, output_rel_path))
|
|
16
16
|
lines.extend(_build_optional_files_section(output_dir, output_rel_path))
|
|
17
|
-
lines.extend(_build_source_files_section(source_path))
|
|
18
17
|
|
|
19
18
|
missing = _get_missing_files(output_dir)
|
|
20
19
|
if missing:
|
|
@@ -45,7 +44,6 @@ def _export_chunked_prompt_txt(args, output_dir: Path, formats: list[str], sourc
|
|
|
45
44
|
lines = _build_prompt_header(project_path)
|
|
46
45
|
lines.extend(_build_main_files_section(output_dir, output_rel_path))
|
|
47
46
|
lines.extend(_build_optional_files_section(output_dir, output_rel_path))
|
|
48
|
-
lines.extend(_build_source_files_section(source_path))
|
|
49
47
|
|
|
50
48
|
if subprojects:
|
|
51
49
|
lines.extend(_build_subprojects_section(subprojects, output_dir, output_rel_path))
|
|
@@ -102,11 +100,6 @@ _OPTIONAL_FILES = [
|
|
|
102
100
|
]
|
|
103
101
|
|
|
104
102
|
|
|
105
|
-
_SOURCE_FILES = [
|
|
106
|
-
('code2llm/cli_exports/orchestrator.py', 'Export orchestration - coordinates single-project and chunked export flows, including prompt generation'),
|
|
107
|
-
]
|
|
108
|
-
|
|
109
|
-
|
|
110
103
|
def _build_prompt_header(project_path: str) -> List[str]:
|
|
111
104
|
"""Build header section of prompt."""
|
|
112
105
|
return [
|
|
@@ -162,27 +155,6 @@ def _build_optional_files_section(output_dir: Path, output_rel_path: str) -> Lis
|
|
|
162
155
|
return ["", "Optional files:", ""] + lines
|
|
163
156
|
|
|
164
157
|
|
|
165
|
-
def _build_source_files_section(source_path: Optional[Path]) -> List[str]:
|
|
166
|
-
"""Build source files section with size metrics."""
|
|
167
|
-
if source_path is None:
|
|
168
|
-
return []
|
|
169
|
-
|
|
170
|
-
source_root = source_path if source_path.is_dir() else source_path.parent
|
|
171
|
-
lines = []
|
|
172
|
-
for rel_path, desc in _SOURCE_FILES:
|
|
173
|
-
file_path = source_root / rel_path
|
|
174
|
-
if not file_path.exists():
|
|
175
|
-
continue
|
|
176
|
-
|
|
177
|
-
size_str = _format_size(file_path.stat().st_size)
|
|
178
|
-
lines.append(f"- {rel_path} ({desc}) [{size_str}]")
|
|
179
|
-
|
|
180
|
-
if not lines:
|
|
181
|
-
return []
|
|
182
|
-
|
|
183
|
-
return ["", "Source files:", ""] + lines
|
|
184
|
-
|
|
185
|
-
|
|
186
158
|
def _format_size(size_bytes: int) -> str:
|
|
187
159
|
"""Format file size in human readable format."""
|
|
188
160
|
if size_bytes < 1024:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2llm
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.95
|
|
4
4
|
Summary: High-performance Python code flow analysis with optimized TOON format - CFG, DFG, call graphs, and intelligent code queries
|
|
5
5
|
Home-page: https://github.com/wronai/stts
|
|
6
6
|
Author: STTS Project
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code2llm"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.95"
|
|
8
8
|
description = "High-performance Python code flow analysis with optimized TOON format - CFG, DFG, call graphs, and intelligent code queries"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -17,12 +17,6 @@ class TestPromptTxtGeneration:
|
|
|
17
17
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
18
18
|
yield Path(tmpdir)
|
|
19
19
|
|
|
20
|
-
@pytest.fixture
|
|
21
|
-
def temp_source_dir(self):
|
|
22
|
-
"""Create temporary source directory."""
|
|
23
|
-
with tempfile.TemporaryDirectory() as tmpdir:
|
|
24
|
-
yield Path(tmpdir)
|
|
25
|
-
|
|
26
20
|
@pytest.fixture
|
|
27
21
|
def mock_args(self):
|
|
28
22
|
"""Create mock args object with verbose flag."""
|
|
@@ -158,24 +152,6 @@ class TestPromptTxtGeneration:
|
|
|
158
152
|
assert "P1 — Split or simplify the highest-CC / god modules" in content, "Analysis-driven refactoring should follow blockers"
|
|
159
153
|
assert "P2 — Keep the compact project overview" in content, "Project overview should be preserved as a later priority"
|
|
160
154
|
|
|
161
|
-
def test_prompt_txt_includes_orchestrator_source_file_description(self, temp_output_dir, temp_source_dir, mock_args):
|
|
162
|
-
"""Test that prompt.txt includes the orchestrator.py source file description."""
|
|
163
|
-
formats = ['code2logic']
|
|
164
|
-
source_path = temp_source_dir / 'myproject'
|
|
165
|
-
|
|
166
|
-
orchestrator_file = source_path / 'code2llm' / 'cli_exports' / 'orchestrator.py'
|
|
167
|
-
orchestrator_file.parent.mkdir(parents=True, exist_ok=True)
|
|
168
|
-
orchestrator_file.write_text('"""Export orchestration."""\n')
|
|
169
|
-
|
|
170
|
-
_export_prompt_txt(mock_args, temp_output_dir, formats, source_path)
|
|
171
|
-
|
|
172
|
-
prompt_file = temp_output_dir / 'prompt.txt'
|
|
173
|
-
content = prompt_file.read_text()
|
|
174
|
-
|
|
175
|
-
assert "Source files:" in content, "Source files section should be present"
|
|
176
|
-
assert "code2llm/cli_exports/orchestrator.py" in content, "Orchestrator file should be listed"
|
|
177
|
-
assert "Export orchestration" in content, "Orchestrator description should be included"
|
|
178
|
-
|
|
179
155
|
def test_prompt_txt_content_structure(self, temp_output_dir, mock_args):
|
|
180
156
|
"""Test the overall structure of generated prompt.txt."""
|
|
181
157
|
formats = ['code2logic']
|
|
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
|
|
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
|