redup 0.4.4__tar.gz → 0.4.5__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.
- {redup-0.4.4 → redup-0.4.5}/PKG-INFO +2 -2
- {redup-0.4.4 → redup-0.4.5}/README.md +1 -1
- {redup-0.4.4 → redup-0.4.5}/pyproject.toml +1 -1
- {redup-0.4.4 → redup-0.4.5}/src/redup/__init__.py +1 -1
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/main.py +12 -11
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/scan_commands.py +2 -2
- {redup-0.4.4 → redup-0.4.5}/src/redup.egg-info/PKG-INFO +2 -2
- {redup-0.4.4 → redup-0.4.5}/LICENSE +0 -0
- {redup-0.4.4 → redup-0.4.5}/setup.cfg +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/__main__.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/__init__.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/config_builder.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/fuzzy_similarity.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/output_writer.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/cli_app/scan_helpers.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/__init__.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/cache.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/config.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/differ.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/fuzzy_similarity.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/hash_cache.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/hasher.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/lazy_grouper.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/lsh_matcher.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/matcher.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/models.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/pipeline.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/planner.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/python_parser.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/scanner.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/semantic.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/ts_extractor.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/universal_fuzzy.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/utils/__init__.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/utils/diff_helpers.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/utils/duplicate_finders.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/utils/function_extractor.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/utils/hash_utils.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/core/utils/language_dispatcher.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/mcp_server.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/__init__.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/code2llm_reporter.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/enhanced_reporter.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/json_reporter.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/markdown_reporter.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/toon_reporter.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup/reporters/yaml_reporter.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup.egg-info/SOURCES.txt +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup.egg-info/dependency_links.txt +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup.egg-info/entry_points.txt +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup.egg-info/requires.txt +0 -0
- {redup-0.4.4 → redup-0.4.5}/src/redup.egg-info/top_level.txt +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_e2e.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_hasher.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_matcher.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_mcp_server.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_models.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_pipeline.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_planner.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_reporters.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_scanner.py +0 -0
- {redup-0.4.4 → redup-0.4.5}/tests/test_ts_extractor.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: redup
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
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
|
|
@@ -92,7 +92,7 @@ Dynamic: license-file
|
|
|
92
92
|
[](https://pypi.org/project/redup/)
|
|
93
93
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
94
94
|
[](https://python.org)
|
|
95
|
-
[](https://pypi.org/project/redup/)
|
|
96
96
|
|
|
97
97
|
reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
|
|
98
98
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://pypi.org/project/redup/)
|
|
6
6
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
7
7
|
[](https://python.org)
|
|
8
|
-
[](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
|
|
|
@@ -78,14 +78,15 @@ def scan(
|
|
|
78
78
|
"--include-tests",
|
|
79
79
|
help="Include test files. Overrides config.",
|
|
80
80
|
),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"--
|
|
84
|
-
help="
|
|
81
|
+
no_functions_only: bool = typer.Option(
|
|
82
|
+
False,
|
|
83
|
+
"--no-functions-only",
|
|
84
|
+
help="Analyze all code, not just functions (default: functions-only for speed).",
|
|
85
85
|
),
|
|
86
86
|
parallel: bool = typer.Option(
|
|
87
87
|
False,
|
|
88
|
-
"--parallel
|
|
88
|
+
"--parallel",
|
|
89
|
+
"--no-parallel",
|
|
89
90
|
help="Use parallel scanning for large projects (default: disabled due to issues).",
|
|
90
91
|
),
|
|
91
92
|
max_workers: int | None = typer.Option(
|
|
@@ -98,10 +99,10 @@ def scan(
|
|
|
98
99
|
"--incremental",
|
|
99
100
|
help="Use incremental scanning with caching.",
|
|
100
101
|
),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
"--
|
|
104
|
-
help="
|
|
102
|
+
no_memory_cache: bool = typer.Option(
|
|
103
|
+
False,
|
|
104
|
+
"--no-memory-cache",
|
|
105
|
+
help="Disable memory cache for scanning.",
|
|
105
106
|
),
|
|
106
107
|
max_cache_mb: int = typer.Option(
|
|
107
108
|
512,
|
|
@@ -122,8 +123,8 @@ def scan(
|
|
|
122
123
|
"""Scan a project for code duplicates."""
|
|
123
124
|
return scan_command(
|
|
124
125
|
path, format, output, extensions, min_lines, min_similarity,
|
|
125
|
-
include_tests,
|
|
126
|
-
incremental,
|
|
126
|
+
include_tests, not no_functions_only, parallel, max_workers,
|
|
127
|
+
incremental, not no_memory_cache, max_cache_mb, fuzzy, fuzzy_threshold
|
|
127
128
|
)
|
|
128
129
|
|
|
129
130
|
|
|
@@ -21,11 +21,11 @@ def scan_command(
|
|
|
21
21
|
min_lines: Any = typer.Option(None, "--min-lines", help="Minimum block size (lines). Overrides config."),
|
|
22
22
|
min_similarity: Any = typer.Option(None, "--min-sim", help="Minimum similarity score (0.0-1.0). Overrides config."),
|
|
23
23
|
include_tests: bool = typer.Option(False, "--include-tests", help="Include test files in analysis."),
|
|
24
|
-
functions_only: bool = typer.Option(True, "--functions-only
|
|
24
|
+
functions_only: bool = typer.Option(True, "--functions-only", help="Only analyze function-level duplicates (default: enabled for speed)."),
|
|
25
25
|
parallel: bool = typer.Option(False, "--parallel", help="Use parallel processing for faster analysis."),
|
|
26
26
|
max_workers: Any = typer.Option(None, "--max-workers", help="Maximum number of parallel workers."),
|
|
27
27
|
incremental: bool = typer.Option(False, "--incremental", help="Use incremental scanning (cache-based)."),
|
|
28
|
-
memory_cache: bool = typer.Option(True, "--memory-cache
|
|
28
|
+
memory_cache: bool = typer.Option(True, "--memory-cache", help="Use memory cache for faster processing."),
|
|
29
29
|
max_cache_mb: int = typer.Option(512, "--max-cache-mb", help="Maximum memory cache size in MB."),
|
|
30
30
|
fuzzy: bool = typer.Option(False, "--fuzzy", help="Enable fuzzy similarity detection."),
|
|
31
31
|
fuzzy_threshold: float = typer.Option(0.8, "--fuzzy-threshold", help="Fuzzy similarity threshold (0.0-1.0)."),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: redup
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
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
|
|
@@ -92,7 +92,7 @@ Dynamic: license-file
|
|
|
92
92
|
[](https://pypi.org/project/redup/)
|
|
93
93
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
94
94
|
[](https://python.org)
|
|
95
|
-
[](https://pypi.org/project/redup/)
|
|
96
96
|
|
|
97
97
|
reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
|
|
98
98
|
|
|
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
|