.flake8
.pre-commit-config.yaml
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
MANIFEST.in
README.md
SECURITY.md
justfile
pyproject.toml
setup.cfg
uv.lock
.templates/README.md
.templates/binding_constructs_comprehensive.py
.templates/bindings_comprehensions.py
.templates/bindings_for_loops.py
.templates/closure_adversarial.py
.templates/complex_expressions.py
.templates/control_flow_adversarial.py
.templates/edge_cases_stress_test.py
.templates/example1_simple.py
.templates/example2_classes.py
.templates/example3_file1.py
.templates/example3_file2.py
.templates/example4_complex.py
.templates/exception_adversarial.py
.templates/fstrings_constants.py
.templates/functional_patterns.py
.templates/global_nonlocal_examples.py
.templates/hygienic_naming.py
.templates/method_chains.py
.templates/nested_structures.py
.templates/real_world_patterns.py
.templates/referential_transparency.py
.templates/return_values.py
.templates/scoping_edge_cases.py
.templates/side_effects_adversarial.py
.templates/syntactic_coverage_comprehensive.py
.templates/tricky_edge_cases_adversarial.py
docs/ADVERSARIAL_REVIEW.md
docs/ARCHITECTURE.md
docs/BUG_HANDOFF_2025-12-03.md
docs/CROSS_FILE_REFACTORING.md
docs/JUSTFILE_REFERENCE.md
docs/KNOWN_LIMITATIONS.md
docs/OPEN_SOURCE_AUDIT.md
docs/PRODUCTION_READINESS.md
docs/README_DIRECTORY_USAGE.md
docs/RELEASE_LOG.md
docs/RELEASING.md
docs/TESTING_AUDIT.md
docs/TROUBLESHOOTING.md
docs/UNIFICATION_IMPLEMENTATION.md
docs/USAGE_GUIDE.md
scripts/add_copyright_headers.py
scripts/bench_refactor.py
scripts/debug_pair.py
scripts/dry
scripts/ecosystem_check.py
scripts/preview
scripts/promote_dry_helpers.py
scripts/report_net_benefit_diff.py
scripts/run_crossfile_coverage.py
scripts/set_version.py
scripts/trace_proposals.py
scripts/verify-examples
scripts/ecosystem/manifest.toml
src/code_towel.egg-info/PKG-INFO
src/code_towel.egg-info/SOURCES.txt
src/code_towel.egg-info/dependency_links.txt
src/code_towel.egg-info/entry_points.txt
src/code_towel.egg-info/requires.txt
src/code_towel.egg-info/top_level.txt
src/towel/__init__.py
src/towel/changes.py
src/towel/cli.py
src/towel/filesystem.py
src/towel/py.typed
src/towel/renaming.py
src/towel/unification/__init__.py
src/towel/unification/assignment_analyzer.py
src/towel/unification/ast_normalizer.py
src/towel/unification/ast_pretty_printer.py
src/towel/unification/binding_detector.py
src/towel/unification/block_signature.py
src/towel/unification/builtins.py
src/towel/unification/definite_assignment.py
src/towel/unification/exceptions.py
src/towel/unification/extractor.py
src/towel/unification/instantiation.py
src/towel/unification/models.py
src/towel/unification/nominal_unifier.py
src/towel/unification/orphan_detector.py
src/towel/unification/pipeline.py
src/towel/unification/project_layout.py
src/towel/unification/refactor_engine.py
src/towel/unification/scope_analyzer.py
src/towel/unification/semantic_safety.py
src/towel/unification/structural_memo.py
src/towel/unification/thunk_inlining.py
src/towel/unification/unifier.py
src/towel/unification/visitor_utils.py
src/towel/unification/visitors.py
test_examples/README.md
test_examples/binding_constructs_comprehensive.py
test_examples/bindings_comprehensions.py
test_examples/bindings_for_loops.py
test_examples/closure_adversarial.py
test_examples/complex_expressions.py
test_examples/control_flow_adversarial.py
test_examples/edge_cases_stress_test.py
test_examples/example1_simple.py
test_examples/example2_classes.py
test_examples/example3_file1.py
test_examples/example3_file2.py
test_examples/example4_complex.py
test_examples/exception_adversarial.py
test_examples/fstrings_constants.py
test_examples/functional_patterns.py
test_examples/global_nonlocal_examples.py
test_examples/hygienic_naming.py
test_examples/method_chains.py
test_examples/nested_structures.py
test_examples/real_world_patterns.py
test_examples/referential_transparency.py
test_examples/return_values.py
test_examples/scoping_edge_cases.py
test_examples/side_effects_adversarial.py
test_examples/syntactic_coverage_comprehensive.py
test_examples/tricky_edge_cases_adversarial.py
test_examples_crossfile/README.md
test_examples_crossfile/multi_level/api/checkout.py
test_examples_crossfile/multi_level/core/services/payment.py
test_examples_crossfile/multi_level/utils/validators.py
test_examples_crossfile/nested_structure/src/data_processor.py
test_examples_crossfile/simple_crossfile/admin_service.py
test_examples_crossfile/simple_crossfile/user_service.py
test_examples_crossfile_expected_output/multi_level/api/checkout.py
test_examples_crossfile_expected_output/multi_level/core/services/payment.py
test_examples_crossfile_expected_output/multi_level/utils/validators.py
test_examples_crossfile_expected_output/nested_structure/src/data_processor.py
test_examples_crossfile_expected_output/simple_crossfile/admin_service.py
test_examples_crossfile_expected_output/simple_crossfile/user_service.py
test_examples_expected_output/binding_constructs_comprehensive.py
test_examples_expected_output/bindings_comprehensions.py
test_examples_expected_output/bindings_for_loops.py
test_examples_expected_output/closure_adversarial.py
test_examples_expected_output/complex_expressions.py
test_examples_expected_output/control_flow_adversarial.py
test_examples_expected_output/edge_cases_stress_test.py
test_examples_expected_output/example1_simple.py
test_examples_expected_output/example2_classes.py
test_examples_expected_output/example3_file1.py
test_examples_expected_output/example3_file2.py
test_examples_expected_output/example4_complex.py
test_examples_expected_output/exception_adversarial.py
test_examples_expected_output/fstrings_constants.py
test_examples_expected_output/functional_patterns.py
test_examples_expected_output/global_nonlocal_examples.py
test_examples_expected_output/hygienic_naming.py
test_examples_expected_output/method_chains.py
test_examples_expected_output/nested_structures.py
test_examples_expected_output/real_world_patterns.py
test_examples_expected_output/referential_transparency.py
test_examples_expected_output/return_values.py
test_examples_expected_output/scoping_edge_cases.py
test_examples_expected_output/side_effects_adversarial.py
test_examples_expected_output/syntactic_coverage_comprehensive.py
test_examples_expected_output/tricky_edge_cases_adversarial.py
tests/OBSERVATIONAL_EQUIVALENCE.md
tests/README.md
tests/__init__.py
tests/automatic_equivalence_tester.py
tests/conftest.py
tests/crossfile_equivalence_tester.py
tests/edge_case_values.py
tests/equivalence_targets.py
tests/generate_baseline.py
tests/run_tests.py
tests/test_adversarial_renaming.py
tests/test_adversarial_semantics.py
tests/test_analysis_sessions.py
tests/test_ancestor_insertion.py
tests/test_assignment_analyzer_comprehensive.py
tests/test_ast_normalizer_comprehensive.py
tests/test_ast_pretty_printer.py
tests/test_ast_pretty_printer_comprehensive.py
tests/test_ast_pretty_printer_more.py
tests/test_backend_layouts.py
tests/test_binding_detector.py
tests/test_binding_detector_edge_cases.py
tests/test_bindings.py
tests/test_bindings_additional.py
tests/test_breakers.py
tests/test_builtins_comprehensive.py
tests/test_candidate_index.py
tests/test_change_transactions.py
tests/test_cli_integration.py
tests/test_cli_output_safety.py
tests/test_comprehensive_coverage.py
tests/test_copy_preservation.py
tests/test_crossfile_integration.py
tests/test_crossfile_observational_equivalence.py
tests/test_definite_assignment.py
tests/test_engine_adversarial.py
tests/test_engine_failure_visibility.py
tests/test_equivalence_harness_regressions.py
tests/test_equivalence_target_selection.py
tests/test_exceptions.py
tests/test_extractor_additional_branches.py
tests/test_extractor_augassign_and_fstrings.py
tests/test_extractor_callee_and_multi_return.py
tests/test_extractor_comprehensive.py
tests/test_extractor_edge_cases.py
tests/test_extractor_final_lines.py
tests/test_extractor_generate_call_variants.py
tests/test_extractor_more_paths.py
tests/test_extractor_preamble_and_call_mapping.py
tests/test_extractor_remaining_branches.py
tests/test_extractor_return_statements.py
tests/test_extractor_substituter_and_helpers.py
tests/test_final_coverage_push.py
tests/test_frame_sensitivity_scan.py
tests/test_free_variable_correspondence.py
tests/test_fstrings.py
tests/test_helper_inventory.py
tests/test_helpers.py
tests/test_hostile_battery.py
tests/test_hostile_crossfile_battery.py
tests/test_import_bindings.py
tests/test_import_resolution.py
tests/test_instantiation_check.py
tests/test_legacy_normalizers.py
tests/test_method_level_and_attributes.py
tests/test_method_receiver_arguments.py
tests/test_nominal_unifier.py
tests/test_observational_equivalence.py
tests/test_orphan_detection.py
tests/test_orphan_detector_comprehensive.py
tests/test_overlap_filtering.py
tests/test_parent_watchdog.py
tests/test_pipeline_api.py
tests/test_pipeline_phases.py
tests/test_progress_modes.py
tests/test_project_layout_and_imports.py
tests/test_project_layout_behavior.py
tests/test_promotion_and_mangling.py
tests/test_refactor_engine_comprehensive.py
tests/test_refactor_engine_edge_cases.py
tests/test_refactor_engine_more.py
tests/test_refactor_engine_targeted_branches.py
tests/test_refactoring_engine.py
tests/test_regression.py
tests/test_regressions_broader.py
tests/test_release_regressions.py
tests/test_rename_parameters_and_methods.py
tests/test_return_values.py
tests/test_scope_analyzer.py
tests/test_scope_analyzer_comprehensive.py
tests/test_semantic_guards_extended.py
tests/test_semantic_safety_regressions.py
tests/test_signature_prefilter.py
tests/test_structural_memo.py
tests/test_thunk_inlining.py
tests/test_unifier_additional_branches.py
tests/test_unifier_batch2.py
tests/test_unifier_batch3.py
tests/test_unifier_batch4.py
tests/test_unifier_batch5.py
tests/test_unifier_bound_variables.py
tests/test_unifier_comprehensions.py
tests/test_unifier_comprehensive.py
tests/test_unifier_core.py
tests/test_unifier_edge_cases.py
tests/test_unifier_more_branches.py
tests/test_unifier_state_reset.py
tests/test_validation_partial_lifetime.py
tests/test_variable_capture_bug.py
tests/test_visitor_utils_comprehensive.py
tests/hostile_cases/h01_side_effect_order.py
tests/hostile_cases/h02_conditional_eval.py
tests/hostile_cases/h03_loop_reeval.py
tests/hostile_cases/h04_closure_freevar.py
tests/hostile_cases/h05_cond_return_plus_retvar.py
tests/hostile_cases/h06_del_in_block.py
tests/hostile_cases/h07_except_unbind.py
tests/hostile_cases/h08_late_binding_closure.py
tests/hostile_cases/h10_short_circuit.py
tests/hostile_cases/h13_dunder_file.py
tests/hostile_cases/h26_match_capture.py
tests/hostile_cases/h38_closure_after_block.py
tests/hostile_cases/h39_augassign_after_block.py
tests/hostile_cases/h51_semicolons.py
tests/hostile_cases/h52_del_after_block.py
tests/hostile_cases/h53_nested_func_reads_retvar.py
tests/hostile_cases/h54_attr_param_property.py
tests/hostile_cases/h55_walrus_used_after.py
tests/hostile_cases/h56_global_write.py
tests/hostile_cases/h57_exception_in_param.py
tests/hostile_cases/h58_nested_def_freevar_reassigned.py
tests/hostile_cases/h59_retvar_conditional_unbound.py
tests/hostile_cases/h60_finally_return.py
tests/hostile_cases/h61_str_method_param.py
tests/hostile_cases/r01_property_thunk_order.py
tests/hostile_cases/r02_cluster_attrs.py
tests/hostile_cases/r07_attr_two_positions.py
tests/hostile_cases/r100_clustered_site_with_live_binding.py
tests/hostile_cases/r101_same_named_method_forces_module_helper.py
tests/hostile_cases/r11_same_function_pair.py
tests/hostile_cases/r14_starred_param.py
tests/hostile_cases/r22_fstring_attr.py
tests/hostile_cases/r26_attr_store_param.py
tests/hostile_cases/r27_del_subscript.py
tests/hostile_cases/r32_method_callee.py
tests/hostile_cases/r38_name_two_positions.py
tests/hostile_cases/r39_cluster_alpha.py
tests/hostile_cases/r40_class_hierarchy.py
tests/hostile_cases/r41_conditional_call_param.py
tests/hostile_cases/r42_loop_call_param.py
tests/hostile_cases/r43_opaque_decorator_receiver.py
tests/hostile_cases/r44_cluster_nested_overlap.py
tests/hostile_cases/r45_async_no_await.py
tests/hostile_cases/r46_nonlocal_counter.py
tests/hostile_cases/r47_lru_cache_method.py
tests/hostile_cases/r50_helper_name_collision.py
tests/hostile_cases/r53_try_else_binding.py
tests/hostile_cases/r54_with_binding_used_after.py
tests/hostile_cases/r55_chained_assign.py
tests/hostile_cases/r57_star_unpack.py
tests/hostile_cases/r58_escaping_closure.py
tests/hostile_cases/r60_local_import.py
tests/hostile_cases/r61_same_function_clean.py
tests/hostile_cases/r62_recursion.py
tests/hostile_cases/r63_except_var_used_in_handler.py
tests/hostile_cases/r66_conditional_callee.py
tests/hostile_cases/r69_annassign.py
tests/hostile_cases/r72_global_promoted.py
tests/hostile_cases/r73_slice_vs_index.py
tests/hostile_cases/r74_starred_vs_plain.py
tests/hostile_cases/r75_prior_helper_param_names.py
tests/hostile_cases/r76_return_order.py
tests/hostile_cases/r77_mixed_return_and_variables.py
tests/hostile_cases/r78_walrus_in_parameter.py
tests/hostile_cases/r79_list_display_in_loop.py
tests/hostile_cases/r80_inlined_leading_thunk.py
tests/hostile_cases/r81_conditionally_bound_free_variable.py
tests/hostile_cases/r82_local_classes_same_name.py
tests/hostile_cases/r83_tab_indented_class.py
tests/hostile_cases/r84_warn_stacklevel.py
tests/hostile_cases/r85_conditionally_bound_parameter.py
tests/hostile_cases/r86_annotated_assignment_live.py
tests/hostile_cases/r87_nested_function_in_method.py
tests/hostile_cases/r88_elif_branch.py
tests/hostile_cases/r89_conditionally_bound_return.py
tests/hostile_cases/r90_cluster_across_classes.py
tests/hostile_cases/r91_class_body_helper.py
tests/hostile_cases/r92_parameterless_class_body_helper.py
tests/hostile_cases/r93_import_name_differs.py
tests/hostile_cases/r94_import_binds_live_name.py
tests/hostile_cases/r95_type_checking_annotation.py
tests/hostile_cases/r96_unpacked_targets_live.py
tests/hostile_cases/r97_helper_in_function_with_outside_site.py
tests/hostile_cases/r98_same_named_methods_nested_helpers.py
tests/hostile_cases/r99_partial_return_branches.py
tests/hostile_crossfile/xf3_same_named_local_function/run.py
tests/hostile_crossfile/xf3_same_named_local_function/pkg/__init__.py
tests/hostile_crossfile/xf3_same_named_local_function/pkg/a.py
tests/hostile_crossfile/xf3_same_named_local_function/pkg/b.py
tests/hostile_crossfile/xf4_same_named_class/run.py
tests/hostile_crossfile/xf4_same_named_class/pkg/__init__.py
tests/hostile_crossfile/xf4_same_named_class/pkg/a.py
tests/hostile_crossfile/xf4_same_named_class/pkg/b.py
tests/hostile_crossfile/xf5_dunder_file/run.py
tests/hostile_crossfile/xf5_dunder_file/pkg/__init__.py
tests/hostile_crossfile/xf5_dunder_file/pkg/a.py
tests/hostile_crossfile/xf5_dunder_file/pkg/b.py
tests/hostile_crossfile/xf6_same_alias_different_import/run.py
tests/hostile_crossfile/xf6_same_alias_different_import/pkg/__init__.py
tests/hostile_crossfile/xf6_same_alias_different_import/pkg/a.py
tests/hostile_crossfile/xf6_same_alias_different_import/pkg/b.py
tests/hostile_crossfile/xf6_same_alias_different_import/pkg/util1.py
tests/hostile_crossfile/xf6_same_alias_different_import/pkg/util2.py
tests/hostile_crossfile/xf7_docstring_import/run.py
tests/hostile_crossfile/xf7_docstring_import/pkg/__init__.py
tests/hostile_crossfile/xf7_docstring_import/pkg/a.py
tests/hostile_crossfile/xf7_docstring_import/pkg/b.py
tests/hostile_crossfile/xf8_helper_name_collision/run.py
tests/hostile_crossfile/xf8_helper_name_collision/pkg/__init__.py
tests/hostile_crossfile/xf8_helper_name_collision/pkg/a.py
tests/hostile_crossfile/xf8_helper_name_collision/pkg/b.py
tests/hostile_crossfile/xf8_helper_name_collision/pkg/c.py
tests/hostile_crossfile/xf8_helper_name_collision/pkg/d.py
tests/hostile_crossfile/xf8_helper_name_collision/pkg/e.py
tests/hostile_crossfile/xf9_same_named_base_class/run.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/__init__.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/one/__init__.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/one/base.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/one/introspect.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/one/revoke.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/two/__init__.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/two/access.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/two/base.py
tests/hostile_crossfile/xf9_same_named_base_class/pkg/two/request.py