code2llm 0.5.116__tar.gz → 0.5.117__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 (138) hide show
  1. {code2llm-0.5.116 → code2llm-0.5.117}/PKG-INFO +2 -2
  2. {code2llm-0.5.116 → code2llm-0.5.117}/README.md +1 -1
  3. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/__init__.py +1 -1
  4. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/__init__.py +2 -0
  5. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/base.py +16 -0
  6. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/nlp/__init__.py +1 -1
  7. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm.egg-info/PKG-INFO +2 -2
  8. {code2llm-0.5.116 → code2llm-0.5.117}/pyproject.toml +1 -1
  9. {code2llm-0.5.116 → code2llm-0.5.117}/setup.py +1 -1
  10. {code2llm-0.5.116 → code2llm-0.5.117}/LICENSE +0 -0
  11. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/__main__.py +0 -0
  12. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/__init__.py +0 -0
  13. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/call_graph.py +0 -0
  14. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/cfg.py +0 -0
  15. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/coupling.py +0 -0
  16. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/data_analysis.py +0 -0
  17. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/dfg.py +0 -0
  18. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/pipeline_detector.py +0 -0
  19. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/side_effects.py +0 -0
  20. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/smells.py +0 -0
  21. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/type_inference.py +0 -0
  22. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/utils/__init__.py +0 -0
  23. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/analysis/utils/ast_helpers.py +0 -0
  24. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/api.py +0 -0
  25. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli.py +0 -0
  26. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_analysis.py +0 -0
  27. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_commands.py +0 -0
  28. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_exports/__init__.py +0 -0
  29. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_exports/code2logic.py +0 -0
  30. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_exports/formats.py +0 -0
  31. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_exports/orchestrator.py +0 -0
  32. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_exports/prompt.py +0 -0
  33. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/cli_parser.py +0 -0
  34. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/__init__.py +0 -0
  35. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/analyzer.py +0 -0
  36. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/ast_registry.py +0 -0
  37. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/config.py +0 -0
  38. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/export_pipeline.py +0 -0
  39. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/file_analyzer.py +0 -0
  40. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/file_cache.py +0 -0
  41. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/file_filter.py +0 -0
  42. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/gitignore.py +0 -0
  43. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/incremental.py +0 -0
  44. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/base.py +0 -0
  45. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/cpp.py +0 -0
  46. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/csharp.py +0 -0
  47. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/generic.py +0 -0
  48. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/go_lang.py +0 -0
  49. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/java.py +0 -0
  50. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/php.py +0 -0
  51. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/ruby.py +0 -0
  52. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/rust.py +0 -0
  53. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/ts_extractors.py +0 -0
  54. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/ts_parser.py +0 -0
  55. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/lang/typescript.py +0 -0
  56. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/large_repo.py +0 -0
  57. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/models.py +0 -0
  58. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/persistent_cache.py +0 -0
  59. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/refactoring.py +0 -0
  60. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/repo_files.py +0 -0
  61. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming/__init__.py +0 -0
  62. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming/cache.py +0 -0
  63. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming/incremental.py +0 -0
  64. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming/prioritizer.py +0 -0
  65. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming/scanner.py +0 -0
  66. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming/strategies.py +0 -0
  67. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/streaming_analyzer.py +0 -0
  68. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/core/toon_size_manager.py +0 -0
  69. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/__init__.py +0 -0
  70. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/article_view.py +0 -0
  71. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/context_exporter.py +0 -0
  72. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/context_view.py +0 -0
  73. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/evolution_exporter.py +0 -0
  74. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/flow_constants.py +0 -0
  75. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/flow_exporter.py +0 -0
  76. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/flow_renderer.py +0 -0
  77. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/html_dashboard.py +0 -0
  78. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/index_generator.py +0 -0
  79. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/json_exporter.py +0 -0
  80. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/llm_exporter.py +0 -0
  81. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/map_exporter.py +0 -0
  82. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/mermaid_exporter.py +0 -0
  83. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/mermaid_flow_helpers.py +0 -0
  84. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/__init__.py +0 -0
  85. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/constants.py +0 -0
  86. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/core.py +0 -0
  87. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/evolution.py +0 -0
  88. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/health.py +0 -0
  89. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/hotspots.py +0 -0
  90. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml/modules.py +0 -0
  91. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/project_yaml_exporter.py +0 -0
  92. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/readme_exporter.py +0 -0
  93. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/report_generators.py +0 -0
  94. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon/__init__.py +0 -0
  95. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon/helpers.py +0 -0
  96. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon/metrics.py +0 -0
  97. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon/module_detail.py +0 -0
  98. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon/renderer.py +0 -0
  99. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon.py +0 -0
  100. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/toon_view.py +0 -0
  101. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/validate_project.py +0 -0
  102. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/exporters/yaml_exporter.py +0 -0
  103. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/generators/__init__.py +0 -0
  104. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/generators/llm_flow.py +0 -0
  105. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/generators/llm_task.py +0 -0
  106. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/generators/mermaid.py +0 -0
  107. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/nlp/config.py +0 -0
  108. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/nlp/entity_resolution.py +0 -0
  109. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/nlp/intent_matching.py +0 -0
  110. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/nlp/normalization.py +0 -0
  111. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/nlp/pipeline.py +0 -0
  112. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/patterns/__init__.py +0 -0
  113. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/patterns/detector.py +0 -0
  114. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/refactor/__init__.py +0 -0
  115. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm/refactor/prompt_engine.py +0 -0
  116. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm.egg-info/SOURCES.txt +0 -0
  117. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm.egg-info/dependency_links.txt +0 -0
  118. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm.egg-info/entry_points.txt +0 -0
  119. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm.egg-info/requires.txt +0 -0
  120. {code2llm-0.5.116 → code2llm-0.5.117}/code2llm.egg-info/top_level.txt +0 -0
  121. {code2llm-0.5.116 → code2llm-0.5.117}/setup.cfg +0 -0
  122. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_advanced_analysis.py +0 -0
  123. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_analyzer.py +0 -0
  124. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_calls_toon_export.py +0 -0
  125. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_deep_analysis.py +0 -0
  126. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_edge_cases.py +0 -0
  127. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_flow_exporter.py +0 -0
  128. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_format_quality.py +0 -0
  129. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_multilanguage_e2e.py +0 -0
  130. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_nlp_pipeline.py +0 -0
  131. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_nonpython_cc_calls.py +0 -0
  132. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_persistent_cache.py +0 -0
  133. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_pipeline_detector.py +0 -0
  134. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_project_toon_export.py +0 -0
  135. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_prompt_engine.py +0 -0
  136. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_prompt_txt.py +0 -0
  137. {code2llm-0.5.116 → code2llm-0.5.117}/tests/test_refactoring_engine.py +0 -0
  138. {code2llm-0.5.116 → code2llm-0.5.117}/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.116
3
+ Version: 0.5.117
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
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.116-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
70
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.117-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
71
71
  ![AI Cost](https://img.shields.io/badge/AI%20Cost-$7.50-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-57.3h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
72
72
 
73
73
  - 🤖 **LLM usage:** $7.5000 (166 commits)
@@ -3,7 +3,7 @@
3
3
 
4
4
  ## AI Cost Tracking
5
5
 
6
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.116-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
6
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.117-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
7
7
  ![AI Cost](https://img.shields.io/badge/AI%20Cost-$7.50-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-57.3h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
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.116"
11
+ __version__ = "0.5.117"
12
12
  __author__ = "STTS Project"
13
13
 
14
14
  # Core analysis components (lightweight, always needed)
@@ -158,6 +158,8 @@ __all__ = [
158
158
  'LANGUAGE_REGISTRY',
159
159
  'get_parser',
160
160
  'list_parsers',
161
+ # New class-based parsers
162
+ 'RubyParser',
161
163
  # Legacy exports
162
164
  'analyze_typescript_js',
163
165
  'analyze_go',
@@ -94,6 +94,22 @@ class BaseExporter(ABC):
94
94
  Exporter = BaseExporter
95
95
 
96
96
 
97
+ class ViewGeneratorMixin:
98
+ """Mixin providing the shared ``generate`` implementation for view generators.
99
+
100
+ Eliminates the identical ``generate`` method duplicated across
101
+ ``ArticleViewGenerator``, ``ContextViewGenerator``, and ``ToonViewGenerator``.
102
+
103
+ Subclasses must implement ``_render(data) -> List[str]``.
104
+ """
105
+
106
+ def generate(self, data: Dict[str, Any], output_path: str) -> None:
107
+ lines = self._render(data)
108
+ Path(output_path).parent.mkdir(parents=True, exist_ok=True)
109
+ with open(output_path, "w", encoding="utf-8") as f:
110
+ f.write("\n".join(lines) + "\n")
111
+
112
+
97
113
  # Export registry: format_name -> exporter_class
98
114
  EXPORT_REGISTRY: Dict[str, Type[BaseExporter]] = {}
99
115
 
@@ -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.116"
7
+ __version__ = "0.5.117"
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.116
3
+ Version: 0.5.117
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
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.116-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
70
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.5.117-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
71
71
  ![AI Cost](https://img.shields.io/badge/AI%20Cost-$7.50-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-57.3h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
72
72
 
73
73
  - 🤖 **LLM usage:** $7.5000 (166 commits)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "code2llm"
7
- version = "0.5.116"
7
+ version = "0.5.117"
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.115"
7
+ version = "0.5.116"
8
8
 
9
9
  # Read long description
10
10
  def read_readme():
File without changes
File without changes
File without changes
File without changes