-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcoverage.json
More file actions
1 lines (1 loc) · 246 KB
/
coverage.json
File metadata and controls
1 lines (1 loc) · 246 KB
1
{"meta": {"format": 3, "version": "7.13.5", "timestamp": "2026-04-16T13:01:00.367519", "branch_coverage": false, "show_contexts": false}, "files": {"src/redup/__init__.py": {"executed_lines": [3, 5, 9, 10, 11, 13, 20, 21, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 5, 9, 10, 11, 13, 20, 21, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 9, 10, 11, 13, 20, 21, 23], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/__main__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5], "excluded_lines": [], "start_line": 1}}}, "src/redup/analysis_logic.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 4, 5, 7, 8, 9, 11, 12, 16], "excluded_lines": [], "functions": {"_build_scan_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [5, 7, 8, 9, 11, 12, 16], "excluded_lines": [], "start_line": 4}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 4], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 4, 5, 7, 8, 9, 11, 12, 16], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/config_builder.py": {"executed_lines": [3, 4, 6, 7, 10, 22, 38, 39, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 57], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 86.95652173913044, "percent_statements_covered_display": "87"}, "missing_lines": [18, 19, 47], "excluded_lines": [], "functions": {"build_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [18, 19], "excluded_lines": [], "start_line": 10}, "build_config_with_file_support": {"executed_lines": [38, 39, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 57], "summary": {"covered_lines": 14, "num_statements": 15, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.33333333333333, "percent_statements_covered_display": "93"}, "missing_lines": [47], "excluded_lines": [], "start_line": 22}, "": {"executed_lines": [3, 4, 6, 7, 10, 22], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6, 7, 10, 22, 38, 39, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 57], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 86.95652173913044, "percent_statements_covered_display": "87"}, "missing_lines": [18, 19, 47], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/fuzzy_similarity.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 89, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 89, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 4, 6, 9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 23, 24, 26, 27, 30, 32, 34, 35, 36, 37, 39, 40, 42, 43, 45, 48, 50, 52, 53, 54, 56, 64, 65, 68, 70, 73, 75, 78, 80, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 96, 99, 101, 103, 104, 107, 109, 111, 112, 115, 117, 118, 121, 124, 125, 127, 128, 134, 137, 139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160], "excluded_lines": [], "functions": {"_apply_fuzzy_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [11, 12, 13, 14, 16, 17, 18, 19, 21, 23, 24, 26, 27], "excluded_lines": [], "start_line": 9}, "_validate_fuzzy_input": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [32, 34, 35, 36, 37, 39, 40, 42, 43, 45], "excluded_lines": [], "start_line": 30}, "_extract_all_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [50, 52, 53, 54, 56, 64, 65], "excluded_lines": [], "start_line": 48}, "_separate_blocks_by_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [70, 73, 75], "excluded_lines": [], "start_line": 68}, "_analyze_blocks_with_detectors": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [80, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 96], "excluded_lines": [], "start_line": 78}, "_analyze_html_css_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 103, 104], "excluded_lines": [], "start_line": 99}, "_analyze_other_language_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [109, 111, 112], "excluded_lines": [], "start_line": 107}, "_report_fuzzy_results": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [117, 118, 121, 124, 125, 127, 128, 134], "excluded_lines": [], "start_line": 115}, "_report_similarity_by_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160], "excluded_lines": [], "start_line": 137}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 4, 6, 9, 30, 48, 68, 78, 99, 107, 115, 137], "excluded_lines": [], "start_line": 1}}, "classes": {"_validate_fuzzy_input.FuzzyValidationResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 89, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 89, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 4, 6, 9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 23, 24, 26, 27, 30, 32, 34, 35, 36, 37, 39, 40, 42, 43, 45, 48, 50, 52, 53, 54, 56, 64, 65, 68, 70, 73, 75, 78, 80, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 96, 99, 101, 103, 104, 107, 109, 111, 112, 115, 117, 118, 121, 124, 125, 127, 128, 134, 137, 139, 140, 141, 142, 143, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/main.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 13, 15, 16, 17, 18, 21, 22, 23, 26, 28, 35, 38, 39, 40, 43, 44, 118, 125, 126, 134, 135, 172, 173, 189, 190, 192, 195], "summary": {"covered_lines": 33, "num_statements": 37, "percent_covered": 89.1891891891892, "percent_covered_display": "89", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 89.1891891891892, "percent_statements_covered_display": "89"}, "missing_lines": [131, 169, 186, 196], "excluded_lines": [], "functions": {"scan": {"executed_lines": [118], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 44}, "diff": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [131], "excluded_lines": [], "start_line": 126}, "check": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [169], "excluded_lines": [], "start_line": 135}, "config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [186], "excluded_lines": [], "start_line": 173}, "info": {"executed_lines": [192], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 190}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 13, 15, 16, 17, 18, 21, 22, 23, 26, 28, 35, 38, 39, 40, 43, 44, 125, 126, 134, 135, 172, 173, 189, 190, 195], "summary": {"covered_lines": 31, "num_statements": 32, "percent_covered": 96.875, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.875, "percent_statements_covered_display": "97"}, "missing_lines": [196], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 8, 10, 13, 15, 16, 17, 18, 21, 22, 23, 26, 28, 35, 38, 39, 40, 43, 44, 118, 125, 126, 134, 135, 172, 173, 189, 190, 192, 195], "summary": {"covered_lines": 33, "num_statements": 37, "percent_covered": 89.1891891891892, "percent_covered_display": "89", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 89.1891891891892, "percent_statements_covered_display": "89"}, "missing_lines": [131, 169, 186, 196], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/output_writer.py": {"executed_lines": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 16, 18, 20, 21, 22, 23, 24, 26, 29, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 49, 56, 58, 66, 68, 69, 73, 74, 75, 76], "summary": {"covered_lines": 41, "num_statements": 53, "percent_covered": 77.35849056603773, "percent_covered_display": "77", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 77.35849056603773, "percent_statements_covered_display": "77"}, "missing_lines": [43, 44, 46, 47, 48, 50, 51, 52, 55, 71, 78, 79], "excluded_lines": [], "functions": {"write_output": {"executed_lines": [18, 20, 21, 22, 23, 24, 26], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "write_results": {"executed_lines": [31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 49, 56, 58, 66, 68, 69, 73, 74, 75, 76], "summary": {"covered_lines": 22, "num_statements": 34, "percent_covered": 64.70588235294117, "percent_covered_display": "65", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 64.70588235294117, "percent_statements_covered_display": "65"}, "missing_lines": [43, 44, 46, 47, 48, 50, 51, 52, 55, 71, 78, 79], "excluded_lines": [], "start_line": 29}, "": {"executed_lines": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 16, 29], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 16, 18, 20, 21, 22, 23, 24, 26, 29, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 49, 56, 58, 66, 68, 69, 73, 74, 75, 76], "summary": {"covered_lines": 41, "num_statements": 53, "percent_covered": 77.35849056603773, "percent_covered_display": "77", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 77.35849056603773, "percent_statements_covered_display": "77"}, "missing_lines": [43, 44, 46, 47, 48, 50, 51, 52, 55, 71, 78, 79], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/scan_commands.py": {"executed_lines": [3, 4, 6, 8, 9, 10, 11, 12, 13, 16, 36, 37, 45, 48, 50, 51, 56, 60, 63, 64, 67, 80, 111, 141, 143, 144, 146, 147, 148, 151, 158, 159, 160, 161, 162], "summary": {"covered_lines": 35, "num_statements": 80, "percent_covered": 43.75, "percent_covered_display": "44", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 43.75, "percent_statements_covered_display": "44"}, "missing_lines": [42, 49, 53, 57, 69, 71, 72, 73, 74, 75, 76, 77, 91, 95, 97, 98, 101, 102, 103, 104, 105, 106, 108, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 138, 163, 164], "excluded_lines": [], "functions": {"scan_command": {"executed_lines": [36, 37, 45, 48, 50, 51, 56, 60, 63, 64], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [42, 49, 53, 57], "excluded_lines": [], "start_line": 16}, "diff_command": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [69, 71, 72, 73, 74, 75, 76, 77], "excluded_lines": [], "start_line": 67}, "check_command": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [91, 95, 97, 98, 101, 102, 103, 104, 105, 106, 108], "excluded_lines": [], "start_line": 80}, "config_command": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 138], "excluded_lines": [], "start_line": 111}, "info_command": {"executed_lines": [143, 144, 146, 147, 148, 151, 158, 159, 160, 161, 162], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [163, 164], "excluded_lines": [], "start_line": 141}, "": {"executed_lines": [3, 4, 6, 8, 9, 10, 11, 12, 13, 16, 67, 80, 111, 141], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6, 8, 9, 10, 11, 12, 13, 16, 36, 37, 45, 48, 50, 51, 56, 60, 63, 64, 67, 80, 111, 141, 143, 144, 146, 147, 148, 151, 158, 159, 160, 161, 162], "summary": {"covered_lines": 35, "num_statements": 80, "percent_covered": 43.75, "percent_covered_display": "44", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 43.75, "percent_statements_covered_display": "44"}, "missing_lines": [42, 49, 53, 57, 69, 71, 72, 73, 74, 75, 76, 77, 91, 95, 97, 98, 101, 102, 103, 104, 105, 106, 108, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 138, 163, 164], "excluded_lines": [], "start_line": 1}}}, "src/redup/cli_app/scan_helpers.py": {"executed_lines": [3, 4, 6, 8, 11, 13, 14, 15, 16, 17, 20, 22, 25, 28, 31], "summary": {"covered_lines": 15, "num_statements": 17, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 88.23529411764706, "percent_statements_covered_display": "88"}, "missing_lines": [33, 34], "excluded_lines": [], "functions": {"print_scan_header": {"executed_lines": [13, 14, 15, 16, 17], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "print_scan_summary": {"executed_lines": [22, 25, 28], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "apply_fuzzy_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [33, 34], "excluded_lines": [], "start_line": 31}, "": {"executed_lines": [3, 4, 6, 8, 11, 20, 31], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6, 8, 11, 13, 14, 15, 16, 17, 20, 22, 25, 28, 31], "summary": {"covered_lines": 15, "num_statements": 17, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 88.23529411764706, "percent_statements_covered_display": "88"}, "missing_lines": [33, 34], "excluded_lines": [], "start_line": 1}}}, "src/redup/config.py": {"executed_lines": [15, 17, 18, 19, 22, 23, 26, 27, 33, 43, 44, 45, 48, 49, 50, 51, 54, 55, 56, 57, 58, 61, 62, 65, 66, 67, 70, 72, 73, 75, 77, 78, 80, 81, 82, 83, 84, 85, 102, 104, 105, 112, 113, 117, 118, 122, 125, 126, 132, 133, 142, 145, 148, 158, 163, 164, 167, 168, 171, 174], "summary": {"covered_lines": 60, "num_statements": 89, "percent_covered": 67.41573033707866, "percent_covered_display": "67", "missing_lines": 29, "excluded_lines": 0, "percent_statements_covered": 67.41573033707866, "percent_statements_covered_display": "67"}, "missing_lines": [28, 29, 30, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 114, 115, 119, 123, 128, 129, 130, 135, 136, 138, 159, 182], "excluded_lines": [], "functions": {"RedupConfig._env_name": {"executed_lines": [75], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 73}, "RedupConfig._load_from_env": {"executed_lines": [80, 81, 82, 83, 84, 85, 102], "summary": {"covered_lines": 7, "num_statements": 21, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101], "excluded_lines": [], "start_line": 78}, "RedupConfig.reload": {"executed_lines": [112, 113, 117, 118, 122], "summary": {"covered_lines": 5, "num_statements": 9, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 55.55555555555556, "percent_statements_covered_display": "56"}, "missing_lines": [114, 115, 119, 123], "excluded_lines": [], "start_line": 105}, "RedupConfig.get": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [128, 129, 130], "excluded_lines": [], "start_line": 126}, "RedupConfig.set": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [135, 136, 138], "excluded_lines": [], "start_line": 133}, "get_default_filename": {"executed_lines": [158, 163, 164, 167, 168, 171], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [159], "excluded_lines": [], "start_line": 148}, "reload_config": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [182], "excluded_lines": [], "start_line": 174}, "": {"executed_lines": [15, 17, 18, 19, 22, 23, 26, 27, 33, 43, 44, 45, 48, 49, 50, 51, 54, 55, 56, 57, 58, 61, 62, 65, 66, 67, 70, 72, 73, 77, 78, 104, 105, 125, 126, 132, 133, 142, 145, 148, 174], "summary": {"covered_lines": 41, "num_statements": 44, "percent_covered": 93.18181818181819, "percent_covered_display": "93", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 93.18181818181819, "percent_statements_covered_display": "93"}, "missing_lines": [28, 29, 30], "excluded_lines": [], "start_line": 1}}, "classes": {"RedupConfig": {"executed_lines": [75, 80, 81, 82, 83, 84, 85, 102, 112, 113, 117, 118, 122], "summary": {"covered_lines": 13, "num_statements": 37, "percent_covered": 35.13513513513514, "percent_covered_display": "35", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 35.13513513513514, "percent_statements_covered_display": "35"}, "missing_lines": [87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 114, 115, 119, 123, 128, 129, 130, 135, 136, 138], "excluded_lines": [], "start_line": 33}, "": {"executed_lines": [15, 17, 18, 19, 22, 23, 26, 27, 33, 43, 44, 45, 48, 49, 50, 51, 54, 55, 56, 57, 58, 61, 62, 65, 66, 67, 70, 72, 73, 77, 78, 104, 105, 125, 126, 132, 133, 142, 145, 148, 158, 163, 164, 167, 168, 171, 174], "summary": {"covered_lines": 47, "num_statements": 52, "percent_covered": 90.38461538461539, "percent_covered_display": "90", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 90.38461538461539, "percent_statements_covered_display": "90"}, "missing_lines": [28, 29, 30, 159, 182], "excluded_lines": [], "start_line": 1}}}, "src/redup/config_handler.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 3, 11], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 3, 11], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 3, 11], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/cache.py": {"executed_lines": [3, 5, 6, 7, 8, 9, 11, 12, 15, 22, 29, 60, 64, 83, 111, 148, 169, 191, 225], "summary": {"covered_lines": 19, "num_statements": 103, "percent_covered": 18.446601941747574, "percent_covered_display": "18", "missing_lines": 84, "excluded_lines": 0, "percent_statements_covered": 18.446601941747574, "percent_statements_covered_display": "18"}, "missing_lines": [24, 25, 26, 27, 31, 40, 53, 58, 62, 66, 67, 68, 70, 74, 76, 77, 78, 79, 81, 90, 91, 92, 94, 96, 102, 103, 104, 105, 107, 108, 109, 113, 114, 115, 116, 119, 126, 131, 136, 137, 143, 144, 146, 150, 151, 153, 160, 165, 166, 167, 171, 172, 173, 175, 176, 178, 179, 181, 187, 188, 210, 211, 214, 215, 216, 219, 220, 222, 235, 237, 238, 240, 241, 242, 244, 245, 248, 253, 254, 255, 258, 264, 265, 267], "excluded_lines": [], "functions": {"HashCache.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24, 25, 26, 27], "excluded_lines": [], "start_line": 22}, "HashCache._init_tables": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31, 40, 53, 58], "excluded_lines": [], "start_line": 29}, "HashCache._get_file_hash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [62], "excluded_lines": [], "start_line": 60}, "HashCache.is_file_unchanged": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [66, 67, 68, 70, 74, 76, 77, 78, 79, 81], "excluded_lines": [], "start_line": 64}, "HashCache.get_cached_block_hashes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [90, 91, 92, 94, 96, 102, 103, 104, 105, 107, 108, 109], "excluded_lines": [], "start_line": 83}, "HashCache.store_file_hashes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [113, 114, 115, 116, 119, 126, 131, 136, 137, 143, 144, 146], "excluded_lines": [], "start_line": 111}, "HashCache.cleanup_old_entries": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [150, 151, 153, 160, 165, 166, 167], "excluded_lines": [], "start_line": 148}, "HashCache.get_stats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [171, 172, 173, 175, 176, 178, 179, 181, 187, 188], "excluded_lines": [], "start_line": 169}, "hash_block_with_cache": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [210, 211, 214, 215, 216, 219, 220, 222], "excluded_lines": [], "start_line": 191}, "build_hash_index_with_cache": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [235, 237, 238, 240, 241, 242, 244, 245, 248, 253, 254, 255, 258, 264, 265, 267], "excluded_lines": [], "start_line": 225}, "": {"executed_lines": [3, 5, 6, 7, 8, 9, 11, 12, 15, 22, 29, 60, 64, 83, 111, 148, 169, 191, 225], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"HashCache": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24, 25, 26, 27, 31, 40, 53, 58, 62, 66, 67, 68, 70, 74, 76, 77, 78, 79, 81, 90, 91, 92, 94, 96, 102, 103, 104, 105, 107, 108, 109, 113, 114, 115, 116, 119, 126, 131, 136, 137, 143, 144, 146, 150, 151, 153, 160, 165, 166, 167, 171, 172, 173, 175, 176, 178, 179, 181, 187, 188], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 5, 6, 7, 8, 9, 11, 12, 15, 22, 29, 60, 64, 83, 111, 148, 169, 191, 225], "summary": {"covered_lines": 19, "num_statements": 43, "percent_covered": 44.18604651162791, "percent_covered_display": "44", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 44.18604651162791, "percent_statements_covered_display": "44"}, "missing_lines": [210, 211, 214, 215, 216, 219, 220, 222, 235, 237, 238, 240, 241, 242, 244, 245, 248, 253, 254, 255, 258, 264, 265, 267], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/config.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 17, 18, 21, 23, 26, 29, 30, 31, 36, 38, 39, 40, 43, 45, 46, 49, 60, 70, 73, 76, 87, 88, 89, 98, 101, 103, 104, 105, 110, 111, 113, 125], "summary": {"covered_lines": 38, "num_statements": 55, "percent_covered": 69.0909090909091, "percent_covered_display": "69", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 69.0909090909091, "percent_statements_covered_display": "69"}, "missing_lines": [11, 12, 13, 14, 15, 24, 27, 32, 33, 90, 91, 92, 94, 95, 96, 108, 127], "excluded_lines": [], "functions": {"_load_toml_file": {"executed_lines": [23, 26, 29, 30, 31], "summary": {"covered_lines": 5, "num_statements": 9, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 55.55555555555556, "percent_statements_covered_display": "56"}, "missing_lines": [24, 27, 32, 33], "excluded_lines": [], "start_line": 21}, "_get_config_from_pyproject": {"executed_lines": [38, 39, 40], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "_get_config_from_redup_toml": {"executed_lines": [45, 46], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "load_config": {"executed_lines": [60, 70, 73, 76, 87, 88, 89, 98], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [90, 91, 92, 94, 95, 96], "excluded_lines": [], "start_line": 49}, "config_to_scan_config": {"executed_lines": [103, 104, 105, 110, 111, 113], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [108], "excluded_lines": [], "start_line": 101}, "create_sample_redup_toml": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [127], "excluded_lines": [], "start_line": 125}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 17, 18, 21, 36, 43, 49, 101, 125], "summary": {"covered_lines": 14, "num_statements": 19, "percent_covered": 73.6842105263158, "percent_covered_display": "74", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 73.6842105263158, "percent_statements_covered_display": "74"}, "missing_lines": [11, 12, 13, 14, 15], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 9, 10, 17, 18, 21, 23, 26, 29, 30, 31, 36, 38, 39, 40, 43, 45, 46, 49, 60, 70, 73, 76, 87, 88, 89, 98, 101, 103, 104, 105, 110, 111, 113, 125], "summary": {"covered_lines": 38, "num_statements": 55, "percent_covered": 69.0909090909091, "percent_covered_display": "69", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 69.0909090909091, "percent_statements_covered_display": "69"}, "missing_lines": [11, 12, 13, 14, 15, 24, 27, 32, 33, 90, 91, 92, 94, 95, 96, 108, 127], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/differ.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 23, 24, 26, 27, 28, 31, 33, 36, 37, 40, 41, 43, 44, 45, 46, 53, 56, 57, 65, 68, 69, 81, 90, 92, 93, 94, 95, 98, 121, 125, 126, 128, 129, 132, 134, 135, 136, 138, 140, 153, 155, 158, 159, 160, 163, 164, 165, 166, 167, 170, 180, 190, 191, 192, 193, 194, 195, 196, 199, 200, 202, 205, 207, 209], "summary": {"covered_lines": 77, "num_statements": 108, "percent_covered": 71.29629629629629, "percent_covered_display": "71", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 71.29629629629629, "percent_statements_covered_display": "71"}, "missing_lines": [34, 70, 71, 79, 101, 102, 105, 106, 109, 110, 112, 113, 115, 116, 118, 171, 172, 173, 174, 175, 176, 177, 181, 182, 183, 184, 185, 186, 187, 201, 203], "excluded_lines": [], "functions": {"_load_duplication_map": {"executed_lines": [33, 36, 37, 40, 41, 43, 44, 45, 46, 53, 56, 57, 65, 68, 69, 81], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [34, 70, 71, 79], "excluded_lines": [], "start_line": 31}, "_group_by_id": {"executed_lines": [92, 93, 94, 95], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "_groups_match": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 102, 105, 106, 109, 110, 112, 113, 115, 116, 118], "excluded_lines": [], "start_line": 98}, "compare_scans": {"executed_lines": [125, 126, 128, 129, 132, 134, 135, 136, 138, 140], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 121}, "format_diff_result": {"executed_lines": [155, 158, 159, 160, 163, 164, 165, 166, 167, 170, 180, 190, 191, 192, 193, 194, 195, 196, 199, 200, 202, 205, 207, 209], "summary": {"covered_lines": 24, "num_statements": 40, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [171, 172, 173, 174, 175, 176, 177, 181, 182, 183, 184, 185, 186, 187, 201, 203], "excluded_lines": [], "start_line": 153}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 23, 24, 26, 27, 28, 31, 90, 98, 121, 153], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DiffResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22, 23, 24, 26, 27, 28, 31, 33, 36, 37, 40, 41, 43, 44, 45, 46, 53, 56, 57, 65, 68, 69, 81, 90, 92, 93, 94, 95, 98, 121, 125, 126, 128, 129, 132, 134, 135, 136, 138, 140, 153, 155, 158, 159, 160, 163, 164, 165, 166, 167, 170, 180, 190, 191, 192, 193, 194, 195, 196, 199, 200, 202, 205, 207, 209], "summary": {"covered_lines": 77, "num_statements": 108, "percent_covered": 71.29629629629629, "percent_covered_display": "71", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 71.29629629629629, "percent_statements_covered_display": "71"}, "missing_lines": [34, 70, 71, 79, 101, 102, 105, 106, 109, 110, 112, 113, 115, 116, 118, 171, 172, 173, 174, 175, 176, 177, 181, 182, 183, 184, 185, 186, 187, 201, 203], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/fuzzy_similarity.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 223, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 223, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 39, 40, 43, 44, 45, 46, 47, 50, 54, 66, 67, 72, 74, 77, 80, 81, 82, 85, 88, 90, 98, 101, 104, 108, 111, 113, 115, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 135, 137, 139, 140, 141, 142, 144, 146, 149, 150, 151, 154, 155, 156, 159, 160, 161, 163, 165, 168, 171, 174, 176, 179, 180, 181, 184, 188, 196, 197, 202, 204, 207, 210, 211, 212, 214, 222, 224, 226, 227, 228, 230, 231, 233, 235, 237, 240, 241, 243, 244, 247, 248, 249, 250, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 265, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 283, 285, 287, 288, 291, 294, 295, 296, 297, 300, 301, 303, 305, 308, 309, 310, 311, 312, 315, 316, 317, 318, 319, 320, 322, 324, 326, 328, 329, 330, 331, 334, 335, 336, 337, 338, 340, 347, 348, 350, 352, 355, 356, 359, 362, 363, 366, 367, 370, 371, 372, 375, 376, 377, 379, 381, 383, 384, 385, 386, 389, 390, 391, 392, 394, 395, 397, 400, 401, 402, 403, 404, 406, 408, 409, 410, 412, 414, 416], "excluded_lines": [], "functions": {"_text_ratio": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24], "excluded_lines": [], "start_line": 23}, "_partial_ratio": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [26], "excluded_lines": [], "start_line": 25}, "_token_sort_ratio": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28], "excluded_lines": [], "start_line": 27}, "HTMLComponentExtractor.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [67], "excluded_lines": [], "start_line": 66}, "HTMLComponentExtractor.extract_component_signature": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [74, 77, 80, 81, 82, 85, 88, 90], "excluded_lines": [], "start_line": 72}, "HTMLComponentExtractor._normalize_html": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [101, 104, 108, 111, 113], "excluded_lines": [], "start_line": 98}, "HTMLComponentExtractor._normalize_class_name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 135], "excluded_lines": [], "start_line": 115}, "HTMLComponentExtractor._detect_component_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [139, 140, 141, 142], "excluded_lines": [], "start_line": 137}, "HTMLComponentExtractor._extract_attributes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [146, 149, 150, 151, 154, 155, 156, 159, 160, 161, 163], "excluded_lines": [], "start_line": 144}, "HTMLComponentExtractor._extract_text_content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [168, 171, 174], "excluded_lines": [], "start_line": 165}, "HTMLComponentExtractor._compute_structure_hash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [179, 180, 181], "excluded_lines": [], "start_line": 176}, "CSSComponentExtractor.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [197], "excluded_lines": [], "start_line": 196}, "CSSComponentExtractor.extract_component_signature": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [204, 207, 210, 211, 212, 214], "excluded_lines": [], "start_line": 202}, "CSSComponentExtractor._extract_css_properties": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [224, 226, 227, 228, 230, 231, 233], "excluded_lines": [], "start_line": 222}, "CSSComponentExtractor._normalize_css_value": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [237, 240, 241, 243, 244, 247, 248, 249, 250, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 265], "excluded_lines": [], "start_line": 235}, "CSSComponentExtractor._detect_css_component_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 283], "excluded_lines": [], "start_line": 267}, "CSSComponentExtractor._compute_css_hash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [287, 288], "excluded_lines": [], "start_line": 285}, "FuzzySimilarityDetector.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [295, 296, 297, 300, 301, 303], "excluded_lines": [], "start_line": 294}, "FuzzySimilarityDetector.find_similar_components": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [308, 309, 310, 311, 312, 315, 316, 317, 318, 319, 320, 322], "excluded_lines": [], "start_line": 305}, "FuzzySimilarityDetector._extract_signature": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [326, 328, 329, 330, 331, 334, 335, 336, 337, 338, 340, 347, 348, 350], "excluded_lines": [], "start_line": 324}, "FuzzySimilarityDetector._compute_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [355, 356, 359, 362, 363, 366, 367, 370, 371, 372, 375, 376, 377, 379], "excluded_lines": [], "start_line": 352}, "FuzzySimilarityDetector._compute_attribute_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [383, 384, 385, 386, 389, 390, 391, 392, 394, 395, 397, 400, 401, 402, 403, 404, 406, 408, 409, 410, 412], "excluded_lines": [], "start_line": 381}, "FuzzySimilarityDetector._compute_css_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [416], "excluded_lines": [], "start_line": 414}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 54, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 54, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 21, 22, 23, 25, 27, 29, 30, 31, 32, 33, 34, 36, 39, 40, 43, 44, 45, 46, 47, 50, 54, 66, 72, 98, 115, 137, 144, 165, 176, 184, 188, 196, 202, 222, 235, 267, 285, 291, 294, 305, 324, 352, 381, 414], "excluded_lines": [], "start_line": 1}}, "classes": {"ComponentSignature": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 40}, "HTMLComponentExtractor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 50, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 50, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [67, 74, 77, 80, 81, 82, 85, 88, 90, 101, 104, 108, 111, 113, 117, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 135, 139, 140, 141, 142, 146, 149, 150, 151, 154, 155, 156, 159, 160, 161, 163, 168, 171, 174, 179, 180, 181], "excluded_lines": [], "start_line": 50}, "CSSComponentExtractor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 48, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 48, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [197, 204, 207, 210, 211, 212, 214, 224, 226, 227, 228, 230, 231, 233, 237, 240, 241, 243, 244, 247, 248, 249, 250, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 265, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 283, 287, 288], "excluded_lines": [], "start_line": 184}, "FuzzySimilarityDetector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 68, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 68, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [295, 296, 297, 300, 301, 303, 308, 309, 310, 311, 312, 315, 316, 317, 318, 319, 320, 322, 326, 328, 329, 330, 331, 334, 335, 336, 337, 338, 340, 347, 348, 350, 355, 356, 359, 362, 363, 366, 367, 370, 371, 372, 375, 376, 377, 379, 383, 384, 385, 386, 389, 390, 391, 392, 394, 395, 397, 400, 401, 402, 403, 404, 406, 408, 409, 410, 412, 416], "excluded_lines": [], "start_line": 291}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 57, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 57, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 39, 40, 43, 44, 45, 46, 47, 50, 54, 66, 72, 98, 115, 137, 144, 165, 176, 184, 188, 196, 202, 222, 235, 267, 285, 291, 294, 305, 324, 352, 381, 414], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/grouper.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5, 6, 8], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5, 6, 8], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5, 6, 8], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/hash_cache.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [6, 8, 9, 10, 11, 14, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 49, 51, 53, 54, 56, 57, 60, 65, 67, 68, 70, 77, 79, 80, 82, 83, 85, 87, 89, 90, 91, 93, 95, 96, 97, 100, 102, 103, 104], "excluded_lines": [], "functions": {"HashCache.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [18, 19, 20, 21, 22], "excluded_lines": [], "start_line": 17}, "HashCache._load": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [26, 27, 28, 29, 30, 31], "excluded_lines": [], "start_line": 24}, "HashCache.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35, 36, 37, 38, 39], "excluded_lines": [], "start_line": 33}, "HashCache.get_file_hash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 41}, "HashCache.is_unchanged": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [51, 53, 54, 56, 57, 60], "excluded_lines": [], "start_line": 49}, "HashCache.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [67, 68, 70], "excluded_lines": [], "start_line": 65}, "HashCache.invalidate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [79, 80, 82, 83], "excluded_lines": [], "start_line": 77}, "HashCache.get_cached_results": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [87, 89, 90, 91], "excluded_lines": [], "start_line": 85}, "HashCache.clear": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [95, 96, 97], "excluded_lines": [], "start_line": 93}, "_config_to_hash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [102, 103, 104], "excluded_lines": [], "start_line": 100}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [6, 8, 9, 10, 11, 14, 17, 24, 33, 41, 49, 65, 77, 85, 93, 100], "excluded_lines": [], "start_line": 1}}, "classes": {"HashCache": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [18, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 35, 36, 37, 38, 39, 43, 44, 45, 46, 47, 51, 53, 54, 56, 57, 60, 67, 68, 70, 79, 80, 82, 83, 87, 89, 90, 91, 95, 96, 97], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [6, 8, 9, 10, 11, 14, 17, 24, 33, 41, 49, 65, 77, 85, 93, 100, 102, 103, 104], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/hasher.py": {"executed_lines": [3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 22, 24, 27, 28, 29, 30, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 54, 56, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 79, 80, 82, 85, 87, 88, 89, 90, 92, 93, 100, 102, 104, 105, 108, 110, 111, 114, 116, 119, 121, 124, 125, 128, 129, 130, 133, 134, 137, 138, 141, 142, 149, 151, 152, 155, 157, 164, 166, 168, 169, 170, 172, 173, 174, 176, 179, 181, 184, 186, 189], "summary": {"covered_lines": 105, "num_statements": 115, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [23, 49, 65, 71, 94, 95, 96, 97, 98, 103], "excluded_lines": [], "functions": {"_fast_hash": {"executed_lines": [22, 24], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [23], "excluded_lines": [], "start_line": 20}, "_normalize_text": {"executed_lines": [35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51], "summary": {"covered_lines": 14, "num_statements": 15, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.33333333333333, "percent_statements_covered_display": "93"}, "missing_lines": [49], "excluded_lines": [], "start_line": 33}, "_ast_to_normalized_string": {"executed_lines": [56, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 79, 80, 82], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [65, 71], "excluded_lines": [], "start_line": 54}, "_normalize_ast_text": {"executed_lines": [87, 88, 89, 90, 92, 93, 100, 102, 104, 105], "summary": {"covered_lines": 10, "num_statements": 16, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [94, 95, 96, 97, 98, 103], "excluded_lines": [], "start_line": 85}, "_hash_text": {"executed_lines": [110, 111], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 108}, "hash_block": {"executed_lines": [116], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 114}, "hash_block_structural": {"executed_lines": [121], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 119}, "_hashed_block": {"executed_lines": [142], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 141}, "_blocks_from_different_locations": {"executed_lines": [151, 152], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 149}, "_find_duplicates": {"executed_lines": [157], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 155}, "build_hash_index": {"executed_lines": [166, 168, 169, 170, 172, 173, 174, 176], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 164}, "find_exact_duplicates": {"executed_lines": [181], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 179}, "find_structural_duplicates": {"executed_lines": [186], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 184}, "": {"executed_lines": [3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 27, 28, 29, 30, 33, 54, 85, 108, 114, 119, 124, 125, 128, 129, 130, 133, 134, 137, 138, 141, 149, 155, 164, 179, 184, 189], "summary": {"covered_lines": 39, "num_statements": 39, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"HashedBlock": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 125}, "HashIndex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 134}, "": {"executed_lines": [3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 22, 24, 27, 28, 29, 30, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 54, 56, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 79, 80, 82, 85, 87, 88, 89, 90, 92, 93, 100, 102, 104, 105, 108, 110, 111, 114, 116, 119, 121, 124, 125, 128, 129, 130, 133, 134, 137, 138, 141, 142, 149, 151, 152, 155, 157, 164, 166, 168, 169, 170, 172, 173, 174, 176, 179, 181, 184, 186, 189], "summary": {"covered_lines": 105, "num_statements": 115, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [23, 49, 65, 71, 94, 95, 96, 97, 98, 103], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/lazy_grouper.py": {"executed_lines": [3, 5, 6, 8, 9, 12, 26, 27, 28, 40, 45, 46, 47, 50, 54, 55, 56, 59, 65, 78, 80, 89, 108, 109, 111, 112, 115, 122, 135, 156], "summary": {"covered_lines": 30, "num_statements": 54, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 55.55555555555556, "percent_statements_covered_display": "56"}, "missing_lines": [31, 32, 35, 36, 37, 51, 129, 130, 131, 132, 133, 137, 139, 140, 143, 144, 147, 148, 149, 151, 152, 154, 158, 159], "excluded_lines": [], "functions": {"find_exact_duplicates_lazy": {"executed_lines": [26, 27, 28], "summary": {"covered_lines": 3, "num_statements": 8, "percent_covered": 37.5, "percent_covered_display": "38", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 37.5, "percent_statements_covered_display": "38"}, "missing_lines": [31, 32, 35, 36, 37], "excluded_lines": [], "start_line": 12}, "find_structural_duplicates_lazy": {"executed_lines": [45, 46, 47, 50, 54, 55, 56], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [51], "excluded_lines": [], "start_line": 40}, "_create_duplicate_group": {"executed_lines": [65, 78, 80], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 59}, "find_all_duplicates_lazy": {"executed_lines": [108, 109, 111, 112], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 89}, "DuplicateGroupCollector.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [129, 130, 131, 132, 133], "excluded_lines": [], "start_line": 122}, "DuplicateGroupCollector.collect": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [137, 139, 140, 143, 144, 147, 148, 149, 151, 152, 154], "excluded_lines": [], "start_line": 135}, "DuplicateGroupCollector.collect_sorted": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [158, 159], "excluded_lines": [], "start_line": 156}, "": {"executed_lines": [3, 5, 6, 8, 9, 12, 40, 59, 89, 115, 122, 135, 156], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DuplicateGroupCollector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [129, 130, 131, 132, 133, 137, 139, 140, 143, 144, 147, 148, 149, 151, 152, 154, 158, 159], "excluded_lines": [], "start_line": 115}, "": {"executed_lines": [3, 5, 6, 8, 9, 12, 26, 27, 28, 40, 45, 46, 47, 50, 54, 55, 56, 59, 65, 78, 80, 89, 108, 109, 111, 112, 115, 122, 135, 156], "summary": {"covered_lines": 30, "num_statements": 36, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [31, 32, 35, 36, 37, 51], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/lsh_matcher.py": {"executed_lines": [3, 5, 6, 8, 9, 14, 15, 18, 35, 67, 73, 76, 93, 103, 106, 116, 131, 165, 178, 208, 219], "summary": {"covered_lines": 21, "num_statements": 135, "percent_covered": 15.555555555555555, "percent_covered_display": "16", "missing_lines": 114, "excluded_lines": 0, "percent_statements_covered": 15.555555555555555, "percent_statements_covered_display": "16"}, "missing_lines": [10, 11, 12, 20, 21, 24, 25, 28, 29, 30, 32, 38, 39, 40, 41, 42, 45, 46, 47, 48, 51, 54, 55, 56, 59, 60, 61, 62, 64, 69, 70, 77, 78, 81, 82, 83, 85, 87, 88, 89, 91, 95, 96, 99, 100, 107, 108, 109, 110, 111, 113, 114, 118, 121, 122, 123, 124, 125, 128, 129, 133, 134, 137, 138, 139, 142, 143, 144, 146, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 161, 163, 167, 168, 170, 171, 172, 173, 174, 176, 180, 181, 184, 186, 187, 188, 191, 193, 195, 196, 199, 200, 201, 202, 203, 205, 210, 212, 213, 214, 216, 221, 222, 224, 225], "excluded_lines": [], "functions": {"_create_minhash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [20, 21, 24, 25, 28, 29, 30, 32], "excluded_lines": [], "start_line": 18}, "_text_to_minhash_features": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [38, 39, 40, 41, 42, 45, 46, 47, 48, 51, 54, 55, 56, 59, 60, 61, 62, 64], "excluded_lines": [], "start_line": 35}, "_create_simple_minhash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [69, 70], "excluded_lines": [], "start_line": 67}, "_SimpleMinHash.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [77, 78, 81, 82, 83, 85, 87, 88, 89, 91], "excluded_lines": [], "start_line": 76}, "_SimpleMinHash.jaccard": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [95, 96, 99, 100], "excluded_lines": [], "start_line": 93}, "LSHIndex.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [107, 108, 109, 110, 111, 113, 114], "excluded_lines": [], "start_line": 106}, "LSHIndex.add": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [118, 121, 122, 123, 124, 125, 128, 129], "excluded_lines": [], "start_line": 116}, "LSHIndex.find_near_duplicates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [133, 134, 137, 138, 139, 142, 143, 144, 146, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 161, 163], "excluded_lines": [], "start_line": 131}, "LSHIndex._find_near_duplicates_simple": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [167, 168, 170, 171, 172, 173, 174, 176], "excluded_lines": [], "start_line": 165}, "LSHIndex.find_all_near_duplicates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [180, 181, 184, 186, 187, 188, 191, 193, 195, 196, 199, 200, 201, 202, 203, 205], "excluded_lines": [], "start_line": 178}, "build_lsh_index": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [210, 212, 213, 214, 216], "excluded_lines": [], "start_line": 208}, "find_near_duplicates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [221, 222, 224, 225], "excluded_lines": [], "start_line": 219}, "": {"executed_lines": [3, 5, 6, 8, 9, 14, 15, 18, 35, 67, 73, 76, 93, 103, 106, 116, 131, 165, 178, 208, 219], "summary": {"covered_lines": 21, "num_statements": 24, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [10, 11, 12], "excluded_lines": [], "start_line": 1}}, "classes": {"_SimpleMinHash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [77, 78, 81, 82, 83, 85, 87, 88, 89, 91, 95, 96, 99, 100], "excluded_lines": [], "start_line": 73}, "LSHIndex": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 60, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 60, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [107, 108, 109, 110, 111, 113, 114, 118, 121, 122, 123, 124, 125, 128, 129, 133, 134, 137, 138, 139, 142, 143, 144, 146, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 161, 163, 167, 168, 170, 171, 172, 173, 174, 176, 180, 181, 184, 186, 187, 188, 191, 193, 195, 196, 199, 200, 201, 202, 203, 205], "excluded_lines": [], "start_line": 103}, "": {"executed_lines": [3, 5, 6, 8, 9, 14, 15, 18, 35, 67, 73, 76, 93, 103, 106, 116, 131, 165, 178, 208, 219], "summary": {"covered_lines": 21, "num_statements": 61, "percent_covered": 34.42622950819672, "percent_covered_display": "34", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 34.42622950819672, "percent_statements_covered_display": "34"}, "missing_lines": [10, 11, 12, 20, 21, 24, 25, 28, 29, 30, 32, 38, 39, 40, 41, 42, 45, 46, 47, 48, 51, 54, 55, 56, 59, 60, 61, 62, 64, 69, 70, 210, 212, 213, 214, 216, 221, 222, 224, 225], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/matcher.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 29, 32, 34, 35, 37, 38, 39, 44, 51, 54, 55, 57, 58, 61, 63, 64, 65, 74, 77, 82, 90, 95, 104], "summary": {"covered_lines": 39, "num_statements": 43, "percent_covered": 90.69767441860465, "percent_covered_display": "91", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 90.69767441860465, "percent_statements_covered_display": "91"}, "missing_lines": [28, 40, 41, 52], "excluded_lines": [], "functions": {"sequence_similarity": {"executed_lines": [25, 26, 27, 29], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [28], "excluded_lines": [], "start_line": 23}, "fuzzy_similarity": {"executed_lines": [34, 35, 37, 38, 39], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [40, 41], "excluded_lines": [], "start_line": 32}, "_compare_against_reference": {"executed_lines": [51, 54, 55, 57, 58, 61, 63, 64, 65, 74], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [52], "excluded_lines": [], "start_line": 44}, "match_candidates": {"executed_lines": [82], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 77}, "refine_structural_matches": {"executed_lines": [95], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 13, 14, 17, 18, 19, 20, 23, 32, 44, 77, 90, 104], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MatchResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 13, 14, 17, 18, 19, 20, 23, 25, 26, 27, 29, 32, 34, 35, 37, 38, 39, 44, 51, 54, 55, 57, 58, 61, 63, 64, 65, 74, 77, 82, 90, 95, 104], "summary": {"covered_lines": 39, "num_statements": 43, "percent_covered": 90.69767441860465, "percent_covered_display": "91", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 90.69767441860465, "percent_statements_covered_display": "91"}, "missing_lines": [28, 40, 41, 52], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/models.py": {"executed_lines": [3, 5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 23, 24, 25, 26, 29, 32, 33, 34, 37, 38, 41, 42, 43, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 112, 113, 114, 117, 118, 121, 122, 123, 124, 125, 126, 128, 129, 130, 133, 134, 137, 138, 139, 140, 141, 142, 144, 145, 146, 148, 149, 150, 152, 154, 155, 157, 158, 159, 161, 162, 163, 166, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 181, 182, 185, 186, 187, 188, 189, 192, 193, 196, 197, 198, 199, 200, 202, 203, 204, 206, 207, 208, 210, 211, 212, 214, 216], "summary": {"covered_lines": 112, "num_statements": 113, "percent_covered": 99.11504424778761, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 99.11504424778761, "percent_statements_covered_display": "99"}, "missing_lines": [151], "excluded_lines": [], "functions": {"DuplicateFragment.line_count": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 129}, "DuplicateGroup.occurrences": {"executed_lines": [146], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 145}, "DuplicateGroup.total_lines": {"executed_lines": [150, 152], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [151], "excluded_lines": [], "start_line": 149}, "DuplicateGroup.saved_lines_potential": {"executed_lines": [157, 158, 159], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 155}, "DuplicateGroup.impact_score": {"executed_lines": [163], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 162}, "DuplicationMap.total_groups": {"executed_lines": [204], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 203}, "DuplicationMap.total_fragments": {"executed_lines": [208], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 207}, "DuplicationMap.total_saved_lines": {"executed_lines": [212], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 211}, "DuplicationMap.sorted_by_impact": {"executed_lines": [216], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 214}, "": {"executed_lines": [3, 5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 23, 24, 25, 26, 29, 32, 33, 34, 37, 38, 41, 42, 43, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 112, 113, 114, 117, 118, 121, 122, 123, 124, 125, 126, 128, 129, 133, 134, 137, 138, 139, 140, 141, 142, 144, 145, 148, 149, 154, 155, 161, 162, 166, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 181, 182, 185, 186, 187, 188, 189, 192, 193, 196, 197, 198, 199, 200, 202, 203, 206, 207, 210, 211, 214], "summary": {"covered_lines": 100, "num_statements": 100, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DuplicateType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "RefactorAction": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "RiskLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 29}, "ScanConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 38}, "DuplicateFragment": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 118}, "DuplicateGroup": {"executed_lines": [146, 150, 152, 157, 158, 159, 163], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [151], "excluded_lines": [], "start_line": 134}, "RefactorSuggestion": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 167}, "ScanStats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 182}, "DuplicationMap": {"executed_lines": [204, 208, 212, 216], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 193}, "": {"executed_lines": [3, 5, 6, 7, 10, 13, 14, 15, 16, 17, 20, 23, 24, 25, 26, 29, 32, 33, 34, 37, 38, 41, 42, 43, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 112, 113, 114, 117, 118, 121, 122, 123, 124, 125, 126, 128, 129, 133, 134, 137, 138, 139, 140, 141, 142, 144, 145, 148, 149, 154, 155, 161, 162, 166, 167, 170, 171, 172, 173, 174, 175, 176, 177, 178, 181, 182, 185, 186, 187, 188, 189, 192, 193, 196, 197, 198, 199, 200, 202, 203, 206, 207, 210, 211, 214], "summary": {"covered_lines": 100, "num_statements": 100, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/pipeline/__init__.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 17, 18, 26, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 65, 68, 69, 72, 75, 78, 81, 83, 89, 91, 94, 113, 116, 117, 121, 123, 129, 131, 133, 142, 144, 145, 146, 152, 160, 163, 166, 169, 171, 177, 180, 186, 198, 201, 267], "summary": {"covered_lines": 60, "num_statements": 96, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 36, "excluded_lines": 2, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [118, 119, 125, 126, 135, 141, 153, 154, 155, 157, 181, 182, 183, 184, 187, 188, 190, 216, 218, 220, 222, 223, 226, 228, 230, 233, 236, 239, 242, 244, 250, 252, 253, 254, 256, 264], "excluded_lines": [13, 14], "functions": {"analyze": {"executed_lines": [65, 68, 69, 72, 75, 78, 81, 83, 89, 91], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 50}, "analyze_optimized": {"executed_lines": [113, 116, 117, 121, 123, 129, 131, 133, 142, 144, 145, 146, 152, 160, 163, 166, 169, 171, 177, 180, 186, 198], "summary": {"covered_lines": 22, "num_statements": 37, "percent_covered": 59.45945945945946, "percent_covered_display": "59", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 59.45945945945946, "percent_statements_covered_display": "59"}, "missing_lines": [118, 119, 135, 141, 153, 154, 155, 157, 181, 182, 183, 184, 187, 188, 190], "excluded_lines": [], "start_line": 94}, "analyze_optimized.handle_interrupt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [125, 126], "excluded_lines": [], "start_line": 123}, "analyze_parallel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [216, 218, 220, 226, 228, 230, 233, 236, 239, 242, 244, 250, 252, 253, 254, 256, 264], "excluded_lines": [], "start_line": 201}, "analyze_parallel.handle_interrupt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [222, 223], "excluded_lines": [], "start_line": 220}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 17, 18, 26, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 94, 201, 267], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [13, 14], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 17, 18, 26, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 65, 68, 69, 72, 75, 78, 81, 83, 89, 91, 94, 113, 116, 117, 121, 123, 129, 131, 133, 142, 144, 145, 146, 152, 160, 163, 166, 169, 171, 177, 180, 186, 198, 201, 267], "summary": {"covered_lines": 60, "num_statements": 96, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 36, "excluded_lines": 2, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [118, 119, 125, 126, 135, 141, 153, 154, 155, 157, 181, 182, 183, 184, 187, 188, 190, 216, 218, 220, 222, 223, 226, 228, 230, 233, 236, 239, 242, 244, 250, 252, 253, 254, 256, 264], "excluded_lines": [13, 14], "start_line": 1}}}, "src/redup/core/pipeline/duplicate_finder.py": {"executed_lines": [3, 5, 6, 8, 9, 10, 11, 12, 13, 19, 41, 76, 80, 83, 87, 88, 91, 93, 94, 146, 191, 195, 196, 198, 201, 204, 207, 208, 211, 213, 214, 216, 219, 223, 224, 226, 229, 243, 246, 249, 250, 253, 255, 256, 260, 262], "summary": {"covered_lines": 46, "num_statements": 116, "percent_covered": 39.6551724137931, "percent_covered_display": "40", "missing_lines": 70, "excluded_lines": 2, "percent_statements_covered": 39.6551724137931, "percent_statements_covered_display": "40"}, "missing_lines": [21, 23, 24, 26, 27, 28, 29, 35, 36, 38, 45, 47, 48, 49, 50, 52, 54, 55, 56, 58, 59, 60, 61, 62, 63, 70, 71, 73, 84, 96, 98, 104, 105, 106, 109, 110, 112, 113, 121, 123, 124, 127, 129, 137, 139, 141, 143, 150, 151, 152, 153, 155, 158, 159, 160, 162, 164, 165, 166, 188, 230, 235, 236, 237, 238, 239, 240, 241, 257, 258], "excluded_lines": [15, 16], "functions": {"find_exact_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21, 23, 24, 26, 27, 28, 29, 35, 36, 38], "excluded_lines": [], "start_line": 19}, "find_structural_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [45, 47, 48, 49, 50, 52, 54, 55, 56, 58, 59, 60, 61, 62, 63, 70, 71, 73], "excluded_lines": [], "start_line": 41}, "find_near_duplicate_groups": {"executed_lines": [80, 83, 87, 88, 91, 93, 94], "summary": {"covered_lines": 7, "num_statements": 26, "percent_covered": 26.923076923076923, "percent_covered_display": "27", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 26.923076923076923, "percent_statements_covered_display": "27"}, "missing_lines": [84, 96, 98, 104, 105, 106, 109, 110, 112, 113, 121, 123, 124, 127, 129, 137, 139, 141, 143], "excluded_lines": [], "start_line": 76}, "find_semantic_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [150, 151, 152, 153, 155, 158, 159, 160, 162, 164, 165, 166, 188], "excluded_lines": [], "start_line": 146}, "find_duplicates_phase_optimized": {"executed_lines": [195, 196, 198, 201, 204, 207, 208, 211, 213, 214, 216], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 191}, "find_duplicates_phase_lazy": {"executed_lines": [223, 224, 226, 229, 243, 246, 249, 250, 253, 255, 256, 260, 262], "summary": {"covered_lines": 13, "num_statements": 23, "percent_covered": 56.52173913043478, "percent_covered_display": "57", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 56.52173913043478, "percent_statements_covered_display": "57"}, "missing_lines": [230, 235, 236, 237, 238, 239, 240, 241, 257, 258], "excluded_lines": [], "start_line": 219}, "": {"executed_lines": [3, 5, 6, 8, 9, 10, 11, 12, 13, 19, 41, 76, 146, 191, 219], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [15, 16], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 8, 9, 10, 11, 12, 13, 19, 41, 76, 80, 83, 87, 88, 91, 93, 94, 146, 191, 195, 196, 198, 201, 204, 207, 208, 211, 213, 214, 216, 219, 223, 224, 226, 229, 243, 246, 249, 250, 253, 255, 256, 260, 262], "summary": {"covered_lines": 46, "num_statements": 116, "percent_covered": 39.6551724137931, "percent_covered_display": "40", "missing_lines": 70, "excluded_lines": 2, "percent_statements_covered": 39.6551724137931, "percent_statements_covered_display": "40"}, "missing_lines": [21, 23, 24, 26, 27, 28, 29, 35, 36, 38, 45, 47, 48, 49, 50, 52, 54, 55, 56, 58, 59, 60, 61, 62, 63, 70, 71, 73, 84, 96, 98, 104, 105, 106, 109, 110, 112, 113, 121, 123, 124, 127, 129, 137, 139, 141, 143, 150, 151, 152, 153, 155, 158, 159, 160, 162, 164, 165, 166, 188, 230, 235, 236, 237, 238, 239, 240, 241, 257, 258], "excluded_lines": [15, 16], "start_line": 1}}}, "src/redup/core/pipeline/groups.py": {"executed_lines": [3, 5, 6, 7, 10, 53, 55, 56, 59, 60, 61, 63, 64, 68, 72, 74, 75, 76, 78, 81, 97], "summary": {"covered_lines": 21, "num_statements": 48, "percent_covered": 43.75, "percent_covered_display": "44", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 43.75, "percent_statements_covered_display": "44"}, "missing_lines": [18, 19, 21, 22, 23, 24, 25, 26, 27, 38, 39, 41, 43, 65, 83, 84, 86, 87, 88, 89, 90, 91, 92, 94, 99, 100, 102], "excluded_lines": [], "functions": {"blocks_to_group": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [18, 19, 21, 22, 23, 24, 25, 26, 27, 38, 39, 41, 43], "excluded_lines": [], "start_line": 10}, "deduplicate_groups": {"executed_lines": [55, 56, 59, 60, 61, 63, 64, 68, 72, 74, 75, 76, 78], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.85714285714286, "percent_statements_covered_display": "93"}, "missing_lines": [65], "excluded_lines": [], "start_line": 53}, "match_results_to_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [83, 84, 86, 87, 88, 89, 90, 91, 92, 94], "excluded_lines": [], "start_line": 81}, "calculate_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [99, 100, 102], "excluded_lines": [], "start_line": 97}, "": {"executed_lines": [3, 5, 6, 7, 10, 53, 81, 97], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 10, 53, 55, 56, 59, 60, 61, 63, 64, 68, 72, 74, 75, 76, 78, 81, 97], "summary": {"covered_lines": 21, "num_statements": 48, "percent_covered": 43.75, "percent_covered_display": "44", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 43.75, "percent_statements_covered_display": "44"}, "missing_lines": [18, 19, 21, 22, 23, 24, 25, 26, 27, 38, 39, 41, 43, 65, 83, 84, 86, 87, 88, 89, 90, 91, 92, 94, 99, 100, 102], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/pipeline/phases.py": {"executed_lines": [3, 5, 6, 7, 10, 12, 15, 19, 21, 24, 32, 36, 39, 40, 41, 42, 43, 44, 46, 48], "summary": {"covered_lines": 20, "num_statements": 24, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [20, 28, 29, 45], "excluded_lines": [], "functions": {"ensure_config": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "scan_phase": {"executed_lines": [19, 21], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [20], "excluded_lines": [], "start_line": 15}, "scan_phase_parallel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29], "excluded_lines": [], "start_line": 24}, "process_blocks": {"executed_lines": [36, 39, 40, 41, 42, 43, 44, 46, 48], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [45], "excluded_lines": [], "start_line": 32}, "": {"executed_lines": [3, 5, 6, 7, 10, 15, 24, 32], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 10, 12, 15, 19, 21, 24, 32, 36, 39, 40, 41, 42, 43, 44, 46, 48], "summary": {"covered_lines": 20, "num_statements": 24, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [20, 28, 29, 45], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/pipeline_utils.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "excluded_lines": [], "functions": {"blocks_to_group": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "excluded_lines": [], "start_line": 4}, "deduplicate_groups": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 4, 17], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/planner.py": {"executed_lines": [3, 5, 7, 16, 18, 20, 23, 25, 26, 28, 29, 30, 31, 33, 35, 37, 40, 42, 44, 47, 48, 50, 51, 54, 57, 59, 60, 65, 68, 69, 71, 74, 76, 77, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 92, 97, 110, 113], "summary": {"covered_lines": 48, "num_statements": 53, "percent_covered": 90.56603773584905, "percent_covered_display": "91", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 90.56603773584905, "percent_statements_covered_display": "91"}, "missing_lines": [19, 36, 45, 52, 66], "excluded_lines": [], "functions": {"_common_prefix": {"executed_lines": [18, 20], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [19], "excluded_lines": [], "start_line": 16}, "_suggest_module_name": {"executed_lines": [25, 26, 28, 29, 30, 31, 33, 35, 37], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [36], "excluded_lines": [], "start_line": 23}, "_assess_risk": {"executed_lines": [42, 44, 47, 48, 50, 51, 54], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [45, 52], "excluded_lines": [], "start_line": 40}, "_choose_action": {"executed_lines": [59, 60, 65, 68, 69, 71], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [66], "excluded_lines": [], "start_line": 57}, "generate_suggestions": {"executed_lines": [76, 77, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 92, 97, 110], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "": {"executed_lines": [3, 5, 7, 16, 23, 40, 57, 74, 113], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 7, 16, 18, 20, 23, 25, 26, 28, 29, 30, 31, 33, 35, 37, 40, 42, 44, 47, 48, 50, 51, 54, 57, 59, 60, 65, 68, 69, 71, 74, 76, 77, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 92, 97, 110, 113], "summary": {"covered_lines": 48, "num_statements": 53, "percent_covered": 90.56603773584905, "percent_covered_display": "91", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 90.56603773584905, "percent_statements_covered_display": "91"}, "missing_lines": [19, 36, 45, 52, 66], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/python_parser.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 90, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 90, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5, 6, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 24, 26, 27, 28, 29, 31, 32, 33, 34, 35, 37, 40, 41, 43, 44, 45, 47, 48, 50, 52, 55, 58, 61, 64, 65, 66, 67, 69, 79, 81, 83, 85, 86, 87, 88, 90, 93, 95, 96, 97, 98, 99, 100, 102, 103, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 123, 126, 127, 128, 129, 130, 131, 133, 144, 147, 149, 150, 151, 152, 153, 154, 155, 158, 160], "excluded_lines": [], "functions": {"_parse_with_libcst": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [26, 27, 28, 29, 31, 32, 33, 34, 35, 37, 40, 43, 47, 50, 81, 85, 86, 87, 88, 90], "excluded_lines": [], "start_line": 24}, "_parse_with_libcst.FunctionCollector.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41], "excluded_lines": [], "start_line": 40}, "_parse_with_libcst.FunctionCollector.visit_ClassDef": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [44, 45], "excluded_lines": [], "start_line": 43}, "_parse_with_libcst.FunctionCollector.leave_ClassDef": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [48], "excluded_lines": [], "start_line": 47}, "_parse_with_libcst.FunctionCollector.visit_FunctionDef": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [52, 55, 58, 61, 64, 65, 66, 67, 69, 79], "excluded_lines": [], "start_line": 50}, "_parse_with_libcst.FunctionCollector.visit_AsyncFunctionDef": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [83], "excluded_lines": [], "start_line": 81}, "_parse_with_ast": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 29, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 29, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [95, 96, 97, 98, 99, 100, 102, 103, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 123, 126, 127, 128, 129, 130, 131, 133, 144], "excluded_lines": [], "start_line": 93}, "parse_python_functions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [149, 150, 151, 152, 153, 154, 155], "excluded_lines": [], "start_line": 147}, "parsed_to_code_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [160], "excluded_lines": [], "start_line": 158}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5, 6, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 24, 93, 147, 158], "excluded_lines": [], "start_line": 1}}, "classes": {"ParsedFunction": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "_parse_with_libcst.FunctionCollector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41, 44, 45, 48, 52, 55, 58, 61, 64, 65, 66, 67, 69, 79, 83], "excluded_lines": [], "start_line": 37}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 75, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 75, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 5, 6, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 24, 26, 27, 28, 29, 31, 32, 33, 34, 35, 37, 40, 43, 47, 50, 81, 85, 86, 87, 88, 90, 93, 95, 96, 97, 98, 99, 100, 102, 103, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 123, 126, 127, 128, 129, 130, 131, 133, 144, 147, 149, 150, 151, 152, 153, 154, 155, 158, 160], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner/__init__.py": {"executed_lines": [2, 4, 5, 7, 8, 9, 15, 16, 19, 21, 23, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 62, 65, 67, 70, 71, 72, 92, 94, 95, 96, 97, 103, 105, 110, 116, 118, 121, 129, 132, 133, 135, 136, 137, 142, 143, 145, 148, 156, 157, 160, 161, 163, 168, 175, 177, 181, 182, 183, 184, 185, 188, 193, 195, 196, 197, 200, 207, 211, 212, 214, 215, 216, 218, 220, 221, 222, 223, 225, 226, 229, 230, 231, 232, 234, 241, 244, 250, 259, 269, 285], "summary": {"covered_lines": 102, "num_statements": 137, "percent_covered": 74.45255474452554, "percent_covered_display": "74", "missing_lines": 35, "excluded_lines": 0, "percent_statements_covered": 74.45255474452554, "percent_statements_covered_display": "74"}, "missing_lines": [22, 68, 74, 75, 76, 77, 78, 79, 80, 89, 98, 99, 100, 101, 102, 106, 107, 117, 138, 139, 158, 178, 179, 180, 194, 208, 209, 246, 247, 255, 256, 265, 266, 276, 282], "excluded_lines": [], "functions": {"_normalize_scan_config": {"executed_lines": [21, 23, 24], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [22], "excluded_lines": [], "start_line": 19}, "_extract_function_blocks_python": {"executed_lines": [29, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 62], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 27}, "_extract_sliding_blocks": {"executed_lines": [67, 70, 71, 72], "summary": {"covered_lines": 4, "num_statements": 13, "percent_covered": 30.76923076923077, "percent_covered_display": "31", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 30.76923076923077, "percent_statements_covered_display": "31"}, "missing_lines": [68, 74, 75, 76, 77, 78, 79, 80, 89], "excluded_lines": [], "start_line": 65}, "_read_source_text": {"executed_lines": [94, 95, 96, 97, 103, 105], "summary": {"covered_lines": 6, "num_statements": 13, "percent_covered": 46.15384615384615, "percent_covered_display": "46", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 46.15384615384615, "percent_statements_covered_display": "46"}, "missing_lines": [98, 99, 100, 101, 102, 106, 107], "excluded_lines": [], "start_line": 92}, "_get_source_for_file": {"executed_lines": [116, 118], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [117], "excluded_lines": [], "start_line": 110}, "_extract_blocks_for_file": {"executed_lines": [129, 132, 133, 135, 136, 137, 142, 143, 145], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 81.81818181818181, "percent_statements_covered_display": "82"}, "missing_lines": [138, 139], "excluded_lines": [], "start_line": 121}, "_process_single_file": {"executed_lines": [156, 157, 160, 161, 163, 168], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [158], "excluded_lines": [], "start_line": 148}, "_init_strategy": {"executed_lines": [177, 181, 182, 183, 184, 185], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [178, 179, 180], "excluded_lines": [], "start_line": 175}, "_init_file_loading": {"executed_lines": [193, 195, 196, 197], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [194], "excluded_lines": [], "start_line": 188}, "scan_project": {"executed_lines": [207, 211, 212, 214, 215, 216, 218, 220, 221, 222, 223, 225, 226, 229, 230, 231, 232, 234, 241], "summary": {"covered_lines": 19, "num_statements": 21, "percent_covered": 90.47619047619048, "percent_covered_display": "90", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 90.47619047619048, "percent_statements_covered_display": "90"}, "missing_lines": [208, 209], "excluded_lines": [], "start_line": 200}, "scan_project_ultra_fast": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [246, 247], "excluded_lines": [], "start_line": 244}, "scan_project_memory_optimized": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [255, 256], "excluded_lines": [], "start_line": 250}, "scan_project_parallel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [265, 266], "excluded_lines": [], "start_line": 259}, "scan_project_parallel_memory_optimized": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [276, 282], "excluded_lines": [], "start_line": 269}, "": {"executed_lines": [2, 4, 5, 7, 8, 9, 15, 16, 19, 27, 65, 92, 110, 121, 148, 175, 188, 200, 244, 250, 259, 269, 285], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [2, 4, 5, 7, 8, 9, 15, 16, 19, 21, 23, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 62, 65, 67, 70, 71, 72, 92, 94, 95, 96, 97, 103, 105, 110, 116, 118, 121, 129, 132, 133, 135, 136, 137, 142, 143, 145, 148, 156, 157, 160, 161, 163, 168, 175, 177, 181, 182, 183, 184, 185, 188, 193, 195, 196, 197, 200, 207, 211, 212, 214, 215, 216, 218, 220, 221, 222, 223, 225, 226, 229, 230, 231, 232, 234, 241, 244, 250, 259, 269, 285], "summary": {"covered_lines": 102, "num_statements": 137, "percent_covered": 74.45255474452554, "percent_covered_display": "74", "missing_lines": 35, "excluded_lines": 0, "percent_statements_covered": 74.45255474452554, "percent_statements_covered_display": "74"}, "missing_lines": [22, 68, 74, 75, 76, 77, 78, 79, 80, 89, 98, 99, 100, 101, 102, 106, 107, 117, 138, 139, 158, 178, 179, 180, 194, 208, 209, 246, 247, 255, 256, 265, 266, 276, 282], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner_cache.py": {"executed_lines": [2, 3, 4, 7, 10, 12, 13, 14, 15, 17, 19, 21, 23, 25, 26, 27, 29, 30, 31, 32, 33, 39, 43, 53, 54], "summary": {"covered_lines": 25, "num_statements": 57, "percent_covered": 43.85964912280702, "percent_covered_display": "44", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 43.85964912280702, "percent_statements_covered_display": "44"}, "missing_lines": [24, 28, 35, 36, 37, 38, 40, 41, 45, 46, 47, 48, 49, 50, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "excluded_lines": [], "functions": {"MemoryFileCache.__init__": {"executed_lines": [12, 13, 14, 15], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "MemoryFileCache._estimate_size": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "MemoryFileCache.get_file_content": {"executed_lines": [23, 25, 26, 27, 29, 30, 31, 32, 33, 39], "summary": {"covered_lines": 10, "num_statements": 18, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 55.55555555555556, "percent_statements_covered_display": "56"}, "missing_lines": [24, 28, 35, 36, 37, 38, 40, 41], "excluded_lines": [], "start_line": 21}, "MemoryFileCache._evict_oldest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [45, 46, 47, 48, 49, 50], "excluded_lines": [], "start_line": 43}, "_should_exclude": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "excluded_lines": [], "start_line": 54}, "": {"executed_lines": [2, 3, 4, 7, 10, 17, 21, 43, 53, 54], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"MemoryFileCache": {"executed_lines": [12, 13, 14, 15, 19, 23, 25, 26, 27, 29, 30, 31, 32, 33, 39], "summary": {"covered_lines": 15, "num_statements": 29, "percent_covered": 51.724137931034484, "percent_covered_display": "52", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 51.724137931034484, "percent_statements_covered_display": "52"}, "missing_lines": [24, 28, 35, 36, 37, 38, 40, 41, 45, 46, 47, 48, 49, 50], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [2, 3, 4, 7, 10, 17, 21, 43, 53, 54], "summary": {"covered_lines": 10, "num_statements": 28, "percent_covered": 35.714285714285715, "percent_covered_display": "36", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 35.714285714285715, "percent_statements_covered_display": "36"}, "missing_lines": [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner_filters.py": {"executed_lines": [2, 4, 5, 6, 8, 11, 12, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 31, 34, 36, 37, 42, 44, 45, 46, 48, 49, 50, 51, 53, 56, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 73, 74], "summary": {"covered_lines": 44, "num_statements": 59, "percent_covered": 74.57627118644068, "percent_covered_display": "75", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 74.57627118644068, "percent_statements_covered_display": "75"}, "missing_lines": [19, 25, 26, 27, 28, 29, 30, 38, 39, 47, 52, 63, 70, 71, 72], "excluded_lines": [], "functions": {"_should_exclude": {"executed_lines": [14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 31], "summary": {"covered_lines": 11, "num_statements": 18, "percent_covered": 61.111111111111114, "percent_covered_display": "61", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 61.111111111111114, "percent_statements_covered_display": "61"}, "missing_lines": [19, 25, 26, 27, 28, 29, 30], "excluded_lines": [], "start_line": 12}, "_project_relative_path": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [38, 39], "excluded_lines": [], "start_line": 34}, "_is_test_file": {"executed_lines": [44, 45, 46, 48, 49, 50, 51, 53], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [47, 52], "excluded_lines": [], "start_line": 42}, "_collect_files": {"executed_lines": [58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 73, 74], "summary": {"covered_lines": 13, "num_statements": 17, "percent_covered": 76.47058823529412, "percent_covered_display": "76", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 76.47058823529412, "percent_statements_covered_display": "76"}, "missing_lines": [63, 70, 71, 72], "excluded_lines": [], "start_line": 56}, "": {"executed_lines": [2, 4, 5, 6, 8, 11, 12, 34, 42, 56], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [2, 4, 5, 6, 8, 11, 12, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 31, 34, 36, 37, 42, 44, 45, 46, 48, 49, 50, 51, 53, 56, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 73, 74], "summary": {"covered_lines": 44, "num_statements": 59, "percent_covered": 74.57627118644068, "percent_covered_display": "75", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 74.57627118644068, "percent_statements_covered_display": "75"}, "missing_lines": [19, 25, 26, 27, 28, 29, 30, 38, 39, 47, 52, 63, 70, 71, 72], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner_loader.py": {"executed_lines": [2, 4, 5, 6, 9], "summary": {"covered_lines": 5, "num_statements": 53, "percent_covered": 9.433962264150944, "percent_covered_display": "9", "missing_lines": 48, "excluded_lines": 0, "percent_statements_covered": 9.433962264150944, "percent_statements_covered_display": "9"}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "excluded_lines": [], "functions": {"_preload_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 48, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 48, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [2, 4, 5, 6, 9], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [2, 4, 5, 6, 9], "summary": {"covered_lines": 5, "num_statements": 53, "percent_covered": 9.433962264150944, "percent_covered_display": "9", "missing_lines": 48, "excluded_lines": 0, "percent_statements_covered": 9.433962264150944, "percent_statements_covered_display": "9"}, "missing_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner_models.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 27, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2, 5, 6, 8, 9, 10, 11, 12, 13, 15, 16, 17, 20, 21, 23, 24, 25, 27, 28, 29, 32, 33, 35, 36, 37, 38, 39], "excluded_lines": [], "functions": {"CodeBlock.line_count": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [17], "excluded_lines": [], "start_line": 16}, "ScannedFile.line_count": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29], "excluded_lines": [], "start_line": 28}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2, 5, 6, 8, 9, 10, 11, 12, 13, 15, 16, 20, 21, 23, 24, 25, 27, 28, 32, 33, 35, 36, 37, 38, 39], "excluded_lines": [], "start_line": 1}}, "classes": {"CodeBlock": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [17], "excluded_lines": [], "start_line": 6}, "ScannedFile": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29], "excluded_lines": [], "start_line": 21}, "ScanStrategy": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2, 5, 6, 8, 9, 10, 11, 12, 13, 15, 16, 20, 21, 23, 24, 25, 27, 28, 32, 33, 35, 36, 37, 38, 39], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner_types.py": {"executed_lines": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 19, 22, 23, 25, 26, 27, 29, 30, 34, 35, 37, 38, 39, 40, 41], "summary": {"covered_lines": 27, "num_statements": 28, "percent_covered": 96.42857142857143, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.42857142857143, "percent_statements_covered_display": "96"}, "missing_lines": [31], "excluded_lines": [], "functions": {"CodeBlock.line_count": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "ScannedFile.line_count": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31], "excluded_lines": [], "start_line": 30}, "": {"executed_lines": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 22, 23, 25, 26, 27, 29, 30, 34, 35, 37, 38, 39, 40, 41], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"CodeBlock": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 8}, "ScannedFile": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31], "excluded_lines": [], "start_line": 23}, "ScanStrategy": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "": {"executed_lines": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 22, 23, 25, 26, 27, 29, 30, 34, 35, 37, 38, 39, 40, 41], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/scanner_utils.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 88, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 88, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2, 3, 4, 6, 7, 10, 12, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "excluded_lines": [], "functions": {"_project_relative_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [12, 13, 14, 15], "excluded_lines": [], "start_line": 10}, "_is_test_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "excluded_lines": [], "start_line": 18}, "_collect_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "excluded_lines": [], "start_line": 32}, "_preload_files": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 48, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 48, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "excluded_lines": [], "start_line": 53}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2, 3, 4, 6, 7, 10, 18, 32, 53], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 88, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 88, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [2, 3, 4, 6, 7, 10, 12, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/semantic.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 66, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 66, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 9, 10, 12, 15, 16, 18, 19, 20, 21, 24, 27, 28, 29, 30, 32, 34, 35, 36, 37, 38, 39, 44, 63, 64, 65, 67, 68, 71, 72, 80, 83, 84, 86, 87, 88, 89, 91, 93, 95, 96, 97, 98, 106, 107, 109, 125, 126, 128, 129, 131, 132, 135, 143, 144, 145, 147, 149, 150, 157, 159, 169, 170, 172, 173, 174], "excluded_lines": [], "functions": {"SemanticDetector.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29, 30], "excluded_lines": [], "start_line": 27}, "SemanticDetector._ensure_model": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [34, 35, 36, 37, 38, 39], "excluded_lines": [], "start_line": 32}, "SemanticDetector.find_semantic_duplicates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [63, 64, 65, 67, 68, 71, 72, 80, 83, 84, 86, 87, 88, 89, 91, 93, 95, 96, 97, 98, 106, 107], "excluded_lines": [], "start_line": 44}, "SemanticDetector.find_semantic_duplicates_fast": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [125, 126, 128, 129, 131, 132, 135, 143, 144, 145, 147, 149, 150, 157], "excluded_lines": [], "start_line": 109}, "SemanticDetector.compute_semantic_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [169, 170, 172, 173, 174], "excluded_lines": [], "start_line": 159}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 9, 10, 12, 15, 16, 18, 19, 20, 21, 24, 27, 32, 44, 109, 159], "excluded_lines": [], "start_line": 1}}, "classes": {"SemanticMatch": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "SemanticDetector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 50, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 50, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 29, 30, 34, 35, 36, 37, 38, 39, 63, 64, 65, 67, 68, 71, 72, 80, 83, 84, 86, 87, 88, 89, 91, 93, 95, 96, 97, 98, 106, 107, 125, 126, 128, 129, 131, 132, 135, 143, 144, 145, 147, 149, 150, 157, 169, 170, 172, 173, 174], "excluded_lines": [], "start_line": 24}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 9, 10, 12, 15, 16, 18, 19, 20, 21, 24, 27, 32, 44, 109, 159], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/ts_extractor.py": {"executed_lines": [3, 5, 6, 8, 9, 13, 14, 19, 22, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 55, 56, 57, 58, 61, 62, 63, 64, 65, 69, 180, 183, 184, 220, 222, 225, 228, 230, 231, 232, 233, 241, 244, 246, 249, 251, 253, 314, 317, 322, 327, 332, 334, 338, 342, 343, 345, 346, 349, 350, 353, 354, 358, 360, 361, 365, 368, 374, 413, 452, 494, 530, 535, 595, 600, 605, 610, 615, 672, 729, 761, 774, 776, 777, 779, 780, 782], "summary": {"covered_lines": 98, "num_statements": 310, "percent_covered": 31.612903225806452, "percent_covered_display": "32", "missing_lines": 212, "excluded_lines": 0, "percent_statements_covered": 31.612903225806452, "percent_statements_covered_display": "32"}, "missing_lines": [10, 11, 223, 226, 234, 235, 236, 237, 254, 255, 257, 260, 261, 262, 265, 266, 268, 278, 279, 280, 283, 284, 286, 296, 297, 298, 300, 301, 311, 312, 319, 324, 329, 335, 339, 355, 362, 363, 376, 378, 379, 380, 382, 384, 385, 386, 388, 389, 391, 392, 396, 398, 407, 408, 410, 415, 417, 418, 419, 421, 424, 425, 426, 429, 431, 432, 433, 434, 435, 437, 446, 447, 449, 454, 456, 457, 458, 460, 463, 464, 465, 468, 470, 471, 472, 473, 474, 475, 476, 477, 479, 488, 489, 491, 496, 498, 499, 500, 502, 505, 510, 511, 514, 515, 524, 525, 527, 532, 537, 539, 540, 541, 543, 546, 547, 548, 550, 551, 554, 555, 556, 557, 558, 559, 560, 561, 563, 573, 574, 575, 577, 578, 580, 589, 590, 592, 597, 602, 607, 612, 617, 619, 620, 621, 623, 626, 627, 628, 630, 631, 634, 635, 636, 637, 639, 649, 650, 651, 653, 654, 655, 657, 666, 667, 669, 674, 676, 677, 678, 680, 683, 684, 685, 687, 688, 691, 692, 693, 694, 695, 696, 697, 698, 700, 710, 711, 712, 714, 723, 724, 726, 731, 733, 734, 735, 737, 739, 740, 741, 743, 744, 746, 755, 756, 758, 763, 764, 766, 767, 768, 769, 771], "excluded_lines": [], "functions": {"_initialize_language_dispatcher": {"executed_lines": [25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 55, 56, 57, 58, 61, 62, 63, 64, 65], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "_LanguageRegistry.__init__": {"executed_lines": [184], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 183}, "_LanguageRegistry.get_language": {"executed_lines": [222, 225, 228, 230, 231, 232, 233], "summary": {"covered_lines": 7, "num_statements": 13, "percent_covered": 53.84615384615385, "percent_covered_display": "54", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 53.84615384615385, "percent_statements_covered_display": "54"}, "missing_lines": [223, 226, 234, 235, 236, 237], "excluded_lines": [], "start_line": 220}, "_get_tree_sitter_language": {"executed_lines": [246], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 244}, "_extract_functions_javascript": {"executed_lines": [251, 253, 314], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 249}, "_extract_functions_javascript.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [254, 255, 257, 260, 261, 262, 265, 266, 268, 278, 279, 280, 283, 284, 286, 296, 297, 298, 300, 301, 311, 312], "excluded_lines": [], "start_line": 253}, "_extract_functions_go": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [319], "excluded_lines": [], "start_line": 317}, "_extract_functions_rust": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [324], "excluded_lines": [], "start_line": 322}, "_extract_functions_java": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [329], "excluded_lines": [], "start_line": 327}, "extract_functions_treesitter": {"executed_lines": [334, 338, 342, 343, 345, 346, 349, 350, 353, 354, 358, 360, 361, 365, 368], "summary": {"covered_lines": 15, "num_statements": 20, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [335, 339, 355, 362, 363], "excluded_lines": [], "start_line": 332}, "_extract_functions_c_cpp": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [376, 378, 410], "excluded_lines": [], "start_line": 374}, "_extract_functions_c_cpp.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [379, 380, 382, 384, 385, 386, 388, 389, 391, 392, 396, 398, 407, 408], "excluded_lines": [], "start_line": 378}, "_extract_blocks_html_xml": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [415, 417, 449], "excluded_lines": [], "start_line": 413}, "_extract_blocks_html_xml.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [418, 419, 421, 424, 425, 426, 429, 431, 432, 433, 434, 435, 437, 446, 447], "excluded_lines": [], "start_line": 417}, "_extract_blocks_css": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [454, 456, 491], "excluded_lines": [], "start_line": 452}, "_extract_blocks_css.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [457, 458, 460, 463, 464, 465, 468, 470, 471, 472, 473, 474, 475, 476, 477, 479, 488, 489], "excluded_lines": [], "start_line": 456}, "_extract_blocks_sql": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [496, 498, 527], "excluded_lines": [], "start_line": 494}, "_extract_blocks_sql.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [499, 500, 502, 505, 510, 511, 514, 515, 524, 525], "excluded_lines": [], "start_line": 498}, "_extract_functions_lua": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [532], "excluded_lines": [], "start_line": 530}, "_extract_functions_c_sharp": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [537, 539, 592], "excluded_lines": [], "start_line": 535}, "_extract_functions_c_sharp.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [540, 541, 543, 546, 547, 548, 550, 551, 554, 555, 556, 557, 558, 559, 560, 561, 563, 573, 574, 575, 577, 578, 580, 589, 590], "excluded_lines": [], "start_line": 539}, "_extract_functions_scala": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [597], "excluded_lines": [], "start_line": 595}, "_extract_functions_kotlin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [602], "excluded_lines": [], "start_line": 600}, "_extract_functions_swift": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [607], "excluded_lines": [], "start_line": 605}, "_extract_functions_objc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [612], "excluded_lines": [], "start_line": 610}, "_extract_functions_ruby": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [617, 619, 669], "excluded_lines": [], "start_line": 615}, "_extract_functions_ruby.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [620, 621, 623, 626, 627, 628, 630, 631, 634, 635, 636, 637, 639, 649, 650, 651, 653, 654, 655, 657, 666, 667], "excluded_lines": [], "start_line": 619}, "_extract_functions_php": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [674, 676, 726], "excluded_lines": [], "start_line": 672}, "_extract_functions_php.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [677, 678, 680, 683, 684, 685, 687, 688, 691, 692, 693, 694, 695, 696, 697, 698, 700, 710, 711, 712, 714, 723, 724], "excluded_lines": [], "start_line": 676}, "_extract_functions_bash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [731, 733, 758], "excluded_lines": [], "start_line": 729}, "_extract_functions_bash.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [734, 735, 737, 739, 740, 741, 743, 744, 746, 755, 756], "excluded_lines": [], "start_line": 733}, "get_supported_languages": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [763, 764, 766, 767, 768, 769, 771], "excluded_lines": [], "start_line": 761}, "is_language_supported": {"executed_lines": [776, 777, 779, 780, 782], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 774}, "": {"executed_lines": [3, 5, 6, 8, 9, 13, 14, 19, 22, 69, 180, 183, 220, 241, 244, 249, 317, 322, 327, 332, 374, 413, 452, 494, 530, 535, 595, 600, 605, 610, 615, 672, 729, 761, 774], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.5945945945946, "percent_statements_covered_display": "95"}, "missing_lines": [10, 11], "excluded_lines": [], "start_line": 1}}, "classes": {"_LanguageRegistry": {"executed_lines": [184, 222, 225, 228, 230, 231, 232, 233], "summary": {"covered_lines": 8, "num_statements": 14, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [223, 226, 234, 235, 236, 237], "excluded_lines": [], "start_line": 180}, "": {"executed_lines": [3, 5, 6, 8, 9, 13, 14, 19, 22, 25, 26, 27, 28, 29, 30, 31, 32, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 55, 56, 57, 58, 61, 62, 63, 64, 65, 69, 180, 183, 220, 241, 244, 246, 249, 251, 253, 314, 317, 322, 327, 332, 334, 338, 342, 343, 345, 346, 349, 350, 353, 354, 358, 360, 361, 365, 368, 374, 413, 452, 494, 530, 535, 595, 600, 605, 610, 615, 672, 729, 761, 774, 776, 777, 779, 780, 782], "summary": {"covered_lines": 90, "num_statements": 296, "percent_covered": 30.405405405405407, "percent_covered_display": "30", "missing_lines": 206, "excluded_lines": 0, "percent_statements_covered": 30.405405405405407, "percent_statements_covered_display": "30"}, "missing_lines": [10, 11, 254, 255, 257, 260, 261, 262, 265, 266, 268, 278, 279, 280, 283, 284, 286, 296, 297, 298, 300, 301, 311, 312, 319, 324, 329, 335, 339, 355, 362, 363, 376, 378, 379, 380, 382, 384, 385, 386, 388, 389, 391, 392, 396, 398, 407, 408, 410, 415, 417, 418, 419, 421, 424, 425, 426, 429, 431, 432, 433, 434, 435, 437, 446, 447, 449, 454, 456, 457, 458, 460, 463, 464, 465, 468, 470, 471, 472, 473, 474, 475, 476, 477, 479, 488, 489, 491, 496, 498, 499, 500, 502, 505, 510, 511, 514, 515, 524, 525, 527, 532, 537, 539, 540, 541, 543, 546, 547, 548, 550, 551, 554, 555, 556, 557, 558, 559, 560, 561, 563, 573, 574, 575, 577, 578, 580, 589, 590, 592, 597, 602, 607, 612, 617, 619, 620, 621, 623, 626, 627, 628, 630, 631, 634, 635, 636, 637, 639, 649, 650, 651, 653, 654, 655, 657, 666, 667, 669, 674, 676, 677, 678, 680, 683, 684, 685, 687, 688, 691, 692, 693, 694, 695, 696, 697, 698, 700, 710, 711, 712, 714, 723, 724, 726, 731, 733, 734, 735, 737, 739, 740, 741, 743, 744, 746, 755, 756, 758, 763, 764, 766, 767, 768, 769, 771], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/ts_extractor/__init__.py": {"executed_lines": [4, 5, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 33, 38, 39, 41, 43, 45, 47, 48, 49, 50, 51, 52, 54, 55, 58, 59, 61, 62, 86], "summary": {"covered_lines": 38, "num_statements": 58, "percent_covered": 65.51724137931035, "percent_covered_display": "66", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 65.51724137931035, "percent_statements_covered_display": "66"}, "missing_lines": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], "excluded_lines": [], "functions": {"_RegistryWrapper.__init__": {"executed_lines": [39, 41], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 38}, "_RegistryWrapper._build_languages_dict": {"executed_lines": [45, 47, 48, 49, 50, 51, 52], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "_RegistryWrapper.__getattr__": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 54}, "": {"executed_lines": [4, 5, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 33, 38, 43, 54, 58, 59, 61, 62, 86], "summary": {"covered_lines": 28, "num_statements": 48, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 58.333333333333336, "percent_statements_covered_display": "58"}, "missing_lines": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], "excluded_lines": [], "start_line": 1}}, "classes": {"_RegistryWrapper": {"executed_lines": [39, 41, 45, 47, 48, 49, 50, 51, 52, 55], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "": {"executed_lines": [4, 5, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 22, 23, 26, 27, 28, 29, 30, 33, 38, 43, 54, 58, 59, 61, 62, 86], "summary": {"covered_lines": 28, "num_statements": 48, "percent_covered": 58.333333333333336, "percent_covered_display": "58", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 58.333333333333336, "percent_statements_covered_display": "58"}, "missing_lines": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/ts_extractor/config.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6, 8, 28, 29, 30, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76], "excluded_lines": [], "functions": {"LanguageRegistry.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [30], "excluded_lines": [], "start_line": 29}, "LanguageRegistry.get_language": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [67, 68, 69, 70, 71, 72, 73, 74], "excluded_lines": [], "start_line": 66}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6, 8, 28, 29, 66, 76], "excluded_lines": [], "start_line": 1}}, "classes": {"LanguageRegistry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [30, 67, 68, 69, 70, 71, 72, 73, 74], "excluded_lines": [], "start_line": 28}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6, 8, 28, 29, 66, 76], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/universal_fuzzy.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 173, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 173, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 22, 24, 27, 28, 31, 32, 33, 34, 35, 36, 39, 43, 88, 153, 154, 155, 156, 161, 163, 164, 165, 168, 171, 174, 177, 180, 182, 191, 193, 195, 196, 198, 201, 204, 207, 210, 213, 215, 217, 219, 243, 244, 246, 248, 250, 251, 253, 255, 256, 258, 259, 261, 263, 265, 267, 269, 270, 271, 273, 275, 277, 278, 280, 281, 282, 283, 285, 287, 289, 292, 293, 294, 295, 298, 299, 300, 301, 304, 305, 306, 307, 310, 311, 312, 313, 316, 317, 318, 319, 321, 323, 326, 327, 330, 331, 334, 337, 339, 341, 343, 346, 349, 350, 351, 354, 355, 357, 359, 362, 363, 364, 365, 366, 369, 370, 371, 372, 373, 374, 376, 378, 381, 384, 385, 388, 389, 392, 393, 396, 397, 400, 401, 403, 405, 407, 408, 409, 410, 413, 414, 415, 417, 419, 421, 422, 423, 424, 427, 428, 429, 431, 432, 434, 437, 438, 439, 440, 441, 443, 445, 446, 447, 449], "excluded_lines": [], "functions": {"UniversalFuzzyExtractor.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [154, 155, 156], "excluded_lines": [], "start_line": 153}, "UniversalFuzzyExtractor.extract_universal_signature": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [163, 164, 165, 168, 171, 174, 177, 180, 182], "excluded_lines": [], "start_line": 161}, "UniversalFuzzyExtractor._detect_language": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [193, 195, 196], "excluded_lines": [], "start_line": 191}, "UniversalFuzzyExtractor._normalize_code": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [201, 204, 207, 210, 213, 215], "excluded_lines": [], "start_line": 198}, "UniversalFuzzyExtractor._remove_comments": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [219, 243, 244], "excluded_lines": [], "start_line": 217}, "UniversalFuzzyExtractor._normalize_identifiers": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [248, 250, 251, 253, 255, 256, 258, 259, 261, 263], "excluded_lines": [], "start_line": 246}, "UniversalFuzzyExtractor._detect_component_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [267, 269, 270, 271, 273], "excluded_lines": [], "start_line": 265}, "UniversalFuzzyExtractor._extract_semantic_patterns": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [277, 278, 280, 281, 282, 283, 285], "excluded_lines": [], "start_line": 275}, "UniversalFuzzyExtractor._extract_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [289, 292, 293, 294, 295, 298, 299, 300, 301, 304, 305, 306, 307, 310, 311, 312, 313, 316, 317, 318, 319, 321], "excluded_lines": [], "start_line": 287}, "UniversalFuzzyExtractor._compute_complexity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [326, 327, 330, 331, 334, 337, 339], "excluded_lines": [], "start_line": 323}, "UniversalFuzzyExtractor._compute_structure_hash": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [343], "excluded_lines": [], "start_line": 341}, "UniversalFuzzyDetector.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [350, 351, 354, 355, 357], "excluded_lines": [], "start_line": 349}, "UniversalFuzzyDetector.find_similar_components": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [362, 363, 364, 365, 366, 369, 370, 371, 372, 373, 374, 376], "excluded_lines": [], "start_line": 359}, "UniversalFuzzyDetector._compute_universal_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [381, 384, 385, 388, 389, 392, 393, 396, 397, 400, 401, 403], "excluded_lines": [], "start_line": 378}, "UniversalFuzzyDetector._compute_pattern_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [407, 408, 409, 410, 413, 414, 415, 417], "excluded_lines": [], "start_line": 405}, "UniversalFuzzyDetector._compute_metadata_similarity": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [421, 422, 423, 424, 427, 428, 429, 431, 432, 434, 437, 438, 439, 440, 441, 443, 445, 446, 447, 449], "excluded_lines": [], "start_line": 419}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 22, 24, 27, 28, 31, 32, 33, 34, 35, 36, 39, 43, 88, 153, 161, 191, 198, 217, 246, 265, 275, 287, 323, 341, 346, 349, 359, 378, 405, 419], "excluded_lines": [], "start_line": 1}}, "classes": {"UniversalSignature": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "UniversalFuzzyExtractor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 76, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 76, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [154, 155, 156, 163, 164, 165, 168, 171, 174, 177, 180, 182, 193, 195, 196, 201, 204, 207, 210, 213, 215, 219, 243, 244, 248, 250, 251, 253, 255, 256, 258, 259, 261, 263, 267, 269, 270, 271, 273, 277, 278, 280, 281, 282, 283, 285, 289, 292, 293, 294, 295, 298, 299, 300, 301, 304, 305, 306, 307, 310, 311, 312, 313, 316, 317, 318, 319, 321, 326, 327, 330, 331, 334, 337, 339, 343], "excluded_lines": [], "start_line": 39}, "UniversalFuzzyDetector": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 57, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 57, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [350, 351, 354, 355, 357, 362, 363, 364, 365, 366, 369, 370, 371, 372, 373, 374, 376, 381, 384, 385, 388, 389, 392, 393, 396, 397, 400, 401, 403, 407, 408, 409, 410, 413, 414, 415, 417, 421, 422, 423, 424, 427, 428, 429, 431, 432, 434, 437, 438, 439, 440, 441, 443, 445, 446, 447, 449], "excluded_lines": [], "start_line": 346}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 22, 24, 27, 28, 31, 32, 33, 34, 35, 36, 39, 43, 88, 153, 161, 191, 198, 217, 246, 265, 275, 287, 323, 341, 346, 349, 359, 378, 405, 419], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/utils/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/utils/diff_helpers.py": {"executed_lines": [3, 5, 6, 8, 11, 12, 15, 17, 20, 23, 24, 25, 28, 29, 30, 33, 36, 37, 38, 39, 42, 45, 46, 47, 48, 50, 51, 52, 54, 55, 56, 59, 60, 61, 63, 64, 65, 66, 69, 74, 80, 81, 83, 106, 108, 109, 124, 126, 127, 128, 130, 132, 133, 134, 136, 138, 139, 142, 145, 146, 151, 152, 153, 155], "summary": {"covered_lines": 64, "num_statements": 98, "percent_covered": 65.3061224489796, "percent_covered_display": "65", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 65.3061224489796, "percent_statements_covered_display": "65"}, "missing_lines": [18, 21, 26, 31, 62, 84, 85, 87, 88, 89, 90, 91, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122], "excluded_lines": [], "functions": {"_group_files": {"executed_lines": [12], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "_groups_match": {"executed_lines": [17, 20, 23, 24, 25, 28, 29, 30, 33], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [18, 21, 26, 31], "excluded_lines": [], "start_line": 15}, "GroupMatcher.__init__": {"executed_lines": [46, 47, 48], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "GroupMatcher._ensure_matches": {"executed_lines": [51, 52, 54, 55, 56, 59, 60, 61, 63, 64, 65, 66, 69, 74, 80, 81, 83, 106], "summary": {"covered_lines": 18, "num_statements": 36, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [62, 84, 85, 87, 88, 89, 90, 91, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104], "excluded_lines": [], "start_line": 50}, "GroupMatcher._match_score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122], "excluded_lines": [], "start_line": 109}, "GroupMatcher.get_resolved_groups": {"executed_lines": [126, 127, 128], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 124}, "GroupMatcher.get_new_groups": {"executed_lines": [132, 133, 134], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 130}, "GroupMatcher.get_unchanged_groups": {"executed_lines": [138, 139], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 136}, "DiffCalculator.calculate_diff_stats": {"executed_lines": [151, 152, 153, 155], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 146}, "": {"executed_lines": [3, 5, 6, 8, 11, 15, 36, 37, 38, 39, 42, 45, 50, 108, 109, 124, 130, 136, 142, 145, 146], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"_MatchResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 37}, "GroupMatcher": {"executed_lines": [46, 47, 48, 51, 52, 54, 55, 56, 59, 60, 61, 63, 64, 65, 66, 69, 74, 80, 81, 83, 106, 126, 127, 128, 132, 133, 134, 138, 139], "summary": {"covered_lines": 29, "num_statements": 59, "percent_covered": 49.152542372881356, "percent_covered_display": "49", "missing_lines": 30, "excluded_lines": 0, "percent_statements_covered": 49.152542372881356, "percent_statements_covered_display": "49"}, "missing_lines": [62, 84, 85, 87, 88, 89, 90, 91, 93, 94, 95, 96, 98, 99, 101, 102, 103, 104, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122], "excluded_lines": [], "start_line": 42}, "DiffCalculator": {"executed_lines": [151, 152, 153, 155], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 142}, "": {"executed_lines": [3, 5, 6, 8, 11, 12, 15, 17, 20, 23, 24, 25, 28, 29, 30, 33, 36, 37, 38, 39, 42, 45, 50, 108, 109, 124, 130, 136, 142, 145, 146], "summary": {"covered_lines": 31, "num_statements": 35, "percent_covered": 88.57142857142857, "percent_covered_display": "89", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 88.57142857142857, "percent_statements_covered_display": "89"}, "missing_lines": [18, 21, 26, 31], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/utils/duplicate_finders.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 9, 19, 21, 22, 23, 26, 27, 28, 29, 31, 35, 36], "excluded_lines": [5, 6], "functions": {"create_duplicate_finder": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [19, 26, 27, 28, 29, 31], "excluded_lines": [], "start_line": 9}, "create_duplicate_finder.find_duplicates": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21, 22, 23], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 9, 35, 36], "excluded_lines": [5, 6], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 9, 19, 21, 22, 23, 26, 27, 28, 29, 31, 35, 36], "excluded_lines": [5, 6], "start_line": 1}}}, "src/redup/core/utils/function_extractor.py": {"executed_lines": [3, 4, 7, 10, 22, 23, 24, 26, 59, 77, 97, 109, 114, 119, 125, 130, 135, 140, 145], "summary": {"covered_lines": 19, "num_statements": 56, "percent_covered": 33.92857142857143, "percent_covered_display": "34", "missing_lines": 37, "excluded_lines": 0, "percent_statements_covered": 33.92857142857143, "percent_statements_covered_display": "34"}, "missing_lines": [28, 30, 31, 32, 34, 37, 38, 39, 40, 43, 44, 45, 46, 48, 49, 50, 53, 54, 56, 57, 61, 62, 65, 66, 68, 79, 80, 83, 84, 86, 99, 100, 101, 102, 103, 104, 105], "excluded_lines": [], "functions": {"FunctionExtractor.__init__": {"executed_lines": [22, 23, 24], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "FunctionExtractor.extract_functions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28, 30, 56, 57], "excluded_lines": [], "start_line": 26}, "FunctionExtractor.extract_functions.traverse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [31, 32, 34, 37, 38, 39, 40, 43, 44, 45, 46, 48, 49, 50, 53, 54], "excluded_lines": [], "start_line": 30}, "FunctionExtractor._create_function_block": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [61, 62, 65, 66, 68], "excluded_lines": [], "start_line": 59}, "FunctionExtractor._create_method_block": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [79, 80, 83, 84, 86], "excluded_lines": [], "start_line": 77}, "_extract_java_class_name": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [99, 100, 101, 102, 103, 104, 105], "excluded_lines": [], "start_line": 97}, "": {"executed_lines": [3, 4, 7, 10, 26, 59, 77, 97, 109, 114, 119, 125, 130, 135, 140, 145], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"FunctionExtractor": {"executed_lines": [22, 23, 24], "summary": {"covered_lines": 3, "num_statements": 33, "percent_covered": 9.090909090909092, "percent_covered_display": "9", "missing_lines": 30, "excluded_lines": 0, "percent_statements_covered": 9.090909090909092, "percent_statements_covered_display": "9"}, "missing_lines": [28, 30, 31, 32, 34, 37, 38, 39, 40, 43, 44, 45, 46, 48, 49, 50, 53, 54, 56, 57, 61, 62, 65, 66, 68, 79, 80, 83, 84, 86], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 26, 59, 77, 97, 109, 114, 119, 125, 130, 135, 140, 145], "summary": {"covered_lines": 16, "num_statements": 23, "percent_covered": 69.56521739130434, "percent_covered_display": "70", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 69.56521739130434, "percent_statements_covered_display": "70"}, "missing_lines": [99, 100, 101, 102, 103, 104, 105], "excluded_lines": [], "start_line": 1}}}, "src/redup/core/utils/hash_utils.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 9, 19, 21, 22, 25, 26, 27, 28, 29, 31, 35, 36, 37], "excluded_lines": [5, 6], "functions": {"create_hash_function": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [19, 25, 26, 27, 28, 29, 31], "excluded_lines": [], "start_line": 9}, "create_hash_function.hash_function": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [21, 22], "excluded_lines": [], "start_line": 19}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 9, 35, 36, 37], "excluded_lines": [5, 6], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [3, 9, 19, 21, 22, 25, 26, 27, 28, 29, 31, 35, 36, 37], "excluded_lines": [5, 6], "start_line": 1}}}, "src/redup/core/utils/language_dispatcher.py": {"executed_lines": [3, 4, 7, 10, 12, 13, 15, 22, 24, 31, 33, 43, 47, 48, 49, 53, 65, 66, 67, 72], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 86.95652173913044, "percent_statements_covered_display": "87"}, "missing_lines": [44, 51, 68], "excluded_lines": [], "functions": {"LanguageDispatcher.__init__": {"executed_lines": [12, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "LanguageDispatcher.register_extractor": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "LanguageDispatcher.register_group": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 24}, "LanguageDispatcher.get_extractor": {"executed_lines": [43, 47, 48, 49], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [44, 51], "excluded_lines": [], "start_line": 33}, "LanguageDispatcher.extract_functions": {"executed_lines": [65, 66, 67], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [68], "excluded_lines": [], "start_line": 53}, "": {"executed_lines": [3, 4, 7, 10, 15, 24, 33, 53, 72], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"LanguageDispatcher": {"executed_lines": [12, 13, 22, 31, 43, 47, 48, 49, 65, 66, 67], "summary": {"covered_lines": 11, "num_statements": 14, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 78.57142857142857, "percent_statements_covered_display": "79"}, "missing_lines": [44, 51, 68], "excluded_lines": [], "start_line": 7}, "": {"executed_lines": [3, 4, 7, 10, 15, 24, 33, 53, 72], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/mcp/__init__.py": {"executed_lines": [3, 11, 12, 13, 15], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 11, 12, 13, 15], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 11, 12, 13, 15], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/mcp/handlers.py": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 26, 28, 29, 32, 34, 36, 38, 39, 40, 42, 44, 46, 48, 50, 53, 56, 58, 59, 60, 61, 62, 63, 65, 71, 72, 81, 84, 97, 104, 105, 153, 155, 156, 159, 160, 162, 168, 213, 215, 216, 217, 218, 230, 233, 235, 236, 238, 239, 240, 245, 246, 252, 255, 257, 270, 272, 273, 276, 277, 278, 280, 282, 299, 302, 319, 333], "summary": {"covered_lines": 84, "num_statements": 142, "percent_covered": 59.15492957746479, "percent_covered_display": "59", "missing_lines": 58, "excluded_lines": 0, "percent_statements_covered": 59.15492957746479, "percent_statements_covered_display": "59"}, "missing_lines": [30, 33, 35, 37, 41, 43, 45, 47, 49, 51, 66, 79, 86, 87, 88, 89, 90, 91, 92, 93, 94, 106, 107, 108, 109, 110, 111, 112, 113, 114, 127, 128, 129, 130, 131, 132, 148, 150, 157, 170, 171, 172, 174, 175, 177, 210, 274, 304, 309, 310, 311, 312, 313, 314, 315, 316, 321, 329], "excluded_lines": [], "functions": {"_build_scan_config": {"executed_lines": [26, 28, 29, 32, 34, 36, 38, 39, 40, 42, 44, 46, 48, 50, 53], "summary": {"covered_lines": 15, "num_statements": 25, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [30, 33, 35, 37, 41, 43, 45, 47, 49, 51], "excluded_lines": [], "start_line": 24}, "_run_analysis": {"executed_lines": [58, 59, 60, 61, 62, 63, 65, 71, 72, 81], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [66, 79], "excluded_lines": [], "start_line": 56}, "_estimate_code2llm_counts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [86, 87, 88, 89, 90, 91, 92, 93, 94], "excluded_lines": [], "start_line": 84}, "_format_analysis_result": {"executed_lines": [104, 105], "summary": {"covered_lines": 2, "num_statements": 19, "percent_covered": 10.526315789473685, "percent_covered_display": "11", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 10.526315789473685, "percent_statements_covered_display": "11"}, "missing_lines": [106, 107, 108, 109, 110, 111, 112, 113, 114, 127, 128, 129, 130, 131, 132, 148, 150], "excluded_lines": [], "start_line": 97}, "handle_analyze_project": {"executed_lines": [155, 156, 159, 160, 162], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [157], "excluded_lines": [], "start_line": 153}, "handle_suggest_refactoring": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [170, 171, 172, 174, 175, 177, 210], "excluded_lines": [], "start_line": 168}, "handle_compare_scans": {"executed_lines": [215, 216, 217, 218, 230], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 213}, "_check_thresholds": {"executed_lines": [235, 236, 238, 239, 240, 245, 246, 252], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 233}, "_format_top_groups": {"executed_lines": [257], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 255}, "handle_check_project": {"executed_lines": [272, 273, 276, 277, 278, 280, 282, 299], "summary": {"covered_lines": 8, "num_statements": 9, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [274], "excluded_lines": [], "start_line": 270}, "_get_optional_deps": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [304, 309, 310, 311, 312, 313, 314, 315, 316], "excluded_lines": [], "start_line": 302}, "handle_project_info": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [321, 329], "excluded_lines": [], "start_line": 319}, "": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 56, 84, 97, 153, 168, 213, 233, 255, 270, 302, 319, 333], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 26, 28, 29, 32, 34, 36, 38, 39, 40, 42, 44, 46, 48, 50, 53, 56, 58, 59, 60, 61, 62, 63, 65, 71, 72, 81, 84, 97, 104, 105, 153, 155, 156, 159, 160, 162, 168, 213, 215, 216, 217, 218, 230, 233, 235, 236, 238, 239, 240, 245, 246, 252, 255, 257, 270, 272, 273, 276, 277, 278, 280, 282, 299, 302, 319, 333], "summary": {"covered_lines": 84, "num_statements": 142, "percent_covered": 59.15492957746479, "percent_covered_display": "59", "missing_lines": 58, "excluded_lines": 0, "percent_statements_covered": 59.15492957746479, "percent_statements_covered_display": "59"}, "missing_lines": [30, 33, 35, 37, 41, 43, 45, 47, 49, 51, 66, 79, 86, 87, 88, 89, 90, 91, 92, 93, 94, 106, 107, 108, 109, 110, 111, 112, 113, 114, 127, 128, 129, 130, 131, 132, 148, 150, 157, 170, 171, 172, 174, 175, 177, 210, 274, 304, 309, 310, 311, 312, 313, 314, 315, 316, 321, 329], "excluded_lines": [], "start_line": 1}}}, "src/redup/mcp/schemas.py": {"executed_lines": [1, 3, 22, 24, 32, 37], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"_make_check_properties": {"executed_lines": [24], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "": {"executed_lines": [1, 3, 22, 32, 37], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 3, 22, 24, 32, 37], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/mcp/server.py": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 14, 16, 32, 34, 43, 50, 52, 53, 55, 56, 65, 66, 67, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 108], "summary": {"covered_lines": 31, "num_statements": 51, "percent_covered": 60.78431372549019, "percent_covered_display": "61", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 60.78431372549019, "percent_statements_covered_display": "61"}, "missing_lines": [74, 75, 98, 110, 111, 112, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 131, 132, 133, 140], "excluded_lines": [], "functions": {"handle_initialize": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "handle_tools_list": {"executed_lines": [34, 43], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "handle_tools_call": {"executed_lines": [52, 53, 55, 56, 65, 66, 67], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [74, 75], "excluded_lines": [], "start_line": 50}, "handle_request": {"executed_lines": [87, 88, 89, 91, 92, 93, 94, 95, 96], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [98], "excluded_lines": [], "start_line": 85}, "run_server": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [110, 111, 112, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 131, 132, 133, 140], "excluded_lines": [], "start_line": 108}, "": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 14, 32, 50, 85, 108], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 7, 9, 10, 11, 14, 16, 32, 34, 43, 50, 52, 53, 55, 56, 65, 66, 67, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 108], "summary": {"covered_lines": 31, "num_statements": 51, "percent_covered": 60.78431372549019, "percent_covered_display": "61", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 60.78431372549019, "percent_statements_covered_display": "61"}, "missing_lines": [74, 75, 98, 110, 111, 112, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 131, 132, 133, 140], "excluded_lines": [], "start_line": 1}}}, "src/redup/mcp/utils.py": {"executed_lines": [1, 2, 3, 5, 11, 12, 13, 14, 16, 17], "summary": {"covered_lines": 10, "num_statements": 17, "percent_covered": 58.8235294117647, "percent_covered_display": "59", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 58.8235294117647, "percent_statements_covered_display": "59"}, "missing_lines": [6, 7, 8, 9, 18, 19, 20], "excluded_lines": [], "functions": {"json_safe": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [6, 7, 8, 9], "excluded_lines": [], "start_line": 5}, "resolve_path": {"executed_lines": [12, 13, 14], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 11}, "parse_extensions": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 4, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 25.0, "percent_statements_covered_display": "25"}, "missing_lines": [18, 19, 20], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [1, 2, 3, 5, 11, 16], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 2, 3, 5, 11, 12, 13, 14, 16, 17], "summary": {"covered_lines": 10, "num_statements": 17, "percent_covered": 58.8235294117647, "percent_covered_display": "59", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 58.8235294117647, "percent_statements_covered_display": "59"}, "missing_lines": [6, 7, 8, 9, 18, 19, 20], "excluded_lines": [], "start_line": 1}}}, "src/redup/mcp_server.py": {"executed_lines": [7, 9, 10, 12, 16, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 54, 56, 57, 58, 63, 66, 67, 68, 70, 82], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [13, 83], "excluded_lines": [], "functions": {"_build_legacy_tool_schema": {"executed_lines": [56, 57, 58, 63], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 54}, "": {"executed_lines": [7, 9, 10, 12, 16, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 54, 66, 67, 68, 70, 82], "summary": {"covered_lines": 26, "num_statements": 28, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.85714285714286, "percent_statements_covered_display": "93"}, "missing_lines": [13, 83], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [7, 9, 10, 12, 16, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 54, 56, 57, 58, 63, 66, 67, 68, 70, 82], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [13, 83], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/code2llm_reporter.py": {"executed_lines": [8, 10, 11, 12, 14, 17, 22, 27, 46, 93, 171], "summary": {"covered_lines": 11, "num_statements": 88, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 77, "excluded_lines": 0, "percent_statements_covered": 12.5, "percent_statements_covered_display": "12"}, "missing_lines": [19, 24, 29, 32, 33, 36, 43, 57, 58, 59, 61, 70, 71, 72, 74, 75, 76, 80, 82, 83, 85, 86, 87, 88, 90, 105, 106, 108, 123, 124, 125, 127, 128, 129, 130, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 184, 185, 188, 195, 196, 199, 206, 207, 209], "excluded_lines": [], "functions": {"_calculate_avg_cc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [19], "excluded_lines": [], "start_line": 17}, "_count_critical_functions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24], "excluded_lines": [], "start_line": 22}, "_get_layers": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [29, 32, 33, 36, 43], "excluded_lines": [], "start_line": 27}, "to_code2llm_toon": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [57, 58, 59, 61, 70, 71, 72, 74, 75, 76, 80, 82, 83, 85, 86, 87, 88, 90], "excluded_lines": [], "start_line": 46}, "to_code2llm_context": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 43, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 43, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [105, 106, 108, 123, 124, 125, 127, 128, 129, 130, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168], "excluded_lines": [], "start_line": 93}, "export_code2llm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [184, 185, 188, 195, 196, 199, 206, 207, 209], "excluded_lines": [], "start_line": 171}, "": {"executed_lines": [8, 10, 11, 12, 14, 17, 22, 27, 46, 93, 171], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [8, 10, 11, 12, 14, 17, 22, 27, 46, 93, 171], "summary": {"covered_lines": 11, "num_statements": 88, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 77, "excluded_lines": 0, "percent_statements_covered": 12.5, "percent_statements_covered_display": "12"}, "missing_lines": [19, 24, 29, 32, 33, 36, 43, 57, 58, 59, 61, 70, 71, 72, 74, 75, 76, 80, 82, 83, 85, 86, 87, 88, 90, 105, 106, 108, 123, 124, 125, 127, 128, 129, 130, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 184, 185, 188, 195, 196, 199, 206, 207, 209], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/enhanced_reporter.py": {"executed_lines": [3, 5, 6, 7, 8, 9, 11, 20, 23, 28, 40, 52, 75, 103, 130, 143, 160, 176, 190, 204, 213, 222, 231, 242, 250], "summary": {"covered_lines": 25, "num_statements": 108, "percent_covered": 23.14814814814815, "percent_covered_display": "23", "missing_lines": 83, "excluded_lines": 0, "percent_statements_covered": 23.14814814814815, "percent_statements_covered_display": "23"}, "missing_lines": [24, 25, 26, 30, 38, 42, 54, 55, 58, 61, 63, 77, 84, 85, 86, 87, 88, 89, 91, 93, 94, 95, 98, 99, 101, 105, 111, 112, 113, 114, 115, 118, 124, 132, 133, 135, 145, 147, 148, 149, 151, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 192, 193, 196, 197, 198, 199, 200, 202, 206, 215, 216, 224, 225, 233, 234, 236, 244, 252, 273, 274], "excluded_lines": [], "functions": {"EnhancedReporter.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24, 25, 26], "excluded_lines": [], "start_line": 23}, "EnhancedReporter.generate_metrics_report": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [30, 38], "excluded_lines": [], "start_line": 28}, "EnhancedReporter._get_scan_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [42], "excluded_lines": [], "start_line": 40}, "EnhancedReporter._get_duplication_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [54, 55, 58, 61, 63], "excluded_lines": [], "start_line": 52}, "EnhancedReporter._get_language_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [77, 84, 85, 86, 87, 88, 89, 91, 93, 94, 95, 98, 99, 101], "excluded_lines": [], "start_line": 75}, "EnhancedReporter._get_file_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [105, 111, 112, 113, 114, 115, 118, 124], "excluded_lines": [], "start_line": 103}, "EnhancedReporter._get_complexity_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [132, 133, 135], "excluded_lines": [], "start_line": 130}, "EnhancedReporter._get_refactoring_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [145, 147, 148, 149, 151], "excluded_lines": [], "start_line": 143}, "EnhancedReporter._bucket_similarities": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174], "excluded_lines": [], "start_line": 160}, "EnhancedReporter._bucket_group_sizes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [178, 179, 180, 181, 182, 183, 184, 185, 187, 188], "excluded_lines": [], "start_line": 176}, "EnhancedReporter._calculate_complexity_score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [192, 193, 196, 197, 198, 199, 200, 202], "excluded_lines": [], "start_line": 190}, "EnhancedReporter.generate_visualization_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [206], "excluded_lines": [], "start_line": 204}, "EnhancedReporter._get_duplication_chart_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [215, 216], "excluded_lines": [], "start_line": 213}, "EnhancedReporter._get_language_chart_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [224, 225], "excluded_lines": [], "start_line": 222}, "EnhancedReporter._get_file_chart_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [233, 234, 236], "excluded_lines": [], "start_line": 231}, "EnhancedReporter._get_timeline_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [244], "excluded_lines": [], "start_line": 242}, "EnhancedReporter.save_enhanced_report": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [252, 273, 274], "excluded_lines": [], "start_line": 250}, "": {"executed_lines": [3, 5, 6, 7, 8, 9, 11, 20, 23, 28, 40, 52, 75, 103, 130, 143, 160, 176, 190, 204, 213, 222, 231, 242, 250], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"EnhancedReporter": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 83, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 83, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24, 25, 26, 30, 38, 42, 54, 55, 58, 61, 63, 77, 84, 85, 86, 87, 88, 89, 91, 93, 94, 95, 98, 99, 101, 105, 111, 112, 113, 114, 115, 118, 124, 132, 133, 135, 145, 147, 148, 149, 151, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 192, 193, 196, 197, 198, 199, 200, 202, 206, 215, 216, 224, 225, 233, 234, 236, 244, 252, 273, 274], "excluded_lines": [], "start_line": 20}, "": {"executed_lines": [3, 5, 6, 7, 8, 9, 11, 20, 23, 28, 40, 52, 75, 103, 130, 143, 160, 176, 190, 204, 213, 222, 231, 242, 250], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/json_reporter.py": {"executed_lines": [3, 5, 6, 8, 11, 12, 13, 14, 23, 26, 28, 42, 43, 55, 57, 73], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [24], "excluded_lines": [], "functions": {"_group_to_dict": {"executed_lines": [12, 13, 14, 23, 26, 28], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [24], "excluded_lines": [], "start_line": 11}, "_suggestion_to_dict": {"executed_lines": [43], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 42}, "to_json": {"executed_lines": [57, 73], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 55}, "": {"executed_lines": [3, 5, 6, 8, 11, 42, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 6, 8, 11, 12, 13, 14, 23, 26, 28, 42, 43, 55, 57, 73], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [24], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/markdown_reporter.py": {"executed_lines": [3, 5, 7, 10, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 70, 71, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 86, 87, 88, 90], "summary": {"covered_lines": 62, "num_statements": 65, "percent_covered": 95.38461538461539, "percent_covered_display": "95", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 95.38461538461539, "percent_statements_covered_display": "95"}, "missing_lines": [35, 36, 37], "excluded_lines": [], "functions": {"to_markdown": {"executed_lines": [12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 70, 71, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 86, 87, 88, 90], "summary": {"covered_lines": 58, "num_statements": 61, "percent_covered": 95.08196721311475, "percent_covered_display": "95", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 95.08196721311475, "percent_statements_covered_display": "95"}, "missing_lines": [35, 36, 37], "excluded_lines": [], "start_line": 10}, "": {"executed_lines": [3, 5, 7, 10], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 7, 10, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 70, 71, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 86, 87, 88, 90], "summary": {"covered_lines": 62, "num_statements": 65, "percent_covered": 95.38461538461539, "percent_covered_display": "95", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 95.38461538461539, "percent_statements_covered_display": "95"}, "missing_lines": [35, 36, 37], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/toon_reporter.py": {"executed_lines": [3, 5, 7, 10, 12, 13, 20, 22, 34, 36, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, 52, 54, 57, 59, 61, 62, 63, 64, 65, 68, 69, 70, 72, 73, 75, 78, 80, 82, 83, 84, 85, 86, 88, 91, 96, 98, 106], "summary": {"covered_lines": 47, "num_statements": 48, "percent_covered": 97.91666666666667, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.91666666666667, "percent_statements_covered_display": "98"}, "missing_lines": [71], "excluded_lines": [], "functions": {"_render_header": {"executed_lines": [12, 13], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "_render_summary": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "_render_duplicates": {"executed_lines": [36, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, 52, 54], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "_render_refactor": {"executed_lines": [59, 61, 62, 63, 64, 65, 68, 69, 70, 72, 73, 75], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [71], "excluded_lines": [], "start_line": 57}, "_render_metrics_target": {"executed_lines": [80, 82, 83, 84, 85, 86, 88], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 78}, "to_toon": {"executed_lines": [96, 98, 106], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 91}, "": {"executed_lines": [3, 5, 7, 10, 20, 34, 57, 78, 91], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 7, 10, 12, 13, 20, 22, 34, 36, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, 52, 54, 57, 59, 61, 62, 63, 64, 65, 68, 69, 70, 72, 73, 75, 78, 80, 82, 83, 84, 85, 86, 88, 91, 96, 98, 106], "summary": {"covered_lines": 47, "num_statements": 48, "percent_covered": 97.91666666666667, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.91666666666667, "percent_statements_covered_display": "98"}, "missing_lines": [71], "excluded_lines": [], "start_line": 1}}}, "src/redup/reporters/yaml_reporter.py": {"executed_lines": [3, 5, 8, 10, 11, 15, 17, 34], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [12, 13], "excluded_lines": [], "functions": {"to_yaml": {"executed_lines": [10, 11, 15, 17, 34], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [12, 13], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [3, 5, 8], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 8, 10, 11, 15, 17, 34], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [12, 13], "excluded_lines": [], "start_line": 1}}}, "src/redup/utils.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47], "excluded_lines": [], "functions": {"_json_safe": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "excluded_lines": [], "start_line": 13}, "_resolve_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [27, 28, 29, 30, 31, 32], "excluded_lines": [], "start_line": 26}, "_parse_extensions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 34}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 26, 34], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 1626, "num_statements": 3794, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 2168, "excluded_lines": 8, "percent_statements_covered": 42.857142857142854, "percent_statements_covered_display": "43"}}