code-towel 1.0.1__tar.gz → 1.0.2__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.
- {code_towel-1.0.1/src/code_towel.egg-info → code_towel-1.0.2}/PKG-INFO +1 -1
- {code_towel-1.0.1 → code_towel-1.0.2}/pyproject.toml +1 -1
- {code_towel-1.0.1 → code_towel-1.0.2/src/code_towel.egg-info}/PKG-INFO +1 -1
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/cli.py +2 -2
- {code_towel-1.0.1 → code_towel-1.0.2}/LICENSE +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/README.md +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/setup.cfg +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/code_towel.egg-info/SOURCES.txt +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/code_towel.egg-info/dependency_links.txt +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/code_towel.egg-info/entry_points.txt +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/code_towel.egg-info/requires.txt +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/code_towel.egg-info/top_level.txt +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/__init__.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/__init__.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/assignment_analyzer.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/ast_normalizer.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/ast_pretty_printer.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/binding_detector.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/block_signature.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/builtins.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/exceptions.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/extractor.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/models.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/nominal_unifier.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/orphan_detector.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/pipeline.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/project_layout.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/refactor_engine.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/scope_analyzer.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/unifier.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/visitor_utils.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/src/towel/unification/visitors.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_ancestor_insertion.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_assignment_analyzer_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_ast_normalizer_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_ast_pretty_printer.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_ast_pretty_printer_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_ast_pretty_printer_more.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_binding_detector.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_binding_detector_edge_cases.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_bindings.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_bindings_additional.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_breakers.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_builtins_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_comprehensive_coverage.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_crossfile_integration.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_crossfile_observational_equivalence.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_engine_adversarial.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_exceptions.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_additional_branches.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_augassign_and_fstrings.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_callee_and_multi_return.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_edge_cases.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_final_lines.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_generate_call_variants.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_more_paths.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_preamble_and_call_mapping.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_remaining_branches.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_return_statements.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_extractor_substituter_and_helpers.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_final_coverage_push.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_free_variable_correspondence.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_fstrings.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_helpers.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_method_level_and_attributes.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_nominal_unifier.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_observational_equivalence.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_orphan_detection.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_orphan_detector_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_overlap_filtering.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_pipeline_api.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_pipeline_phases.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_progress_modes.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_project_layout_and_imports.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_project_layout_behavior.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_promotion_and_mangling.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_refactor_engine_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_refactor_engine_edge_cases.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_refactor_engine_more.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_refactor_engine_targeted_branches.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_refactoring_engine.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_regression.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_regressions_broader.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_return_values.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_scope_analyzer.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_scope_analyzer_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_signature_prefilter.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_additional_branches.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_batch2.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_batch3.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_batch4.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_batch5.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_bound_variables.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_comprehensions.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_comprehensive.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_core.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_edge_cases.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_more_branches.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_unifier_state_reset.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_validation_partial_lifetime.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_variable_capture_bug.py +0 -0
- {code_towel-1.0.1 → code_towel-1.0.2}/tests/test_visitor_utils_comprehensive.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-towel"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.2"
|
|
8
8
|
description = "A Python tool that DRYs your code - finds and refactors repeated code using unification-based analysis"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "Eric Allen"}
|
|
@@ -34,7 +34,7 @@ For more help on a specific command:
|
|
|
34
34
|
parser.add_argument(
|
|
35
35
|
"--version",
|
|
36
36
|
action="version",
|
|
37
|
-
version="towel 1.0.
|
|
37
|
+
version="towel 1.0.2",
|
|
38
38
|
)
|
|
39
39
|
|
|
40
40
|
subparsers = parser.add_subparsers(dest="command", help="Available commands")
|
|
@@ -416,7 +416,7 @@ def _run_preview(args: argparse.Namespace) -> None:
|
|
|
416
416
|
else:
|
|
417
417
|
print(f"Analyzing directory: {target}")
|
|
418
418
|
all_proposals = engine.analyze_directory(
|
|
419
|
-
target, recursive=True, verbose=True, progress="
|
|
419
|
+
target, recursive=True, verbose=True, progress="auto"
|
|
420
420
|
)
|
|
421
421
|
|
|
422
422
|
print(f"\nFound {len(all_proposals)} refactoring opportunities")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|