code2llm 0.5.157__tar.gz → 0.5.159__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.157/code2llm.egg-info → code2llm-0.5.159}/PKG-INFO +3 -3
- {code2llm-0.5.157 → code2llm-0.5.159}/README.md +2 -2
- code2llm-0.5.159/VERSION +1 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/__init__.py +1 -1
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/side_effects.py +2 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/base.py +2 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/dashboard_renderer.py +1 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/planfile_tickets.py +2 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/module_detail.py +1 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/nlp/__init__.py +1 -1
- {code2llm-0.5.157 → code2llm-0.5.159/code2llm.egg-info}/PKG-INFO +3 -3
- {code2llm-0.5.157 → code2llm-0.5.159}/pyproject.toml +1 -1
- code2llm-0.5.157/VERSION +0 -1
- {code2llm-0.5.157 → code2llm-0.5.159}/LICENSE +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/MANIFEST.in +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/__main__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/_data_impl.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/call_graph.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/cfg.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/coupling.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/data_analysis.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/dfg.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/pipeline_classifier.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/pipeline_detector.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/pipeline_resolver.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/smells.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/type_inference.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/utils/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/analysis/utils/ast_helpers.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/api.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_analysis.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_commands.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/code2logic.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/formats.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/orchestrator.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/orchestrator_chunked.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/orchestrator_constants.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/orchestrator_handlers.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_exports/prompt.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/cli_parser.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/analyzer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/ast_registry.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/config.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/export_pipeline.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/file_analyzer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/file_cache.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/file_filter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/gitignore.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/incremental.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/_c_parser.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/_calls.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/_complexity.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/base.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/cpp.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/csharp.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/generic.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/go_lang.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/java.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/php.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/ruby.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/rust.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/ts_extractors.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/ts_parser.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/lang/typescript.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/large_repo.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/models.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/persistent_cache.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/refactoring.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/repo_files.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/source_classifier.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming/cache.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming/incremental.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming/prioritizer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming/scanner.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming/strategies.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/streaming_analyzer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/core/toon_size_manager.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/article_view.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/context_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/context_view.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/dashboard_data.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution/computation.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution/constants.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution/exclusion.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution/render.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution/yaml_export.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/evolution_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/flow_constants.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/flow_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/flow_renderer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/html_dashboard.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/index_generator/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/index_generator/renderer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/index_generator/scanner.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/index_generator.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/json_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/llm_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/alerts.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/details.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/header.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/module_list.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/utils.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map/yaml_export.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/map_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/calls.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/classic.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/compact.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/flow_compact.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/flow_detailed.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/flow_full.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid/utils.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/mermaid_flow_helpers.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/constants.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/core.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/evolution.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/health.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/hotspots.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml/modules.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/project_yaml_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/readme/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/readme/content.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/readme/files.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/readme/insights.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/readme/sections.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/readme_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/report_generators.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/_render_coupling_helpers.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/_render_section_helpers.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/constants.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/helpers.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/metrics.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/metrics_core.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/metrics_duplicates.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/metrics_health.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon/renderer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/toon_view.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/validate_project.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/exporters/yaml_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/_utils.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/analysis.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/cli.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/generator.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/nodes.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/parsing.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow/utils.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_flow.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/llm_task.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/mermaid/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/mermaid/fix.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/mermaid/png.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/mermaid/validation.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/generators/mermaid.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/nlp/config.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/nlp/entity_resolution.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/nlp/intent_matching.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/nlp/normalization.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/nlp/pipeline.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/parsers/toon_parser.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/patterns/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/patterns/detector.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/refactor/__init__.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm/refactor/prompt_engine.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm.egg-info/SOURCES.txt +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm.egg-info/dependency_links.txt +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm.egg-info/entry_points.txt +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm.egg-info/requires.txt +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/code2llm.egg-info/top_level.txt +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/setup.cfg +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/setup.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_advanced_analysis.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_analyzer.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_cache_invalidation_e2e.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_calls_toon_export.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_declarative_collection.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_deep_analysis.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_edge_cases.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_export_cache_flags.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_file_analyzer_tagging.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_flow_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_format_quality.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_multilanguage_e2e.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_nlp_pipeline.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_nonpython_cc_calls.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_orchestrator_cache_mtime.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_persistent_cache.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_pipeline_detector.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_planfile_tickets_exporter.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_project_toon_export.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_prompt_engine.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_prompt_txt.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/tests/test_refactoring_engine.py +0 -0
- {code2llm-0.5.157 → code2llm-0.5.159}/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.159
|
|
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
|
|
@@ -66,10 +66,10 @@ Dynamic: requires-python
|
|
|
66
66
|
|
|
67
67
|
## AI Cost Tracking
|
|
68
68
|
|
|
69
|
-
    
|
|
70
70
|
  
|
|
71
71
|
|
|
72
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
72
|
+
- 🤖 **LLM usage:** $7.5000 (216 commits)
|
|
73
73
|
- 👤 **Human dev:** ~$8072 (80.7h @ $100/h, 30min dedup)
|
|
74
74
|
|
|
75
75
|
Generated on 2026-05-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## AI Cost Tracking
|
|
4
4
|
|
|
5
|
-
    
|
|
6
6
|
  
|
|
7
7
|
|
|
8
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
8
|
+
- 🤖 **LLM usage:** $7.5000 (216 commits)
|
|
9
9
|
- 👤 **Human dev:** ~$8072 (80.7h @ $100/h, 30min dedup)
|
|
10
10
|
|
|
11
11
|
Generated on 2026-05-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
code2llm-0.5.159/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.5.159
|
|
@@ -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.159"
|
|
12
12
|
__author__ = "STTS Project"
|
|
13
13
|
|
|
14
14
|
# Core analysis components (lightweight, always needed)
|
|
@@ -157,6 +157,7 @@ class SideEffectInfo:
|
|
|
157
157
|
|
|
158
158
|
@property
|
|
159
159
|
def is_pure(self) -> bool:
|
|
160
|
+
"""Return True when the function has no side effects."""
|
|
160
161
|
return self.classification == "pure"
|
|
161
162
|
|
|
162
163
|
@property
|
|
@@ -176,6 +177,7 @@ class SideEffectInfo:
|
|
|
176
177
|
return "; ".join(parts) if parts else "pure"
|
|
177
178
|
|
|
178
179
|
def to_dict(self) -> Dict[str, Any]:
|
|
180
|
+
"""Serialise the side-effect analysis result to a plain dict."""
|
|
179
181
|
return {
|
|
180
182
|
"function": self.function_name,
|
|
181
183
|
"qualified_name": self.qualified_name,
|
|
@@ -100,6 +100,7 @@ class ViewGeneratorMixin:
|
|
|
100
100
|
"""
|
|
101
101
|
|
|
102
102
|
def generate(self, data: Dict[str, Any], output_path: str) -> None:
|
|
103
|
+
"""Render data and write the result to output_path."""
|
|
103
104
|
lines = self._render(data)
|
|
104
105
|
Path(output_path).parent.mkdir(parents=True, exist_ok=True)
|
|
105
106
|
with open(output_path, "w", encoding="utf-8") as f:
|
|
@@ -133,6 +134,7 @@ def export_format(
|
|
|
133
134
|
"""
|
|
134
135
|
|
|
135
136
|
def decorator(cls: Type[BaseExporter]) -> Type[BaseExporter]:
|
|
137
|
+
"""Apply format metadata to the exporter class and register it."""
|
|
136
138
|
cls.format_name = name
|
|
137
139
|
cls.description = description or f"{name} format"
|
|
138
140
|
cls.file_extension = extension
|
|
@@ -36,6 +36,7 @@ class PlanfileTicketSuggestion:
|
|
|
36
36
|
dedupe_key: str = ""
|
|
37
37
|
|
|
38
38
|
def to_dict(self) -> dict[str, Any]:
|
|
39
|
+
"""Serialise ticket suggestion to a plain dict."""
|
|
39
40
|
return asdict(self)
|
|
40
41
|
|
|
41
42
|
|
|
@@ -126,6 +127,7 @@ class PlanfileTicketsExporter(BaseExporter):
|
|
|
126
127
|
output_path: str,
|
|
127
128
|
**kwargs: Any,
|
|
128
129
|
) -> Optional[Path]:
|
|
130
|
+
"""Export code2llm analysis findings as planfile-ready ticket YAML."""
|
|
129
131
|
limit = kwargs.get("limit")
|
|
130
132
|
suggestions = collect_planfile_tickets(
|
|
131
133
|
result,
|
|
@@ -156,6 +156,7 @@ class ModuleDetailRenderer:
|
|
|
156
156
|
called = set()
|
|
157
157
|
|
|
158
158
|
def render_method(fi: FunctionInfo, depth: int, prefix: str) -> None:
|
|
159
|
+
"""Render one method line with CC marker and recurse into calls."""
|
|
159
160
|
cc = fi.complexity.get("cyclomatic_complexity", 0)
|
|
160
161
|
arity = len(fi.args) - (1 if fi.is_method else 0)
|
|
161
162
|
cc_marker = " !" if cc >= CC_WARNING else ""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code2llm
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.159
|
|
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
|
|
@@ -66,10 +66,10 @@ Dynamic: requires-python
|
|
|
66
66
|
|
|
67
67
|
## AI Cost Tracking
|
|
68
68
|
|
|
69
|
-
    
|
|
70
70
|
  
|
|
71
71
|
|
|
72
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
72
|
+
- 🤖 **LLM usage:** $7.5000 (216 commits)
|
|
73
73
|
- 👤 **Human dev:** ~$8072 (80.7h @ $100/h, 30min dedup)
|
|
74
74
|
|
|
75
75
|
Generated on 2026-05-25 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
@@ -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.159"
|
|
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"
|
code2llm-0.5.157/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.5.157
|
|
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
|
|
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
|