code2llm 0.5.85__tar.gz → 0.5.87__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.
Files changed (119) hide show
  1. {code2llm-0.5.85 → code2llm-0.5.87}/PKG-INFO +5 -3
  2. {code2llm-0.5.85 → code2llm-0.5.87}/README.md +4 -2
  3. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/__init__.py +1 -1
  4. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_exports/formats.py +16 -0
  5. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_exports/orchestrator.py +7 -0
  6. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_parser.py +2 -2
  7. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/readme_exporter.py +1 -0
  8. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/nlp/__init__.py +1 -1
  9. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm.egg-info/PKG-INFO +5 -3
  10. {code2llm-0.5.85 → code2llm-0.5.87}/pyproject.toml +1 -1
  11. {code2llm-0.5.85 → code2llm-0.5.87}/setup.py +1 -1
  12. {code2llm-0.5.85 → code2llm-0.5.87}/LICENSE +0 -0
  13. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/__main__.py +0 -0
  14. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/__init__.py +0 -0
  15. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/call_graph.py +0 -0
  16. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/cfg.py +0 -0
  17. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/coupling.py +0 -0
  18. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/data_analysis.py +0 -0
  19. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/dfg.py +0 -0
  20. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/pipeline_detector.py +0 -0
  21. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/side_effects.py +0 -0
  22. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/smells.py +0 -0
  23. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/analysis/type_inference.py +0 -0
  24. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/api.py +0 -0
  25. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli.py +0 -0
  26. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_analysis.py +0 -0
  27. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_commands.py +0 -0
  28. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_exports/__init__.py +0 -0
  29. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_exports/code2logic.py +0 -0
  30. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/cli_exports/prompt.py +0 -0
  31. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/__init__.py +0 -0
  32. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/analyzer.py +0 -0
  33. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/config.py +0 -0
  34. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/file_analyzer.py +0 -0
  35. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/file_cache.py +0 -0
  36. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/file_filter.py +0 -0
  37. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/gitignore.py +0 -0
  38. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/__init__.py +0 -0
  39. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/base.py +0 -0
  40. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/cpp.py +0 -0
  41. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/csharp.py +0 -0
  42. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/generic.py +0 -0
  43. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/go_lang.py +0 -0
  44. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/java.py +0 -0
  45. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/php.py +0 -0
  46. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/ruby.py +0 -0
  47. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/rust.py +0 -0
  48. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/lang/typescript.py +0 -0
  49. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/large_repo.py +0 -0
  50. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/models.py +0 -0
  51. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/refactoring.py +0 -0
  52. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/repo_files.py +0 -0
  53. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming/__init__.py +0 -0
  54. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming/cache.py +0 -0
  55. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming/incremental.py +0 -0
  56. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming/prioritizer.py +0 -0
  57. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming/scanner.py +0 -0
  58. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming/strategies.py +0 -0
  59. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/streaming_analyzer.py +0 -0
  60. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/core/toon_size_manager.py +0 -0
  61. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/__init__.py +0 -0
  62. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/article_view.py +0 -0
  63. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/base.py +0 -0
  64. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/context_exporter.py +0 -0
  65. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/context_view.py +0 -0
  66. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/evolution_exporter.py +0 -0
  67. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/flow_constants.py +0 -0
  68. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/flow_exporter.py +0 -0
  69. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/flow_renderer.py +0 -0
  70. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/html_dashboard.py +0 -0
  71. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/index_generator.py +0 -0
  72. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/json_exporter.py +0 -0
  73. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/llm_exporter.py +0 -0
  74. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/map_exporter.py +0 -0
  75. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/mermaid_exporter.py +0 -0
  76. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/project_yaml_exporter.py +0 -0
  77. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/report_generators.py +0 -0
  78. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon/__init__.py +0 -0
  79. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon/helpers.py +0 -0
  80. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon/metrics.py +0 -0
  81. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon/module_detail.py +0 -0
  82. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon/renderer.py +0 -0
  83. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon.py +0 -0
  84. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/toon_view.py +0 -0
  85. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/validate_project.py +0 -0
  86. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/exporters/yaml_exporter.py +0 -0
  87. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/generators/__init__.py +0 -0
  88. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/generators/llm_flow.py +0 -0
  89. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/generators/llm_task.py +0 -0
  90. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/generators/mermaid.py +0 -0
  91. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/nlp/config.py +0 -0
  92. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/nlp/entity_resolution.py +0 -0
  93. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/nlp/intent_matching.py +0 -0
  94. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/nlp/normalization.py +0 -0
  95. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/nlp/pipeline.py +0 -0
  96. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/patterns/__init__.py +0 -0
  97. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/patterns/detector.py +0 -0
  98. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/refactor/__init__.py +0 -0
  99. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm/refactor/prompt_engine.py +0 -0
  100. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm.egg-info/SOURCES.txt +0 -0
  101. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm.egg-info/dependency_links.txt +0 -0
  102. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm.egg-info/entry_points.txt +0 -0
  103. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm.egg-info/requires.txt +0 -0
  104. {code2llm-0.5.85 → code2llm-0.5.87}/code2llm.egg-info/top_level.txt +0 -0
  105. {code2llm-0.5.85 → code2llm-0.5.87}/setup.cfg +0 -0
  106. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_advanced_analysis.py +0 -0
  107. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_analyzer.py +0 -0
  108. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_deep_analysis.py +0 -0
  109. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_edge_cases.py +0 -0
  110. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_flow_exporter.py +0 -0
  111. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_format_quality.py +0 -0
  112. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_multilanguage_e2e.py +0 -0
  113. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_nlp_pipeline.py +0 -0
  114. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_nonpython_cc_calls.py +0 -0
  115. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_pipeline_detector.py +0 -0
  116. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_prompt_engine.py +0 -0
  117. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_prompt_txt.py +0 -0
  118. {code2llm-0.5.85 → code2llm-0.5.87}/tests/test_refactoring_engine.py +0 -0
  119. {code2llm-0.5.85 → code2llm-0.5.87}/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.85
3
+ Version: 0.5.87
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
@@ -76,8 +76,8 @@ When you run `code2llm ./ -f all`, the following files are created:
76
76
  # Quick health check (TOON format only)
77
77
  code2llm ./ -f toon
78
78
 
79
- # Generate all formats (what created these files)
80
- code2llm ./ -f all
79
+ # Generate all formats + prompt.txt (single-project mode)
80
+ code2llm ./ -f all -o ./project --no-chunk
81
81
 
82
82
  # LLM-ready context only
83
83
  code2llm ./ -f context
@@ -192,8 +192,10 @@ grep -E "^ .*[0-9]{3,}$" project.toon.yaml | sort -t',' -k2 -n -r | head -10
192
192
 
193
193
  ### `prompt.txt` - Ready-to-Send LLM Prompt
194
194
  **Purpose**: Pre-formatted prompt listing all generated files for LLM conversation
195
+ **Generation**: Written when `code2llm` runs with a source path and requests `-f all` (including `--no-chunk`) or `code2logic`
195
196
  **Contents**:
196
197
  - **Files section**: Lists all existing generated files with descriptions
198
+ - **Source files section**: Highlights important source files such as `cli_exports/orchestrator.py`
197
199
  - **Missing section**: Shows which files weren't generated (if any)
198
200
  - **Task section**: Instructions for LLM analysis
199
201
  - **Requirements section**: Guidelines for suggested changes
@@ -26,8 +26,8 @@ When you run `code2llm ./ -f all`, the following files are created:
26
26
  # Quick health check (TOON format only)
27
27
  code2llm ./ -f toon
28
28
 
29
- # Generate all formats (what created these files)
30
- code2llm ./ -f all
29
+ # Generate all formats + prompt.txt (single-project mode)
30
+ code2llm ./ -f all -o ./project --no-chunk
31
31
 
32
32
  # LLM-ready context only
33
33
  code2llm ./ -f context
@@ -142,8 +142,10 @@ grep -E "^ .*[0-9]{3,}$" project.toon.yaml | sort -t',' -k2 -n -r | head -10
142
142
 
143
143
  ### `prompt.txt` - Ready-to-Send LLM Prompt
144
144
  **Purpose**: Pre-formatted prompt listing all generated files for LLM conversation
145
+ **Generation**: Written when `code2llm` runs with a source path and requests `-f all` (including `--no-chunk`) or `code2logic`
145
146
  **Contents**:
146
147
  - **Files section**: Lists all existing generated files with descriptions
148
+ - **Source files section**: Highlights important source files such as `cli_exports/orchestrator.py`
147
149
  - **Missing section**: Shows which files weren't generated (if any)
148
150
  - **Task section**: Instructions for LLM analysis
149
151
  - **Requirements section**: Guidelines for suggested changes
@@ -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.85"
11
+ __version__ = "0.5.87"
12
12
  __author__ = "STTS Project"
13
13
 
14
14
  # Core analysis components (lightweight, always needed)
@@ -69,6 +69,22 @@ def _export_project_yaml(args, result, output_dir: Path):
69
69
  return filepath
70
70
 
71
71
 
72
+ def _export_project_toon(args, result, output_dir: Path):
73
+ """Export project.toon.yaml directly from the current analysis result."""
74
+ project_yaml_exporter = ProjectYAMLExporter()
75
+ prev_evolution = project_yaml_exporter._load_previous_evolution(output_dir / 'project.yaml')
76
+ data = project_yaml_exporter._build_project_yaml(result, prev_evolution)
77
+
78
+ exporter = ToonViewGenerator()
79
+ filepath = output_dir / 'project.toon.yaml'
80
+ exporter.generate(data, str(filepath))
81
+
82
+ if getattr(args, 'verbose', False):
83
+ print(f" - PROJECT-TOON (project overview): {filepath}")
84
+
85
+ return filepath
86
+
87
+
72
88
  def _run_report(args, project_yaml_path: str, output_dir: Path) -> None:
73
89
  """Generate views from project.yaml.
74
90
 
@@ -10,6 +10,7 @@ from .formats import (
10
10
  _export_evolution,
11
11
  _export_data_structures,
12
12
  _export_context_fallback,
13
+ _export_project_toon,
13
14
  _export_readme,
14
15
  _export_refactor_prompts,
15
16
  _export_index_html,
@@ -61,6 +62,9 @@ def _export_single_project(
61
62
  _export_data_structures(args, result, output_dir)
62
63
  _export_context_fallback(args, result, output_dir, formats)
63
64
 
65
+ if 'all' in requested_formats:
66
+ _export_project_toon(args, result, output_dir)
67
+
64
68
  if source_path is not None:
65
69
  _export_code2logic(args, source_path, output_dir, formats)
66
70
  _export_prompt_txt(args, output_dir, requested_formats, source_path)
@@ -95,6 +99,9 @@ def _export_chunked_results(
95
99
  _export_simple_formats(args, result, output_dir, ['toon', 'context'])
96
100
  _export_evolution(args, result, output_dir)
97
101
 
102
+ if 'all' in requested_formats:
103
+ _export_project_toon(args, result, output_dir)
104
+
98
105
  if source_path is not None:
99
106
  _export_code2logic(args, source_path, output_dir, formats)
100
107
  _export_chunked_prompt_txt(args, output_dir, requested_formats, source_path, subprojects)
@@ -14,7 +14,7 @@ def create_parser() -> argparse.ArgumentParser:
14
14
  epilog='''
15
15
  Examples:
16
16
  code2llm ./ # Default: TOON diagnostics + README
17
- code2llm ./ -f all -o ./docs # All core formats to ./docs/
17
+ code2llm ./ -f all -o ./docs --no-chunk # All core formats + prompt.txt to ./docs/
18
18
  code2llm ./ -f toon,map,evolution # Consolidated diagnostics + structure + roadmap
19
19
  code2llm ./ -f context # LLM narrative (context.md)
20
20
  code2llm ./ --streaming --strategy deep -f all # Deep streaming analysis, all core outputs
@@ -43,7 +43,7 @@ Format Options (-f):
43
43
  flow — Data-flow analysis (flow.toon) — legacy, explicit opt-in
44
44
  code2logic — Generate project logic (legacy project.toon) via external code2logic
45
45
  project-yaml — Legacy project.yaml export (single source of truth) + generated views
46
- all — Generate core formats (analysis.toon, map.toon.yaml, evolution.toon.yaml, context, mermaid)
46
+ all — Generate core formats (analysis.toon, map.toon.yaml, evolution.toon.yaml, context, mermaid) plus prompt.txt in single-project runs
47
47
 
48
48
  Strategy Options (--strategy):
49
49
  quick — Fast overview, fewer files analyzed
@@ -233,6 +233,7 @@ grep -E "^ .*[0-9]{{3,}}$" project.toon.yaml | sort -t',' -k2 -n -r | head -10
233
233
 
234
234
  ### `prompt.txt` - Ready-to-Send LLM Prompt
235
235
  **Purpose**: Pre-formatted prompt listing all generated files for LLM conversation
236
+ **Generation**: Written when `code2llm` runs with a source path and requests `-f all` (including `--no-chunk`) or `code2logic`
236
237
  **Contents**:
237
238
  - **Files section**: Lists all existing generated files with descriptions
238
239
  - **Source files section**: Highlights important source files such as `cli_exports/orchestrator.py`
@@ -4,7 +4,7 @@ Provides query normalization, intent matching, and entity resolution
4
4
  with multilingual support and fuzzy matching.
5
5
  """
6
6
 
7
- __version__ = "0.5.85"
7
+ __version__ = "0.5.87"
8
8
 
9
9
  from .pipeline import NLPPipeline
10
10
  from .normalization import QueryNormalizer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code2llm
3
- Version: 0.5.85
3
+ Version: 0.5.87
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
@@ -76,8 +76,8 @@ When you run `code2llm ./ -f all`, the following files are created:
76
76
  # Quick health check (TOON format only)
77
77
  code2llm ./ -f toon
78
78
 
79
- # Generate all formats (what created these files)
80
- code2llm ./ -f all
79
+ # Generate all formats + prompt.txt (single-project mode)
80
+ code2llm ./ -f all -o ./project --no-chunk
81
81
 
82
82
  # LLM-ready context only
83
83
  code2llm ./ -f context
@@ -192,8 +192,10 @@ grep -E "^ .*[0-9]{3,}$" project.toon.yaml | sort -t',' -k2 -n -r | head -10
192
192
 
193
193
  ### `prompt.txt` - Ready-to-Send LLM Prompt
194
194
  **Purpose**: Pre-formatted prompt listing all generated files for LLM conversation
195
+ **Generation**: Written when `code2llm` runs with a source path and requests `-f all` (including `--no-chunk`) or `code2logic`
195
196
  **Contents**:
196
197
  - **Files section**: Lists all existing generated files with descriptions
198
+ - **Source files section**: Highlights important source files such as `cli_exports/orchestrator.py`
197
199
  - **Missing section**: Shows which files weren't generated (if any)
198
200
  - **Task section**: Instructions for LLM analysis
199
201
  - **Requirements section**: Guidelines for suggested changes
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "code2llm"
7
- version = "0.5.85"
7
+ version = "0.5.87"
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"
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
4
4
  import os
5
5
 
6
6
  # Read version
7
- version = "0.5.84"
7
+ version = "0.5.86"
8
8
 
9
9
  # Read long description
10
10
  def read_readme():
File without changes
File without changes
File without changes
File without changes