redup 0.4.7__tar.gz → 0.4.9__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 (63) hide show
  1. {redup-0.4.7 → redup-0.4.9}/PKG-INFO +2 -2
  2. {redup-0.4.7 → redup-0.4.9}/README.md +1 -1
  3. {redup-0.4.7 → redup-0.4.9}/pyproject.toml +1 -1
  4. {redup-0.4.7 → redup-0.4.9}/src/redup/__init__.py +1 -1
  5. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/main.py +1 -1
  6. {redup-0.4.7 → redup-0.4.9}/src/redup/config.py +13 -3
  7. {redup-0.4.7 → redup-0.4.9}/src/redup.egg-info/PKG-INFO +2 -2
  8. {redup-0.4.7 → redup-0.4.9}/LICENSE +0 -0
  9. {redup-0.4.7 → redup-0.4.9}/setup.cfg +0 -0
  10. {redup-0.4.7 → redup-0.4.9}/src/redup/__main__.py +0 -0
  11. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/__init__.py +0 -0
  12. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/config_builder.py +0 -0
  13. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/fuzzy_similarity.py +0 -0
  14. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/output_writer.py +0 -0
  15. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/scan_commands.py +0 -0
  16. {redup-0.4.7 → redup-0.4.9}/src/redup/cli_app/scan_helpers.py +0 -0
  17. {redup-0.4.7 → redup-0.4.9}/src/redup/core/__init__.py +0 -0
  18. {redup-0.4.7 → redup-0.4.9}/src/redup/core/cache.py +0 -0
  19. {redup-0.4.7 → redup-0.4.9}/src/redup/core/config.py +0 -0
  20. {redup-0.4.7 → redup-0.4.9}/src/redup/core/differ.py +0 -0
  21. {redup-0.4.7 → redup-0.4.9}/src/redup/core/fuzzy_similarity.py +0 -0
  22. {redup-0.4.7 → redup-0.4.9}/src/redup/core/hash_cache.py +0 -0
  23. {redup-0.4.7 → redup-0.4.9}/src/redup/core/hasher.py +0 -0
  24. {redup-0.4.7 → redup-0.4.9}/src/redup/core/lazy_grouper.py +0 -0
  25. {redup-0.4.7 → redup-0.4.9}/src/redup/core/lsh_matcher.py +0 -0
  26. {redup-0.4.7 → redup-0.4.9}/src/redup/core/matcher.py +0 -0
  27. {redup-0.4.7 → redup-0.4.9}/src/redup/core/models.py +0 -0
  28. {redup-0.4.7 → redup-0.4.9}/src/redup/core/pipeline.py +0 -0
  29. {redup-0.4.7 → redup-0.4.9}/src/redup/core/planner.py +0 -0
  30. {redup-0.4.7 → redup-0.4.9}/src/redup/core/python_parser.py +0 -0
  31. {redup-0.4.7 → redup-0.4.9}/src/redup/core/scanner.py +0 -0
  32. {redup-0.4.7 → redup-0.4.9}/src/redup/core/semantic.py +0 -0
  33. {redup-0.4.7 → redup-0.4.9}/src/redup/core/ts_extractor.py +0 -0
  34. {redup-0.4.7 → redup-0.4.9}/src/redup/core/universal_fuzzy.py +0 -0
  35. {redup-0.4.7 → redup-0.4.9}/src/redup/core/utils/__init__.py +0 -0
  36. {redup-0.4.7 → redup-0.4.9}/src/redup/core/utils/diff_helpers.py +0 -0
  37. {redup-0.4.7 → redup-0.4.9}/src/redup/core/utils/duplicate_finders.py +0 -0
  38. {redup-0.4.7 → redup-0.4.9}/src/redup/core/utils/function_extractor.py +0 -0
  39. {redup-0.4.7 → redup-0.4.9}/src/redup/core/utils/hash_utils.py +0 -0
  40. {redup-0.4.7 → redup-0.4.9}/src/redup/core/utils/language_dispatcher.py +0 -0
  41. {redup-0.4.7 → redup-0.4.9}/src/redup/mcp_server.py +0 -0
  42. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/__init__.py +0 -0
  43. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/code2llm_reporter.py +0 -0
  44. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/enhanced_reporter.py +0 -0
  45. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/json_reporter.py +0 -0
  46. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/markdown_reporter.py +0 -0
  47. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/toon_reporter.py +0 -0
  48. {redup-0.4.7 → redup-0.4.9}/src/redup/reporters/yaml_reporter.py +0 -0
  49. {redup-0.4.7 → redup-0.4.9}/src/redup.egg-info/SOURCES.txt +0 -0
  50. {redup-0.4.7 → redup-0.4.9}/src/redup.egg-info/dependency_links.txt +0 -0
  51. {redup-0.4.7 → redup-0.4.9}/src/redup.egg-info/entry_points.txt +0 -0
  52. {redup-0.4.7 → redup-0.4.9}/src/redup.egg-info/requires.txt +0 -0
  53. {redup-0.4.7 → redup-0.4.9}/src/redup.egg-info/top_level.txt +0 -0
  54. {redup-0.4.7 → redup-0.4.9}/tests/test_e2e.py +0 -0
  55. {redup-0.4.7 → redup-0.4.9}/tests/test_hasher.py +0 -0
  56. {redup-0.4.7 → redup-0.4.9}/tests/test_matcher.py +0 -0
  57. {redup-0.4.7 → redup-0.4.9}/tests/test_mcp_server.py +0 -0
  58. {redup-0.4.7 → redup-0.4.9}/tests/test_models.py +0 -0
  59. {redup-0.4.7 → redup-0.4.9}/tests/test_pipeline.py +0 -0
  60. {redup-0.4.7 → redup-0.4.9}/tests/test_planner.py +0 -0
  61. {redup-0.4.7 → redup-0.4.9}/tests/test_reporters.py +0 -0
  62. {redup-0.4.7 → redup-0.4.9}/tests/test_scanner.py +0 -0
  63. {redup-0.4.7 → redup-0.4.9}/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.7
3
+ Version: 0.4.9
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
@@ -93,7 +93,7 @@ Dynamic: license-file
93
93
  [![PyPI](https://img.shields.io/pypi/v/redup)](https://pypi.org/project/redup/)
94
94
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
95
95
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
96
- [![Version](https://img.shields.io/badge/version-0.4.7-green.svg)](https://pypi.org/project/redup/)
96
+ [![Version](https://img.shields.io/badge/version-0.4.9-green.svg)](https://pypi.org/project/redup/)
97
97
 
98
98
  reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
99
99
 
@@ -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.4.7-green.svg)](https://pypi.org/project/redup/)
8
+ [![Version](https://img.shields.io/badge/version-0.4.9-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.4.7"
7
+ version = "0.4.9"
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.4.7"
5
+ __version__ = "0.4.9"
6
6
 
7
7
  from redup.core.models import (
8
8
  DuplicateFragment,
@@ -83,7 +83,7 @@ def scan(
83
83
  no_functions_only: bool = typer.Option(
84
84
  False,
85
85
  "--no-functions-only",
86
- help="Analyze all code, not just functions (default: functions-only for speed).",
86
+ help="Analyze all code, not just functions (default: functions-only mode is ON).",
87
87
  ),
88
88
  parallel: bool = typer.Option(
89
89
  False,
@@ -149,15 +149,25 @@ def get_default_filename(suffix: str | None = None) -> str:
149
149
  """Get default output filename.
150
150
 
151
151
  Args:
152
- suffix: Optional file suffix. If None, uses the suffix from DEFAULT_OUTPUT_FILENAME.
152
+ suffix: Optional file suffix. If None, uses the full DEFAULT_OUTPUT_FILENAME.
153
+ If provided, constructs appropriate filename with that suffix.
153
154
 
154
155
  Returns:
155
156
  Default filename string.
156
157
  """
157
158
  if suffix is None:
158
159
  return config.DEFAULT_OUTPUT_FILENAME
159
- # If suffix is provided, construct filename from base + suffix
160
- base = config.DEFAULT_OUTPUT_FILENAME.rsplit(".", 1)[0]
160
+
161
+ # Get the base name without any extensions (e.g., "duplication.toon.yaml" -> "duplication")
162
+ # Split on all dots and take the first part as base
163
+ full_name = config.DEFAULT_OUTPUT_FILENAME
164
+ base = full_name.split(".")[0]
165
+
166
+ # For "toon" format, use the full default filename (duplication.toonyaml)
167
+ if suffix == "toon":
168
+ return config.DEFAULT_OUTPUT_FILENAME
169
+
170
+ # For other formats, use simple extension (duplication.json, duplication.yaml, etc.)
161
171
  return f"{base}.{suffix}"
162
172
 
163
173
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redup
3
- Version: 0.4.7
3
+ Version: 0.4.9
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
@@ -93,7 +93,7 @@ Dynamic: license-file
93
93
  [![PyPI](https://img.shields.io/pypi/v/redup)](https://pypi.org/project/redup/)
94
94
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
95
95
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
96
- [![Version](https://img.shields.io/badge/version-0.4.7-green.svg)](https://pypi.org/project/redup/)
96
+ [![Version](https://img.shields.io/badge/version-0.4.9-green.svg)](https://pypi.org/project/redup/)
97
97
 
98
98
  reDUP scans codebases for duplicated functions, blocks, and structural patterns — then builds a prioritized refactoring map that LLMs can consume to eliminate redundancy systematically.
99
99
 
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