tree-sitter-analyzer 0.4.0__py3-none-any.whl → 0.6.1__py3-none-any.whl

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.

Potentially problematic release.


This version of tree-sitter-analyzer might be problematic. Click here for more details.

Files changed (38) hide show
  1. tree_sitter_analyzer/__init__.py +1 -3
  2. tree_sitter_analyzer/__main__.py +2 -2
  3. tree_sitter_analyzer/cli/commands/default_command.py +1 -1
  4. tree_sitter_analyzer/cli/commands/query_command.py +5 -5
  5. tree_sitter_analyzer/cli/commands/table_command.py +3 -3
  6. tree_sitter_analyzer/cli/info_commands.py +14 -13
  7. tree_sitter_analyzer/cli_main.py +49 -30
  8. tree_sitter_analyzer/core/analysis_engine.py +21 -21
  9. tree_sitter_analyzer/core/cache_service.py +31 -31
  10. tree_sitter_analyzer/core/query.py +502 -502
  11. tree_sitter_analyzer/encoding_utils.py +5 -2
  12. tree_sitter_analyzer/file_handler.py +3 -3
  13. tree_sitter_analyzer/formatters/base_formatter.py +18 -18
  14. tree_sitter_analyzer/formatters/formatter_factory.py +15 -15
  15. tree_sitter_analyzer/formatters/java_formatter.py +291 -291
  16. tree_sitter_analyzer/formatters/python_formatter.py +259 -259
  17. tree_sitter_analyzer/interfaces/cli_adapter.py +32 -32
  18. tree_sitter_analyzer/interfaces/mcp_adapter.py +2 -2
  19. tree_sitter_analyzer/language_detector.py +398 -398
  20. tree_sitter_analyzer/language_loader.py +224 -224
  21. tree_sitter_analyzer/languages/java_plugin.py +1174 -1174
  22. tree_sitter_analyzer/languages/python_plugin.py +10 -2
  23. tree_sitter_analyzer/mcp/resources/project_stats_resource.py +555 -555
  24. tree_sitter_analyzer/models.py +470 -470
  25. tree_sitter_analyzer/output_manager.py +8 -10
  26. tree_sitter_analyzer/plugins/base.py +33 -0
  27. tree_sitter_analyzer/queries/java.py +78 -78
  28. tree_sitter_analyzer/queries/javascript.py +7 -7
  29. tree_sitter_analyzer/queries/python.py +18 -18
  30. tree_sitter_analyzer/queries/typescript.py +12 -12
  31. tree_sitter_analyzer/query_loader.py +13 -13
  32. tree_sitter_analyzer/table_formatter.py +20 -18
  33. tree_sitter_analyzer/utils.py +1 -1
  34. {tree_sitter_analyzer-0.4.0.dist-info → tree_sitter_analyzer-0.6.1.dist-info}/METADATA +10 -10
  35. {tree_sitter_analyzer-0.4.0.dist-info → tree_sitter_analyzer-0.6.1.dist-info}/RECORD +37 -38
  36. tree_sitter_analyzer/java_analyzer.py +0 -187
  37. {tree_sitter_analyzer-0.4.0.dist-info → tree_sitter_analyzer-0.6.1.dist-info}/WHEEL +0 -0
  38. {tree_sitter_analyzer-0.4.0.dist-info → tree_sitter_analyzer-0.6.1.dist-info}/entry_points.txt +0 -0
@@ -301,7 +301,7 @@ class PythonElementExtractor(ElementExtractor):
301
301
  elif name.startswith("_"):
302
302
  visibility = "private"
303
303
 
304
- # 安全地提取原始文本,避免索引越界
304
+ # Safely extract raw text, avoiding index out of bounds
305
305
  start_byte = min(node.start_byte, len(source_code))
306
306
  end_byte = min(node.end_byte, len(source_code))
307
307
  raw_text = (
@@ -402,6 +402,7 @@ class PythonElementExtractor(ElementExtractor):
402
402
  end_line=node.end_point[0] + 1,
403
403
  raw_text=variable_text,
404
404
  language="python",
405
+ variable_type=assignment_type,
405
406
  )
406
407
 
407
408
  except Exception as e:
@@ -416,7 +417,7 @@ class PythonElementExtractor(ElementExtractor):
416
417
  if not self._validate_node(node):
417
418
  return None
418
419
 
419
- # 安全地提取导入文本,避免索引越界
420
+ # Safely extract import text, avoiding index out of bounds
420
421
  start_byte = min(node.start_byte, len(source_code))
421
422
  end_byte = min(node.end_byte, len(source_code))
422
423
  import_text = (
@@ -585,6 +586,7 @@ class PythonPlugin(LanguagePlugin):
585
586
  """Initialize the Python plugin"""
586
587
  super().__init__()
587
588
  self._language_cache: tree_sitter.Language | None = None
589
+ self._extractor: PythonElementExtractor | None = None
588
590
 
589
591
  def get_language_name(self) -> str:
590
592
  """Return the name of the programming language this plugin supports"""
@@ -598,6 +600,12 @@ class PythonPlugin(LanguagePlugin):
598
600
  """Create and return an element extractor for this language"""
599
601
  return PythonElementExtractor()
600
602
 
603
+ def get_extractor(self) -> ElementExtractor:
604
+ """Get the cached extractor instance, creating it if necessary"""
605
+ if self._extractor is None:
606
+ self._extractor = PythonElementExtractor()
607
+ return self._extractor
608
+
601
609
  def get_tree_sitter_language(self) -> Optional["tree_sitter.Language"]:
602
610
  """Get the Tree-sitter language object for Python"""
603
611
  if self._language_cache is None: