code2llm 0.5.118__tar.gz → 0.5.120__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.118 → code2llm-0.5.120}/PKG-INFO +2 -2
- {code2llm-0.5.118 → code2llm-0.5.120}/README.md +1 -1
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/__init__.py +1 -1
- code2llm-0.5.120/code2llm/exporters/index_generator/__init__.py +73 -0
- code2llm-0.5.118/code2llm/exporters/index_generator.py → code2llm-0.5.120/code2llm/exporters/index_generator/renderer.py +168 -321
- code2llm-0.5.120/code2llm/exporters/index_generator/scanner.py +116 -0
- code2llm-0.5.120/code2llm/exporters/index_generator.py +29 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/nlp/__init__.py +1 -1
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm.egg-info/PKG-INFO +2 -2
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm.egg-info/SOURCES.txt +3 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/pyproject.toml +1 -1
- {code2llm-0.5.118 → code2llm-0.5.120}/setup.py +1 -1
- {code2llm-0.5.118 → code2llm-0.5.120}/LICENSE +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/__main__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/call_graph.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/cfg.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/coupling.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/data_analysis.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/dfg.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/pipeline_detector.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/side_effects.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/smells.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/type_inference.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/utils/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/analysis/utils/ast_helpers.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/api.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_analysis.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_commands.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_exports/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_exports/code2logic.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_exports/formats.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_exports/orchestrator.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_exports/prompt.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/cli_parser.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/analyzer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/ast_registry.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/config.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/export_pipeline.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/file_analyzer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/file_cache.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/file_filter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/gitignore.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/incremental.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/base.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/cpp.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/csharp.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/generic.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/go_lang.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/java.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/php.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/ruby.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/rust.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/ts_extractors.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/ts_parser.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/lang/typescript.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/large_repo.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/models.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/persistent_cache.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/refactoring.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/repo_files.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming/cache.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming/incremental.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming/prioritizer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming/scanner.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming/strategies.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/streaming_analyzer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/core/toon_size_manager.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/article_view.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/base.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/context_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/context_view.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/evolution_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/flow_constants.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/flow_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/flow_renderer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/html_dashboard.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/json_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/llm_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/map_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/mermaid_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/mermaid_flow_helpers.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/constants.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/core.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/evolution.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/health.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/hotspots.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml/modules.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/project_yaml_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/readme_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/report_generators.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon/helpers.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon/metrics.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon/module_detail.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon/renderer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/toon_view.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/validate_project.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/exporters/yaml_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/generators/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/generators/_utils.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/generators/llm_flow.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/generators/llm_task.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/generators/mermaid.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/nlp/config.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/nlp/entity_resolution.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/nlp/intent_matching.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/nlp/normalization.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/nlp/pipeline.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/patterns/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/patterns/detector.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/refactor/__init__.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm/refactor/prompt_engine.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm.egg-info/dependency_links.txt +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm.egg-info/entry_points.txt +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm.egg-info/requires.txt +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/code2llm.egg-info/top_level.txt +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/setup.cfg +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_advanced_analysis.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_analyzer.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_calls_toon_export.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_deep_analysis.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_edge_cases.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_flow_exporter.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_format_quality.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_multilanguage_e2e.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_nlp_pipeline.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_nonpython_cc_calls.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_persistent_cache.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_pipeline_detector.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_project_toon_export.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_prompt_engine.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_prompt_txt.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/tests/test_refactoring_engine.py +0 -0
- {code2llm-0.5.118 → code2llm-0.5.120}/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.120
|
|
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
|
|
@@ -67,7 +67,7 @@ Dynamic: requires-python
|
|
|
67
67
|
|
|
68
68
|
## AI Cost Tracking
|
|
69
69
|
|
|
70
|
-
    
|
|
71
71
|
  
|
|
72
72
|
|
|
73
73
|
- 🤖 **LLM usage:** $7.5000 (166 commits)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
## AI Cost Tracking
|
|
5
5
|
|
|
6
|
-
    
|
|
7
7
|
  
|
|
8
8
|
|
|
9
9
|
- 🤖 **LLM usage:** $7.5000 (166 commits)
|
|
@@ -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.120"
|
|
12
12
|
__author__ = "STTS Project"
|
|
13
13
|
|
|
14
14
|
# Core analysis components (lightweight, always needed)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""Index HTML Generator — web-based file browser for all generated outputs.
|
|
2
|
+
|
|
3
|
+
Generates index.html that provides a GitHub Pages-ready interface
|
|
4
|
+
for browsing all generated analysis files (toon, md, yaml, json, etc.)
|
|
5
|
+
|
|
6
|
+
This package provides three components:
|
|
7
|
+
- FileScanner: scans output directory and collects file metadata
|
|
8
|
+
- HTMLRenderer: generates HTML with CSS and JavaScript
|
|
9
|
+
- IndexHTMLGenerator: facade combining scanner and renderer
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
from typing import Any, Dict, List, Optional
|
|
14
|
+
|
|
15
|
+
from .scanner import FileScanner, get_file_types, get_default_file_info, FILE_TYPES
|
|
16
|
+
from .renderer import HTMLRenderer
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class IndexHTMLGenerator:
|
|
20
|
+
"""Generate index.html for browsing all generated files.
|
|
21
|
+
|
|
22
|
+
This is a facade class that combines FileScanner and HTMLRenderer
|
|
23
|
+
to provide a simple interface for generating the index file.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
# Backward compatibility: expose FILE_TYPES at class level
|
|
27
|
+
FILE_TYPES = FILE_TYPES
|
|
28
|
+
|
|
29
|
+
def __init__(self, output_dir: Path):
|
|
30
|
+
self.output_dir = Path(output_dir).resolve()
|
|
31
|
+
self._scanner = FileScanner(self.output_dir)
|
|
32
|
+
self._renderer = HTMLRenderer()
|
|
33
|
+
|
|
34
|
+
def generate(self) -> Path:
|
|
35
|
+
"""Generate index.html in the output directory."""
|
|
36
|
+
files = self._scanner.scan()
|
|
37
|
+
html = self._renderer.render(files)
|
|
38
|
+
index_path = self.output_dir / 'index.html'
|
|
39
|
+
with open(index_path, 'w', encoding='utf-8') as f:
|
|
40
|
+
f.write(html)
|
|
41
|
+
return index_path
|
|
42
|
+
|
|
43
|
+
def scan_files(self) -> List[Dict[str, Any]]:
|
|
44
|
+
"""Scan and return file metadata without generating HTML."""
|
|
45
|
+
return self._scanner.scan()
|
|
46
|
+
|
|
47
|
+
def render_html(self, files: List[Dict[str, Any]]) -> str:
|
|
48
|
+
"""Render HTML from pre-scanned file list."""
|
|
49
|
+
return self._renderer.render(files)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# Convenience function for direct usage
|
|
53
|
+
def generate_index_html(output_dir: Path) -> Path:
|
|
54
|
+
"""Generate index.html in the specified directory.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
output_dir: Directory containing generated analysis files
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
Path to the generated index.html file
|
|
61
|
+
"""
|
|
62
|
+
return IndexHTMLGenerator(output_dir).generate()
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
__all__ = [
|
|
66
|
+
'IndexHTMLGenerator',
|
|
67
|
+
'FileScanner',
|
|
68
|
+
'HTMLRenderer',
|
|
69
|
+
'generate_index_html',
|
|
70
|
+
'get_file_types',
|
|
71
|
+
'get_default_file_info',
|
|
72
|
+
'FILE_TYPES',
|
|
73
|
+
]
|