redup 0.3.6__tar.gz → 0.3.7__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 (45) hide show
  1. {redup-0.3.6 → redup-0.3.7}/PKG-INFO +2 -2
  2. {redup-0.3.6 → redup-0.3.7}/README.md +1 -1
  3. {redup-0.3.6 → redup-0.3.7}/pyproject.toml +1 -1
  4. {redup-0.3.6 → redup-0.3.7}/src/redup/__init__.py +1 -1
  5. {redup-0.3.6 → redup-0.3.7}/src/redup/core/ts_extractor.py +3 -30
  6. {redup-0.3.6 → redup-0.3.7}/src/redup/core/utils/function_extractor.py +5 -0
  7. {redup-0.3.6 → redup-0.3.7}/src/redup.egg-info/PKG-INFO +2 -2
  8. {redup-0.3.6 → redup-0.3.7}/LICENSE +0 -0
  9. {redup-0.3.6 → redup-0.3.7}/setup.cfg +0 -0
  10. {redup-0.3.6 → redup-0.3.7}/src/redup/__main__.py +0 -0
  11. {redup-0.3.6 → redup-0.3.7}/src/redup/cli_app/__init__.py +0 -0
  12. {redup-0.3.6 → redup-0.3.7}/src/redup/cli_app/main.py +0 -0
  13. {redup-0.3.6 → redup-0.3.7}/src/redup/core/__init__.py +0 -0
  14. {redup-0.3.6 → redup-0.3.7}/src/redup/core/config.py +0 -0
  15. {redup-0.3.6 → redup-0.3.7}/src/redup/core/differ.py +0 -0
  16. {redup-0.3.6 → redup-0.3.7}/src/redup/core/hasher.py +0 -0
  17. {redup-0.3.6 → redup-0.3.7}/src/redup/core/lsh_matcher.py +0 -0
  18. {redup-0.3.6 → redup-0.3.7}/src/redup/core/matcher.py +0 -0
  19. {redup-0.3.6 → redup-0.3.7}/src/redup/core/models.py +0 -0
  20. {redup-0.3.6 → redup-0.3.7}/src/redup/core/parallel_scanner.py +0 -0
  21. {redup-0.3.6 → redup-0.3.7}/src/redup/core/pipeline.py +0 -0
  22. {redup-0.3.6 → redup-0.3.7}/src/redup/core/planner.py +0 -0
  23. {redup-0.3.6 → redup-0.3.7}/src/redup/core/scanner.py +0 -0
  24. {redup-0.3.6 → redup-0.3.7}/src/redup/core/utils/__init__.py +0 -0
  25. {redup-0.3.6 → redup-0.3.7}/src/redup/core/utils/duplicate_finders.py +0 -0
  26. {redup-0.3.6 → redup-0.3.7}/src/redup/core/utils/hash_utils.py +0 -0
  27. {redup-0.3.6 → redup-0.3.7}/src/redup/reporters/__init__.py +0 -0
  28. {redup-0.3.6 → redup-0.3.7}/src/redup/reporters/enhanced_reporter.py +0 -0
  29. {redup-0.3.6 → redup-0.3.7}/src/redup/reporters/json_reporter.py +0 -0
  30. {redup-0.3.6 → redup-0.3.7}/src/redup/reporters/markdown_reporter.py +0 -0
  31. {redup-0.3.6 → redup-0.3.7}/src/redup/reporters/toon_reporter.py +0 -0
  32. {redup-0.3.6 → redup-0.3.7}/src/redup/reporters/yaml_reporter.py +0 -0
  33. {redup-0.3.6 → redup-0.3.7}/src/redup.egg-info/SOURCES.txt +0 -0
  34. {redup-0.3.6 → redup-0.3.7}/src/redup.egg-info/dependency_links.txt +0 -0
  35. {redup-0.3.6 → redup-0.3.7}/src/redup.egg-info/entry_points.txt +0 -0
  36. {redup-0.3.6 → redup-0.3.7}/src/redup.egg-info/requires.txt +0 -0
  37. {redup-0.3.6 → redup-0.3.7}/src/redup.egg-info/top_level.txt +0 -0
  38. {redup-0.3.6 → redup-0.3.7}/tests/test_e2e.py +0 -0
  39. {redup-0.3.6 → redup-0.3.7}/tests/test_hasher.py +0 -0
  40. {redup-0.3.6 → redup-0.3.7}/tests/test_matcher.py +0 -0
  41. {redup-0.3.6 → redup-0.3.7}/tests/test_models.py +0 -0
  42. {redup-0.3.6 → redup-0.3.7}/tests/test_pipeline.py +0 -0
  43. {redup-0.3.6 → redup-0.3.7}/tests/test_planner.py +0 -0
  44. {redup-0.3.6 → redup-0.3.7}/tests/test_reporters.py +0 -0
  45. {redup-0.3.6 → redup-0.3.7}/tests/test_scanner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redup
3
- Version: 0.3.6
3
+ Version: 0.3.7
4
4
  Summary: Code duplication analyzer and refactoring planner for LLMs
5
5
  Author-email: Tom Sapletta <tom@sapletta.com>
6
6
  License-Expression: Apache-2.0
@@ -83,7 +83,7 @@ Dynamic: license-file
83
83
  [![PyPI](https://img.shields.io/pypi/v/redup)](https://pypi.org/project/redup/)
84
84
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
85
85
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
86
- [![Version](https://img.shields.io/badge/version-0.3.6-green.svg)](https://pypi.org/project/redup/)
86
+ [![Version](https://img.shields.io/badge/version-0.3.7-green.svg)](https://pypi.org/project/redup/)
87
87
 
88
88
  reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
89
89
 
@@ -5,7 +5,7 @@
5
5
  [![PyPI](https://img.shields.io/pypi/v/redup)](https://pypi.org/project/redup/)
6
6
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
7
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
8
- [![Version](https://img.shields.io/badge/version-0.3.6-green.svg)](https://pypi.org/project/redup/)
8
+ [![Version](https://img.shields.io/badge/version-0.3.7-green.svg)](https://pypi.org/project/redup/)
9
9
 
10
10
  reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
11
11
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "redup"
7
- version = "0.3.6"
7
+ version = "0.3.7"
8
8
  description = "Code duplication analyzer and refactoring planner for LLMs"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "0.3.6"
5
+ __version__ = "0.3.7"
6
6
 
7
7
  from redup.core.models import (
8
8
  DuplicateFragment,
@@ -13,7 +13,8 @@ except ImportError:
13
13
  from redup.core.scanner import CodeBlock
14
14
  from redup.core.utils.function_extractor import (
15
15
  GO_EXTRACTOR, RUST_EXTRACTOR, JAVA_EXTRACTOR,
16
- SCALA_EXTRACTOR, KOTLIN_EXTRACTOR, SWIFT_EXTRACTOR, OBJC_EXTRACTOR
16
+ SCALA_EXTRACTOR, KOTLIN_EXTRACTOR, SWIFT_EXTRACTOR, OBJC_EXTRACTOR,
17
+ LUA_EXTRACTOR
17
18
  )
18
19
 
19
20
 
@@ -513,35 +514,7 @@ def _extract_blocks_sql(node: Any, source_lines: list[str], file_path: str) -> l
513
514
 
514
515
  def _extract_functions_lua(node: Any, source_lines: list[str], file_path: str) -> list[CodeBlock]:
515
516
  """Extract functions from Lua using tree-sitter."""
516
- blocks = []
517
-
518
- def traverse(node: Any, depth: int = 0) -> None:
519
- if depth > 50:
520
- return
521
-
522
- node_type = node.type
523
-
524
- # Function declarations (local function, function)
525
- if node_type in ("function_declaration", "local_function"):
526
- start_line = node.start_point[0] + 1
527
- end_line = node.end_point[0] + 1
528
-
529
- name_node = node.child_by_field_name("name")
530
- function_name = name_node.text.decode() if name_node else "anonymous"
531
-
532
- blocks.append(CodeBlock(
533
- file=file_path,
534
- line_start=start_line,
535
- line_end=end_line,
536
- text="\n".join(source_lines[start_line-1:end_line]),
537
- function_name=function_name,
538
- class_name=None,
539
- ))
540
-
541
- for child in node.children:
542
- traverse(child, depth + 1)
543
-
544
- return blocks
517
+ return LUA_EXTRACTOR.extract_functions(node, source_lines, file_path)
545
518
 
546
519
 
547
520
  def _extract_functions_c_sharp(node: Any, source_lines: list[str], file_path: str) -> list[CodeBlock]:
@@ -141,3 +141,8 @@ OBJC_EXTRACTOR = FunctionExtractor(
141
141
  function_node_types=["function_definition"],
142
142
  method_node_types=["method_declaration"]
143
143
  )
144
+
145
+ LUA_EXTRACTOR = FunctionExtractor(
146
+ function_node_types=["function_declaration", "local_function"],
147
+ method_node_types=[]
148
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redup
3
- Version: 0.3.6
3
+ Version: 0.3.7
4
4
  Summary: Code duplication analyzer and refactoring planner for LLMs
5
5
  Author-email: Tom Sapletta <tom@sapletta.com>
6
6
  License-Expression: Apache-2.0
@@ -83,7 +83,7 @@ Dynamic: license-file
83
83
  [![PyPI](https://img.shields.io/pypi/v/redup)](https://pypi.org/project/redup/)
84
84
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
85
85
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
86
- [![Version](https://img.shields.io/badge/version-0.3.6-green.svg)](https://pypi.org/project/redup/)
86
+ [![Version](https://img.shields.io/badge/version-0.3.7-green.svg)](https://pypi.org/project/redup/)
87
87
 
88
88
  reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
89
89
 
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