pyPhotoAlbum/cov_info/coverage.json
2026-06-20 12:55:58 +00:00

1 line
540 KiB
JSON

{"meta": {"format": 3, "version": "7.14.1", "timestamp": "2026-06-20T12:55:50.367694", "branch_coverage": false, "show_contexts": false}, "files": {"pyPhotoAlbum/__init__.py": {"executed_lines": [8, 9, 12], "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": [], "functions": {"": {"executed_lines": [8, 9, 12], "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": [8, 9, 12], "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}}}, "pyPhotoAlbum/alignment.py": {"executed_lines": [5, 6, 9, 15, 24, 25, 26, 27, 28, 30, 32, 33, 35, 46, 47, 48, 51, 52, 53, 54, 55, 56, 59, 60, 61, 63, 64, 67, 71, 74, 75, 77, 79, 100, 103, 104, 106, 107, 108, 110, 111, 113, 114, 116, 117, 119, 121, 132, 134, 135, 138, 139, 141, 142, 143, 144, 147, 148, 149, 150, 151, 153, 155, 166, 167, 169, 170, 171, 172, 173, 176, 180, 182, 184, 191, 192, 195, 196, 198, 199, 200, 203, 204, 206, 207, 209, 216, 217, 220, 221, 223, 224, 225, 228, 229, 231, 232, 234, 236, 237, 238, 240, 253, 256, 257, 258, 261, 263, 266, 269, 270, 277, 278, 280, 281, 282, 283, 285, 287, 288, 295, 296, 298, 299, 301, 302, 303, 304, 306, 308, 309, 316, 319, 320, 322, 323, 324, 325, 326, 328, 330, 331, 338, 341, 342, 344, 345, 346, 347, 349, 351, 352, 359, 362, 363, 365, 366, 367, 368, 369, 371, 373, 374, 383, 387, 388, 390, 391, 392, 393, 394, 395, 397, 399, 400, 407, 411, 412, 414, 415, 416, 417, 418, 419, 421, 423, 424, 433, 434, 436, 437, 439, 440, 441, 442, 443, 445, 447, 448, 457, 460, 461, 463, 464, 465, 466, 467, 469, 471, 472, 481, 484, 485, 487, 488, 489, 490, 491, 493, 495, 496, 505, 506, 509, 512, 513, 516, 517, 519, 520, 521, 522, 523, 524, 526, 528, 529, 536, 540, 543, 544, 547, 548, 550, 551, 552, 553, 554, 555, 557, 559, 560, 567, 568, 571, 574, 575, 578, 581, 582, 584, 585, 587, 588, 589, 590, 591, 593, 595, 596, 603, 607, 610, 611, 614, 617, 618, 620, 621, 623, 624, 625, 626, 627, 629, 631, 632, 658, 659, 685, 686, 721, 722, 743, 744, 746, 747, 749, 750, 775, 776, 777, 779, 780, 784, 785, 786, 787, 791, 792, 793, 796, 797, 798, 799, 802, 803, 804, 805, 811, 814, 816, 817, 820, 822, 824, 825, 828, 830, 832, 833, 836, 838, 840, 841, 844, 845, 846, 847, 850, 851, 854, 855, 859, 860, 861, 863, 865, 866, 867, 869, 872, 873, 875], "summary": {"covered_lines": 354, "num_statements": 388, "percent_covered": 91.23711340206185, "percent_covered_display": "91", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 91.23711340206185, "percent_statements_covered_display": "91"}, "missing_lines": [317, 339, 360, 384, 408, 458, 482, 537, 604, 645, 646, 649, 652, 653, 654, 656, 672, 673, 676, 679, 680, 681, 683, 700, 701, 704, 705, 708, 710, 711, 714, 715, 717, 719], "excluded_lines": [], "functions": {"ElementMaximizer.__init__": {"executed_lines": [24, 25, 26, 27, 28], "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": 15}, "ElementMaximizer._record_initial_states": {"executed_lines": [32, 33], "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": 30}, "ElementMaximizer.check_collision": {"executed_lines": [46, 47, 48, 51, 52, 53, 54, 55, 56, 59, 60, 61, 63, 64, 67, 71, 74, 75, 77], "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": 35}, "ElementMaximizer.find_max_scale": {"executed_lines": [100, 103, 104, 106, 107, 108, 110, 111, 113, 114, 116, 117, 119], "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": 79}, "ElementMaximizer.grow_iteration": {"executed_lines": [132, 134, 135, 138, 139, 141, 142, 143, 144, 147, 148, 149, 150, 151, 153], "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": 121}, "ElementMaximizer.check_element_collision": {"executed_lines": [166, 167, 169, 170, 171, 172, 173, 176, 180, 182], "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": 155}, "ElementMaximizer.center_element_horizontally": {"executed_lines": [191, 192, 195, 196, 198, 199, 200, 203, 204, 206, 207], "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": 184}, "ElementMaximizer.center_element_vertically": {"executed_lines": [216, 217, 220, 221, 223, 224, 225, 228, 229, 231, 232], "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": 209}, "ElementMaximizer.center_elements": {"executed_lines": [236, 237, 238], "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": 234}, "ElementMaximizer.maximize": {"executed_lines": [253, 256, 257, 258, 261, 263], "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": 240}, "AlignmentManager.get_bounds": {"executed_lines": [277, 278, 280, 281, 282, 283, 285], "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": 270}, "AlignmentManager.align_left": {"executed_lines": [295, 296, 298, 299, 301, 302, 303, 304, 306], "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": 288}, "AlignmentManager.align_right": {"executed_lines": [316, 319, 320, 322, 323, 324, 325, 326, 328], "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": [317], "excluded_lines": [], "start_line": 309}, "AlignmentManager.align_top": {"executed_lines": [338, 341, 342, 344, 345, 346, 347, 349], "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": [339], "excluded_lines": [], "start_line": 331}, "AlignmentManager.align_bottom": {"executed_lines": [359, 362, 363, 365, 366, 367, 368, 369, 371], "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": [360], "excluded_lines": [], "start_line": 352}, "AlignmentManager.align_horizontal_center": {"executed_lines": [383, 387, 388, 390, 391, 392, 393, 394, 395, 397], "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": [384], "excluded_lines": [], "start_line": 374}, "AlignmentManager.align_vertical_center": {"executed_lines": [407, 411, 412, 414, 415, 416, 417, 418, 419, 421], "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": [408], "excluded_lines": [], "start_line": 400}, "AlignmentManager.make_same_size": {"executed_lines": [433, 434, 436, 437, 439, 440, 441, 442, 443, 445], "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": 424}, "AlignmentManager.make_same_width": {"executed_lines": [457, 460, 461, 463, 464, 465, 466, 467, 469], "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": [458], "excluded_lines": [], "start_line": 448}, "AlignmentManager.make_same_height": {"executed_lines": [481, 484, 485, 487, 488, 489, 490, 491, 493], "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": [482], "excluded_lines": [], "start_line": 472}, "AlignmentManager.distribute_horizontally": {"executed_lines": [505, 506, 509, 512, 513, 516, 517, 519, 520, 521, 522, 523, 524, 526], "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": 496}, "AlignmentManager.distribute_vertically": {"executed_lines": [536, 540, 543, 544, 547, 548, 550, 551, 552, 553, 554, 555, 557], "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": [537], "excluded_lines": [], "start_line": 529}, "AlignmentManager.space_horizontally": {"executed_lines": [567, 568, 571, 574, 575, 578, 581, 582, 584, 585, 587, 588, 589, 590, 591, 593], "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": 560}, "AlignmentManager.space_vertically": {"executed_lines": [603, 607, 610, 611, 614, 617, 618, 620, 621, 623, 624, 625, 626, 627, 629], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [604], "excluded_lines": [], "start_line": 596}, "AlignmentManager.fit_to_page_width": {"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": [645, 646, 649, 652, 653, 654, 656], "excluded_lines": [], "start_line": 632}, "AlignmentManager.fit_to_page_height": {"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": [672, 673, 676, 679, 680, 681, 683], "excluded_lines": [], "start_line": 659}, "AlignmentManager.fit_to_page": {"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": [700, 701, 704, 705, 708, 710, 711, 714, 715, 717, 719], "excluded_lines": [], "start_line": 686}, "AlignmentManager.maximize_pattern": {"executed_lines": [743, 744, 746, 747], "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": 722}, "AlignmentManager.expand_to_bounds": {"executed_lines": [775, 776, 777, 779, 780, 784, 785, 786, 787, 791, 792, 793, 796, 797, 798, 799, 802, 803, 804, 805, 811, 814, 816, 817, 820, 822, 824, 825, 828, 830, 832, 833, 836, 838, 840, 841, 844, 845, 846, 847, 850, 851, 854, 855, 859, 860, 861, 863, 865, 866, 867, 869, 872, 873, 875], "summary": {"covered_lines": 55, "num_statements": 55, "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": 750}, "": {"executed_lines": [5, 6, 9, 15, 30, 35, 79, 121, 155, 184, 209, 234, 240, 266, 269, 270, 287, 288, 308, 309, 330, 331, 351, 352, 373, 374, 399, 400, 423, 424, 447, 448, 471, 472, 495, 496, 528, 529, 559, 560, 595, 596, 631, 632, 658, 659, 685, 686, 721, 722, 749, 750], "summary": {"covered_lines": 52, "num_statements": 52, "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": {"ElementMaximizer": {"executed_lines": [24, 25, 26, 27, 28, 32, 33, 46, 47, 48, 51, 52, 53, 54, 55, 56, 59, 60, 61, 63, 64, 67, 71, 74, 75, 77, 100, 103, 104, 106, 107, 108, 110, 111, 113, 114, 116, 117, 119, 132, 134, 135, 138, 139, 141, 142, 143, 144, 147, 148, 149, 150, 151, 153, 166, 167, 169, 170, 171, 172, 173, 176, 180, 182, 191, 192, 195, 196, 198, 199, 200, 203, 204, 206, 207, 216, 217, 220, 221, 223, 224, 225, 228, 229, 231, 232, 236, 237, 238, 253, 256, 257, 258, 261, 263], "summary": {"covered_lines": 95, "num_statements": 95, "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": 9}, "AlignmentManager": {"executed_lines": [277, 278, 280, 281, 282, 283, 285, 295, 296, 298, 299, 301, 302, 303, 304, 306, 316, 319, 320, 322, 323, 324, 325, 326, 328, 338, 341, 342, 344, 345, 346, 347, 349, 359, 362, 363, 365, 366, 367, 368, 369, 371, 383, 387, 388, 390, 391, 392, 393, 394, 395, 397, 407, 411, 412, 414, 415, 416, 417, 418, 419, 421, 433, 434, 436, 437, 439, 440, 441, 442, 443, 445, 457, 460, 461, 463, 464, 465, 466, 467, 469, 481, 484, 485, 487, 488, 489, 490, 491, 493, 505, 506, 509, 512, 513, 516, 517, 519, 520, 521, 522, 523, 524, 526, 536, 540, 543, 544, 547, 548, 550, 551, 552, 553, 554, 555, 557, 567, 568, 571, 574, 575, 578, 581, 582, 584, 585, 587, 588, 589, 590, 591, 593, 603, 607, 610, 611, 614, 617, 618, 620, 621, 623, 624, 625, 626, 627, 629, 743, 744, 746, 747, 775, 776, 777, 779, 780, 784, 785, 786, 787, 791, 792, 793, 796, 797, 798, 799, 802, 803, 804, 805, 811, 814, 816, 817, 820, 822, 824, 825, 828, 830, 832, 833, 836, 838, 840, 841, 844, 845, 846, 847, 850, 851, 854, 855, 859, 860, 861, 863, 865, 866, 867, 869, 872, 873, 875], "summary": {"covered_lines": 207, "num_statements": 241, "percent_covered": 85.89211618257261, "percent_covered_display": "86", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 85.89211618257261, "percent_statements_covered_display": "86"}, "missing_lines": [317, 339, 360, 384, 408, 458, 482, 537, 604, 645, 646, 649, 652, 653, 654, 656, 672, 673, 676, 679, 680, 681, 683, 700, 701, 704, 705, 708, 710, 711, 714, 715, 717, 719], "excluded_lines": [], "start_line": 266}, "": {"executed_lines": [5, 6, 9, 15, 30, 35, 79, 121, 155, 184, 209, 234, 240, 266, 269, 270, 287, 288, 308, 309, 330, 331, 351, 352, 373, 374, 399, 400, 423, 424, 447, 448, 471, 472, 495, 496, 528, 529, 559, 560, 595, 596, 631, 632, 658, 659, 685, 686, 721, 722, 749, 750], "summary": {"covered_lines": 52, "num_statements": 52, "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}}}, "pyPhotoAlbum/asset_heal_dialog.py": {"executed_lines": [5, 6, 7, 8, 20, 23, 26, 27, 28, 29, 30, 32, 33, 35, 36, 38, 40, 43, 44, 46, 47, 49, 50, 53, 54, 56, 57, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 74, 76, 77, 78, 80, 81, 82, 84, 86, 88, 90, 92, 93, 97, 98, 99, 100, 101, 104, 105, 106, 108, 109, 110, 113, 114, 115, 116, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 133, 137, 138, 139, 140, 142, 144, 145, 146, 147, 149, 151, 153, 154, 155, 158, 161, 162, 163, 164, 165, 166, 167, 168, 171, 172, 173, 177, 178, 179, 180, 181, 184, 185, 186, 187, 190, 191, 193, 194, 195, 196, 199, 200, 201, 202, 204, 205, 209, 210, 213, 214, 215, 216, 219, 220, 221, 224, 225, 226, 228, 229, 230, 231, 232, 234, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 249, 252, 255], "summary": {"covered_lines": 154, "num_statements": 154, "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": {"AssetHealDialog.__init__": {"executed_lines": [27, 28, 29, 30, 32, 33, 35, 36], "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": 26}, "AssetHealDialog._init_ui": {"executed_lines": [40, 43, 44, 46, 47, 49, 50, 53, 54, 56, 57, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 74, 76, 77, 78, 80, 81, 82, 84, 86], "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": 38}, "AssetHealDialog._scan_missing_assets": {"executed_lines": [90, 92, 93, 97, 98, 99, 100, 101, 104, 105, 106, 108, 109, 110, 113, 114, 115, 116, 118, 119, 120, 123, 124, 125, 127, 128, 129], "summary": {"covered_lines": 27, "num_statements": 27, "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": 88}, "AssetHealDialog._add_search_path": {"executed_lines": [133, 137, 138, 139, 140], "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": 131}, "AssetHealDialog._remove_search_path": {"executed_lines": [144, 145, 146, 147], "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}, "AssetHealDialog._attempt_healing": {"executed_lines": [151, 153, 154, 155, 158, 161, 162, 163, 164, 165, 166, 167, 168, 171, 172, 173, 177, 178, 179, 180, 181, 184, 185, 186, 187, 190, 191, 193, 194, 195, 196, 199, 200, 201, 202, 204, 205, 209, 210, 213, 214, 215, 216, 219, 220, 221, 224, 225, 226, 228, 229, 230, 231, 232, 234, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 249, 252, 255], "summary": {"covered_lines": 68, "num_statements": 68, "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}, "": {"executed_lines": [5, 6, 7, 8, 20, 23, 26, 38, 88, 131, 142, 149], "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": {"AssetHealDialog": {"executed_lines": [27, 28, 29, 30, 32, 33, 35, 36, 40, 43, 44, 46, 47, 49, 50, 53, 54, 56, 57, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 74, 76, 77, 78, 80, 81, 82, 84, 86, 90, 92, 93, 97, 98, 99, 100, 101, 104, 105, 106, 108, 109, 110, 113, 114, 115, 116, 118, 119, 120, 123, 124, 125, 127, 128, 129, 133, 137, 138, 139, 140, 144, 145, 146, 147, 151, 153, 154, 155, 158, 161, 162, 163, 164, 165, 166, 167, 168, 171, 172, 173, 177, 178, 179, 180, 181, 184, 185, 186, 187, 190, 191, 193, 194, 195, 196, 199, 200, 201, 202, 204, 205, 209, 210, 213, 214, 215, 216, 219, 220, 221, 224, 225, 226, 228, 229, 230, 231, 232, 234, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 249, 252, 255], "summary": {"covered_lines": 142, "num_statements": 142, "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": 23}, "": {"executed_lines": [5, 6, 7, 8, 20, 23, 26, 38, 88, 131, 142, 149], "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}}}, "pyPhotoAlbum/asset_manager.py": {"executed_lines": [5, 6, 7, 8, 9, 12, 22, 23, 25, 26, 27, 28, 29, 30, 36, 39, 46, 47, 48, 49, 52, 54, 64, 68, 69, 72, 73, 74, 76, 77, 78, 79, 82, 85, 88, 90, 93, 95, 117, 146, 156, 158, 168, 170, 172, 177, 179, 180, 181, 183, 193, 194, 195, 196, 197, 199, 206, 208, 211, 212, 213, 214, 215, 216, 217, 219, 220, 222, 231, 232, 235, 236, 237, 238, 239, 242, 244, 245, 246, 248, 250, 261, 262, 266, 267, 269, 271, 272, 275, 276, 279, 280, 285, 286, 289, 290, 291, 292, 295, 298, 299, 300, 301, 302, 303, 308, 309, 311, 312, 314, 321, 322, 323, 325, 326, 329, 330, 332, 333, 334, 335, 339, 341, 348, 350, 354, 355, 356, 357, 360, 361, 362, 364, 365, 367, 369, 376, 377, 378, 380, 381, 382, 383, 384, 388, 390, 397, 398, 399, 400, 402, 403, 405, 406, 408, 409, 413, 414, 415, 416, 417, 418, 421, 422, 423, 424, 429, 430], "summary": {"covered_lines": 168, "num_statements": 215, "percent_covered": 78.13953488372093, "percent_covered_display": "78", "missing_lines": 47, "excluded_lines": 0, "percent_statements_covered": 78.13953488372093, "percent_statements_covered_display": "78"}, "missing_lines": [31, 32, 33, 65, 102, 103, 105, 106, 107, 110, 111, 112, 113, 115, 125, 126, 128, 129, 130, 132, 133, 135, 137, 138, 139, 140, 141, 142, 143, 144, 209, 263, 264, 281, 282, 294, 304, 305, 336, 337, 351, 385, 386, 410, 411, 426, 427], "excluded_lines": [], "functions": {"compute_file_md5": {"executed_lines": [22, 23, 25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 8, "num_statements": 11, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 72.72727272727273, "percent_statements_covered_display": "73"}, "missing_lines": [31, 32, 33], "excluded_lines": [], "start_line": 12}, "AssetManager.__init__": {"executed_lines": [46, 47, 48, 49, 52], "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": 39}, "AssetManager.import_asset": {"executed_lines": [64, 68, 69, 72, 73, 74, 76, 77, 78, 79, 82, 85, 88, 90, 93], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [65], "excluded_lines": [], "start_line": 54}, "AssetManager.acquire_reference": {"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": [102, 103, 105, 106, 107, 110, 111, 112, 113, 115], "excluded_lines": [], "start_line": 95}, "AssetManager.release_reference": {"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": [125, 126, 128, 129, 130, 132, 133, 135, 137, 138, 139, 140, 141, 142, 143, 144], "excluded_lines": [], "start_line": 117}, "AssetManager.get_absolute_path": {"executed_lines": [156], "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": 146}, "AssetManager.get_reference_count": {"executed_lines": [168], "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": 158}, "AssetManager.serialize": {"executed_lines": [172], "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": 170}, "AssetManager.deserialize": {"executed_lines": [179, 180, 181], "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": 177}, "AssetManager.compute_asset_hash": {"executed_lines": [193, 194, 195, 196, 197], "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": 183}, "AssetManager.compute_all_hashes": {"executed_lines": [206, 208, 211, 212, 213, 214, 215, 216, 217, 219, 220], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [209], "excluded_lines": [], "start_line": 199}, "AssetManager.find_duplicates": {"executed_lines": [231, 232, 235, 236, 237, 238, 239, 242, 244, 245, 246, 248], "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": 222}, "AssetManager.deduplicate_assets": {"executed_lines": [261, 262, 266, 267, 269, 271, 272, 275, 276, 279, 280, 285, 286, 289, 290, 291, 292, 295, 298, 299, 300, 301, 302, 303, 308, 309, 311, 312], "summary": {"covered_lines": 28, "num_statements": 35, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [263, 264, 281, 282, 294, 304, 305], "excluded_lines": [], "start_line": 250}, "AssetManager.get_duplicate_stats": {"executed_lines": [321, 322, 323, 325, 326, 329, 330, 332, 333, 334, 335, 339], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [336, 337], "excluded_lines": [], "start_line": 314}, "AssetManager.find_unused_assets": {"executed_lines": [348, 350, 354, 355, 356, 357, 360, 361, 362, 364, 365, 367], "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": [351], "excluded_lines": [], "start_line": 341}, "AssetManager.get_unused_stats": {"executed_lines": [376, 377, 378, 380, 381, 382, 383, 384, 388], "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": [385, 386], "excluded_lines": [], "start_line": 369}, "AssetManager.remove_unused_assets": {"executed_lines": [397, 398, 399, 400, 402, 403, 405, 406, 408, 409, 413, 414, 415, 416, 417, 418, 421, 422, 423, 424, 429, 430], "summary": {"covered_lines": 22, "num_statements": 26, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [410, 411, 426, 427], "excluded_lines": [], "start_line": 390}, "": {"executed_lines": [5, 6, 7, 8, 9, 12, 36, 39, 54, 95, 117, 146, 158, 170, 177, 183, 199, 222, 250, 314, 341, 369, 390], "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": {"AssetManager": {"executed_lines": [46, 47, 48, 49, 52, 64, 68, 69, 72, 73, 74, 76, 77, 78, 79, 82, 85, 88, 90, 93, 156, 168, 172, 179, 180, 181, 193, 194, 195, 196, 197, 206, 208, 211, 212, 213, 214, 215, 216, 217, 219, 220, 231, 232, 235, 236, 237, 238, 239, 242, 244, 245, 246, 248, 261, 262, 266, 267, 269, 271, 272, 275, 276, 279, 280, 285, 286, 289, 290, 291, 292, 295, 298, 299, 300, 301, 302, 303, 308, 309, 311, 312, 321, 322, 323, 325, 326, 329, 330, 332, 333, 334, 335, 339, 348, 350, 354, 355, 356, 357, 360, 361, 362, 364, 365, 367, 376, 377, 378, 380, 381, 382, 383, 384, 388, 397, 398, 399, 400, 402, 403, 405, 406, 408, 409, 413, 414, 415, 416, 417, 418, 421, 422, 423, 424, 429, 430], "summary": {"covered_lines": 137, "num_statements": 181, "percent_covered": 75.69060773480663, "percent_covered_display": "76", "missing_lines": 44, "excluded_lines": 0, "percent_statements_covered": 75.69060773480663, "percent_statements_covered_display": "76"}, "missing_lines": [65, 102, 103, 105, 106, 107, 110, 111, 112, 113, 115, 125, 126, 128, 129, 130, 132, 133, 135, 137, 138, 139, 140, 141, 142, 143, 144, 209, 263, 264, 281, 282, 294, 304, 305, 336, 337, 351, 385, 386, 410, 411, 426, 427], "excluded_lines": [], "start_line": 36}, "": {"executed_lines": [5, 6, 7, 8, 9, 12, 22, 23, 25, 26, 27, 28, 29, 30, 36, 39, 54, 95, 117, 146, 158, 170, 177, 183, 199, 222, 250, 314, 341, 369, 390], "summary": {"covered_lines": 31, "num_statements": 34, "percent_covered": 91.17647058823529, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.17647058823529, "percent_statements_covered_display": "91"}, "missing_lines": [31, 32, 33], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/async_backend.py": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 27, 30, 33, 34, 35, 36, 39, 61, 62, 63, 65, 66, 67, 68, 70, 72, 73, 74, 77, 78, 81, 82, 83, 84, 85, 86, 89, 96, 103, 104, 105, 106, 108, 110, 114, 115, 116, 118, 120, 121, 122, 124, 135, 137, 138, 140, 141, 142, 143, 145, 146, 148, 157, 158, 160, 162, 163, 164, 167, 168, 169, 170, 173, 174, 176, 183, 185, 186, 187, 188, 190, 192, 193, 201, 216, 217, 219, 227, 229, 230, 231, 234, 235, 236, 237, 238, 239, 242, 243, 245, 247, 249, 250, 251, 253, 254, 257, 258, 260, 262, 265, 266, 269, 270, 271, 273, 278, 281, 282, 285, 287, 289, 291, 292, 295, 298, 301, 304, 306, 308, 310, 311, 313, 316, 317, 323, 324, 325, 326, 328, 330, 332, 333, 336, 339, 340, 342, 397, 408, 409, 412, 413, 414, 415, 416, 417, 419, 421, 424, 426, 427, 432, 435, 437, 438, 443, 462, 463, 464, 466, 468, 470, 471, 472, 475, 482, 485, 488, 489, 491, 492, 494, 504, 506, 508, 509, 510, 511, 514, 520, 522, 524, 525, 532, 548, 549, 550, 552, 560, 562, 563, 564, 567, 568, 569, 570, 573, 574, 576, 578, 580, 581, 582, 584, 585, 588, 589, 591, 593, 596, 597, 600, 601, 604, 605, 608, 609, 612, 614, 616, 618, 619, 622, 625, 627, 639, 640, 641, 643, 644, 645, 646, 658, 660, 661, 662, 663, 664, 666, 730, 745, 748, 771, 772, 773, 776, 778, 780, 781, 783, 785, 786], "summary": {"covered_lines": 265, "num_statements": 363, "percent_covered": 73.00275482093664, "percent_covered_display": "73", "missing_lines": 98, "excluded_lines": 0, "percent_statements_covered": 73.00275482093664, "percent_statements_covered_display": "73"}, "missing_lines": [263, 274, 275, 320, 321, 334, 337, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 365, 366, 369, 370, 373, 376, 378, 380, 382, 383, 385, 387, 388, 389, 393, 394, 395, 425, 428, 430, 436, 439, 441, 515, 516, 517, 518, 594, 648, 651, 655, 656, 675, 677, 680, 683, 684, 685, 686, 687, 688, 690, 691, 692, 695, 696, 701, 702, 703, 704, 705, 706, 708, 710, 711, 712, 713, 714, 715, 716, 718, 719, 720, 721, 722, 723, 724, 727, 728, 750, 752, 755, 756, 757, 758, 759, 762, 763, 764, 765, 768], "excluded_lines": [], "functions": {"get_image_dimensions": {"executed_lines": [61, 62, 63, 65, 66, 67, 68, 70, 72, 73, 74], "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": 39}, "ImageCache.__init__": {"executed_lines": [103, 104, 105, 106, 108], "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": 96}, "ImageCache._estimate_image_size": {"executed_lines": [114, 115, 116], "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": 110}, "ImageCache._make_key": {"executed_lines": [120, 121, 122], "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": 118}, "ImageCache.get": {"executed_lines": [135, 137, 138, 140, 141, 142, 143, 145, 146], "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": 124}, "ImageCache.put": {"executed_lines": [157, 158, 160, 162, 163, 164, 167, 168, 169, 170, 173, 174, 176], "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": 148}, "ImageCache.clear": {"executed_lines": [185, 186, 187, 188], "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": 183}, "ImageCache.get_stats": {"executed_lines": [192, 193], "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": 190}, "AsyncImageLoader.__init__": {"executed_lines": [227, 229, 230, 231, 234, 235, 236, 237, 238, 239, 242, 243, 245], "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": 219}, "AsyncImageLoader.start": {"executed_lines": [249, 250, 251, 253, 254, 257, 258], "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": 247}, "AsyncImageLoader.stop": {"executed_lines": [262, 265, 266, 269, 270, 271, 273, 278, 281, 282, 285, 287], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [263, 274, 275], "excluded_lines": [], "start_line": 260}, "AsyncImageLoader._run_event_loop": {"executed_lines": [291, 292, 295, 298, 301, 304], "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": 289}, "AsyncImageLoader._process_queue": {"executed_lines": [308, 310, 311, 313, 316, 317, 323, 324, 325, 326, 328], "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": [320, 321], "excluded_lines": [], "start_line": 306}, "AsyncImageLoader._cancel_all_tasks": {"executed_lines": [332, 333, 336, 339, 340], "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": [334, 337], "excluded_lines": [], "start_line": 330}, "AsyncImageLoader._load_image": {"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": [349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 365, 366, 369, 370, 373, 376, 378, 380, 382, 383, 385, 387, 388, 389, 393, 394, 395], "excluded_lines": [], "start_line": 342}, "AsyncImageLoader._load_and_process_image": {"executed_lines": [408, 409, 412, 413, 414, 415, 416, 417, 419], "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": 397}, "AsyncImageLoader._emit_loaded": {"executed_lines": [424, 426, 427], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [425, 428, 430], "excluded_lines": [], "start_line": 421}, "AsyncImageLoader._emit_failed": {"executed_lines": [435, 437, 438], "summary": {"covered_lines": 3, "num_statements": 6, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [436, 439, 441], "excluded_lines": [], "start_line": 432}, "AsyncImageLoader.request_load": {"executed_lines": [462, 463, 464, 466, 468, 470, 471, 472, 475, 482, 485, 488, 489, 491, 492], "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": 443}, "AsyncImageLoader.cancel_load": {"executed_lines": [504, 506, 508, 509, 510, 511, 514, 520], "summary": {"covered_lines": 8, "num_statements": 12, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [515, 516, 517, 518], "excluded_lines": [], "start_line": 494}, "AsyncImageLoader.get_stats": {"executed_lines": [524, 525], "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": 522}, "AsyncPDFGenerator.__init__": {"executed_lines": [560, 562, 563, 564, 567, 568, 569, 570, 573, 574, 576], "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": 552}, "AsyncPDFGenerator.start": {"executed_lines": [580, 581, 582, 584, 585, 588, 589], "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": 578}, "AsyncPDFGenerator.stop": {"executed_lines": [593, 596, 597, 600, 601, 604, 605, 608, 609, 612, 614], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [594], "excluded_lines": [], "start_line": 591}, "AsyncPDFGenerator._run_event_loop": {"executed_lines": [618, 619, 622, 625], "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": 616}, "AsyncPDFGenerator.export_pdf": {"executed_lines": [639, 640, 641, 643, 644, 645, 646], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 63.63636363636363, "percent_statements_covered_display": "64"}, "missing_lines": [648, 651, 655, 656], "excluded_lines": [], "start_line": 627}, "AsyncPDFGenerator.cancel_export": {"executed_lines": [660, 661, 662, 663, 664], "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": 658}, "AsyncPDFGenerator._export_pdf_async": {"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": [675, 677, 680, 683, 695, 696, 701, 702, 703, 704, 705, 706, 708, 710, 711, 712, 713, 714, 715, 716, 718, 719, 720, 721, 722, 723, 724, 727, 728], "excluded_lines": [], "start_line": 666}, "AsyncPDFGenerator._export_pdf_async.progress_callback": {"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": [684, 685, 686, 687, 688, 690, 691, 692], "excluded_lines": [], "start_line": 683}, "AsyncPDFGenerator._export_with_cache": {"executed_lines": [745, 748, 771, 772, 773, 776], "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": 730}, "AsyncPDFGenerator._export_with_cache.cached_open": {"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": [750, 752, 755, 756, 757, 758, 759, 762, 763, 764, 765, 768], "excluded_lines": [], "start_line": 748}, "AsyncPDFGenerator.is_exporting": {"executed_lines": [780, 781], "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": 778}, "AsyncPDFGenerator.get_stats": {"executed_lines": [785, 786], "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": 783}, "": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 27, 30, 33, 34, 35, 36, 39, 77, 78, 81, 82, 83, 84, 85, 86, 89, 96, 110, 118, 124, 148, 183, 190, 201, 216, 217, 219, 247, 260, 289, 306, 330, 342, 397, 421, 432, 443, 494, 522, 532, 548, 549, 550, 552, 578, 591, 616, 627, 658, 666, 730, 778, 783], "summary": {"covered_lines": 66, "num_statements": 66, "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": {"LoadPriority": {"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": 30}, "LoadRequest": {"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": 78}, "ImageCache": {"executed_lines": [103, 104, 105, 106, 108, 114, 115, 116, 120, 121, 122, 135, 137, 138, 140, 141, 142, 143, 145, 146, 157, 158, 160, 162, 163, 164, 167, 168, 169, 170, 173, 174, 176, 185, 186, 187, 188, 192, 193], "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": 89}, "AsyncImageLoader": {"executed_lines": [227, 229, 230, 231, 234, 235, 236, 237, 238, 239, 242, 243, 245, 249, 250, 251, 253, 254, 257, 258, 262, 265, 266, 269, 270, 271, 273, 278, 281, 282, 285, 287, 291, 292, 295, 298, 301, 304, 308, 310, 311, 313, 316, 317, 323, 324, 325, 326, 328, 332, 333, 336, 339, 340, 408, 409, 412, 413, 414, 415, 416, 417, 419, 424, 426, 427, 435, 437, 438, 462, 463, 464, 466, 468, 470, 471, 472, 475, 482, 485, 488, 489, 491, 492, 504, 506, 508, 509, 510, 511, 514, 520, 524, 525], "summary": {"covered_lines": 94, "num_statements": 138, "percent_covered": 68.1159420289855, "percent_covered_display": "68", "missing_lines": 44, "excluded_lines": 0, "percent_statements_covered": 68.1159420289855, "percent_statements_covered_display": "68"}, "missing_lines": [263, 274, 275, 320, 321, 334, 337, 349, 350, 352, 354, 355, 358, 359, 360, 361, 362, 365, 366, 369, 370, 373, 376, 378, 380, 382, 383, 385, 387, 388, 389, 393, 394, 395, 425, 428, 430, 436, 439, 441, 515, 516, 517, 518], "excluded_lines": [], "start_line": 201}, "AsyncPDFGenerator": {"executed_lines": [560, 562, 563, 564, 567, 568, 569, 570, 573, 574, 576, 580, 581, 582, 584, 585, 588, 589, 593, 596, 597, 600, 601, 604, 605, 608, 609, 612, 614, 618, 619, 622, 625, 639, 640, 641, 643, 644, 645, 646, 660, 661, 662, 663, 664, 745, 748, 771, 772, 773, 776, 780, 781, 785, 786], "summary": {"covered_lines": 55, "num_statements": 109, "percent_covered": 50.45871559633027, "percent_covered_display": "50", "missing_lines": 54, "excluded_lines": 0, "percent_statements_covered": 50.45871559633027, "percent_statements_covered_display": "50"}, "missing_lines": [594, 648, 651, 655, 656, 675, 677, 680, 683, 684, 685, 686, 687, 688, 690, 691, 692, 695, 696, 701, 702, 703, 704, 705, 706, 708, 710, 711, 712, 713, 714, 715, 716, 718, 719, 720, 721, 722, 723, 724, 727, 728, 750, 752, 755, 756, 757, 758, 759, 762, 763, 764, 765, 768], "excluded_lines": [], "start_line": 532}, "": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 27, 30, 33, 34, 35, 36, 39, 61, 62, 63, 65, 66, 67, 68, 70, 72, 73, 74, 77, 78, 81, 82, 83, 84, 85, 86, 89, 96, 110, 118, 124, 148, 183, 190, 201, 216, 217, 219, 247, 260, 289, 306, 330, 342, 397, 421, 432, 443, 494, 522, 532, 548, 549, 550, 552, 578, 591, 616, 627, 658, 666, 730, 778, 783], "summary": {"covered_lines": 77, "num_statements": 77, "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}}}, "pyPhotoAlbum/async_project_loader.py": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 25, 35, 36, 37, 39, 45, 49, 185, 222], "summary": {"covered_lines": 19, "num_statements": 131, "percent_covered": 14.50381679389313, "percent_covered_display": "15", "missing_lines": 112, "excluded_lines": 0, "percent_statements_covered": 14.50381679389313, "percent_statements_covered_display": "15"}, "missing_lines": [40, 41, 42, 43, 47, 51, 52, 53, 54, 56, 57, 60, 63, 66, 67, 68, 69, 71, 72, 74, 75, 78, 81, 82, 83, 85, 86, 87, 89, 92, 93, 94, 96, 97, 100, 103, 104, 105, 106, 108, 109, 111, 112, 115, 118, 120, 121, 122, 123, 126, 127, 128, 129, 130, 131, 132, 134, 135, 138, 141, 142, 145, 148, 149, 150, 153, 154, 156, 157, 160, 163, 166, 170, 172, 173, 176, 179, 181, 182, 183, 189, 191, 192, 193, 194, 197, 198, 201, 202, 203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 216, 218, 219, 238, 240, 241, 242, 243, 244, 245, 247, 248], "excluded_lines": [], "functions": {"AsyncProjectLoader.__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": [40, 41, 42, 43], "excluded_lines": [], "start_line": 39}, "AsyncProjectLoader.cancel": {"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": [47], "excluded_lines": [], "start_line": 45}, "AsyncProjectLoader.run": {"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": [51, 52, 53, 54, 56, 57, 60, 63, 66, 67, 68, 69, 71, 72, 74, 75, 78, 81, 82, 83, 85, 86, 87, 89, 92, 93, 94, 96, 97, 100, 103, 104, 105, 106, 108, 109, 111, 112, 115, 118, 120, 121, 122, 123, 126, 127, 128, 129, 130, 131, 132, 134, 135, 138, 141, 142, 145, 148, 149, 150, 153, 154, 156, 157, 160, 163, 166, 170, 172, 173, 176, 179, 181, 182, 183], "excluded_lines": [], "start_line": 49}, "AsyncProjectLoader._normalize_asset_paths": {"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": [189, 191, 192, 193, 194, 197, 198, 201, 202, 203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 216, 218, 219], "excluded_lines": [], "start_line": 185}, "load_from_zip_async": {"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": [238, 240, 241, 242, 243, 244, 245, 247, 248], "excluded_lines": [], "start_line": 222}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 25, 35, 36, 37, 39, 45, 49, 185, 222], "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": {"AsyncProjectLoader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 103, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 103, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [40, 41, 42, 43, 47, 51, 52, 53, 54, 56, 57, 60, 63, 66, 67, 68, 69, 71, 72, 74, 75, 78, 81, 82, 83, 85, 86, 87, 89, 92, 93, 94, 96, 97, 100, 103, 104, 105, 106, 108, 109, 111, 112, 115, 118, 120, 121, 122, 123, 126, 127, 128, 129, 130, 131, 132, 134, 135, 138, 141, 142, 145, 148, 149, 150, 153, 154, 156, 157, 160, 163, 166, 170, 172, 173, 176, 179, 181, 182, 183, 189, 191, 192, 193, 194, 197, 198, 201, 202, 203, 204, 205, 206, 207, 210, 211, 212, 213, 214, 215, 216, 218, 219], "excluded_lines": [], "start_line": 25}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 25, 35, 36, 37, 39, 45, 49, 185, 222], "summary": {"covered_lines": 19, "num_statements": 28, "percent_covered": 67.85714285714286, "percent_covered_display": "68", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 67.85714285714286, "percent_statements_covered_display": "68"}, "missing_lines": [238, 240, 241, 242, 243, 244, 245, 247, 248], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/autosave_manager.py": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 17, 20, 21, 22, 24, 26, 28, 30, 32, 43, 44, 47, 48, 49, 51, 53, 63, 64, 65, 67, 69, 70, 72, 74, 75, 77, 85, 92, 93, 94, 96, 106, 108, 109, 112, 113, 114, 115, 116, 121, 122, 125, 126, 128, 138, 139, 140, 141, 142, 144, 154, 156, 157, 160, 161, 162, 164, 169, 176, 177, 178, 180, 188, 189, 192, 193, 194, 195, 196, 199, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 217, 218, 220, 230, 232, 242, 243, 244, 245], "summary": {"covered_lines": 96, "num_statements": 103, "percent_covered": 93.20388349514563, "percent_covered_display": "93", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 93.20388349514563, "percent_statements_covered_display": "93"}, "missing_lines": [117, 118, 165, 166, 167, 213, 214], "excluded_lines": [], "functions": {"AutosaveManager.__init__": {"executed_lines": [26], "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}, "AutosaveManager._ensure_checkpoint_directory": {"executed_lines": [30], "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": 28}, "AutosaveManager._get_checkpoint_path": {"executed_lines": [43, 44, 47, 48, 49, 51], "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": 32}, "AutosaveManager.create_checkpoint": {"executed_lines": [63, 64, 65, 67, 69, 70, 72, 74, 75], "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": 53}, "AutosaveManager._save_checkpoint_metadata": {"executed_lines": [85, 92, 93, 94], "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": 77}, "AutosaveManager.list_checkpoints": {"executed_lines": [106, 108, 109, 112, 113, 114, 115, 116, 121, 122, 125, 126], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [117, 118], "excluded_lines": [], "start_line": 96}, "AutosaveManager.load_checkpoint": {"executed_lines": [138, 139, 140, 141, 142], "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": 128}, "AutosaveManager.delete_checkpoint": {"executed_lines": [154, 156, 157, 160, 161, 162, 164], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [165, 166, 167], "excluded_lines": [], "start_line": 144}, "AutosaveManager.delete_all_checkpoints": {"executed_lines": [176, 177, 178], "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": 169}, "AutosaveManager.cleanup_old_checkpoints": {"executed_lines": [188, 189, 192, 193, 194, 195, 196, 199, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 217, 218], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [213, 214], "excluded_lines": [], "start_line": 180}, "AutosaveManager.has_checkpoints": {"executed_lines": [230], "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": 220}, "AutosaveManager.get_latest_checkpoint": {"executed_lines": [242, 243, 244, 245], "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": 232}, "": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 17, 20, 21, 22, 24, 28, 32, 53, 77, 96, 128, 144, 169, 180, 220, 232], "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": {"AutosaveManager": {"executed_lines": [26, 30, 43, 44, 47, 48, 49, 51, 63, 64, 65, 67, 69, 70, 72, 74, 75, 85, 92, 93, 94, 106, 108, 109, 112, 113, 114, 115, 116, 121, 122, 125, 126, 138, 139, 140, 141, 142, 154, 156, 157, 160, 161, 162, 164, 176, 177, 178, 188, 189, 192, 193, 194, 195, 196, 199, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 217, 218, 230, 242, 243, 244, 245], "summary": {"covered_lines": 73, "num_statements": 80, "percent_covered": 91.25, "percent_covered_display": "91", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 91.25, "percent_statements_covered_display": "91"}, "missing_lines": [117, 118, 165, 166, 167, 213, 214], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [8, 9, 10, 11, 12, 13, 14, 17, 20, 21, 22, 24, 28, 32, 53, 77, 96, 128, 144, 169, 180, 220, 232], "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}}}, "pyPhotoAlbum/commands.py": {"executed_lines": [5, 6, 7, 8, 11, 22, 23, 25, 26, 27, 30, 43, 46, 47, 48, 50, 51, 55, 56, 59, 89, 92, 93, 94, 95, 96, 99, 100, 101, 103, 105, 106, 107, 109, 111, 112, 113, 115, 117, 119, 121, 123, 124, 126, 128, 129, 130, 133, 136, 137, 138, 139, 140, 143, 144, 147, 149, 150, 151, 153, 155, 156, 157, 159, 163, 165, 167, 168, 170, 171, 172, 173, 176, 179, 180, 181, 182, 184, 186, 188, 190, 192, 194, 196, 198, 205, 206, 208, 209, 212, 215, 218, 219, 220, 221, 222, 224, 226, 227, 229, 231, 232, 234, 238, 240, 249, 250, 252, 253, 262, 265, 266, 267, 268, 271, 272, 275, 276, 278, 280, 282, 285, 288, 290, 291, 292, 293, 294, 298, 299, 300, 303, 306, 307, 308, 311, 313, 314, 317, 331, 333, 336, 337, 338, 341, 342, 343, 347, 349, 351, 353, 360, 361, 363, 364, 367, 370, 371, 372, 373, 375, 377, 379, 381, 383, 387, 389, 396, 397, 399, 400, 401, 403, 406, 409, 414, 416, 418, 420, 422, 423, 425, 428, 429, 430, 432, 433, 435, 437, 442, 443, 445, 446, 447, 448, 449, 450, 453, 456, 459, 464, 465, 467, 469, 471, 473, 474, 475, 477, 483, 485, 493, 494, 496, 497, 498, 499, 500, 501, 502, 505, 508, 511, 512, 513, 514, 515, 517, 519, 520, 521, 522, 524, 526, 527, 528, 529, 531, 533, 535, 537, 544, 545, 547, 548, 553, 561, 569, 570, 571, 572, 574, 577, 579, 581, 583, 585, 587, 591, 593, 594, 600, 603, 604, 605, 606, 607, 608, 610, 612, 615, 616, 617, 619, 622, 626, 627, 628, 630, 632, 633, 644, 646, 647, 649, 650, 651, 654, 657, 659, 661, 662, 664, 665, 666, 669, 672, 674, 676, 678, 680, 682, 685, 686, 687, 690, 691, 693, 695, 701, 703, 706, 707, 708, 709, 711, 712, 715, 716, 717, 718, 720, 721, 723, 732, 733, 736, 737, 738, 739, 744, 745, 748, 760, 762, 763, 766, 767, 768, 769, 771, 772, 773, 774, 775], "summary": {"covered_lines": 345, "num_statements": 384, "percent_covered": 89.84375, "percent_covered_display": "90", "missing_lines": 39, "excluded_lines": 22, "percent_statements_covered": 89.84375, "percent_statements_covered_display": "90"}, "missing_lines": [49, 53, 145, 161, 236, 295, 312, 320, 321, 322, 323, 324, 325, 326, 327, 329, 344, 345, 385, 451, 452, 479, 480, 481, 503, 504, 623, 636, 637, 639, 640, 641, 642, 655, 670, 688, 740, 741, 764], "excluded_lines": [62, 63, 64, 65, 67, 68, 69, 70, 72, 73, 74, 75, 77, 78, 79, 80, 82, 83, 84, 85, 86, 597], "functions": {"_normalize_asset_path": {"executed_lines": [22, 23, 25, 26, 27], "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}, "_deserialize_element": {"executed_lines": [43, 46, 47, 48, 50, 51, 55, 56], "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": [49, 53], "excluded_lines": [], "start_line": 30}, "Command.execute": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [64, 65], "start_line": 63}, "Command.undo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [69, 70], "start_line": 68}, "Command.redo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [74, 75], "start_line": 73}, "Command.serialize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [79, 80], "start_line": 78}, "Command.deserialize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [85, 86], "start_line": 84}, "AddElementCommand.__init__": {"executed_lines": [93, 94, 95, 96, 99, 100, 101], "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": 92}, "AddElementCommand.execute": {"executed_lines": [105, 106, 107], "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": 103}, "AddElementCommand.undo": {"executed_lines": [111, 112, 113], "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": 109}, "AddElementCommand.redo": {"executed_lines": [117], "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": 115}, "AddElementCommand.serialize": {"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}, "AddElementCommand.deserialize": {"executed_lines": [126, 128, 129, 130], "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": 124}, "DeleteElementCommand.__init__": {"executed_lines": [137, 138, 139, 140, 143, 144], "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": [145], "excluded_lines": [], "start_line": 136}, "DeleteElementCommand.execute": {"executed_lines": [149, 150, 151], "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": 147}, "DeleteElementCommand.undo": {"executed_lines": [155, 156, 157], "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": 153}, "DeleteElementCommand.redo": {"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": [161], "excluded_lines": [], "start_line": 159}, "DeleteElementCommand.serialize": {"executed_lines": [165], "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": 163}, "DeleteElementCommand.deserialize": {"executed_lines": [170, 171, 172, 173], "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": 168}, "MoveElementCommand.__init__": {"executed_lines": [180, 181, 182], "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": 179}, "MoveElementCommand.execute": {"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}, "MoveElementCommand.undo": {"executed_lines": [190], "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": 188}, "MoveElementCommand.redo": {"executed_lines": [194], "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": 192}, "MoveElementCommand.serialize": {"executed_lines": [198], "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": 196}, "MoveElementCommand.deserialize": {"executed_lines": [208, 209], "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": 206}, "ResizeElementCommand.__init__": {"executed_lines": [218, 219, 220, 221, 222], "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": 215}, "ResizeElementCommand.execute": {"executed_lines": [226, 227], "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": 224}, "ResizeElementCommand.undo": {"executed_lines": [231, 232], "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": 229}, "ResizeElementCommand.redo": {"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": [236], "excluded_lines": [], "start_line": 234}, "ResizeElementCommand.serialize": {"executed_lines": [240], "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": 238}, "ResizeElementCommand.deserialize": {"executed_lines": [252, 253], "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": 250}, "RotateElementCommand.__init__": {"executed_lines": [266, 267, 268, 271, 272, 275, 276, 278], "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": 265}, "RotateElementCommand.execute": {"executed_lines": [282, 285, 288, 290, 291, 292, 293, 294, 298, 299, 300, 303, 306, 307, 308, 311, 313, 314, 317], "summary": {"covered_lines": 19, "num_statements": 30, "percent_covered": 63.333333333333336, "percent_covered_display": "63", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 63.333333333333336, "percent_statements_covered_display": "63"}, "missing_lines": [295, 312, 320, 321, 322, 323, 324, 325, 326, 327, 329], "excluded_lines": [], "start_line": 280}, "RotateElementCommand.undo": {"executed_lines": [333, 336, 337, 338, 341, 342, 343], "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": [344, 345], "excluded_lines": [], "start_line": 331}, "RotateElementCommand.redo": {"executed_lines": [349], "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": 347}, "RotateElementCommand.serialize": {"executed_lines": [353], "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": 351}, "RotateElementCommand.deserialize": {"executed_lines": [363, 364], "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": 361}, "AdjustImageCropCommand.__init__": {"executed_lines": [371, 372, 373], "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": 370}, "AdjustImageCropCommand.execute": {"executed_lines": [377], "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": 375}, "AdjustImageCropCommand.undo": {"executed_lines": [381], "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": 379}, "AdjustImageCropCommand.redo": {"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": [385], "excluded_lines": [], "start_line": 383}, "AdjustImageCropCommand.serialize": {"executed_lines": [389], "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": 387}, "AdjustImageCropCommand.deserialize": {"executed_lines": [399, 400, 401, 403], "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": 397}, "AlignElementsCommand.__init__": {"executed_lines": [414], "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": 409}, "AlignElementsCommand.execute": {"executed_lines": [418], "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": 416}, "AlignElementsCommand.undo": {"executed_lines": [422, 423], "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": 420}, "AlignElementsCommand.redo": {"executed_lines": [428, 429, 430, 432, 433], "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": 425}, "AlignElementsCommand.serialize": {"executed_lines": [437], "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": 435}, "AlignElementsCommand.deserialize": {"executed_lines": [445, 446, 447, 448, 449, 450, 453], "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": [451, 452], "excluded_lines": [], "start_line": 443}, "ResizeElementsCommand.__init__": {"executed_lines": [464, 465], "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": 459}, "ResizeElementsCommand.execute": {"executed_lines": [469], "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": 467}, "ResizeElementsCommand.undo": {"executed_lines": [473, 474, 475], "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": 471}, "ResizeElementsCommand.redo": {"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": [479, 480, 481], "excluded_lines": [], "start_line": 477}, "ResizeElementsCommand.serialize": {"executed_lines": [485], "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": 483}, "ResizeElementsCommand.deserialize": {"executed_lines": [496, 497, 498, 499, 500, 501, 502, 505], "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": [503, 504], "excluded_lines": [], "start_line": 494}, "ChangeZOrderCommand.__init__": {"executed_lines": [512, 513, 514, 515], "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": 511}, "ChangeZOrderCommand.execute": {"executed_lines": [519, 520, 521, 522], "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": 517}, "ChangeZOrderCommand.undo": {"executed_lines": [526, 527, 528, 529], "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": 524}, "ChangeZOrderCommand.redo": {"executed_lines": [533], "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": 531}, "ChangeZOrderCommand.serialize": {"executed_lines": [537], "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": 535}, "ChangeZOrderCommand.deserialize": {"executed_lines": [547, 548], "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": 545}, "StateChangeCommand.__init__": {"executed_lines": [569, 570, 571, 572], "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": 561}, "StateChangeCommand.execute": {"executed_lines": [577], "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": 574}, "StateChangeCommand.undo": {"executed_lines": [581], "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": 579}, "StateChangeCommand.redo": {"executed_lines": [585], "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": 583}, "StateChangeCommand.serialize": {"executed_lines": [591], "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": 587}, "StateChangeCommand.deserialize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [597], "start_line": 594}, "CommandHistory.__init__": {"executed_lines": [604, 605, 606, 607, 608], "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": 603}, "CommandHistory.execute": {"executed_lines": [612, 615, 616, 617, 619, 622, 626, 627, 628], "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": [623], "excluded_lines": [], "start_line": 610}, "CommandHistory._release_command_assets": {"executed_lines": [632, 633], "summary": {"covered_lines": 2, "num_statements": 8, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 25.0, "percent_statements_covered_display": "25"}, "missing_lines": [636, 637, 639, 640, 641, 642], "excluded_lines": [], "start_line": 630}, "CommandHistory.undo": {"executed_lines": [646, 647, 649, 650, 651, 654, 657], "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": [655], "excluded_lines": [], "start_line": 644}, "CommandHistory.redo": {"executed_lines": [661, 662, 664, 665, 666, 669, 672], "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": [670], "excluded_lines": [], "start_line": 659}, "CommandHistory.can_undo": {"executed_lines": [676], "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": 674}, "CommandHistory.can_redo": {"executed_lines": [680], "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": 678}, "CommandHistory.clear": {"executed_lines": [685, 686, 687, 690, 691], "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": [688], "excluded_lines": [], "start_line": 682}, "CommandHistory.serialize": {"executed_lines": [695], "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": 693}, "CommandHistory.deserialize": {"executed_lines": [703, 706, 707, 708, 709, 711, 712, 715, 716, 717, 718, 720, 721], "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": 701}, "CommandHistory._fixup_page_layout": {"executed_lines": [732, 733, 736, 737, 738, 739, 744, 745], "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": [740, 741], "excluded_lines": [], "start_line": 723}, "CommandHistory._deserialize_command": {"executed_lines": [762, 763, 766, 767, 768, 769, 771, 772, 773, 774, 775], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [764], "excluded_lines": [], "start_line": 760}, "": {"executed_lines": [5, 6, 7, 8, 11, 30, 59, 89, 92, 103, 109, 115, 119, 123, 124, 133, 136, 147, 153, 159, 163, 167, 168, 176, 179, 184, 188, 192, 196, 205, 206, 212, 215, 224, 229, 234, 238, 249, 250, 262, 265, 280, 331, 347, 351, 360, 361, 367, 370, 375, 379, 383, 387, 396, 397, 406, 409, 416, 420, 425, 435, 442, 443, 456, 459, 467, 471, 477, 483, 493, 494, 508, 511, 517, 524, 531, 535, 544, 545, 553, 561, 574, 579, 583, 587, 593, 594, 600, 603, 610, 630, 644, 659, 674, 678, 682, 693, 701, 723, 748, 760], "summary": {"covered_lines": 101, "num_statements": 101, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 11, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [62, 63, 67, 68, 72, 73, 77, 78, 82, 83, 84], "start_line": 1}}, "classes": {"Command": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [64, 65, 69, 70, 74, 75, 79, 80, 85, 86], "start_line": 59}, "AddElementCommand": {"executed_lines": [93, 94, 95, 96, 99, 100, 101, 105, 106, 107, 111, 112, 113, 117, 121, 126, 128, 129, 130], "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": 89}, "DeleteElementCommand": {"executed_lines": [137, 138, 139, 140, 143, 144, 149, 150, 151, 155, 156, 157, 165, 170, 171, 172, 173], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [145, 161], "excluded_lines": [], "start_line": 133}, "MoveElementCommand": {"executed_lines": [180, 181, 182, 186, 190, 194, 198, 208, 209], "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": 176}, "ResizeElementCommand": {"executed_lines": [218, 219, 220, 221, 222, 226, 227, 231, 232, 240, 252, 253], "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": [236], "excluded_lines": [], "start_line": 212}, "RotateElementCommand": {"executed_lines": [266, 267, 268, 271, 272, 275, 276, 278, 282, 285, 288, 290, 291, 292, 293, 294, 298, 299, 300, 303, 306, 307, 308, 311, 313, 314, 317, 333, 336, 337, 338, 341, 342, 343, 349, 353, 363, 364], "summary": {"covered_lines": 38, "num_statements": 51, "percent_covered": 74.50980392156863, "percent_covered_display": "75", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 74.50980392156863, "percent_statements_covered_display": "75"}, "missing_lines": [295, 312, 320, 321, 322, 323, 324, 325, 326, 327, 329, 344, 345], "excluded_lines": [], "start_line": 262}, "AdjustImageCropCommand": {"executed_lines": [371, 372, 373, 377, 381, 389, 399, 400, 401, 403], "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": [385], "excluded_lines": [], "start_line": 367}, "AlignElementsCommand": {"executed_lines": [414, 418, 422, 423, 428, 429, 430, 432, 433, 437, 445, 446, 447, 448, 449, 450, 453], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [451, 452], "excluded_lines": [], "start_line": 406}, "ResizeElementsCommand": {"executed_lines": [464, 465, 469, 473, 474, 475, 485, 496, 497, 498, 499, 500, 501, 502, 505], "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": [479, 480, 481, 503, 504], "excluded_lines": [], "start_line": 456}, "ChangeZOrderCommand": {"executed_lines": [512, 513, 514, 515, 519, 520, 521, 522, 526, 527, 528, 529, 533, 537, 547, 548], "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": 508}, "StateChangeCommand": {"executed_lines": [569, 570, 571, 572, 577, 581, 585, 591], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [597], "start_line": 553}, "CommandHistory": {"executed_lines": [604, 605, 606, 607, 608, 612, 615, 616, 617, 619, 622, 626, 627, 628, 632, 633, 646, 647, 649, 650, 651, 654, 657, 661, 662, 664, 665, 666, 669, 672, 676, 680, 685, 686, 687, 690, 691, 695, 703, 706, 707, 708, 709, 711, 712, 715, 716, 717, 718, 720, 721, 732, 733, 736, 737, 738, 739, 744, 745, 762, 763, 766, 767, 768, 769, 771, 772, 773, 774, 775], "summary": {"covered_lines": 70, "num_statements": 83, "percent_covered": 84.33734939759036, "percent_covered_display": "84", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 84.33734939759036, "percent_statements_covered_display": "84"}, "missing_lines": [623, 636, 637, 639, 640, 641, 642, 655, 670, 688, 740, 741, 764], "excluded_lines": [], "start_line": 600}, "": {"executed_lines": [5, 6, 7, 8, 11, 22, 23, 25, 26, 27, 30, 43, 46, 47, 48, 50, 51, 55, 56, 59, 89, 92, 103, 109, 115, 119, 123, 124, 133, 136, 147, 153, 159, 163, 167, 168, 176, 179, 184, 188, 192, 196, 205, 206, 212, 215, 224, 229, 234, 238, 249, 250, 262, 265, 280, 331, 347, 351, 360, 361, 367, 370, 375, 379, 383, 387, 396, 397, 406, 409, 416, 420, 425, 435, 442, 443, 456, 459, 467, 471, 477, 483, 493, 494, 508, 511, 517, 524, 531, 535, 544, 545, 553, 561, 574, 579, 583, 587, 593, 594, 600, 603, 610, 630, 644, 659, 674, 678, 682, 693, 701, 723, 748, 760], "summary": {"covered_lines": 114, "num_statements": 116, "percent_covered": 98.27586206896552, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 11, "percent_statements_covered": 98.27586206896552, "percent_statements_covered_display": "98"}, "missing_lines": [49, 53], "excluded_lines": [62, 63, 67, 68, 72, 73, 77, 78, 82, 83, 84], "start_line": 1}}}, "pyPhotoAlbum/decorators.py": {"executed_lines": [5, 6, 7, 10, 30, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 77, 78, 79, 82, 95, 98, 128, 141, 159, 167, 169, 180, 181, 182, 185, 187, 190, 203, 206, 221, 231, 232, 234, 245, 246, 248, 251, 254, 257, 260, 267, 269, 271, 272, 273, 275, 277, 279, 281, 283, 284, 286, 287, 291, 319, 332, 335, 350, 358, 359, 361, 372, 373, 375, 376, 379, 380, 381, 384, 387, 392, 394, 396, 397, 399, 405, 408, 421], "summary": {"covered_lines": 83, "num_statements": 105, "percent_covered": 79.04761904761905, "percent_covered_display": "79", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 79.04761904761905, "percent_statements_covered_display": "79"}, "missing_lines": [261, 263, 264, 289, 293, 295, 296, 298, 301, 303, 304, 306, 307, 308, 309, 310, 311, 313, 315, 316, 401, 403], "excluded_lines": [], "functions": {"RibbonAction.__init__": {"executed_lines": [56, 57, 58, 59, 60, 61, 62, 63, 64], "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": 30}, "RibbonAction.__call__": {"executed_lines": [77, 78, 82, 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": 66}, "RibbonAction.__call__.wrapper": {"executed_lines": [79], "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": 78}, "ribbon_action": {"executed_lines": [128], "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": 98}, "NumericalInput.__init__": {"executed_lines": [167], "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": 159}, "NumericalInput.__call__": {"executed_lines": [180, 181, 185, 187], "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": 169}, "NumericalInput.__call__.wrapper": {"executed_lines": [182], "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": 181}, "numerical_input": {"executed_lines": [203], "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}, "UndoableOperation.__init__": {"executed_lines": [231, 232], "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": 221}, "UndoableOperation.__call__": {"executed_lines": [245, 246, 277], "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": 234}, "UndoableOperation.__call__.wrapper": {"executed_lines": [248, 251, 254, 257, 260, 267, 269, 271, 272, 273, 275], "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": 246}, "UndoableOperation.__call__.wrapper.restore_state": {"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": [261, 263, 264], "excluded_lines": [], "start_line": 260}, "UndoableOperation._capture_state": {"executed_lines": [281, 283, 284, 286, 287], "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": [289], "excluded_lines": [], "start_line": 279}, "UndoableOperation._restore_state": {"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": [293, 295, 296, 298, 301, 303, 304, 306, 307, 308, 309, 310, 311, 313, 315, 316], "excluded_lines": [], "start_line": 291}, "undoable_operation": {"executed_lines": [332], "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": 319}, "DialogAction.__init__": {"executed_lines": [358, 359], "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": 350}, "DialogAction.__call__": {"executed_lines": [372, 373, 405], "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": 361}, "DialogAction.__call__.wrapper": {"executed_lines": [375, 376, 379, 380, 381, 384, 387, 392, 394, 396, 397, 399], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [401, 403], "excluded_lines": [], "start_line": 373}, "dialog_action": {"executed_lines": [421], "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": 408}, "": {"executed_lines": [5, 6, 7, 10, 30, 66, 98, 141, 159, 169, 190, 206, 221, 234, 279, 291, 319, 335, 350, 361, 408], "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": {"RibbonAction": {"executed_lines": [56, 57, 58, 59, 60, 61, 62, 63, 64, 77, 78, 79, 82, 95], "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": 10}, "NumericalInput": {"executed_lines": [167, 180, 181, 182, 185, 187], "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": 141}, "UndoableOperation": {"executed_lines": [231, 232, 245, 246, 248, 251, 254, 257, 260, 267, 269, 271, 272, 273, 275, 277, 281, 283, 284, 286, 287], "summary": {"covered_lines": 21, "num_statements": 41, "percent_covered": 51.21951219512195, "percent_covered_display": "51", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 51.21951219512195, "percent_statements_covered_display": "51"}, "missing_lines": [261, 263, 264, 289, 293, 295, 296, 298, 301, 303, 304, 306, 307, 308, 309, 310, 311, 313, 315, 316], "excluded_lines": [], "start_line": 206}, "DialogAction": {"executed_lines": [358, 359, 372, 373, 375, 376, 379, 380, 381, 384, 387, 392, 394, 396, 397, 399, 405], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [401, 403], "excluded_lines": [], "start_line": 335}, "": {"executed_lines": [5, 6, 7, 10, 30, 66, 98, 128, 141, 159, 169, 190, 203, 206, 221, 234, 279, 291, 319, 332, 335, 350, 361, 408, 421], "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}}}, "pyPhotoAlbum/dialogs/__init__.py": {"executed_lines": [8, 9, 11], "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": [], "functions": {"": {"executed_lines": [8, 9, 11], "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": [8, 9, 11], "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}}}, "pyPhotoAlbum/dialogs/frame_picker_dialog.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 205, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 205, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 8, 22, 23, 25, 28, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 47, 48, 50, 53, 54, 57, 60, 61, 62, 64, 66, 67, 70, 71, 74, 75, 78, 79, 82, 83, 87, 88, 91, 92, 93, 94, 96, 97, 99, 100, 101, 104, 107, 114, 115, 116, 118, 119, 120, 121, 123, 125, 126, 129, 132, 133, 136, 137, 138, 140, 143, 144, 147, 148, 149, 152, 154, 155, 156, 157, 158, 161, 162, 165, 166, 167, 169, 170, 171, 173, 174, 175, 177, 178, 179, 181, 182, 183, 184, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 205, 208, 210, 211, 212, 214, 216, 217, 218, 220, 221, 222, 224, 227, 229, 231, 232, 234, 235, 236, 238, 239, 240, 242, 244, 245, 247, 249, 250, 252, 253, 254, 256, 257, 259, 260, 262, 263, 264, 265, 268, 270, 271, 273, 275, 278, 279, 282, 283, 284, 286, 287, 289, 291, 292, 293, 294, 295, 297, 299, 300, 301, 302, 304, 306, 308, 310, 317, 319, 320, 321, 322, 323, 324, 326, 328, 329, 330, 331, 332, 334, 336, 337, 338, 339, 340, 342, 344, 345, 346, 347, 348, 350, 352], "excluded_lines": [], "functions": {"FramePreviewWidget.__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": [34, 35, 36, 37, 38, 39], "excluded_lines": [], "start_line": 33}, "FramePreviewWidget.paintEvent": {"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": [42, 43, 44, 47, 48, 50, 53, 54, 57, 60, 61, 62, 64, 66, 67, 70, 71, 74, 75, 78, 79, 82, 83, 87, 88, 91, 92, 93, 94], "excluded_lines": [], "start_line": 41}, "FramePreviewWidget.mousePressEvent": {"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": [97], "excluded_lines": [], "start_line": 96}, "FramePreviewWidget.set_selected": {"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": [100, 101], "excluded_lines": [], "start_line": 99}, "FramePickerDialog.__init__": {"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": [114, 115, 116, 118, 119, 120, 121, 123], "excluded_lines": [], "start_line": 107}, "FramePickerDialog._setup_ui": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 65, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 65, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [126, 129, 132, 133, 136, 137, 138, 140, 143, 144, 147, 148, 149, 152, 154, 155, 156, 157, 158, 161, 162, 165, 166, 167, 169, 170, 171, 173, 174, 175, 177, 178, 179, 181, 182, 183, 184, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 205, 208, 210, 211, 212, 214, 216, 217, 218, 220, 221, 222, 224, 227], "excluded_lines": [], "start_line": 125}, "FramePickerDialog._create_category_tab": {"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": [231, 232, 234, 235, 236, 238, 239, 240, 242, 244, 245, 247, 249, 250, 252, 253, 254, 256, 257, 259, 260, 262, 263, 264, 265, 268, 270, 271, 273], "excluded_lines": [], "start_line": 229}, "FramePickerDialog._on_frame_clicked": {"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": [278, 279, 282, 283, 284, 286, 287], "excluded_lines": [], "start_line": 275}, "FramePickerDialog._clear_selection": {"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": [291, 292, 293, 294, 295], "excluded_lines": [], "start_line": 289}, "FramePickerDialog._update_selection_display": {"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": [299, 300, 301, 302, 304, 306], "excluded_lines": [], "start_line": 297}, "FramePickerDialog._update_corners": {"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": [310], "excluded_lines": [], "start_line": 308}, "FramePickerDialog._update_corners_visibility": {"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": [319, 320, 321, 322, 323, 324], "excluded_lines": [], "start_line": 317}, "FramePickerDialog._select_all_corners": {"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": [328, 329, 330, 331, 332], "excluded_lines": [], "start_line": 326}, "FramePickerDialog._select_no_corners": {"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": [336, 337, 338, 339, 340], "excluded_lines": [], "start_line": 334}, "FramePickerDialog._select_diagonal_corners": {"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": [344, 345, 346, 347, 348], "excluded_lines": [], "start_line": 342}, "FramePickerDialog.get_values": {"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": [352], "excluded_lines": [], "start_line": 350}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 8, 22, 23, 25, 28, 31, 33, 41, 96, 99, 104, 107, 125, 229, 275, 289, 297, 308, 317, 326, 334, 342, 350], "excluded_lines": [], "start_line": 1}}, "classes": {"FramePreviewWidget": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [34, 35, 36, 37, 38, 39, 42, 43, 44, 47, 48, 50, 53, 54, 57, 60, 61, 62, 64, 66, 67, 70, 71, 74, 75, 78, 79, 82, 83, 87, 88, 91, 92, 93, 94, 97, 100, 101], "excluded_lines": [], "start_line": 28}, "FramePickerDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 143, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 143, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [114, 115, 116, 118, 119, 120, 121, 123, 126, 129, 132, 133, 136, 137, 138, 140, 143, 144, 147, 148, 149, 152, 154, 155, 156, 157, 158, 161, 162, 165, 166, 167, 169, 170, 171, 173, 174, 175, 177, 178, 179, 181, 182, 183, 184, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 205, 208, 210, 211, 212, 214, 216, 217, 218, 220, 221, 222, 224, 227, 231, 232, 234, 235, 236, 238, 239, 240, 242, 244, 245, 247, 249, 250, 252, 253, 254, 256, 257, 259, 260, 262, 263, 264, 265, 268, 270, 271, 273, 278, 279, 282, 283, 284, 286, 287, 291, 292, 293, 294, 295, 299, 300, 301, 302, 304, 306, 310, 319, 320, 321, 322, 323, 324, 328, 329, 330, 331, 332, 336, 337, 338, 339, 340, 344, 345, 346, 347, 348, 352], "excluded_lines": [], "start_line": 104}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [7, 8, 22, 23, 25, 28, 31, 33, 41, 96, 99, 104, 107, 125, 229, 275, 289, 297, 308, 317, 326, 334, 342, 350], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/dialogs/page_setup_dialog.py": {"executed_lines": [8, 9, 10, 24, 27, 35, 44, 45, 46, 48, 49, 50, 52, 54, 55, 57, 60, 61, 64, 65, 68, 69, 72, 73, 76, 77, 79, 81, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, 102, 103, 105, 107, 108, 111, 112, 113, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 145, 146, 148, 150, 151, 154, 155, 156, 157, 158, 159, 160, 163, 164, 165, 166, 167, 168, 169, 172, 173, 175, 176, 177, 178, 179, 181, 182, 183, 185, 186, 187, 189, 190, 192, 194, 195, 198, 199, 200, 201, 202, 203, 204, 207, 208, 209, 210, 211, 212, 213, 215, 216, 218, 220, 222, 223, 225, 226, 227, 229, 230, 231, 233, 235, 237, 238, 239, 240, 242, 245, 246, 249, 251, 258, 259, 261, 262, 265, 268, 269, 270, 273, 275, 276, 277, 283, 285, 286, 289, 290, 291, 292, 293, 294, 295, 297, 299, 301, 302, 303, 305, 306, 308, 317, 319, 326, 327, 329], "summary": {"covered_lines": 183, "num_statements": 183, "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": {"PageSetupDialog.__init__": {"executed_lines": [44, 45, 46, 48, 49, 50], "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": 35}, "PageSetupDialog._setup_ui": {"executed_lines": [54, 55, 57, 60, 61, 64, 65, 68, 69, 72, 73, 76, 77, 79], "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": 52}, "PageSetupDialog._create_page_selection_group": {"executed_lines": [83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, 102, 103], "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": 81}, "PageSetupDialog._create_cover_settings_group": {"executed_lines": [107, 108, 111, 112, 113, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 145, 146], "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": 105}, "PageSetupDialog._create_page_size_group": {"executed_lines": [150, 151, 154, 155, 156, 157, 158, 159, 160, 163, 164, 165, 166, 167, 168, 169, 172, 173, 175, 176, 177, 178, 179, 181, 182, 183, 185, 186, 187, 189, 190], "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": 148}, "PageSetupDialog._create_dpi_settings_group": {"executed_lines": [194, 195, 198, 199, 200, 201, 202, 203, 204, 207, 208, 209, 210, 211, 212, 213, 215, 216], "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": 192}, "PageSetupDialog._create_button_layout": {"executed_lines": [220, 222, 223, 225, 226, 227, 229, 230, 231, 233], "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": 218}, "PageSetupDialog._connect_signals": {"executed_lines": [237, 238, 239, 240], "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": 235}, "PageSetupDialog._initialize_values": {"executed_lines": [245, 246, 249], "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": 242}, "PageSetupDialog._on_page_changed": {"executed_lines": [258, 259, 261, 262, 265, 268, 269, 270, 273, 275, 276, 277, 283, 285, 286, 289, 290, 291, 292, 293, 294, 295], "summary": {"covered_lines": 22, "num_statements": 22, "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": 251}, "PageSetupDialog._update_spine_info": {"executed_lines": [299, 301, 302, 303, 305, 306, 308, 317], "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": 297}, "PageSetupDialog.get_values": {"executed_lines": [326, 327, 329], "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": 319}, "": {"executed_lines": [8, 9, 10, 24, 27, 35, 52, 81, 105, 148, 192, 218, 235, 242, 251, 297, 319], "summary": {"covered_lines": 17, "num_statements": 17, "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": {"PageSetupDialog": {"executed_lines": [44, 45, 46, 48, 49, 50, 54, 55, 57, 60, 61, 64, 65, 68, 69, 72, 73, 76, 77, 79, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, 102, 103, 107, 108, 111, 112, 113, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 145, 146, 150, 151, 154, 155, 156, 157, 158, 159, 160, 163, 164, 165, 166, 167, 168, 169, 172, 173, 175, 176, 177, 178, 179, 181, 182, 183, 185, 186, 187, 189, 190, 194, 195, 198, 199, 200, 201, 202, 203, 204, 207, 208, 209, 210, 211, 212, 213, 215, 216, 220, 222, 223, 225, 226, 227, 229, 230, 231, 233, 237, 238, 239, 240, 245, 246, 249, 258, 259, 261, 262, 265, 268, 269, 270, 273, 275, 276, 277, 283, 285, 286, 289, 290, 291, 292, 293, 294, 295, 299, 301, 302, 303, 305, 306, 308, 317, 326, 327, 329], "summary": {"covered_lines": 166, "num_statements": 166, "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}, "": {"executed_lines": [8, 9, 10, 24, 27, 35, 52, 81, 105, 148, 192, 218, 235, 242, 251, 297, 319], "summary": {"covered_lines": 17, "num_statements": 17, "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}}}, "pyPhotoAlbum/dialogs/print_settings_dialog.py": {"executed_lines": [7, 8, 17, 20, 23, 28, 86], "summary": {"covered_lines": 7, "num_statements": 51, "percent_covered": 13.72549019607843, "percent_covered_display": "14", "missing_lines": 44, "excluded_lines": 0, "percent_statements_covered": 13.72549019607843, "percent_statements_covered_display": "14"}, "missing_lines": [24, 25, 26, 29, 30, 32, 34, 35, 38, 39, 40, 41, 42, 43, 44, 45, 46, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 67, 69, 70, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 87], "excluded_lines": [], "functions": {"PrintSettingsDialog.__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}, "PrintSettingsDialog._setup_ui": {"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": [29, 30, 32, 34, 35, 38, 39, 40, 41, 42, 43, 44, 45, 46, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 67, 69, 70, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84], "excluded_lines": [], "start_line": 28}, "PrintSettingsDialog.get_values": {"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": [87], "excluded_lines": [], "start_line": 86}, "": {"executed_lines": [7, 8, 17, 20, 23, 28, 86], "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": {"PrintSettingsDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 44, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 44, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [24, 25, 26, 29, 30, 32, 34, 35, 38, 39, 40, 41, 42, 43, 44, 45, 46, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 67, 69, 70, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 87], "excluded_lines": [], "start_line": 20}, "": {"executed_lines": [7, 8, 17, 20, 23, 28, 86], "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}}}, "pyPhotoAlbum/dialogs/style_dialogs.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 182, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 182, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [10, 11, 26, 27, 30, 33, 34, 35, 36, 38, 41, 42, 44, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 79, 80, 83, 86, 87, 88, 89, 90, 91, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 112, 118, 119, 120, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, 138, 139, 140, 141, 144, 145, 151, 152, 153, 154, 155, 158, 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 173, 174, 177, 180, 188, 189, 190, 192, 195, 196, 197, 198, 201, 202, 205, 206, 207, 208, 209, 210, 213, 214, 215, 216, 217, 218, 221, 222, 223, 224, 225, 226, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 252, 253, 258, 259, 260, 261, 262, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 277, 278, 280, 281, 282, 283, 284, 285, 286, 287, 289, 290, 291, 292], "excluded_lines": [], "functions": {"CornerRadiusDialog.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [34, 35, 36, 38, 41, 42, 44, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74], "excluded_lines": [], "start_line": 33}, "CornerRadiusDialog._on_slider_changed": {"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": [77], "excluded_lines": [], "start_line": 76}, "CornerRadiusDialog.get_value": {"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": [80], "excluded_lines": [], "start_line": 79}, "ColorButton.__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": [87, 88, 89, 90, 91], "excluded_lines": [], "start_line": 86}, "ColorButton._update_style": {"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": [94, 95], "excluded_lines": [], "start_line": 93}, "ColorButton._pick_color": {"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": [98, 99, 100, 101, 102, 103], "excluded_lines": [], "start_line": 97}, "ColorButton.get_color": {"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": [106], "excluded_lines": [], "start_line": 105}, "BorderDialog.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 35, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 35, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [118, 119, 120, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, 138, 139, 140, 141, 144, 145, 151, 152, 153, 154, 155, 158, 159, 160, 161, 162, 163, 164, 165, 166], "excluded_lines": [], "start_line": 112}, "BorderDialog._apply_preset": {"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": [169, 170, 171], "excluded_lines": [], "start_line": 168}, "BorderDialog.get_values": {"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": [174], "excluded_lines": [], "start_line": 173}, "ShadowDialog.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 63, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 63, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [188, 189, 190, 192, 195, 196, 197, 198, 201, 202, 205, 206, 207, 208, 209, 210, 213, 214, 215, 216, 217, 218, 221, 222, 223, 224, 225, 226, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 252, 253, 258, 259, 260, 261, 262, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275], "excluded_lines": [], "start_line": 180}, "ShadowDialog._update_controls": {"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": [278], "excluded_lines": [], "start_line": 277}, "ShadowDialog._apply_preset": {"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": [281, 282, 283, 284, 285, 286, 287], "excluded_lines": [], "start_line": 280}, "ShadowDialog.get_values": {"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": [290, 291, 292], "excluded_lines": [], "start_line": 289}, "": {"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": [10, 11, 26, 27, 30, 33, 76, 79, 83, 86, 93, 97, 105, 109, 112, 168, 173, 177, 180, 277, 280, 289], "excluded_lines": [], "start_line": 1}}, "classes": {"CornerRadiusDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [34, 35, 36, 38, 41, 42, 44, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, 77, 80], "excluded_lines": [], "start_line": 30}, "ColorButton": {"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": [87, 88, 89, 90, 91, 94, 95, 98, 99, 100, 101, 102, 103, 106], "excluded_lines": [], "start_line": 83}, "BorderDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 39, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [118, 119, 120, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, 138, 139, 140, 141, 144, 145, 151, 152, 153, 154, 155, 158, 159, 160, 161, 162, 163, 164, 165, 166, 169, 170, 171, 174], "excluded_lines": [], "start_line": 109}, "ShadowDialog": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 74, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 74, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [188, 189, 190, 192, 195, 196, 197, 198, 201, 202, 205, 206, 207, 208, 209, 210, 213, 214, 215, 216, 217, 218, 221, 222, 223, 224, 225, 226, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 252, 253, 258, 259, 260, 261, 262, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 278, 281, 282, 283, 284, 285, 286, 287, 290, 291, 292], "excluded_lines": [], "start_line": 177}, "": {"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": [10, 11, 26, 27, 30, 33, 76, 79, 83, 86, 93, 97, 105, 109, 112, 168, 173, 177, 180, 277, 280, 289], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/frame_manager.py": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 27, 28, 31, 34, 35, 36, 39, 40, 43, 44, 45, 46, 47, 51, 55, 58, 61, 64, 65, 68, 80, 81, 82, 83, 85, 87, 88, 90, 93, 105, 118, 138, 141, 142, 157, 158, 173, 174, 189, 190, 205, 206, 221, 222, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 329, 377, 415, 490, 628, 685, 721, 742, 799, 874, 913, 935, 938, 941, 942, 943], "summary": {"covered_lines": 82, "num_statements": 357, "percent_covered": 22.969187675070028, "percent_covered_display": "23", "missing_lines": 275, "excluded_lines": 0, "percent_statements_covered": 22.969187675070028, "percent_statements_covered_display": "23"}, "missing_lines": [273, 274, 275, 276, 277, 280, 281, 282, 285, 286, 288, 289, 291, 293, 296, 297, 300, 307, 308, 309, 312, 313, 314, 315, 318, 320, 322, 323, 325, 326, 327, 340, 341, 342, 346, 354, 362, 368, 375, 394, 396, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 411, 413, 437, 438, 439, 442, 443, 445, 466, 467, 469, 470, 473, 474, 475, 476, 477, 480, 481, 483, 484, 485, 486, 488, 506, 528, 529, 530, 533, 534, 535, 536, 537, 538, 539, 540, 551, 553, 556, 557, 558, 560, 561, 565, 567, 568, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 593, 594, 595, 597, 599, 600, 601, 602, 603, 606, 607, 608, 611, 612, 613, 616, 617, 618, 621, 622, 623, 625, 626, 639, 641, 643, 645, 648, 649, 650, 651, 652, 653, 656, 657, 658, 659, 660, 661, 664, 665, 666, 667, 668, 669, 672, 673, 674, 675, 676, 677, 680, 681, 683, 695, 696, 698, 699, 701, 703, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 723, 725, 726, 727, 728, 729, 730, 731, 733, 734, 735, 736, 737, 738, 740, 766, 767, 768, 770, 771, 773, 774, 776, 778, 779, 780, 783, 784, 785, 788, 789, 792, 793, 794, 795, 797, 812, 815, 816, 817, 818, 819, 820, 822, 823, 827, 829, 830, 831, 832, 833, 835, 838, 839, 842, 843, 845, 849, 850, 851, 852, 855, 856, 857, 858, 861, 862, 863, 864, 867, 868, 869, 870, 872, 886, 887, 889, 891, 892, 893, 894, 896, 897, 898, 899, 901, 902, 903, 904, 906, 907, 908, 909, 911, 915, 924], "excluded_lines": [], "functions": {"FrameManager.__init__": {"executed_lines": [81, 82, 83], "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": 80}, "FrameManager._get_frames_directory": {"executed_lines": [87, 88], "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": 85}, "FrameManager._load_bundled_frames": {"executed_lines": [93, 105, 118, 138, 141, 142, 157, 158, 173, 174, 189, 190, 205, 206, 221, 222], "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": 90}, "FrameManager._register_frame": {"executed_lines": [238], "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": 236}, "FrameManager.get_frame": {"executed_lines": [242], "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": 240}, "FrameManager.get_frames_by_category": {"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}, "FrameManager.get_all_frames": {"executed_lines": [250], "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": 248}, "FrameManager.get_frame_names": {"executed_lines": [254], "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": 252}, "FrameManager._load_svg_as_image": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [273, 274, 275, 276, 277, 280, 281, 282, 285, 286, 288, 289, 291, 293, 296, 297, 300, 307, 308, 309, 312, 313, 314, 315, 318, 320, 322, 323, 325, 326, 327], "excluded_lines": [], "start_line": 256}, "FrameManager._recolor_svg": {"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": [340, 341, 342, 346, 354, 362, 368, 375], "excluded_lines": [], "start_line": 329}, "FrameManager._get_corner_image": {"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": [394, 396, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 411, 413], "excluded_lines": [], "start_line": 377}, "FrameManager.render_frame_opengl": {"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": [437, 438, 439, 442, 443, 445, 466, 467, 469, 470, 473, 474, 475, 476, 477, 480, 481, 483, 484, 485, 486, 488], "excluded_lines": [], "start_line": 415}, "FrameManager._render_svg_corners_gl": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [506, 528, 529, 530, 533, 534, 535, 536, 537, 538, 539, 540, 551, 553, 556, 557, 558, 560, 561, 565, 593, 594, 595, 597, 606, 607, 608, 611, 612, 613, 616, 617, 618, 621, 622, 623, 625, 626], "excluded_lines": [], "start_line": 490}, "FrameManager._render_svg_corners_gl.draw_corner_quad": {"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": [567, 568, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579], "excluded_lines": [], "start_line": 565}, "FrameManager._render_svg_corners_gl.get_flips": {"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": [599, 600, 601, 602, 603], "excluded_lines": [], "start_line": 597}, "FrameManager._render_corner_frame_gl": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [639, 641, 643, 645, 648, 649, 650, 651, 652, 653, 656, 657, 658, 659, 660, 661, 664, 665, 666, 667, 668, 669, 672, 673, 674, 675, 676, 677, 680, 681, 683], "excluded_lines": [], "start_line": 628}, "FrameManager._render_decorative_swirls_gl": {"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": [695, 696, 698, 699, 701, 703, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719], "excluded_lines": [], "start_line": 685}, "FrameManager._render_full_frame_gl": {"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": [723, 725, 726, 727, 728, 729, 730, 731, 733, 734, 735, 736, 737, 738, 740], "excluded_lines": [], "start_line": 721}, "FrameManager.render_frame_pdf": {"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": [766, 767, 768, 770, 771, 773, 774, 776, 778, 779, 780, 783, 784, 785, 788, 789, 792, 793, 794, 795, 797], "excluded_lines": [], "start_line": 742}, "FrameManager._render_svg_corners_pdf": {"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": [812, 815, 816, 817, 818, 819, 820, 822, 823, 827, 849, 850, 851, 852, 855, 856, 857, 858, 861, 862, 863, 864, 867, 868, 869, 870, 872], "excluded_lines": [], "start_line": 799}, "FrameManager._render_svg_corners_pdf.get_flipped_image": {"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": [829, 830, 831, 832, 833, 835, 838, 839, 842, 843, 845], "excluded_lines": [], "start_line": 827}, "FrameManager._render_corner_frame_pdf": {"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": [886, 887, 889, 891, 892, 893, 894, 896, 897, 898, 899, 901, 902, 903, 904, 906, 907, 908, 909, 911], "excluded_lines": [], "start_line": 874}, "FrameManager._render_full_frame_pdf": {"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": [915, 924], "excluded_lines": [], "start_line": 913}, "get_frame_manager": {"executed_lines": [941, 942, 943], "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": 938}, "": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 27, 28, 31, 34, 35, 36, 39, 40, 43, 44, 45, 46, 47, 51, 55, 58, 61, 64, 65, 68, 80, 85, 90, 236, 240, 244, 248, 252, 256, 329, 377, 415, 490, 628, 685, 721, 742, 799, 874, 913, 935, 938], "summary": {"covered_lines": 53, "num_statements": 53, "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": {"FrameCategory": {"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": 22}, "FrameType": {"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": 31}, "FrameDefinition": {"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}, "FrameManager": {"executed_lines": [81, 82, 83, 87, 88, 93, 105, 118, 138, 141, 142, 157, 158, 173, 174, 189, 190, 205, 206, 221, 222, 238, 242, 246, 250, 254], "summary": {"covered_lines": 26, "num_statements": 301, "percent_covered": 8.637873754152825, "percent_covered_display": "9", "missing_lines": 275, "excluded_lines": 0, "percent_statements_covered": 8.637873754152825, "percent_statements_covered_display": "9"}, "missing_lines": [273, 274, 275, 276, 277, 280, 281, 282, 285, 286, 288, 289, 291, 293, 296, 297, 300, 307, 308, 309, 312, 313, 314, 315, 318, 320, 322, 323, 325, 326, 327, 340, 341, 342, 346, 354, 362, 368, 375, 394, 396, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 411, 413, 437, 438, 439, 442, 443, 445, 466, 467, 469, 470, 473, 474, 475, 476, 477, 480, 481, 483, 484, 485, 486, 488, 506, 528, 529, 530, 533, 534, 535, 536, 537, 538, 539, 540, 551, 553, 556, 557, 558, 560, 561, 565, 567, 568, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 593, 594, 595, 597, 599, 600, 601, 602, 603, 606, 607, 608, 611, 612, 613, 616, 617, 618, 621, 622, 623, 625, 626, 639, 641, 643, 645, 648, 649, 650, 651, 652, 653, 656, 657, 658, 659, 660, 661, 664, 665, 666, 667, 668, 669, 672, 673, 674, 675, 676, 677, 680, 681, 683, 695, 696, 698, 699, 701, 703, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 723, 725, 726, 727, 728, 729, 730, 731, 733, 734, 735, 736, 737, 738, 740, 766, 767, 768, 770, 771, 773, 774, 776, 778, 779, 780, 783, 784, 785, 788, 789, 792, 793, 794, 795, 797, 812, 815, 816, 817, 818, 819, 820, 822, 823, 827, 829, 830, 831, 832, 833, 835, 838, 839, 842, 843, 845, 849, 850, 851, 852, 855, 856, 857, 858, 861, 862, 863, 864, 867, 868, 869, 870, 872, 886, 887, 889, 891, 892, 893, 894, 896, 897, 898, 899, 901, 902, 903, 904, 906, 907, 908, 909, 911, 915, 924], "excluded_lines": [], "start_line": 68}, "": {"executed_lines": [11, 12, 13, 14, 15, 16, 17, 19, 22, 25, 26, 27, 28, 31, 34, 35, 36, 39, 40, 43, 44, 45, 46, 47, 51, 55, 58, 61, 64, 65, 68, 80, 85, 90, 236, 240, 244, 248, 252, 256, 329, 377, 415, 490, 628, 685, 721, 742, 799, 874, 913, 935, 938, 941, 942, 943], "summary": {"covered_lines": 56, "num_statements": 56, "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}}}, "pyPhotoAlbum/gl_imports.py": {"executed_lines": [17, 18, 80], "summary": {"covered_lines": 3, "num_statements": 26, "percent_covered": 11.538461538461538, "percent_covered_display": "12", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 11.538461538461538, "percent_statements_covered_display": "12"}, "missing_lines": [82, 83, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 108, 109, 110], "excluded_lines": [], "functions": {"": {"executed_lines": [17, 18, 80], "summary": {"covered_lines": 3, "num_statements": 26, "percent_covered": 11.538461538461538, "percent_covered_display": "12", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 11.538461538461538, "percent_statements_covered_display": "12"}, "missing_lines": [82, 83, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 108, 109, 110], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [17, 18, 80], "summary": {"covered_lines": 3, "num_statements": 26, "percent_covered": 11.538461538461538, "percent_covered_display": "12", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 11.538461538461538, "percent_statements_covered_display": "12"}, "missing_lines": [82, 83, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 108, 109, 110], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/gl_widget.py": {"executed_lines": [5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 53, 54, 57, 60, 63, 65, 66, 67, 68, 71, 74, 75, 78, 79, 82, 85, 87, 93, 95, 101, 107, 114, 116, 117, 118, 119, 120, 122, 123, 124, 125, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 165, 167, 168, 169, 172, 223, 233, 235, 312], "summary": {"covered_lines": 66, "num_statements": 178, "percent_covered": 37.07865168539326, "percent_covered_display": "37", "missing_lines": 112, "excluded_lines": 0, "percent_statements_covered": 37.07865168539326, "percent_statements_covered_display": "37"}, "missing_lines": [97, 99, 104, 105, 109, 110, 111, 112, 139, 141, 143, 144, 146, 148, 149, 151, 153, 155, 156, 159, 160, 163, 173, 174, 176, 179, 181, 182, 186, 189, 190, 191, 193, 194, 197, 199, 200, 201, 203, 206, 207, 210, 211, 213, 216, 217, 218, 220, 224, 225, 226, 228, 229, 230, 231, 237, 240, 242, 244, 245, 247, 249, 252, 253, 254, 257, 258, 259, 262, 263, 266, 269, 270, 271, 273, 276, 277, 280, 286, 287, 288, 294, 295, 297, 300, 301, 302, 305, 306, 308, 310, 315, 316, 319, 322, 323, 324, 326, 329, 330, 333, 339, 340, 341, 344, 345, 347, 350, 351, 352, 355, 356], "excluded_lines": [], "functions": {"GLWidget.__init__": {"executed_lines": [54, 57, 60, 63, 65, 66, 67, 68, 71, 74, 75, 78, 79, 82, 85], "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": 53}, "GLWidget.window": {"executed_lines": [93], "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": 87}, "GLWidget.update": {"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": [97, 99], "excluded_lines": [], "start_line": 95}, "GLWidget.closeEvent": {"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": [104, 105], "excluded_lines": [], "start_line": 101}, "GLWidget._get_project_folder": {"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": [109, 110, 111, 112], "excluded_lines": [], "start_line": 107}, "GLWidget.keyPressEvent": {"executed_lines": [116, 117, 118, 119, 120, 122, 123, 124, 125, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137], "summary": {"covered_lines": 19, "num_statements": 33, "percent_covered": 57.57575757575758, "percent_covered_display": "58", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 57.57575757575758, "percent_statements_covered_display": "58"}, "missing_lines": [139, 141, 143, 144, 146, 148, 149, 151, 153, 155, 156, 159, 160, 163], "excluded_lines": [], "start_line": 114}, "GLWidget.event": {"executed_lines": [167, 168, 169, 172, 223, 233], "summary": {"covered_lines": 6, "num_statements": 39, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 15.384615384615385, "percent_statements_covered_display": "15"}, "missing_lines": [173, 174, 176, 179, 181, 182, 186, 189, 190, 191, 193, 194, 197, 199, 200, 201, 203, 206, 207, 210, 211, 213, 216, 217, 218, 220, 224, 225, 226, 228, 229, 230, 231], "excluded_lines": [], "start_line": 165}, "GLWidget._handle_pinch_gesture": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [237, 240, 242, 244, 245, 247, 249, 252, 253, 254, 257, 258, 259, 262, 263, 266, 269, 270, 271, 273, 276, 277, 280, 286, 287, 288, 294, 295, 297, 300, 301, 302, 305, 306, 308, 310], "excluded_lines": [], "start_line": 235}, "GLWidget._apply_zoom_at_point": {"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": [315, 316, 319, 322, 323, 324, 326, 329, 330, 333, 339, 340, 341, 344, 345, 347, 350, 351, 352, 355, 356], "excluded_lines": [], "start_line": 312}, "": {"executed_lines": [5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 53, 87, 95, 101, 107, 114, 165, 235, 312], "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": {"GLWidget": {"executed_lines": [54, 57, 60, 63, 65, 66, 67, 68, 71, 74, 75, 78, 79, 82, 85, 93, 116, 117, 118, 119, 120, 122, 123, 124, 125, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 167, 168, 169, 172, 223, 233], "summary": {"covered_lines": 41, "num_statements": 153, "percent_covered": 26.797385620915033, "percent_covered_display": "27", "missing_lines": 112, "excluded_lines": 0, "percent_statements_covered": 26.797385620915033, "percent_statements_covered_display": "27"}, "missing_lines": [97, 99, 104, 105, 109, 110, 111, 112, 139, 141, 143, 144, 146, 148, 149, 151, 153, 155, 156, 159, 160, 163, 173, 174, 176, 179, 181, 182, 186, 189, 190, 191, 193, 194, 197, 199, 200, 201, 203, 206, 207, 210, 211, 213, 216, 217, 218, 220, 224, 225, 226, 228, 229, 230, 231, 237, 240, 242, 244, 245, 247, 249, 252, 253, 254, 257, 258, 259, 262, 263, 266, 269, 270, 271, 273, 276, 277, 280, 286, 287, 288, 294, 295, 297, 300, 301, 302, 305, 306, 308, 310, 315, 316, 319, 322, 323, 324, 326, 329, 330, 333, 339, 340, 341, 344, 345, 347, 350, 351, 352, 355, 356], "excluded_lines": [], "start_line": 24}, "": {"executed_lines": [5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 53, 87, 95, 101, 107, 114, 165, 235, 312], "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}}}, "pyPhotoAlbum/image_utils.py": {"executed_lines": [8, 9, 16, 27, 30, 31, 32, 33, 34, 35, 36, 41, 51, 52, 56, 81, 83, 84, 87, 97, 98, 99, 100, 101, 102, 105, 106, 108, 109, 110, 111, 113, 116, 138, 152, 155, 156, 157, 159, 167, 183, 185, 186, 189, 190, 192, 193, 196, 197, 199, 200, 203, 205, 206, 207, 208, 210, 211, 212, 215, 223, 224, 226, 228, 230, 231, 235, 238, 258, 261, 262, 264, 265, 268, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 283, 286, 287, 290, 291, 294, 295, 297, 298, 301, 304, 305, 306, 309, 311, 314, 334, 336, 337, 339, 340, 343, 344, 345, 351, 352, 358, 359, 364, 367], "summary": {"covered_lines": 114, "num_statements": 150, "percent_covered": 76.0, "percent_covered_display": "76", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 76.0, "percent_statements_covered_display": "76"}, "missing_lines": [28, 38, 53, 89, 90, 91, 92, 93, 94, 127, 128, 130, 131, 132, 133, 135, 153, 218, 219, 220, 233, 396, 399, 400, 401, 402, 405, 406, 409, 410, 411, 413, 420, 423, 424, 432], "excluded_lines": [], "functions": {"apply_pil_rotation": {"executed_lines": [27, 30, 31, 32, 33, 34, 35, 36], "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": [28, 38], "excluded_lines": [], "start_line": 16}, "convert_to_rgba": {"executed_lines": [51, 52], "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": [53], "excluded_lines": [], "start_line": 41}, "calculate_center_crop_coords": {"executed_lines": [81, 83, 84, 87, 97, 98, 99, 100, 101, 102, 105, 106, 108, 109, 110, 111, 113], "summary": {"covered_lines": 17, "num_statements": 23, "percent_covered": 73.91304347826087, "percent_covered_display": "74", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 73.91304347826087, "percent_statements_covered_display": "74"}, "missing_lines": [89, 90, 91, 92, 93, 94], "excluded_lines": [], "start_line": 56}, "crop_image_to_coords": {"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": [127, 128, 130, 131, 132, 133, 135], "excluded_lines": [], "start_line": 116}, "resize_to_fit": {"executed_lines": [152, 155, 156, 157, 159], "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": [153], "excluded_lines": [], "start_line": 138}, "apply_rounded_corners": {"executed_lines": [183, 185, 186, 189, 190, 192, 193, 196, 197, 199, 200, 203, 205, 206, 207, 208, 210, 211, 212, 215, 223, 224, 226, 228, 230, 231, 235], "summary": {"covered_lines": 27, "num_statements": 31, "percent_covered": 87.09677419354838, "percent_covered_display": "87", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 87.09677419354838, "percent_statements_covered_display": "87"}, "missing_lines": [218, 219, 220, 233], "excluded_lines": [], "start_line": 167}, "apply_drop_shadow": {"executed_lines": [258, 261, 262, 264, 265, 268, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 283, 286, 287, 290, 291, 294, 295, 297, 298, 301, 304, 305, 306, 309, 311], "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": 238}, "create_border_image": {"executed_lines": [334, 336, 337, 339, 340, 343, 344, 345, 351, 352, 358, 359, 364], "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": 314}, "apply_style_to_image": {"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": [396, 399, 400, 401, 402, 405, 406, 409, 410, 411, 413, 420, 423, 424, 432], "excluded_lines": [], "start_line": 367}, "": {"executed_lines": [8, 9, 16, 41, 56, 116, 138, 167, 238, 314, 367], "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, 9, 16, 27, 30, 31, 32, 33, 34, 35, 36, 41, 51, 52, 56, 81, 83, 84, 87, 97, 98, 99, 100, 101, 102, 105, 106, 108, 109, 110, 111, 113, 116, 138, 152, 155, 156, 157, 159, 167, 183, 185, 186, 189, 190, 192, 193, 196, 197, 199, 200, 203, 205, 206, 207, 208, 210, 211, 212, 215, 223, 224, 226, 228, 230, 231, 235, 238, 258, 261, 262, 264, 265, 268, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 283, 286, 287, 290, 291, 294, 295, 297, 298, 301, 304, 305, 306, 309, 311, 314, 334, 336, 337, 339, 340, 343, 344, 345, 351, 352, 358, 359, 364, 367], "summary": {"covered_lines": 114, "num_statements": 150, "percent_covered": 76.0, "percent_covered_display": "76", "missing_lines": 36, "excluded_lines": 0, "percent_statements_covered": 76.0, "percent_statements_covered_display": "76"}, "missing_lines": [28, 38, 53, 89, 90, 91, 92, 93, 94, 127, 128, 130, 131, 132, 133, 135, 153, 218, 219, 220, 233, 396, 399, 400, 401, 402, 405, 406, 409, 410, 411, 413, 420, 423, 424, 432], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/loading_widget.py": {"executed_lines": [7, 8, 9, 12, 23, 24, 27, 28, 29, 32, 60, 61, 62, 65, 66, 67, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 83, 86, 87, 88, 89, 92, 94, 95, 97, 99, 100, 102, 103, 105, 112, 113, 116, 119, 120, 121, 122, 123, 125, 127, 128, 129, 130, 131, 133, 140, 142, 150, 151, 153, 160, 161, 162, 164, 165, 167, 169, 170, 171, 172, 173, 174, 176, 178, 179, 181, 183, 184], "summary": {"covered_lines": 78, "num_statements": 78, "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": {"LoadingWidget.__init__": {"executed_lines": [24, 27, 28, 29, 32, 60, 61, 62, 65, 66, 67, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 83, 86, 87, 88, 89, 92], "summary": {"covered_lines": 27, "num_statements": 27, "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": 23}, "LoadingWidget.opacity": {"executed_lines": [102, 103], "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": 100}, "LoadingWidget.show_loading": {"executed_lines": [112, 113, 116, 119, 120, 121, 122, 123], "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": 105}, "LoadingWidget.hide_loading": {"executed_lines": [127, 128, 129, 130, 131], "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": 125}, "LoadingWidget.set_status": {"executed_lines": [140], "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": 133}, "LoadingWidget.set_progress": {"executed_lines": [150, 151], "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": 142}, "LoadingWidget.set_indeterminate": {"executed_lines": [160, 161, 162, 164, 165], "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": 153}, "LoadingWidget._reposition": {"executed_lines": [169, 170, 171, 172, 173, 174], "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": 167}, "LoadingWidget.showEvent": {"executed_lines": [178, 179], "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": 176}, "LoadingWidget.resizeParent": {"executed_lines": [183, 184], "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": 181}, "": {"executed_lines": [7, 8, 9, 12, 23, 94, 95, 99, 100, 105, 125, 133, 142, 153, 167, 176, 181], "summary": {"covered_lines": 17, "num_statements": 17, "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": {"LoadingWidget": {"executed_lines": [24, 27, 28, 29, 32, 60, 61, 62, 65, 66, 67, 70, 71, 73, 74, 75, 76, 77, 78, 79, 81, 83, 86, 87, 88, 89, 92, 97, 102, 103, 112, 113, 116, 119, 120, 121, 122, 123, 127, 128, 129, 130, 131, 140, 150, 151, 160, 161, 162, 164, 165, 169, 170, 171, 172, 173, 174, 178, 179, 183, 184], "summary": {"covered_lines": 61, "num_statements": 61, "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}, "": {"executed_lines": [7, 8, 9, 12, 23, 94, 95, 99, 100, 105, 125, 133, 142, 153, 167, 176, 181], "summary": {"covered_lines": 17, "num_statements": 17, "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}}}, "pyPhotoAlbum/main.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 222, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 222, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [8, 9, 10, 11, 21, 22, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 51, 76, 77, 80, 83, 86, 89, 92, 93, 94, 99, 102, 105, 107, 110, 112, 115, 116, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 135, 138, 141, 142, 145, 146, 147, 148, 151, 152, 153, 156, 157, 160, 161, 162, 163, 164, 166, 169, 170, 171, 172, 173, 175, 176, 178, 181, 182, 183, 186, 187, 190, 193, 195, 197, 199, 201, 202, 204, 206, 208, 209, 211, 213, 216, 217, 220, 221, 222, 224, 225, 232, 233, 234, 236, 240, 241, 244, 245, 246, 248, 251, 252, 255, 256, 258, 260, 262, 263, 265, 267, 268, 269, 270, 271, 272, 275, 276, 277, 278, 280, 282, 283, 284, 286, 288, 289, 290, 293, 294, 295, 296, 299, 300, 302, 303, 305, 306, 309, 310, 311, 313, 315, 316, 317, 318, 320, 322, 324, 325, 328, 329, 330, 332, 333, 334, 337, 338, 339, 340, 341, 344, 355, 357, 359, 361, 362, 364, 365, 366, 368, 369, 371, 372, 373, 375, 378, 379, 389, 391, 392, 393, 395, 396, 397, 398, 400, 401, 405, 406, 407, 410, 411, 414, 416, 419, 421, 424, 425, 426, 429, 430, 431, 432, 433, 434, 435, 438, 439, 440, 441, 442, 444, 445, 447], "excluded_lines": [450, 451], "functions": {"MainWindow.__init__": {"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": [77, 80, 83, 86, 89, 92, 93, 94], "excluded_lines": [], "start_line": 76}, "MainWindow._init_state": {"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": [102, 105, 107, 110], "excluded_lines": [], "start_line": 99}, "MainWindow._init_ui": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 49, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 49, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [115, 116, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 135, 138, 141, 142, 145, 146, 147, 148, 151, 152, 153, 156, 157, 160, 161, 162, 163, 164, 166, 169, 170, 171, 172, 173, 175, 176, 178, 181, 182, 183, 186, 187, 190, 193, 195], "excluded_lines": [], "start_line": 112}, "MainWindow._on_vertical_scroll": {"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": [199, 201, 202], "excluded_lines": [], "start_line": 197}, "MainWindow._on_horizontal_scroll": {"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": [206, 208, 209], "excluded_lines": [], "start_line": 204}, "MainWindow.update_scrollbars": {"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": [213, 216, 217, 220, 221, 222, 224, 225, 232, 233, 234, 236, 240, 241, 244, 245, 246, 248, 251, 252, 255, 256, 258], "excluded_lines": [], "start_line": 211}, "MainWindow._register_shortcuts": {"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": [262, 263, 265, 267, 268, 269, 270, 271, 272, 275, 276, 277, 278], "excluded_lines": [], "start_line": 260}, "MainWindow.resizeEvent": {"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": [282, 283, 284], "excluded_lines": [], "start_line": 280}, "MainWindow._add_sample_page": {"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": [288, 289, 290, 293, 294, 295, 296, 299, 300, 302, 303, 305, 306, 309, 310, 311], "excluded_lines": [], "start_line": 286}, "MainWindow._perform_autosave": {"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": [315, 316, 317, 318, 320], "excluded_lines": [], "start_line": 313}, "MainWindow._check_checkpoint_recovery": {"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": [324, 325, 328, 329, 330, 332, 333, 334, 337, 338, 339, 340, 341, 344, 355, 357, 359, 361, 362, 364, 365, 366, 368, 369, 371, 372, 373], "excluded_lines": [], "start_line": 322}, "MainWindow.closeEvent": {"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": [378, 379, 389, 391, 392, 393, 395, 396, 397, 398, 400, 401, 405, 406, 407, 410, 411, 414, 416], "excluded_lines": [], "start_line": 375}, "main": {"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": [421, 424, 425, 426, 429, 430, 431, 432, 433, 434, 435, 438, 439, 440, 441, 442, 444, 445, 447], "excluded_lines": [], "start_line": 419}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [8, 9, 10, 11, 21, 22, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 51, 76, 99, 112, 197, 204, 211, 260, 280, 286, 313, 322, 375, 419], "excluded_lines": [450, 451], "start_line": 1}}, "classes": {"MainWindow": {"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": [77, 80, 83, 86, 89, 92, 93, 94, 102, 105, 107, 110, 115, 116, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 135, 138, 141, 142, 145, 146, 147, 148, 151, 152, 153, 156, 157, 160, 161, 162, 163, 164, 166, 169, 170, 171, 172, 173, 175, 176, 178, 181, 182, 183, 186, 187, 190, 193, 195, 199, 201, 202, 206, 208, 209, 213, 216, 217, 220, 221, 222, 224, 225, 232, 233, 234, 236, 240, 241, 244, 245, 246, 248, 251, 252, 255, 256, 258, 262, 263, 265, 267, 268, 269, 270, 271, 272, 275, 276, 277, 278, 282, 283, 284, 288, 289, 290, 293, 294, 295, 296, 299, 300, 302, 303, 305, 306, 309, 310, 311, 315, 316, 317, 318, 320, 324, 325, 328, 329, 330, 332, 333, 334, 337, 338, 339, 340, 341, 344, 355, 357, 359, 361, 362, 364, 365, 366, 368, 369, 371, 372, 373, 378, 379, 389, 391, 392, 393, 395, 396, 397, 398, 400, 401, 405, 406, 407, 410, 411, 414, 416], "excluded_lines": [], "start_line": 51}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 49, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 49, "excluded_lines": 2, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [8, 9, 10, 11, 21, 22, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 51, 76, 99, 112, 197, 204, 211, 260, 280, 286, 313, 322, 375, 419, 421, 424, 425, 426, 429, 430, 431, 432, 433, 434, 435, 438, 439, 440, 441, 442, 444, 445, 447], "excluded_lines": [450, 451], "start_line": 1}}}, "pyPhotoAlbum/merge_dialog.py": {"executed_lines": [5, 22, 23, 25, 26, 27, 30, 33, 34, 35, 36, 37, 39, 94, 97, 99, 100, 101, 102, 104, 106, 108, 111, 112, 113, 116, 119, 120, 122, 124, 125, 126, 128, 129, 132, 133, 135, 136, 139, 140, 142, 144, 145, 146, 148, 149, 152, 153, 155, 156, 158, 161, 163, 165, 166, 167, 168, 169, 171, 172, 173, 174, 176, 177, 179, 181, 183, 184, 185, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 199, 200, 201, 202, 204, 205, 207, 209, 210, 211, 213, 214, 215, 216, 218, 219, 221, 222, 224, 226, 228, 230, 231, 232, 233, 235, 239, 244, 245, 247, 248, 249, 252, 255, 258, 259, 261, 262, 264, 266, 268, 271, 279, 280, 283, 284, 286, 287, 288, 289, 290, 292, 293, 294, 296, 297, 300, 301, 302, 303, 305, 306, 309, 310, 311, 312, 313, 314, 316, 317, 318, 320, 323, 324, 326, 327, 328, 330, 331, 332, 333, 335, 337, 339, 341, 343, 345, 346, 349, 352, 353, 355, 356, 357, 358, 359, 361, 368], "summary": {"covered_lines": 177, "num_statements": 210, "percent_covered": 84.28571428571429, "percent_covered_display": "84", "missing_lines": 33, "excluded_lines": 0, "percent_statements_covered": 84.28571428571429, "percent_statements_covered_display": "84"}, "missing_lines": [41, 42, 45, 48, 49, 52, 53, 54, 57, 58, 59, 62, 63, 64, 65, 66, 69, 70, 71, 72, 74, 75, 76, 79, 80, 81, 84, 85, 88, 89, 90, 91, 236], "excluded_lines": [], "functions": {"PagePreviewWidget.__init__": {"executed_lines": [34, 35, 36, 37], "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": 33}, "PagePreviewWidget.paintEvent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 32, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [41, 42, 45, 48, 49, 52, 53, 54, 57, 58, 59, 62, 63, 64, 65, 66, 69, 70, 71, 72, 74, 75, 76, 79, 80, 81, 84, 85, 88, 89, 90, 91], "excluded_lines": [], "start_line": 39}, "ConflictItemWidget.__init__": {"executed_lines": [100, 101, 102, 104], "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": 99}, "ConflictItemWidget._init_ui": {"executed_lines": [108, 111, 112, 113, 116, 119, 120, 122, 124, 125, 126, 128, 129, 132, 133, 135, 136, 139, 140, 142, 144, 145, 146, 148, 149, 152, 153, 155, 156, 158, 161, 163, 165, 166, 167, 168, 169, 171, 172, 173, 174, 176, 177, 179], "summary": {"covered_lines": 44, "num_statements": 44, "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": 106}, "ConflictItemWidget._create_element_details": {"executed_lines": [183, 184, 185, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 199, 200, 201, 202, 204, 205], "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": 181}, "ConflictItemWidget._create_settings_details": {"executed_lines": [209, 210, 211, 213, 214, 215, 216, 218, 219, 221, 222], "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": 207}, "ConflictItemWidget._on_resolution_changed": {"executed_lines": [226], "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": 224}, "ConflictItemWidget.get_resolution": {"executed_lines": [230, 231, 232, 233, 235], "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": [236], "excluded_lines": [], "start_line": 228}, "MergeDialog.__init__": {"executed_lines": [245, 247, 248, 249, 252, 255, 258, 259, 261, 262, 264], "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": 244}, "MergeDialog._init_ui": {"executed_lines": [268, 271, 279, 280, 283, 284, 286, 287, 288, 289, 290, 292, 293, 294, 296, 297, 300, 301, 302, 303, 305, 306, 309, 310, 311, 312, 313, 314, 316, 317, 318, 320, 323, 324, 326, 327, 328, 330, 331, 332, 333, 335, 337], "summary": {"covered_lines": 43, "num_statements": 43, "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": 266}, "MergeDialog._on_resolution_changed": {"executed_lines": [341], "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": 339}, "MergeDialog._auto_resolve": {"executed_lines": [345, 346, 349, 352, 353, 355, 356, 357, 358, 359], "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": 343}, "MergeDialog.get_merged_project_data": {"executed_lines": [368], "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": 361}, "": {"executed_lines": [5, 22, 23, 25, 26, 27, 30, 33, 39, 94, 97, 99, 106, 181, 207, 224, 228, 239, 244, 266, 339, 343, 361], "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": {"PagePreviewWidget": {"executed_lines": [34, 35, 36, 37], "summary": {"covered_lines": 4, "num_statements": 36, "percent_covered": 11.11111111111111, "percent_covered_display": "11", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 11.11111111111111, "percent_statements_covered_display": "11"}, "missing_lines": [41, 42, 45, 48, 49, 52, 53, 54, 57, 58, 59, 62, 63, 64, 65, 66, 69, 70, 71, 72, 74, 75, 76, 79, 80, 81, 84, 85, 88, 89, 90, 91], "excluded_lines": [], "start_line": 30}, "ConflictItemWidget": {"executed_lines": [100, 101, 102, 104, 108, 111, 112, 113, 116, 119, 120, 122, 124, 125, 126, 128, 129, 132, 133, 135, 136, 139, 140, 142, 144, 145, 146, 148, 149, 152, 153, 155, 156, 158, 161, 163, 165, 166, 167, 168, 169, 171, 172, 173, 174, 176, 177, 179, 183, 184, 185, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 199, 200, 201, 202, 204, 205, 209, 210, 211, 213, 214, 215, 216, 218, 219, 221, 222, 226, 230, 231, 232, 233, 235], "summary": {"covered_lines": 84, "num_statements": 85, "percent_covered": 98.82352941176471, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.82352941176471, "percent_statements_covered_display": "99"}, "missing_lines": [236], "excluded_lines": [], "start_line": 94}, "MergeDialog": {"executed_lines": [245, 247, 248, 249, 252, 255, 258, 259, 261, 262, 264, 268, 271, 279, 280, 283, 284, 286, 287, 288, 289, 290, 292, 293, 294, 296, 297, 300, 301, 302, 303, 305, 306, 309, 310, 311, 312, 313, 314, 316, 317, 318, 320, 323, 324, 326, 327, 328, 330, 331, 332, 333, 335, 337, 341, 345, 346, 349, 352, 353, 355, 356, 357, 358, 359, 368], "summary": {"covered_lines": 66, "num_statements": 66, "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": 239}, "": {"executed_lines": [5, 22, 23, 25, 26, 27, 30, 33, 39, 94, 97, 99, 106, 181, 207, 224, 228, 239, 244, 266, 339, 343, 361], "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}}}, "pyPhotoAlbum/merge_manager.py": {"executed_lines": [10, 11, 12, 13, 14, 17, 21, 22, 23, 26, 27, 30, 33, 36, 37, 38, 39, 42, 43, 46, 47, 48, 49, 50, 51, 54, 57, 58, 60, 74, 75, 78, 82, 84, 97, 100, 103, 105, 107, 110, 121, 122, 124, 125, 126, 129, 130, 141, 143, 144, 147, 148, 150, 159, 162, 163, 166, 168, 170, 171, 174, 178, 192, 193, 194, 195, 201, 214, 216, 218, 219, 221, 222, 225, 226, 228, 236, 238, 242, 243, 246, 250, 264, 267, 268, 270, 271, 274, 275, 276, 277, 278, 288, 306, 316, 318, 337, 339, 345, 360, 363, 375, 377, 379, 405, 407, 408, 410, 412, 414, 415, 416, 418, 420, 422, 423, 424, 427, 429, 430, 434, 438, 441, 442, 443, 446, 447, 450, 452, 454, 456, 460, 461, 464, 465, 468, 469, 470, 471, 474, 488, 491, 494, 498, 500, 504], "summary": {"covered_lines": 146, "num_statements": 202, "percent_covered": 72.27722772277228, "percent_covered_display": "72", "missing_lines": 56, "excluded_lines": 0, "percent_statements_covered": 72.27722772277228, "percent_statements_covered_display": "72"}, "missing_lines": [79, 80, 152, 153, 156, 175, 179, 189, 196, 197, 202, 230, 231, 233, 247, 251, 261, 269, 292, 319, 321, 322, 324, 325, 327, 329, 330, 332, 333, 341, 342, 343, 364, 365, 367, 369, 371, 381, 383, 384, 385, 387, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 401, 402, 403, 425], "excluded_lines": [], "functions": {"MergeManager.__init__": {"executed_lines": [58], "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": 57}, "MergeManager.should_merge_projects": {"executed_lines": [74, 75, 78, 82], "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": [79, 80], "excluded_lines": [], "start_line": 60}, "MergeManager.detect_conflicts": {"executed_lines": [97, 100, 103, 105], "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": 84}, "MergeManager._detect_project_settings_conflicts": {"executed_lines": [110, 121, 122, 124, 125, 126, 129, 130], "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": 107}, "MergeManager._detect_page_conflicts": {"executed_lines": [143, 144, 147, 148, 150, 159, 162, 163, 166], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [152, 153, 156], "excluded_lines": [], "start_line": 141}, "MergeManager._detect_page_modification_conflicts": {"executed_lines": [170, 171, 174, 178, 192, 193, 194, 195, 201, 214], "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": [175, 179, 189, 196, 197, 202], "excluded_lines": [], "start_line": 168}, "MergeManager._detect_element_conflicts": {"executed_lines": [218, 219, 221, 222, 225, 226, 228, 236], "summary": {"covered_lines": 8, "num_statements": 11, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 72.72727272727273, "percent_statements_covered_display": "73"}, "missing_lines": [230, 231, 233], "excluded_lines": [], "start_line": 216}, "MergeManager._detect_element_modification_conflicts": {"executed_lines": [242, 243, 246, 250, 264, 267, 268, 270, 271, 274, 275, 276, 277, 278, 288], "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": [247, 251, 261, 269, 292], "excluded_lines": [], "start_line": 238}, "MergeManager.auto_resolve_conflicts": {"executed_lines": [316, 318, 337], "summary": {"covered_lines": 3, "num_statements": 13, "percent_covered": 23.076923076923077, "percent_covered_display": "23", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 23.076923076923077, "percent_statements_covered_display": "23"}, "missing_lines": [319, 321, 322, 324, 325, 327, 329, 330, 332, 333], "excluded_lines": [], "start_line": 306}, "MergeManager._get_timestamp": {"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": [341, 342, 343], "excluded_lines": [], "start_line": 339}, "MergeManager.apply_resolutions": {"executed_lines": [360, 363, 375, 377], "summary": {"covered_lines": 4, "num_statements": 9, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 44.44444444444444, "percent_statements_covered_display": "44"}, "missing_lines": [364, 365, 367, 369, 371], "excluded_lines": [], "start_line": 345}, "MergeManager._apply_their_version": {"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": [381, 383, 384, 385, 387, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 401, 402, 403], "excluded_lines": [], "start_line": 379}, "MergeManager._merge_non_conflicting_changes": {"executed_lines": [407, 408], "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": 405}, "MergeManager._add_missing_pages": {"executed_lines": [412, 414, 415, 416], "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": 410}, "MergeManager._merge_page_elements": {"executed_lines": [420, 422, 423, 424, 427, 429, 430], "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": [425], "excluded_lines": [], "start_line": 418}, "MergeManager._merge_element": {"executed_lines": [438, 441, 442, 443, 446, 447, 450], "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": 434}, "MergeManager._is_element_in_conflict": {"executed_lines": [454], "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": 452}, "MergeManager._merge_by_timestamp": {"executed_lines": [460, 461, 464, 465, 468, 469, 470, 471], "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": 456}, "concatenate_projects": {"executed_lines": [488, 491, 494, 498, 500, 504], "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": 474}, "": {"executed_lines": [10, 11, 12, 13, 14, 17, 21, 22, 23, 26, 27, 30, 33, 36, 37, 38, 39, 42, 43, 46, 47, 48, 49, 50, 51, 54, 57, 60, 84, 107, 141, 168, 216, 238, 306, 339, 345, 379, 405, 410, 418, 434, 452, 456, 474], "summary": {"covered_lines": 45, "num_statements": 45, "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": {"ConflictType": {"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": 17}, "MergeStrategy": {"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}, "ConflictInfo": {"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": 43}, "MergeManager": {"executed_lines": [58, 74, 75, 78, 82, 97, 100, 103, 105, 110, 121, 122, 124, 125, 126, 129, 130, 143, 144, 147, 148, 150, 159, 162, 163, 166, 170, 171, 174, 178, 192, 193, 194, 195, 201, 214, 218, 219, 221, 222, 225, 226, 228, 236, 242, 243, 246, 250, 264, 267, 268, 270, 271, 274, 275, 276, 277, 278, 288, 316, 318, 337, 360, 363, 375, 377, 407, 408, 412, 414, 415, 416, 420, 422, 423, 424, 427, 429, 430, 438, 441, 442, 443, 446, 447, 450, 454, 460, 461, 464, 465, 468, 469, 470, 471], "summary": {"covered_lines": 95, "num_statements": 151, "percent_covered": 62.913907284768214, "percent_covered_display": "63", "missing_lines": 56, "excluded_lines": 0, "percent_statements_covered": 62.913907284768214, "percent_statements_covered_display": "63"}, "missing_lines": [79, 80, 152, 153, 156, 175, 179, 189, 196, 197, 202, 230, 231, 233, 247, 251, 261, 269, 292, 319, 321, 322, 324, 325, 327, 329, 330, 332, 333, 341, 342, 343, 364, 365, 367, 369, 371, 381, 383, 384, 385, 387, 389, 390, 391, 392, 394, 396, 397, 398, 399, 400, 401, 402, 403, 425], "excluded_lines": [], "start_line": 54}, "": {"executed_lines": [10, 11, 12, 13, 14, 17, 21, 22, 23, 26, 27, 30, 33, 36, 37, 38, 39, 42, 43, 46, 47, 48, 49, 50, 51, 54, 57, 60, 84, 107, 141, 168, 216, 238, 306, 339, 345, 379, 405, 410, 418, 434, 452, 456, 474, 488, 491, 494, 498, 500, 504], "summary": {"covered_lines": 51, "num_statements": 51, "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}}}, "pyPhotoAlbum/mixins/__init__.py": {"executed_lines": [5, 6, 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": [], "functions": {"": {"executed_lines": [5, 6, 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": [5, 6, 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}}}, "pyPhotoAlbum/mixins/asset_drop.py": {"executed_lines": [5, 6, 9, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37, 39, 40, 41, 42, 44, 45, 47, 48, 50, 52, 53, 55, 57, 58, 60, 61, 62, 63, 64, 66, 68, 69, 72, 73, 75, 76, 78, 80, 81, 82, 84, 86, 97, 98, 100, 101, 102, 103, 104, 106, 108, 109, 110, 112, 114, 115, 116, 118, 120, 121, 122, 124, 130, 132, 135, 136, 140, 142, 146, 147, 149, 151, 153, 154, 156], "summary": {"covered_lines": 83, "num_statements": 87, "percent_covered": 95.40229885057471, "percent_covered_display": "95", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 95.40229885057471, "percent_statements_covered_display": "95"}, "missing_lines": [70, 127, 128, 137], "excluded_lines": [], "functions": {"AssetDropMixin.dragEnterEvent": {"executed_lines": [21, 22, 23, 24, 25, 26, 27, 28], "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": 19}, "AssetDropMixin.dragMoveEvent": {"executed_lines": [32, 33, 35], "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": 30}, "AssetDropMixin.dropEvent": {"executed_lines": [39, 40, 41, 42, 44, 45, 47, 48, 50, 52, 53], "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": 37}, "AssetDropMixin._extract_image_path": {"executed_lines": [57, 58, 60, 61, 62, 63, 64], "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": 55}, "AssetDropMixin._handle_drop_on_element": {"executed_lines": [68, 69, 72, 73, 75, 76, 78, 80, 81, 82], "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": [70], "excluded_lines": [], "start_line": 66}, "AssetDropMixin._replace_placeholder_with_image": {"executed_lines": [86, 97, 98, 100, 101, 102, 103, 104], "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": 84}, "AssetDropMixin._handle_drop_on_empty_space": {"executed_lines": [108, 109, 110, 112, 114, 115, 116, 118, 120, 121, 122, 124], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [127, 128], "excluded_lines": [], "start_line": 106}, "AssetDropMixin._calculate_image_dimensions": {"executed_lines": [132, 135, 136, 140], "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": [137], "excluded_lines": [], "start_line": 130}, "AssetDropMixin._add_new_image_to_page": {"executed_lines": [146, 147, 149, 151, 153, 154, 156], "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": 142}, "": {"executed_lines": [5, 6, 9, 17, 19, 30, 37, 55, 66, 84, 106, 130, 142], "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": {"AssetDropMixin": {"executed_lines": [21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 35, 39, 40, 41, 42, 44, 45, 47, 48, 50, 52, 53, 57, 58, 60, 61, 62, 63, 64, 68, 69, 72, 73, 75, 76, 78, 80, 81, 82, 86, 97, 98, 100, 101, 102, 103, 104, 108, 109, 110, 112, 114, 115, 116, 118, 120, 121, 122, 124, 132, 135, 136, 140, 146, 147, 149, 151, 153, 154, 156], "summary": {"covered_lines": 70, "num_statements": 74, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 94.5945945945946, "percent_statements_covered_display": "95"}, "missing_lines": [70, 127, 128, 137], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [5, 6, 9, 17, 19, 30, 37, 55, 66, 84, 106, 130, 142], "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}}}, "pyPhotoAlbum/mixins/asset_path.py": {"executed_lines": [5, 6, 9, 16, 26, 27, 30, 31, 32, 33, 36, 37, 38, 39, 40, 42, 44, 54, 55, 56, 57, 59, 66, 67, 68], "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": [], "functions": {"AssetPathMixin.resolve_asset_path": {"executed_lines": [26, 27, 30, 31, 32, 33, 36, 37, 38, 39, 40, 42], "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": 16}, "AssetPathMixin.get_asset_full_path": {"executed_lines": [54, 55, 56, 57], "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": 44}, "AssetPathMixin._get_project_folder": {"executed_lines": [66, 67, 68], "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}, "": {"executed_lines": [5, 6, 9, 16, 44, 59], "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": {"AssetPathMixin": {"executed_lines": [26, 27, 30, 31, 32, 33, 36, 37, 38, 39, 40, 42, 54, 55, 56, 57, 66, 67, 68], "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": 9}, "": {"executed_lines": [5, 6, 9, 16, 44, 59], "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}}}, "pyPhotoAlbum/mixins/async_loading.py": {"executed_lines": [5, 6, 7, 8, 10, 11, 13, 18, 21, 23, 25, 29, 33, 40, 42, 45, 48, 49, 50, 51, 54, 55, 56, 57, 58, 60, 62, 64, 66, 67, 69, 70, 72, 73, 75, 77, 86, 88, 89, 92, 94, 103, 105, 106, 108, 117, 121, 122, 123, 124, 126, 134, 137, 138, 139, 142, 143, 144, 145, 146, 148, 150, 152, 159, 162, 163, 164, 167, 168, 169, 171, 179, 180, 181, 183, 184, 187, 188, 189, 192, 193, 194, 195, 198, 201, 208, 217, 218, 219, 222, 223, 225, 227, 229, 230, 231, 232, 233, 236, 238, 240, 242, 243, 245, 247, 249, 250, 252, 253, 255], "summary": {"covered_lines": 110, "num_statements": 112, "percent_covered": 98.21428571428571, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 2, "percent_statements_covered": 98.21428571428571, "percent_statements_covered_display": "98"}, "missing_lines": [27, 31], "excluded_lines": [15, 16], "functions": {"AsyncLoadingMixin.update": {"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": [27], "excluded_lines": [], "start_line": 25}, "AsyncLoadingMixin.window": {"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": 29}, "AsyncLoadingMixin._init_async_loading": {"executed_lines": [42, 45, 48, 49, 50, 51, 54, 55, 56, 57, 58, 60], "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": 40}, "AsyncLoadingMixin._cleanup_async_loading": {"executed_lines": [64, 66, 67, 69, 70, 72, 73, 75], "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": 62}, "AsyncLoadingMixin._on_image_loaded": {"executed_lines": [86, 88, 89, 92], "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": 77}, "AsyncLoadingMixin._on_image_load_failed": {"executed_lines": [103, 105, 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": 94}, "AsyncLoadingMixin._on_pdf_progress": {"executed_lines": [117, 121, 122, 123, 124], "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": 108}, "AsyncLoadingMixin._on_pdf_complete": {"executed_lines": [134, 137, 138, 139, 142, 143, 144, 145, 146, 148, 150], "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": 126}, "AsyncLoadingMixin._on_pdf_failed": {"executed_lines": [159, 162, 163, 164, 167, 168, 169], "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": 152}, "AsyncLoadingMixin.request_image_load": {"executed_lines": [179, 180, 181, 183, 184, 187, 188, 189, 192, 193, 194, 195, 198, 201], "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": 171}, "AsyncLoadingMixin.export_pdf_async": {"executed_lines": [217, 218, 219, 222, 223, 225, 227, 229, 230, 231, 232, 233, 236], "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": 208}, "AsyncLoadingMixin._on_pdf_cancel": {"executed_lines": [240, 242, 243], "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": 238}, "AsyncLoadingMixin.get_async_stats": {"executed_lines": [247, 249, 250, 252, 253, 255], "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": 245}, "": {"executed_lines": [5, 6, 7, 8, 10, 11, 13, 18, 21, 23, 25, 29, 33, 40, 62, 77, 94, 108, 126, 152, 171, 208, 238, 245], "summary": {"covered_lines": 24, "num_statements": 24, "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": {"AsyncLoadingMixin": {"executed_lines": [42, 45, 48, 49, 50, 51, 54, 55, 56, 57, 58, 60, 64, 66, 67, 69, 70, 72, 73, 75, 86, 88, 89, 92, 103, 105, 106, 117, 121, 122, 123, 124, 134, 137, 138, 139, 142, 143, 144, 145, 146, 148, 150, 159, 162, 163, 164, 167, 168, 169, 179, 180, 181, 183, 184, 187, 188, 189, 192, 193, 194, 195, 198, 201, 217, 218, 219, 222, 223, 225, 227, 229, 230, 231, 232, 233, 236, 240, 242, 243, 247, 249, 250, 252, 253, 255], "summary": {"covered_lines": 86, "num_statements": 88, "percent_covered": 97.72727272727273, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 97.72727272727273, "percent_statements_covered_display": "98"}, "missing_lines": [27, 31], "excluded_lines": [], "start_line": 21}, "": {"executed_lines": [5, 6, 7, 8, 10, 11, 13, 18, 21, 23, 25, 29, 33, 40, 62, 77, 94, 108, 126, 152, 171, 208, 238, 245], "summary": {"covered_lines": 24, "num_statements": 24, "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}}}, "pyPhotoAlbum/mixins/base.py": {"executed_lines": [5, 6, 9, 23, 24, 26, 27, 28, 30, 31, 33, 35, 36, 38, 39, 40, 42, 43, 45, 46, 47, 49, 50, 52, 53, 54, 58, 65, 66, 69, 70, 73, 74, 76, 78, 79, 80, 83, 85, 86, 88, 89, 90, 91, 93, 95, 102, 103, 105, 106, 107, 109, 111, 118, 119, 120, 122, 130, 131, 133, 141, 143, 151, 153, 161, 163, 173, 175, 176, 177, 178, 180, 182, 193, 195, 196, 197, 198, 200, 201, 203, 205, 207, 208, 211], "summary": {"covered_lines": 85, "num_statements": 86, "percent_covered": 98.83720930232558, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.83720930232558, "percent_statements_covered_display": "99"}, "missing_lines": [212], "excluded_lines": [], "functions": {"ApplicationStateMixin.project": {"executed_lines": [33], "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": 31}, "ApplicationStateMixin.gl_widget": {"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}, "ApplicationStateMixin.status_bar": {"executed_lines": [45, 46, 47], "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": 43}, "ApplicationStateMixin.template_manager": {"executed_lines": [52, 53, 54], "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": 50}, "ApplicationStateMixin._get_most_visible_page_index": {"executed_lines": [65, 66, 69, 70, 73, 74, 76, 78, 79, 80, 83, 85, 86, 88, 89, 90, 91, 93], "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": 58}, "ApplicationStateMixin.get_current_page": {"executed_lines": [102, 103, 105, 106, 107, 109], "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": 95}, "ApplicationStateMixin.get_current_page_index": {"executed_lines": [118, 119, 120], "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": 111}, "ApplicationStateMixin.show_status": {"executed_lines": [130, 131], "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": 122}, "ApplicationStateMixin.show_error": {"executed_lines": [141], "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": 133}, "ApplicationStateMixin.show_warning": {"executed_lines": [151], "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": 143}, "ApplicationStateMixin.show_info": {"executed_lines": [161], "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": 153}, "ApplicationStateMixin.require_page": {"executed_lines": [173, 175, 176, 177, 178, 180], "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": 163}, "ApplicationStateMixin.require_selection": {"executed_lines": [193, 195, 196, 197, 198, 200, 201, 203], "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": 182}, "ApplicationStateMixin.update_view": {"executed_lines": [207, 208, 211], "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": [212], "excluded_lines": [], "start_line": 205}, "": {"executed_lines": [5, 6, 9, 23, 24, 30, 31, 35, 36, 42, 43, 49, 50, 58, 95, 111, 122, 133, 143, 153, 163, 182, 205], "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": {"ApplicationStateMixin": {"executed_lines": [26, 27, 28, 33, 38, 39, 40, 45, 46, 47, 52, 53, 54, 65, 66, 69, 70, 73, 74, 76, 78, 79, 80, 83, 85, 86, 88, 89, 90, 91, 93, 102, 103, 105, 106, 107, 109, 118, 119, 120, 130, 131, 141, 151, 161, 173, 175, 176, 177, 178, 180, 193, 195, 196, 197, 198, 200, 201, 203, 207, 208, 211], "summary": {"covered_lines": 62, "num_statements": 63, "percent_covered": 98.41269841269842, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.41269841269842, "percent_statements_covered_display": "98"}, "missing_lines": [212], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [5, 6, 9, 23, 24, 30, 31, 35, 36, 42, 43, 49, 50, 58, 95, 111, 122, 133, 143, 153, 163, 182, 205], "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}}}, "pyPhotoAlbum/mixins/dialog_mixin.py": {"executed_lines": [7, 8, 11, 19, 32, 35, 36, 39, 41, 42, 43, 45, 47, 60, 62, 63, 64, 66], "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": [], "functions": {"DialogMixin.create_dialog": {"executed_lines": [32, 35, 36, 39, 41, 42, 43, 45], "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": 19}, "DialogMixin.show_dialog": {"executed_lines": [60, 62, 63, 64, 66], "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": 47}, "": {"executed_lines": [7, 8, 11, 19, 47], "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": {"DialogMixin": {"executed_lines": [32, 35, 36, 39, 41, 42, 43, 45, 60, 62, 63, 64, 66], "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": 11}, "": {"executed_lines": [7, 8, 11, 19, 47], "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}}}, "pyPhotoAlbum/mixins/element_manipulation.py": {"executed_lines": [5, 12, 14, 15, 16, 18, 20, 22, 30, 33, 34, 35, 38, 39, 40, 43, 45, 53, 56, 60, 61, 62, 63, 65, 66, 69, 70, 73, 75, 85, 88, 89, 92, 93, 94, 95, 96, 97, 99, 107, 108, 109, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133, 134, 136, 151, 154, 157, 158, 161, 162, 163, 166, 169, 172, 173, 176, 177, 179], "summary": {"covered_lines": 77, "num_statements": 80, "percent_covered": 96.25, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 3, "percent_statements_covered": 96.25, "percent_statements_covered_display": "96"}, "missing_lines": [54, 57, 110], "excluded_lines": [7, 8, 9], "functions": {"ElementManipulationMixin.window": {"executed_lines": [20], "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}, "ElementManipulationMixin.__init__": {"executed_lines": [30, 33, 34, 35, 38, 39, 40, 43], "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": 22}, "ElementManipulationMixin._resize_element": {"executed_lines": [53, 56, 60, 61, 62, 63, 65, 66, 69, 70, 73, 75, 85, 88, 89, 92, 93, 94, 95, 96, 97], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [54, 57], "excluded_lines": [], "start_line": 45}, "ElementManipulationMixin._resize_element_no_snap": {"executed_lines": [107, 108, 109, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133, 134], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.83333333333333, "percent_statements_covered_display": "96"}, "missing_lines": [110], "excluded_lines": [], "start_line": 99}, "ElementManipulationMixin._transfer_element_to_page": {"executed_lines": [151, 154, 157, 158, 161, 162, 163, 166, 169, 172, 173, 176, 177, 179], "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": 136}, "": {"executed_lines": [5, 12, 14, 15, 16, 18, 22, 45, 99, 136], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [7, 8, 9], "start_line": 1}}, "classes": {"ElementManipulationMixin": {"executed_lines": [20, 30, 33, 34, 35, 38, 39, 40, 43, 53, 56, 60, 61, 62, 63, 65, 66, 69, 70, 73, 75, 85, 88, 89, 92, 93, 94, 95, 96, 97, 107, 108, 109, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133, 134, 151, 154, 157, 158, 161, 162, 163, 166, 169, 172, 173, 176, 177, 179], "summary": {"covered_lines": 67, "num_statements": 70, "percent_covered": 95.71428571428571, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 95.71428571428571, "percent_statements_covered_display": "96"}, "missing_lines": [54, 57, 110], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [5, 12, 14, 15, 16, 18, 22, 45, 99, 136], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [7, 8, 9], "start_line": 1}}}, "pyPhotoAlbum/mixins/element_selection.py": {"executed_lines": [5, 10, 13, 15, 17, 21, 28, 29, 32, 34, 35, 42, 44, 45, 52, 53, 55, 57, 68, 69, 72, 76, 79, 81, 82, 85, 87, 88, 89, 91, 93, 106, 107, 109, 110, 111, 114, 115, 117, 120, 121, 122, 125, 126, 127, 130, 137, 138, 139, 141], "summary": {"covered_lines": 50, "num_statements": 51, "percent_covered": 98.03921568627452, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 2, "percent_statements_covered": 98.03921568627452, "percent_statements_covered_display": "98"}, "missing_lines": [19], "excluded_lines": [7, 8], "functions": {"ElementSelectionMixin.window": {"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}, "ElementSelectionMixin.__init__": {"executed_lines": [29, 32], "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": 28}, "ElementSelectionMixin.selected_element": {"executed_lines": [52, 53, 55], "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}, "ElementSelectionMixin._get_element_at": {"executed_lines": [68, 69, 72, 76, 79, 81, 82, 85, 87, 88, 89, 91], "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": 57}, "ElementSelectionMixin._get_resize_handle_at": {"executed_lines": [106, 107, 109, 110, 111, 114, 115, 117, 120, 121, 122, 125, 126, 127, 130, 137, 138, 139, 141], "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": 93}, "": {"executed_lines": [5, 10, 13, 15, 17, 21, 28, 34, 35, 44, 45, 57, 93], "summary": {"covered_lines": 13, "num_statements": 13, "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": [7, 8], "start_line": 1}}, "classes": {"ElementSelectionMixin": {"executed_lines": [29, 32, 42, 52, 53, 55, 68, 69, 72, 76, 79, 81, 82, 85, 87, 88, 89, 91, 106, 107, 109, 110, 111, 114, 115, 117, 120, 121, 122, 125, 126, 127, 130, 137, 138, 139, 141], "summary": {"covered_lines": 37, "num_statements": 38, "percent_covered": 97.36842105263158, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.36842105263158, "percent_statements_covered_display": "97"}, "missing_lines": [19], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [5, 10, 13, 15, 17, 21, 28, 34, 35, 44, 45, 57, 93], "summary": {"covered_lines": 13, "num_statements": 13, "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": [7, 8], "start_line": 1}}}, "pyPhotoAlbum/mixins/image_pan.py": {"executed_lines": [5, 8, 11, 13, 14, 15, 22, 23, 26, 27, 29, 38, 39, 41, 42, 45, 46, 49, 54, 55, 58, 59, 60, 63, 64, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 87], "summary": {"covered_lines": 40, "num_statements": 42, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 95.23809523809524, "percent_statements_covered_display": "95"}, "missing_lines": [83, 84], "excluded_lines": [], "functions": {"ImagePanMixin.__init__": {"executed_lines": [23, 26, 27], "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": 22}, "ImagePanMixin._handle_image_pan_move": {"executed_lines": [38, 39, 41, 42, 45, 46, 49, 54, 55, 58, 59, 60, 63, 64, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 87], "summary": {"covered_lines": 29, "num_statements": 31, "percent_covered": 93.54838709677419, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.54838709677419, "percent_statements_covered_display": "94"}, "missing_lines": [83, 84], "excluded_lines": [], "start_line": 29}, "": {"executed_lines": [5, 8, 11, 13, 14, 15, 22, 29], "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": {"ImagePanMixin": {"executed_lines": [23, 26, 27, 38, 39, 41, 42, 45, 46, 49, 54, 55, 58, 59, 60, 63, 64, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 87], "summary": {"covered_lines": 32, "num_statements": 34, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [83, 84], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [5, 8, 11, 13, 14, 15, 22, 29], "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}}}, "pyPhotoAlbum/mixins/interaction_command_builders.py": {"executed_lines": [10, 11, 12, 13, 16, 19, 20, 52, 54, 57, 60, 62, 63, 64, 66, 67, 69, 71, 72, 75, 76, 78, 79, 81, 83, 85, 86, 89, 92, 94, 95, 97, 100, 101, 103, 104, 106, 108, 110, 111, 113, 116, 117, 119, 122, 124, 126, 127, 130, 133, 135, 136, 139, 140, 142, 144, 145, 148, 149, 151, 154, 156, 158, 159, 162, 165, 167, 169, 170, 172, 173, 176, 177, 178, 180, 182, 184, 187, 188, 191, 192, 193, 195, 198, 200, 202, 203], "summary": {"covered_lines": 87, "num_statements": 98, "percent_covered": 88.77551020408163, "percent_covered_display": "89", "missing_lines": 11, "excluded_lines": 28, "percent_statements_covered": 88.77551020408163, "percent_statements_covered_display": "89"}, "missing_lines": [73, 98, 114, 120, 137, 146, 152, 174, 185, 189, 196], "excluded_lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "functions": {"CommandBuilder.__init__": {"executed_lines": [20], "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": 19}, "CommandBuilder.can_build": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 12, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "start_line": 23}, "CommandBuilder.build": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 12, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "start_line": 38}, "CommandBuilder.log_command": {"executed_lines": [54], "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": 52}, "MoveCommandBuilder.can_build": {"executed_lines": [62, 63, 64, 66, 67], "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": 60}, "MoveCommandBuilder.build": {"executed_lines": [71, 72, 75, 76, 78, 79, 81, 83, 85, 86], "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": [73], "excluded_lines": [], "start_line": 69}, "ResizeCommandBuilder.can_build": {"executed_lines": [94, 95, 97, 100, 101, 103, 104, 106], "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": [98], "excluded_lines": [], "start_line": 92}, "ResizeCommandBuilder.build": {"executed_lines": [110, 111, 113, 116, 117, 119, 122, 124, 126, 127], "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": [114, 120], "excluded_lines": [], "start_line": 108}, "RotateCommandBuilder.can_build": {"executed_lines": [135, 136, 139, 140], "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": [137], "excluded_lines": [], "start_line": 133}, "RotateCommandBuilder.build": {"executed_lines": [144, 145, 148, 149, 151, 154, 156, 158, 159], "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": [146, 152], "excluded_lines": [], "start_line": 142}, "ImagePanCommandBuilder.can_build": {"executed_lines": [167, 169, 170, 172, 173, 176, 177, 178], "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": [174], "excluded_lines": [], "start_line": 165}, "ImagePanCommandBuilder.build": {"executed_lines": [182, 184, 187, 188, 191, 192, 193, 195, 198, 200, 202, 203], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [185, 189, 196], "excluded_lines": [], "start_line": 180}, "": {"executed_lines": [10, 11, 12, 13, 16, 19, 52, 57, 60, 69, 89, 92, 108, 130, 133, 142, 162, 165, 180], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [22, 23, 37, 38], "start_line": 1}}, "classes": {"CommandBuilder": {"executed_lines": [20, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 24, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "start_line": 16}, "MoveCommandBuilder": {"executed_lines": [62, 63, 64, 66, 67, 71, 72, 75, 76, 78, 79, 81, 83, 85, 86], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [73], "excluded_lines": [], "start_line": 57}, "ResizeCommandBuilder": {"executed_lines": [94, 95, 97, 100, 101, 103, 104, 106, 110, 111, 113, 116, 117, 119, 122, 124, 126, 127], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [98, 114, 120], "excluded_lines": [], "start_line": 89}, "RotateCommandBuilder": {"executed_lines": [135, 136, 139, 140, 144, 145, 148, 149, 151, 154, 156, 158, 159], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 81.25, "percent_statements_covered_display": "81"}, "missing_lines": [137, 146, 152], "excluded_lines": [], "start_line": 130}, "ImagePanCommandBuilder": {"executed_lines": [167, 169, 170, 172, 173, 176, 177, 178, 182, 184, 187, 188, 191, 192, 193, 195, 198, 200, 202, 203], "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": [174, 185, 189, 196], "excluded_lines": [], "start_line": 162}, "": {"executed_lines": [10, 11, 12, 13, 16, 19, 52, 57, 60, 69, 89, 92, 108, 130, 133, 142, 162, 165, 180], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [22, 23, 37, 38], "start_line": 1}}}, "pyPhotoAlbum/mixins/interaction_command_factory.py": {"executed_lines": [8, 9, 10, 19, 27, 29, 30, 32, 34, 35, 36, 37, 39, 47, 49, 64, 66, 67, 68, 70, 71, 73, 75, 77, 79, 81, 84, 92, 112, 113, 114, 115, 116, 117, 119, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 139, 141, 143, 144, 145, 146, 147, 148], "summary": {"covered_lines": 54, "num_statements": 54, "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": {"InteractionCommandFactory.__init__": {"executed_lines": [29, 30], "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": 27}, "InteractionCommandFactory._register_default_builders": {"executed_lines": [34, 35, 36, 37], "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": 32}, "InteractionCommandFactory.register_builder": {"executed_lines": [47], "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": 39}, "InteractionCommandFactory.create_command": {"executed_lines": [64, 66, 67, 68, 70, 71, 73], "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": 49}, "InteractionCommandFactory.has_builder": {"executed_lines": [77], "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": 75}, "InteractionCommandFactory.get_supported_types": {"executed_lines": [81], "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": 79}, "InteractionState.__init__": {"executed_lines": [112, 113, 114, 115, 116, 117], "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": 92}, "InteractionState.to_dict": {"executed_lines": [126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "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": 119}, "InteractionState.is_valid": {"executed_lines": [139], "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": 137}, "InteractionState.clear": {"executed_lines": [143, 144, 145, 146, 147, 148], "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": 141}, "": {"executed_lines": [8, 9, 10, 19, 27, 32, 39, 49, 75, 79, 84, 92, 119, 137, 141], "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": 1}}, "classes": {"InteractionCommandFactory": {"executed_lines": [29, 30, 34, 35, 36, 37, 47, 64, 66, 67, 68, 70, 71, 73, 77, 81], "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": 19}, "InteractionState": {"executed_lines": [112, 113, 114, 115, 116, 117, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 139, 143, 144, 145, 146, 147, 148], "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": 84}, "": {"executed_lines": [8, 9, 10, 19, 27, 32, 39, 49, 75, 79, 84, 92, 119, 137, 141], "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": 1}}}, "pyPhotoAlbum/mixins/interaction_undo.py": {"executed_lines": [5, 6, 7, 10, 19, 20, 23, 26, 28, 35, 36, 37, 39, 46, 47, 48, 49, 51, 58, 59, 60, 62, 69, 71, 72, 74, 75, 76, 78, 86, 87, 88, 91, 92, 93, 94, 97, 104, 105, 108, 110, 112, 114, 116], "summary": {"covered_lines": 44, "num_statements": 44, "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": {"UndoableInteractionMixin.__init__": {"executed_lines": [20, 23, 26], "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": 19}, "UndoableInteractionMixin._begin_move": {"executed_lines": [35, 36, 37], "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": 28}, "UndoableInteractionMixin._begin_resize": {"executed_lines": [46, 47, 48, 49], "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": 39}, "UndoableInteractionMixin._begin_rotate": {"executed_lines": [58, 59, 60], "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": 51}, "UndoableInteractionMixin._begin_image_pan": {"executed_lines": [69, 71, 72, 74, 75, 76], "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": 62}, "UndoableInteractionMixin._end_interaction": {"executed_lines": [86, 87, 88, 91, 92, 93, 94, 97, 104, 105, 108], "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": 78}, "UndoableInteractionMixin._clear_interaction_state": {"executed_lines": [112], "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": 110}, "UndoableInteractionMixin._cancel_interaction": {"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}, "": {"executed_lines": [5, 6, 7, 10, 19, 28, 39, 51, 62, 78, 110, 114], "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": {"UndoableInteractionMixin": {"executed_lines": [20, 23, 26, 35, 36, 37, 46, 47, 48, 49, 58, 59, 60, 69, 71, 72, 74, 75, 76, 86, 87, 88, 91, 92, 93, 94, 97, 104, 105, 108, 112, 116], "summary": {"covered_lines": 32, "num_statements": 32, "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}, "": {"executed_lines": [5, 6, 7, 10, 19, 28, 39, 51, 62, 78, 110, 114], "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}}}, "pyPhotoAlbum/mixins/interaction_validators.py": {"executed_lines": [5, 6, 9, 33, 36, 37, 41, 42, 44, 45, 46, 48, 49, 53, 56, 57, 58, 60, 61, 63, 66, 68, 69, 75, 78, 79, 81, 84, 87, 88, 89, 91, 98, 99, 101, 108, 115, 116, 118, 125, 132, 133, 135, 137, 146, 147, 149], "summary": {"covered_lines": 47, "num_statements": 59, "percent_covered": 79.66101694915254, "percent_covered_display": "80", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 79.66101694915254, "percent_statements_covered_display": "80"}, "missing_lines": [20, 21, 22, 23, 24, 25, 26, 28, 30, 54, 64, 76], "excluded_lines": [], "functions": {"significant_change": {"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": [20, 21, 30], "excluded_lines": [], "start_line": 9}, "significant_change.decorator": {"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": [22, 28], "excluded_lines": [], "start_line": 20}, "significant_change.decorator.wrapper": {"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": [23, 24, 25, 26], "excluded_lines": [], "start_line": 22}, "ChangeValidator.position_changed": {"executed_lines": [41, 42, 44, 45, 46], "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": 37}, "ChangeValidator.size_changed": {"executed_lines": [53, 56, 57, 58], "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": [54], "excluded_lines": [], "start_line": 49}, "ChangeValidator.rotation_changed": {"executed_lines": [63, 66], "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": [64], "excluded_lines": [], "start_line": 61}, "ChangeValidator.crop_changed": {"executed_lines": [75, 78, 79, 81], "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": [76], "excluded_lines": [], "start_line": 69}, "InteractionChangeDetector.__init__": {"executed_lines": [88, 89], "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": 87}, "InteractionChangeDetector.detect_position_change": {"executed_lines": [98, 99, 101], "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}, "InteractionChangeDetector.detect_size_change": {"executed_lines": [115, 116, 118], "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": 108}, "InteractionChangeDetector.detect_rotation_change": {"executed_lines": [132, 133, 135], "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": 125}, "InteractionChangeDetector.detect_crop_change": {"executed_lines": [146, 147, 149], "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": 137}, "": {"executed_lines": [5, 6, 9, 33, 36, 37, 48, 49, 60, 61, 68, 69, 84, 87, 91, 108, 125, 137], "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": {"ChangeValidator": {"executed_lines": [41, 42, 44, 45, 46, 53, 56, 57, 58, 63, 66, 75, 78, 79, 81], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [54, 64, 76], "excluded_lines": [], "start_line": 33}, "InteractionChangeDetector": {"executed_lines": [88, 89, 98, 99, 101, 115, 116, 118, 132, 133, 135, 146, 147, 149], "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": 84}, "": {"executed_lines": [5, 6, 9, 33, 36, 37, 48, 49, 60, 61, 68, 69, 84, 87, 91, 108, 125, 137], "summary": {"covered_lines": 18, "num_statements": 27, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [20, 21, 22, 23, 24, 25, 26, 28, 30], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/mixins/keyboard_navigation.py": {"executed_lines": [5, 8, 16, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 46, 54, 55, 56, 58, 59, 60, 63, 64, 65, 66, 67, 68, 71, 72, 73, 76, 77, 79, 82, 83, 85, 88, 89, 90, 92, 100, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 115, 118, 119, 120, 122, 129, 130, 131, 134, 137, 138, 139, 140, 141, 142, 143, 144, 145, 148, 149, 150, 151, 154, 155, 156, 157, 158, 160, 167, 169, 171, 173, 174, 175, 176], "summary": {"covered_lines": 96, "num_statements": 96, "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": {"KeyboardNavigationMixin._navigate_to_next_page": {"executed_lines": [18, 19, 20, 22, 23, 24, 25, 27, 28, 29], "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": 16}, "KeyboardNavigationMixin._navigate_to_previous_page": {"executed_lines": [33, 34, 35, 37, 38, 39, 40, 42, 43, 44], "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": 31}, "KeyboardNavigationMixin._scroll_to_page": {"executed_lines": [54, 55, 56, 58, 59, 60, 63, 64, 65, 66, 67, 68, 71, 72, 73, 76, 77, 79, 82, 83, 85, 88, 89, 90], "summary": {"covered_lines": 24, "num_statements": 24, "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": 46}, "KeyboardNavigationMixin._move_viewport_with_arrow_keys": {"executed_lines": [100, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 115, 118, 119, 120], "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": 92}, "KeyboardNavigationMixin._move_selected_elements_with_arrow_keys": {"executed_lines": [129, 130, 131, 134, 137, 138, 139, 140, 141, 142, 143, 144, 145, 148, 149, 150, 151, 154, 155, 156, 157, 158, 160, 167, 169, 171, 173, 174, 175, 176], "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": 122}, "": {"executed_lines": [5, 8, 16, 31, 46, 92, 122], "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": {"KeyboardNavigationMixin": {"executed_lines": [18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 54, 55, 56, 58, 59, 60, 63, 64, 65, 66, 67, 68, 71, 72, 73, 76, 77, 79, 82, 83, 85, 88, 89, 90, 100, 102, 103, 104, 105, 106, 107, 108, 109, 112, 113, 115, 118, 119, 120, 129, 130, 131, 134, 137, 138, 139, 140, 141, 142, 143, 144, 145, 148, 149, 150, 151, 154, 155, 156, 157, 158, 160, 167, 169, 171, 173, 174, 175, 176], "summary": {"covered_lines": 89, "num_statements": 89, "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}, "": {"executed_lines": [5, 8, 16, 31, 46, 92, 122], "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}}}, "pyPhotoAlbum/mixins/mouse_interaction.py": {"executed_lines": [5, 6, 8, 9, 10, 16, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 57, 58, 61, 62, 63, 64, 66, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 84, 86, 87, 88, 89, 90, 91, 92, 94, 96, 97, 99, 101, 103, 104, 105, 106, 107, 108, 110, 112, 114, 115, 116, 117, 118, 119, 121, 123, 124, 125, 128, 129, 132, 133, 137, 138, 139, 140, 142, 143, 144, 145, 148, 149, 150, 151, 152, 153, 155, 157, 158, 160, 162, 164, 165, 167, 168, 170, 171, 173, 174, 176, 177, 180, 182, 185, 186, 187, 189, 190, 191, 193, 194, 195, 196, 197, 199, 201, 202, 203, 205, 207, 208, 210, 211, 213, 215, 217, 218, 220, 221, 223, 226, 229, 230, 232, 233, 235, 237, 239, 240, 242, 243, 245, 246, 247, 248, 249, 251, 259, 261, 263, 265, 268, 269, 270, 272, 273, 275, 279, 280, 281, 282, 283, 284, 286, 288, 290, 292, 293, 295, 296, 297, 298, 299, 300, 301, 302, 303, 305, 306, 307, 308, 310, 312, 313, 314, 316, 318, 319, 320, 322, 324, 326, 327, 329, 331, 332, 334, 335, 337, 338, 340, 341, 342, 343, 345, 347, 348, 351, 352, 353, 354, 357, 358, 360, 362, 363, 367, 371, 372, 374, 375, 377, 378, 380, 381, 384, 385, 388, 389, 390, 391, 393, 396, 397, 400, 402, 404, 405, 406, 408, 409, 410, 412, 414], "summary": {"covered_lines": 245, "num_statements": 253, "percent_covered": 96.83794466403162, "percent_covered_display": "97", "missing_lines": 8, "excluded_lines": 20, "percent_statements_covered": 96.83794466403162, "percent_statements_covered_display": "97"}, "missing_lines": [134, 178, 183, 224, 276, 364, 368, 398], "excluded_lines": [12, 13, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "functions": {"MouseInteractionMixin.window": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [39], "start_line": 39}, "MouseInteractionMixin.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [40], "start_line": 40}, "MouseInteractionMixin.setCursor": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [41], "start_line": 41}, "MouseInteractionMixin.setFocus": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [42], "start_line": 42}, "MouseInteractionMixin._begin_rotate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [43], "start_line": 43}, "MouseInteractionMixin._begin_resize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [44], "start_line": 44}, "MouseInteractionMixin._begin_image_pan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [45], "start_line": 45}, "MouseInteractionMixin._begin_move": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [46], "start_line": 46}, "MouseInteractionMixin._end_interaction": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [47], "start_line": 47}, "MouseInteractionMixin._resize_element": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [48], "start_line": 48}, "MouseInteractionMixin._get_page_at": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [49], "start_line": 49}, "MouseInteractionMixin._get_element_at": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [50], "start_line": 50}, "MouseInteractionMixin._get_resize_handle_at": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [51], "start_line": 51}, "MouseInteractionMixin._check_ghost_page_click": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [52], "start_line": 52}, "MouseInteractionMixin._transfer_element_to_page": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [53], "start_line": 53}, "MouseInteractionMixin._handle_image_pan_move": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [54], "start_line": 54}, "MouseInteractionMixin._update_page_status": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [55], "start_line": 55}, "MouseInteractionMixin.__init__": {"executed_lines": [58, 61, 62, 63, 64], "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": 57}, "MouseInteractionMixin._handle_rotation_start": {"executed_lines": [68, 69, 70, 71, 72], "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": 66}, "MouseInteractionMixin._handle_resize_start": {"executed_lines": [76, 77, 78, 79, 80, 81, 82], "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": 74}, "MouseInteractionMixin._handle_image_pan_start": {"executed_lines": [86, 87, 88, 89, 90, 91, 92], "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": 84}, "MouseInteractionMixin._handle_multi_select": {"executed_lines": [96, 97, 99], "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": 94}, "MouseInteractionMixin._handle_element_drag_start": {"executed_lines": [103, 104, 105, 106, 107, 108], "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": 101}, "MouseInteractionMixin.mousePressEvent": {"executed_lines": [112, 114, 115, 116, 117, 118, 119], "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": 110}, "MouseInteractionMixin._handle_left_click": {"executed_lines": [123, 124, 125, 128, 129, 132, 133, 137, 138, 139, 140, 142, 143, 144, 145, 148, 149, 150, 151, 152, 153, 155, 157, 158, 160], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.15384615384616, "percent_statements_covered_display": "96"}, "missing_lines": [134], "excluded_lines": [], "start_line": 121}, "MouseInteractionMixin._handle_canvas_pan": {"executed_lines": [164, 165, 167, 168, 170, 171, 173, 174, 176, 177], "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": [178], "excluded_lines": [], "start_line": 162}, "MouseInteractionMixin._handle_rotation_move": {"executed_lines": [182, 185, 186, 187, 189, 190, 191, 193, 194, 195, 196, 197, 199, 201, 202, 203], "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": [183], "excluded_lines": [], "start_line": 180}, "MouseInteractionMixin._handle_resize_move": {"executed_lines": [207, 208, 210, 211, 213], "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": 205}, "MouseInteractionMixin._handle_element_move": {"executed_lines": [217, 218, 220, 221, 223, 226, 229, 230, 232, 233, 235], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [224], "excluded_lines": [], "start_line": 215}, "MouseInteractionMixin._move_element_within_page": {"executed_lines": [239, 240, 242, 243, 245, 246, 247, 248, 249, 251, 259], "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": 237}, "MouseInteractionMixin.mouseMoveEvent": {"executed_lines": [263, 265, 268, 269, 270, 272, 273, 275, 279, 280, 281, 282, 283, 284, 286, 288], "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": [276], "excluded_lines": [], "start_line": 261}, "MouseInteractionMixin.mouseReleaseEvent": {"executed_lines": [292, 293, 295, 296, 297, 298, 299, 300, 301, 302, 303, 305, 306, 307, 308], "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": 290}, "MouseInteractionMixin.mouseDoubleClickEvent": {"executed_lines": [312, 313, 314, 316, 318, 319, 320, 322], "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": 310}, "MouseInteractionMixin.wheelEvent": {"executed_lines": [326, 327, 329, 331, 332, 334, 335, 337, 338, 340, 341, 342, 343, 345, 347, 348, 351, 352, 353, 354, 357, 358, 360, 362, 363, 367, 371, 372, 374, 375, 377, 378, 380, 381, 384, 385, 388, 389, 390, 391, 393, 396, 397], "summary": {"covered_lines": 43, "num_statements": 46, "percent_covered": 93.47826086956522, "percent_covered_display": "93", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 93.47826086956522, "percent_statements_covered_display": "93"}, "missing_lines": [364, 368, 398], "excluded_lines": [], "start_line": 324}, "MouseInteractionMixin._edit_text_element": {"executed_lines": [402, 404, 405, 406, 408, 409, 410, 412, 414], "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": 400}, "": {"executed_lines": [5, 6, 8, 9, 10, 16, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 57, 66, 74, 84, 94, 101, 110, 121, 162, 180, 205, 215, 237, 261, 290, 310, 324, 400], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [12, 13, 38], "start_line": 1}}, "classes": {"MouseInteractionMixin": {"executed_lines": [58, 61, 62, 63, 64, 68, 69, 70, 71, 72, 76, 77, 78, 79, 80, 81, 82, 86, 87, 88, 89, 90, 91, 92, 96, 97, 99, 103, 104, 105, 106, 107, 108, 112, 114, 115, 116, 117, 118, 119, 123, 124, 125, 128, 129, 132, 133, 137, 138, 139, 140, 142, 143, 144, 145, 148, 149, 150, 151, 152, 153, 155, 157, 158, 160, 164, 165, 167, 168, 170, 171, 173, 174, 176, 177, 182, 185, 186, 187, 189, 190, 191, 193, 194, 195, 196, 197, 199, 201, 202, 203, 207, 208, 210, 211, 213, 217, 218, 220, 221, 223, 226, 229, 230, 232, 233, 235, 239, 240, 242, 243, 245, 246, 247, 248, 249, 251, 259, 263, 265, 268, 269, 270, 272, 273, 275, 279, 280, 281, 282, 283, 284, 286, 288, 292, 293, 295, 296, 297, 298, 299, 300, 301, 302, 303, 305, 306, 307, 308, 312, 313, 314, 316, 318, 319, 320, 322, 326, 327, 329, 331, 332, 334, 335, 337, 338, 340, 341, 342, 343, 345, 347, 348, 351, 352, 353, 354, 357, 358, 360, 362, 363, 367, 371, 372, 374, 375, 377, 378, 380, 381, 384, 385, 388, 389, 390, 391, 393, 396, 397, 402, 404, 405, 406, 408, 409, 410, 412, 414], "summary": {"covered_lines": 209, "num_statements": 217, "percent_covered": 96.31336405529954, "percent_covered_display": "96", "missing_lines": 8, "excluded_lines": 17, "percent_statements_covered": 96.31336405529954, "percent_statements_covered_display": "96"}, "missing_lines": [134, 178, 183, 224, 276, 364, 368, 398], "excluded_lines": [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "start_line": 16}, "": {"executed_lines": [5, 6, 8, 9, 10, 16, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 57, 66, 74, 84, 94, 101, 110, 121, 162, 180, 205, 215, 237, 261, 290, 310, 324, 400], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [12, 13, 38], "start_line": 1}}}, "pyPhotoAlbum/mixins/operations/__init__.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "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": [], "functions": {"": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "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": {"": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "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}}}, "pyPhotoAlbum/mixins/operations/alignment_ops.py": {"executed_lines": [5, 6, 7, 10, 13, 15, 17, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 44, 46, 48, 56, 58, 60, 68, 70, 72, 80, 82, 84, 92, 94, 96, 104, 106, 108, 116], "summary": {"covered_lines": 36, "num_statements": 50, "percent_covered": 72.0, "percent_covered_display": "72", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 72.0, "percent_statements_covered_display": "72"}, "missing_lines": [118, 119, 120, 123, 124, 125, 126, 128, 130, 131, 132, 133, 134, 135], "excluded_lines": [], "functions": {"AlignmentOperationsMixin._get_selected_elements_list": {"executed_lines": [15], "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": 13}, "AlignmentOperationsMixin._execute_alignment": {"executed_lines": [25, 26, 27, 29, 30, 31, 32, 33, 34], "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": 17}, "AlignmentOperationsMixin.align_left": {"executed_lines": [46], "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}, "AlignmentOperationsMixin.align_right": {"executed_lines": [58], "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": 56}, "AlignmentOperationsMixin.align_top": {"executed_lines": [70], "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": 68}, "AlignmentOperationsMixin.align_bottom": {"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": 80}, "AlignmentOperationsMixin.align_horizontal_center": {"executed_lines": [94], "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": 92}, "AlignmentOperationsMixin.align_vertical_center": {"executed_lines": [106], "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": 104}, "AlignmentOperationsMixin.maximize_pattern": {"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": [118, 119, 120, 123, 124, 125, 126, 128, 130, 131, 132, 133, 134, 135], "excluded_lines": [], "start_line": 116}, "": {"executed_lines": [5, 6, 7, 10, 13, 17, 36, 44, 48, 56, 60, 68, 72, 80, 84, 92, 96, 104, 108, 116], "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": 1}}, "classes": {"AlignmentOperationsMixin": {"executed_lines": [15, 25, 26, 27, 29, 30, 31, 32, 33, 34, 46, 58, 70, 82, 94, 106], "summary": {"covered_lines": 16, "num_statements": 30, "percent_covered": 53.333333333333336, "percent_covered_display": "53", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 53.333333333333336, "percent_statements_covered_display": "53"}, "missing_lines": [118, 119, 120, 123, 124, 125, 126, 128, 130, 131, 132, 133, 134, 135], "excluded_lines": [], "start_line": 10}, "": {"executed_lines": [5, 6, 7, 10, 13, 17, 36, 44, 48, 56, 60, 68, 72, 80, 84, 92, 96, 104, 108, 116], "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": 1}}}, "pyPhotoAlbum/mixins/operations/distribution_ops.py": {"executed_lines": [5, 6, 7, 10, 13, 15, 17, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 44, 46, 48, 56, 58, 60, 68, 70, 72, 80, 82], "summary": {"covered_lines": 28, "num_statements": 28, "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": {"DistributionOperationsMixin._get_selected_elements_list": {"executed_lines": [15], "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": 13}, "DistributionOperationsMixin._execute_distribution": {"executed_lines": [25, 26, 27, 29, 30, 31, 32, 33, 34], "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": 17}, "DistributionOperationsMixin.distribute_horizontally": {"executed_lines": [46], "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}, "DistributionOperationsMixin.distribute_vertically": {"executed_lines": [58], "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": 56}, "DistributionOperationsMixin.space_horizontally": {"executed_lines": [70], "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": 68}, "DistributionOperationsMixin.space_vertically": {"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": 80}, "": {"executed_lines": [5, 6, 7, 10, 13, 17, 36, 44, 48, 56, 60, 68, 72, 80], "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": {"DistributionOperationsMixin": {"executed_lines": [15, 25, 26, 27, 29, 30, 31, 32, 33, 34, 46, 58, 70, 82], "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": 10}, "": {"executed_lines": [5, 6, 7, 10, 13, 17, 36, 44, 48, 56, 60, 68, 72, 80], "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}}}, "pyPhotoAlbum/mixins/operations/edit_ops.py": {"executed_lines": [5, 6, 9, 12, 13, 15, 16, 17, 18, 20, 21, 23, 26, 28, 29, 30, 31, 33, 34, 36, 44, 46, 47, 49, 50, 51, 55, 57, 58, 70, 71, 72, 74, 81, 83, 84, 86, 87, 88, 90, 91, 93, 94, 95, 97, 104, 106, 109, 110, 111, 113, 114, 116, 117, 118, 120, 127, 129, 130, 132, 133, 135, 136, 137, 139, 140, 142, 143, 144], "summary": {"covered_lines": 69, "num_statements": 75, "percent_covered": 92.0, "percent_covered_display": "92", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 92.0, "percent_statements_covered_display": "92"}, "missing_lines": [59, 62, 65, 67, 68, 107], "excluded_lines": [], "functions": {"EditOperationsMixin.undo": {"executed_lines": [15, 16, 17, 18, 20, 21], "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": 13}, "EditOperationsMixin.redo": {"executed_lines": [28, 29, 30, 31, 33, 34], "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": 26}, "EditOperationsMixin.delete_selected_element": {"executed_lines": [46, 47, 49, 50, 51, 55, 57, 58, 70, 71, 72], "summary": {"covered_lines": 11, "num_statements": 16, "percent_covered": 68.75, "percent_covered_display": "69", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 68.75, "percent_statements_covered_display": "69"}, "missing_lines": [59, 62, 65, 67, 68], "excluded_lines": [], "start_line": 44}, "EditOperationsMixin.rotate_left": {"executed_lines": [83, 84, 86, 87, 88, 90, 91, 93, 94, 95], "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": 81}, "EditOperationsMixin.rotate_right": {"executed_lines": [106, 109, 110, 111, 113, 114, 116, 117, 118], "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": [107], "excluded_lines": [], "start_line": 104}, "EditOperationsMixin.reset_rotation": {"executed_lines": [129, 130, 132, 133, 135, 136, 137, 139, 140, 142, 143, 144], "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": 127}, "": {"executed_lines": [5, 6, 9, 12, 13, 23, 26, 36, 44, 74, 81, 97, 104, 120, 127], "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": 1}}, "classes": {"EditOperationsMixin": {"executed_lines": [15, 16, 17, 18, 20, 21, 28, 29, 30, 31, 33, 34, 46, 47, 49, 50, 51, 55, 57, 58, 70, 71, 72, 83, 84, 86, 87, 88, 90, 91, 93, 94, 95, 106, 109, 110, 111, 113, 114, 116, 117, 118, 129, 130, 132, 133, 135, 136, 137, 139, 140, 142, 143, 144], "summary": {"covered_lines": 54, "num_statements": 60, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [59, 62, 65, 67, 68, 107], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [5, 6, 9, 12, 13, 23, 26, 36, 44, 74, 81, 97, 104, 120, 127], "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": 1}}}, "pyPhotoAlbum/mixins/operations/element_ops.py": {"executed_lines": [5, 6, 7, 8, 9, 12, 15, 18, 20, 21, 23, 27, 28, 30, 31, 34, 36, 39, 40, 41, 42, 45, 48, 49, 52, 53, 55, 58, 59, 61, 62, 63, 69, 72, 74, 75, 77, 78, 82, 83, 85, 86, 89, 90, 92, 94, 95, 97, 99, 106, 108, 109, 111, 112, 116, 117, 119, 120, 123, 124, 126, 130, 131, 133], "summary": {"covered_lines": 64, "num_statements": 70, "percent_covered": 91.42857142857143, "percent_covered_display": "91", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 91.42857142857143, "percent_statements_covered_display": "91"}, "missing_lines": [32, 65, 66, 67, 79, 113], "excluded_lines": [], "functions": {"ElementOperationsMixin.add_image": {"executed_lines": [20, 21, 23, 27, 28, 30, 31, 34, 36, 39, 40, 41, 42, 45, 48, 49, 52, 53, 55, 58, 59, 61, 62, 63], "summary": {"covered_lines": 24, "num_statements": 28, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [32, 65, 66, 67], "excluded_lines": [], "start_line": 18}, "ElementOperationsMixin.add_text": {"executed_lines": [74, 75, 77, 78, 82, 83, 85, 86, 89, 90, 92, 94, 95, 97], "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": [79], "excluded_lines": [], "start_line": 72}, "ElementOperationsMixin.add_placeholder": {"executed_lines": [108, 109, 111, 112, 116, 117, 119, 120, 123, 124, 126, 130, 131, 133], "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": [113], "excluded_lines": [], "start_line": 106}, "": {"executed_lines": [5, 6, 7, 8, 9, 12, 15, 18, 69, 72, 99, 106], "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": {"ElementOperationsMixin": {"executed_lines": [20, 21, 23, 27, 28, 30, 31, 34, 36, 39, 40, 41, 42, 45, 48, 49, 52, 53, 55, 58, 59, 61, 62, 63, 74, 75, 77, 78, 82, 83, 85, 86, 89, 90, 92, 94, 95, 97, 108, 109, 111, 112, 116, 117, 119, 120, 123, 124, 126, 130, 131, 133], "summary": {"covered_lines": 52, "num_statements": 58, "percent_covered": 89.65517241379311, "percent_covered_display": "90", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 89.65517241379311, "percent_statements_covered_display": "90"}, "missing_lines": [32, 65, 66, 67, 79, 113], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [5, 6, 7, 8, 9, 12, 15, 18, 69, 72, 99, 106], "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}}}, "pyPhotoAlbum/mixins/operations/file_ops.py": {"executed_lines": [5, 6, 8, 9, 26, 27, 28, 29, 30, 31, 32, 33, 36, 43, 44, 47, 51, 55, 59, 63, 64, 67, 68, 69, 71, 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 87, 88, 89, 90, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 120, 121, 122, 124, 125, 126, 128, 129, 130, 132, 133, 135, 136, 139, 140, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 160, 161, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 176, 179, 181, 182, 183, 184, 185, 188, 189, 192, 193, 194, 195, 198, 201, 203, 204, 207, 209, 210, 212, 216, 217, 220, 221, 224, 227, 228, 231, 232, 233, 236, 238, 240, 241, 242, 244, 247, 248, 251, 254, 255, 256, 257, 259, 262, 263, 266, 269, 270, 271, 272, 274, 275, 277, 280, 281, 283, 284, 285, 286, 288, 289, 295, 300, 302, 303, 307, 308, 310, 311, 314, 315, 318, 322, 324, 332, 333, 334, 335, 336, 340, 341, 342, 343, 344, 345, 349, 350, 351, 352, 353, 355, 356, 359, 367, 368, 370, 371, 373, 374, 377, 379, 381, 383, 384, 385, 386, 388, 389, 391, 392, 395, 396, 397, 399, 401, 404, 405, 407, 408, 410, 411, 412, 413, 414, 415, 421, 422, 423, 424, 426, 427, 428, 430, 433, 434, 437, 438, 439, 441, 444, 445, 448, 449, 450, 451, 452, 453, 454, 455, 458, 459, 460, 461, 462, 463, 464, 465, 467, 468, 471, 472, 475, 476, 477, 478, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 492, 493, 496, 497, 499, 500, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 556, 559, 561, 562, 563, 564, 567, 568, 569, 573, 577, 578, 579, 580, 583, 586, 587, 588, 590, 600, 601, 603, 604, 606, 607, 609, 610, 613, 616, 617, 619, 622, 624, 625, 626, 628, 629, 631, 634, 643, 645, 646, 649, 650, 652, 661, 662, 664, 665, 667, 668, 669, 671, 672, 675, 676, 677, 680, 682, 683, 686, 687, 690, 691, 692, 694, 696, 699, 855, 856, 858, 859, 860, 861, 863, 866, 867, 868, 870, 874, 875, 878, 879, 880, 881, 884, 885, 886, 888, 889], "summary": {"covered_lines": 382, "num_statements": 521, "percent_covered": 73.32053742802303, "percent_covered_display": "73", "missing_lines": 139, "excluded_lines": 0, "percent_statements_covered": 73.32053742802303, "percent_statements_covered_display": "73"}, "missing_lines": [53, 57, 61, 117, 118, 296, 297, 325, 326, 327, 328, 329, 330, 337, 338, 346, 347, 501, 502, 505, 506, 507, 508, 509, 510, 511, 512, 513, 516, 517, 519, 520, 521, 522, 524, 525, 526, 527, 529, 530, 531, 532, 534, 535, 536, 537, 538, 540, 541, 570, 571, 572, 574, 584, 608, 701, 702, 705, 706, 707, 708, 709, 711, 714, 715, 716, 717, 720, 721, 723, 724, 727, 728, 731, 732, 734, 737, 738, 741, 744, 745, 746, 748, 751, 752, 755, 756, 757, 760, 761, 765, 768, 769, 770, 771, 772, 776, 779, 780, 781, 782, 783, 786, 787, 788, 789, 790, 791, 793, 794, 795, 796, 798, 800, 801, 804, 805, 808, 810, 812, 814, 815, 816, 817, 818, 819, 821, 824, 825, 828, 829, 830, 831, 833, 835, 838, 841, 849, 853], "excluded_lines": [], "functions": {"FileOperationsMixin.show_status": {"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": [53], "excluded_lines": [], "start_line": 51}, "FileOperationsMixin.show_error": {"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": [57], "excluded_lines": [], "start_line": 55}, "FileOperationsMixin.resolve_asset_path": {"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": [61], "excluded_lines": [], "start_line": 59}, "FileOperationsMixin.new_project": {"executed_lines": [67, 68, 69, 71, 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 87, 88, 89, 90, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 120, 121, 122, 124, 125, 126, 128, 129, 130, 132, 133, 135, 136, 139, 140, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 160, 161, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 176, 179, 181, 182, 183, 184, 185, 188, 189, 192, 193, 194, 195, 198, 201, 203, 204, 207], "summary": {"covered_lines": 96, "num_statements": 96, "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": 64}, "FileOperationsMixin.new_project.set_preset": {"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": [117, 118], "excluded_lines": [], "start_line": 116}, "FileOperationsMixin.open_project": {"executed_lines": [212, 216, 217, 220, 221, 224, 227, 228, 231, 232, 233, 236], "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": 210}, "FileOperationsMixin._on_load_progress": {"executed_lines": [240, 241, 242], "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": 238}, "FileOperationsMixin._on_load_complete": {"executed_lines": [247, 248, 251, 254, 255, 256, 257, 259, 262, 263, 266, 269, 270, 271, 272, 274, 275], "summary": {"covered_lines": 17, "num_statements": 17, "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}, "FileOperationsMixin._on_load_failed": {"executed_lines": [280, 281, 283, 284, 285, 286], "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": 277}, "FileOperationsMixin.save_project": {"executed_lines": [295, 300, 302, 303, 307, 308, 310, 311, 314, 315, 318, 322, 324, 332, 355, 356, 359, 367, 368], "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": [296, 297], "excluded_lines": [], "start_line": 289}, "FileOperationsMixin.save_project._on_progress": {"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": [325, 326, 327, 328, 329, 330], "excluded_lines": [], "start_line": 324}, "FileOperationsMixin.save_project._on_finished": {"executed_lines": [333, 334, 335, 336, 340, 341, 342, 343, 344, 345, 349, 350, 351, 352, 353], "summary": {"covered_lines": 15, "num_statements": 19, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [337, 338, 346, 347], "excluded_lines": [], "start_line": 332}, "FileOperationsMixin.heal_assets": {"executed_lines": [373, 374, 377], "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": 371}, "FileOperationsMixin._check_missing_assets": {"executed_lines": [381, 383, 384, 385, 386, 388, 389, 391, 392, 395, 396, 397], "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": 379}, "FileOperationsMixin._show_missing_assets_warning": {"executed_lines": [401, 404, 405, 407, 408, 410, 411, 412, 413, 414, 415, 421, 422, 423, 424, 426, 427, 428], "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": 399}, "FileOperationsMixin.project_settings": {"executed_lines": [437, 438, 439, 441, 444, 445, 448, 449, 450, 451, 452, 453, 454, 455, 458, 459, 460, 461, 462, 463, 464, 465, 467, 468, 471, 472, 475, 476, 477, 478, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 492, 493, 496, 497, 499, 500, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 556, 559, 561, 562, 563, 564, 567, 568, 569, 573, 577, 578, 579, 580, 583, 586, 587, 588], "summary": {"covered_lines": 74, "num_statements": 111, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 37, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [501, 502, 505, 506, 507, 508, 509, 510, 511, 512, 513, 516, 517, 519, 520, 521, 522, 524, 525, 526, 527, 529, 530, 531, 532, 534, 535, 536, 537, 538, 540, 541, 570, 571, 572, 574, 584], "excluded_lines": [], "start_line": 434}, "FileOperationsMixin._apply_page_size_to_project": {"executed_lines": [600, 601, 603, 604, 606, 607, 609, 610, 613, 616, 617, 619, 622, 624, 625, 626, 628, 629, 631], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.0, "percent_statements_covered_display": "95"}, "missing_lines": [608], "excluded_lines": [], "start_line": 590}, "FileOperationsMixin._scale_page_elements": {"executed_lines": [643, 645, 646, 649, 650], "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": 634}, "FileOperationsMixin._reposition_page_elements": {"executed_lines": [661, 662, 664, 665, 667, 668, 669], "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": 652}, "FileOperationsMixin.export_pdf": {"executed_lines": [675, 676, 677, 680, 682, 683, 686, 687, 690, 691, 692, 694], "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": 672}, "FileOperationsMixin.clean_assets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 72, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 72, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [701, 702, 705, 714, 715, 716, 717, 720, 721, 723, 724, 727, 728, 731, 732, 734, 737, 738, 741, 744, 745, 746, 748, 751, 752, 755, 756, 757, 760, 761, 765, 768, 769, 770, 771, 772, 776, 779, 780, 781, 782, 783, 786, 787, 788, 789, 790, 791, 793, 794, 795, 796, 798, 800, 801, 804, 805, 808, 810, 821, 824, 825, 828, 829, 830, 831, 833, 835, 838, 841, 849, 853], "excluded_lines": [], "start_line": 699}, "FileOperationsMixin.clean_assets.format_bytes": {"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": [706, 707, 708, 709, 711], "excluded_lines": [], "start_line": 705}, "FileOperationsMixin.clean_assets.update_image_references": {"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": [812, 814, 815, 816, 817, 818, 819], "excluded_lines": [], "start_line": 810}, "FileOperationsMixin.show_about": {"executed_lines": [858, 859, 860, 861, 863, 866, 867, 868, 870, 874, 875, 878, 879, 880, 881, 884, 885, 886, 888, 889], "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": 856}, "": {"executed_lines": [5, 6, 8, 9, 26, 27, 28, 29, 30, 31, 32, 33, 36, 43, 44, 47, 51, 55, 59, 63, 64, 209, 210, 238, 244, 277, 288, 289, 370, 371, 379, 399, 430, 433, 434, 590, 634, 652, 671, 672, 696, 699, 855, 856], "summary": {"covered_lines": 44, "num_statements": 44, "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": {"_SaveBridge": {"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": 36}, "FileOperationsMixin": {"executed_lines": [67, 68, 69, 71, 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 87, 88, 89, 90, 93, 94, 95, 96, 97, 98, 99, 100, 103, 104, 105, 106, 107, 108, 109, 110, 113, 114, 116, 120, 121, 122, 124, 125, 126, 128, 129, 130, 132, 133, 135, 136, 139, 140, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 160, 161, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 176, 179, 181, 182, 183, 184, 185, 188, 189, 192, 193, 194, 195, 198, 201, 203, 204, 207, 212, 216, 217, 220, 221, 224, 227, 228, 231, 232, 233, 236, 240, 241, 242, 247, 248, 251, 254, 255, 256, 257, 259, 262, 263, 266, 269, 270, 271, 272, 274, 275, 280, 281, 283, 284, 285, 286, 295, 300, 302, 303, 307, 308, 310, 311, 314, 315, 318, 322, 324, 332, 333, 334, 335, 336, 340, 341, 342, 343, 344, 345, 349, 350, 351, 352, 353, 355, 356, 359, 367, 368, 373, 374, 377, 381, 383, 384, 385, 386, 388, 389, 391, 392, 395, 396, 397, 401, 404, 405, 407, 408, 410, 411, 412, 413, 414, 415, 421, 422, 423, 424, 426, 427, 428, 437, 438, 439, 441, 444, 445, 448, 449, 450, 451, 452, 453, 454, 455, 458, 459, 460, 461, 462, 463, 464, 465, 467, 468, 471, 472, 475, 476, 477, 478, 479, 480, 481, 484, 485, 486, 487, 488, 489, 490, 492, 493, 496, 497, 499, 500, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 556, 559, 561, 562, 563, 564, 567, 568, 569, 573, 577, 578, 579, 580, 583, 586, 587, 588, 600, 601, 603, 604, 606, 607, 609, 610, 613, 616, 617, 619, 622, 624, 625, 626, 628, 629, 631, 643, 645, 646, 649, 650, 661, 662, 664, 665, 667, 668, 669, 675, 676, 677, 680, 682, 683, 686, 687, 690, 691, 692, 694, 858, 859, 860, 861, 863, 866, 867, 868, 870, 874, 875, 878, 879, 880, 881, 884, 885, 886, 888, 889], "summary": {"covered_lines": 338, "num_statements": 477, "percent_covered": 70.85953878406708, "percent_covered_display": "71", "missing_lines": 139, "excluded_lines": 0, "percent_statements_covered": 70.85953878406708, "percent_statements_covered_display": "71"}, "missing_lines": [53, 57, 61, 117, 118, 296, 297, 325, 326, 327, 328, 329, 330, 337, 338, 346, 347, 501, 502, 505, 506, 507, 508, 509, 510, 511, 512, 513, 516, 517, 519, 520, 521, 522, 524, 525, 526, 527, 529, 530, 531, 532, 534, 535, 536, 537, 538, 540, 541, 570, 571, 572, 574, 584, 608, 701, 702, 705, 706, 707, 708, 709, 711, 714, 715, 716, 717, 720, 721, 723, 724, 727, 728, 731, 732, 734, 737, 738, 741, 744, 745, 746, 748, 751, 752, 755, 756, 757, 760, 761, 765, 768, 769, 770, 771, 772, 776, 779, 780, 781, 782, 783, 786, 787, 788, 789, 790, 791, 793, 794, 795, 796, 798, 800, 801, 804, 805, 808, 810, 812, 814, 815, 816, 817, 818, 819, 821, 824, 825, 828, 829, 830, 831, 833, 835, 838, 841, 849, 853], "excluded_lines": [], "start_line": 47}, "": {"executed_lines": [5, 6, 8, 9, 26, 27, 28, 29, 30, 31, 32, 33, 36, 43, 44, 47, 51, 55, 59, 63, 64, 209, 210, 238, 244, 277, 288, 289, 370, 371, 379, 399, 430, 433, 434, 590, 634, 652, 671, 672, 696, 699, 855, 856], "summary": {"covered_lines": 44, "num_statements": 44, "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}}}, "pyPhotoAlbum/mixins/operations/merge_ops.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 19, 25, 33, 34, 41, 42, 43, 45, 46, 49, 53, 54, 56, 58, 59, 62, 64, 67, 68, 71, 72, 74, 79, 81, 82, 85, 86, 88, 91, 92, 94, 96, 103, 104, 107, 110, 112, 113, 114, 117, 120, 122, 130, 132, 142, 143, 146, 149, 151, 157, 160, 161, 164, 167, 170, 173, 174, 175, 177, 178], "summary": {"covered_lines": 70, "num_statements": 71, "percent_covered": 98.59154929577464, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.59154929577464, "percent_statements_covered_display": "99"}, "missing_lines": [76], "excluded_lines": [], "functions": {"MergeOperationsMixin.merge_projects": {"executed_lines": [33, 34, 41, 42, 43, 45, 46, 49, 53, 54, 56, 58, 59, 62, 64, 67, 68, 71, 72, 74, 79, 81, 82, 85, 86], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.15384615384616, "percent_statements_covered_display": "96"}, "missing_lines": [76], "excluded_lines": [], "start_line": 25}, "MergeOperationsMixin._perform_merge_with_conflicts": {"executed_lines": [91, 92, 94, 96, 103, 104, 107, 110, 112, 113, 114, 117, 120, 122], "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": 88}, "MergeOperationsMixin._perform_concatenation": {"executed_lines": [132, 142, 143, 146, 149, 151], "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": 130}, "MergeOperationsMixin._apply_merged_data": {"executed_lines": [160, 161, 164, 167, 170, 173, 174, 175, 177, 178], "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": 157}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 19, 25, 88, 130, 157], "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": 1}}, "classes": {"MergeOperationsMixin": {"executed_lines": [33, 34, 41, 42, 43, 45, 46, 49, 53, 54, 56, 58, 59, 62, 64, 67, 68, 71, 72, 74, 79, 81, 82, 85, 86, 91, 92, 94, 96, 103, 104, 107, 110, 112, 113, 114, 117, 120, 122, 132, 142, 143, 146, 149, 151, 160, 161, 164, 167, 170, 173, 174, 175, 177, 178], "summary": {"covered_lines": 55, "num_statements": 56, "percent_covered": 98.21428571428571, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.21428571428571, "percent_statements_covered_display": "98"}, "missing_lines": [76], "excluded_lines": [], "start_line": 16}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 19, 25, 88, 130, 157], "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": 1}}}, "pyPhotoAlbum/mixins/operations/page_ops.py": {"executed_lines": [5, 6, 7, 8, 11, 17, 18, 21, 24, 25, 28, 31, 32, 36, 38, 39, 41, 42, 44, 49, 51, 53, 56, 60, 61, 62, 63, 65, 68, 69, 71, 72, 73, 83, 84, 87, 88, 91, 92, 93, 95, 96, 97, 99, 101, 102, 109, 110, 113, 116, 117, 122, 123, 125, 127, 128, 129, 130, 135, 136, 138, 140, 141, 142, 143, 148, 149, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 167, 168, 170, 173, 174, 175, 177, 178, 179, 180, 182, 185, 187, 188, 191, 194, 195, 197, 200, 201, 204, 207, 208, 211, 212, 218, 219, 220, 221, 224, 226, 227, 228, 229, 231, 232, 234, 235, 236, 237, 240, 243, 246, 247, 250, 254, 255, 256, 257, 260, 262], "summary": {"covered_lines": 130, "num_statements": 135, "percent_covered": 96.29629629629629, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 96.29629629629629, "percent_statements_covered_display": "96"}, "missing_lines": [46, 105, 106, 215, 244], "excluded_lines": [], "functions": {"PageOperationsMixin.add_page": {"executed_lines": [21, 24, 25, 28, 31, 32, 36, 38, 39, 41, 42, 44, 49, 51, 53, 56, 60, 61, 62, 63, 65, 68, 69], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.83333333333333, "percent_statements_covered_display": "96"}, "missing_lines": [46], "excluded_lines": [], "start_line": 18}, "PageOperationsMixin.page_setup": {"executed_lines": [83, 84, 87, 88, 91, 92, 93, 95, 96, 97, 99, 101, 102, 109, 110, 113, 116, 117, 122, 123, 125, 127, 128, 129, 130, 135, 136, 138, 140, 141, 142, 143, 148, 149, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 167, 168, 170, 173, 174, 175, 177, 178, 179, 180], "summary": {"covered_lines": 56, "num_statements": 58, "percent_covered": 96.55172413793103, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.55172413793103, "percent_statements_covered_display": "97"}, "missing_lines": [105, 106], "excluded_lines": [], "start_line": 73}, "PageOperationsMixin.toggle_double_spread": {"executed_lines": [187, 188, 191, 194, 195, 197, 200, 201, 204, 207, 208, 211, 212, 218, 219, 220, 221, 224, 226, 227, 228, 229], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.65217391304348, "percent_statements_covered_display": "96"}, "missing_lines": [215], "excluded_lines": [], "start_line": 185}, "PageOperationsMixin.remove_page": {"executed_lines": [234, 235, 236, 237, 240, 243, 246, 247, 250, 254, 255, 256, 257, 260, 262], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [244], "excluded_lines": [], "start_line": 232}, "": {"executed_lines": [5, 6, 7, 8, 11, 17, 18, 71, 72, 73, 182, 185, 231, 232], "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": {"PageOperationsMixin": {"executed_lines": [21, 24, 25, 28, 31, 32, 36, 38, 39, 41, 42, 44, 49, 51, 53, 56, 60, 61, 62, 63, 65, 68, 69, 83, 84, 87, 88, 91, 92, 93, 95, 96, 97, 99, 101, 102, 109, 110, 113, 116, 117, 122, 123, 125, 127, 128, 129, 130, 135, 136, 138, 140, 141, 142, 143, 148, 149, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 167, 168, 170, 173, 174, 175, 177, 178, 179, 180, 187, 188, 191, 194, 195, 197, 200, 201, 204, 207, 208, 211, 212, 218, 219, 220, 221, 224, 226, 227, 228, 229, 234, 235, 236, 237, 240, 243, 246, 247, 250, 254, 255, 256, 257, 260, 262], "summary": {"covered_lines": 116, "num_statements": 121, "percent_covered": 95.86776859504133, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 95.86776859504133, "percent_statements_covered_display": "96"}, "missing_lines": [46, 105, 106, 215, 244], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [5, 6, 7, 8, 11, 17, 18, 71, 72, 73, 182, 185, 231, 232], "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}}}, "pyPhotoAlbum/mixins/operations/size_ops.py": {"executed_lines": [5, 6, 7, 10, 13, 15, 17, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 44, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 59, 61, 69, 71, 73, 81, 83, 85, 93, 95, 97, 105, 107, 112, 120, 122, 127, 135, 137, 142, 150, 152, 153, 155, 156, 157, 158, 161, 164, 167, 170, 171, 173, 174, 175, 176, 177], "summary": {"covered_lines": 65, "num_statements": 66, "percent_covered": 98.48484848484848, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.48484848484848, "percent_statements_covered_display": "98"}, "missing_lines": [45], "excluded_lines": [], "functions": {"SizeOperationsMixin._get_selected_elements_list": {"executed_lines": [15], "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": 13}, "SizeOperationsMixin._execute_resize": {"executed_lines": [25, 26, 27, 29, 30, 31, 32, 33, 34], "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": 17}, "SizeOperationsMixin._execute_fit_to_page": {"executed_lines": [44, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 59], "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": [45], "excluded_lines": [], "start_line": 36}, "SizeOperationsMixin.make_same_size": {"executed_lines": [71], "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": 69}, "SizeOperationsMixin.make_same_width": {"executed_lines": [83], "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": 81}, "SizeOperationsMixin.make_same_height": {"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": 93}, "SizeOperationsMixin.fit_to_width": {"executed_lines": [107], "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": 105}, "SizeOperationsMixin.fit_to_height": {"executed_lines": [122], "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": 120}, "SizeOperationsMixin.fit_to_page": {"executed_lines": [137], "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": 135}, "SizeOperationsMixin.expand_image": {"executed_lines": [152, 153, 155, 156, 157, 158, 161, 164, 167, 170, 171, 173, 174, 175, 176, 177], "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": 150}, "": {"executed_lines": [5, 6, 7, 10, 13, 17, 36, 61, 69, 73, 81, 85, 93, 97, 105, 112, 120, 127, 135, 142, 150], "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": {"SizeOperationsMixin": {"executed_lines": [15, 25, 26, 27, 29, 30, 31, 32, 33, 34, 44, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 59, 71, 83, 95, 107, 122, 137, 152, 153, 155, 156, 157, 158, 161, 164, 167, 170, 171, 173, 174, 175, 176, 177], "summary": {"covered_lines": 44, "num_statements": 45, "percent_covered": 97.77777777777777, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.77777777777777, "percent_statements_covered_display": "98"}, "missing_lines": [45], "excluded_lines": [], "start_line": 10}, "": {"executed_lines": [5, 6, 7, 10, 13, 17, 36, 61, 69, 73, 81, 85, 93, 97, 105, 112, 120, 127, 135, 142, 150], "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}}}, "pyPhotoAlbum/mixins/operations/style_ops.py": {"executed_lines": [11, 12, 15, 18, 24, 98, 105, 125, 132, 143, 150, 172, 179, 190, 197, 227, 234, 253, 260, 274, 281, 294, 301, 322, 329, 358, 365], "summary": {"covered_lines": 27, "num_statements": 166, "percent_covered": 16.265060240963855, "percent_covered_display": "16", "missing_lines": 139, "excluded_lines": 0, "percent_statements_covered": 16.265060240963855, "percent_statements_covered_display": "16"}, "missing_lines": [20, 21, 22, 32, 33, 34, 35, 38, 41, 43, 44, 45, 46, 47, 49, 52, 53, 55, 57, 58, 60, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 91, 92, 107, 108, 109, 110, 112, 115, 117, 118, 119, 120, 134, 152, 153, 154, 155, 157, 160, 162, 163, 164, 166, 167, 168, 170, 181, 199, 200, 201, 202, 204, 207, 209, 216, 217, 219, 220, 221, 222, 223, 225, 236, 237, 238, 239, 242, 244, 263, 264, 265, 266, 267, 268, 269, 270, 272, 284, 285, 286, 287, 288, 289, 290, 292, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 316, 331, 332, 333, 334, 336, 339, 341, 347, 348, 350, 351, 352, 353, 355, 356, 368, 369, 370, 371, 373], "excluded_lines": [], "functions": {"StyleOperationsMixin._get_selected_images": {"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": [20, 21, 22], "excluded_lines": [], "start_line": 18}, "StyleOperationsMixin._apply_style_change": {"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": [32, 33, 34, 35, 38, 41, 43, 44, 49, 66, 71, 76, 79, 83, 84, 88, 89, 91, 92], "excluded_lines": [], "start_line": 24}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand.__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": [45, 46, 47], "excluded_lines": [], "start_line": 44}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand._invalidate_texture": {"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, 53, 55, 57, 58, 60, 61, 62, 63, 64], "excluded_lines": [], "start_line": 49}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand.execute": {"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, 69], "excluded_lines": [], "start_line": 66}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand.undo": {"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": [72, 73, 74], "excluded_lines": [], "start_line": 71}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand.redo": {"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": [77], "excluded_lines": [], "start_line": 76}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand.serialize": {"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": [81], "excluded_lines": [], "start_line": 79}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand.deserialize": {"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": [86], "excluded_lines": [], "start_line": 84}, "StyleOperationsMixin.show_corner_radius_dialog": {"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": [107, 108, 109, 110, 112, 115, 117, 118, 119, 120], "excluded_lines": [], "start_line": 105}, "StyleOperationsMixin.remove_corner_radius": {"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": [134], "excluded_lines": [], "start_line": 132}, "StyleOperationsMixin.show_border_dialog": {"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": [152, 153, 154, 155, 157, 160, 162, 163, 164, 166, 170], "excluded_lines": [], "start_line": 150}, "StyleOperationsMixin.show_border_dialog.update_border": {"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": [167, 168], "excluded_lines": [], "start_line": 166}, "StyleOperationsMixin.remove_border": {"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": [181], "excluded_lines": [], "start_line": 179}, "StyleOperationsMixin.show_shadow_dialog": {"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": [199, 200, 201, 202, 204, 207, 209, 216, 217, 219, 225], "excluded_lines": [], "start_line": 197}, "StyleOperationsMixin.show_shadow_dialog.update_shadow": {"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": [220, 221, 222, 223], "excluded_lines": [], "start_line": 219}, "StyleOperationsMixin.toggle_shadow": {"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": [236, 237, 238, 239, 242, 244], "excluded_lines": [], "start_line": 234}, "StyleOperationsMixin.apply_polaroid_style": {"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": [263, 272], "excluded_lines": [], "start_line": 260}, "StyleOperationsMixin.apply_polaroid_style.apply_preset": {"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": [264, 265, 266, 267, 268, 269, 270], "excluded_lines": [], "start_line": 263}, "StyleOperationsMixin.apply_rounded_style": {"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": [284, 292], "excluded_lines": [], "start_line": 281}, "StyleOperationsMixin.apply_rounded_style.apply_preset": {"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": [285, 286, 287, 288, 289, 290], "excluded_lines": [], "start_line": 284}, "StyleOperationsMixin.clear_style": {"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": [304, 316], "excluded_lines": [], "start_line": 301}, "StyleOperationsMixin.clear_style.clear_all": {"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": [305, 306, 307, 308, 309, 310, 311, 312, 313, 314], "excluded_lines": [], "start_line": 304}, "StyleOperationsMixin.show_frame_picker": {"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": [331, 332, 333, 334, 336, 339, 341, 347, 348, 350, 355, 356], "excluded_lines": [], "start_line": 329}, "StyleOperationsMixin.show_frame_picker.update_frame": {"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": [351, 352, 353], "excluded_lines": [], "start_line": 350}, "StyleOperationsMixin.remove_frame": {"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": [368, 373], "excluded_lines": [], "start_line": 365}, "StyleOperationsMixin.remove_frame.clear_frame": {"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": [369, 370, 371], "excluded_lines": [], "start_line": 368}, "": {"executed_lines": [11, 12, 15, 18, 24, 98, 105, 125, 132, 143, 150, 172, 179, 190, 197, 227, 234, 253, 260, 274, 281, 294, 301, 322, 329, 358, 365], "summary": {"covered_lines": 27, "num_statements": 27, "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": {"StyleOperationsMixin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 117, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 117, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [20, 21, 22, 32, 33, 34, 35, 38, 41, 43, 44, 49, 66, 71, 76, 79, 83, 84, 88, 89, 91, 92, 107, 108, 109, 110, 112, 115, 117, 118, 119, 120, 134, 152, 153, 154, 155, 157, 160, 162, 163, 164, 166, 167, 168, 170, 181, 199, 200, 201, 202, 204, 207, 209, 216, 217, 219, 220, 221, 222, 223, 225, 236, 237, 238, 239, 242, 244, 263, 264, 265, 266, 267, 268, 269, 270, 272, 284, 285, 286, 287, 288, 289, 290, 292, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 316, 331, 332, 333, 334, 336, 339, 341, 347, 348, 350, 351, 352, 353, 355, 356, 368, 369, 370, 371, 373], "excluded_lines": [], "start_line": 15}, "StyleOperationsMixin._apply_style_change.StyleChangeCommand": {"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": [45, 46, 47, 52, 53, 55, 57, 58, 60, 61, 62, 63, 64, 67, 68, 69, 72, 73, 74, 77, 81, 86], "excluded_lines": [], "start_line": 43}, "": {"executed_lines": [11, 12, 15, 18, 24, 98, 105, 125, 132, 143, 150, 172, 179, 190, 197, 227, 234, 253, 260, 274, 281, 294, 301, 322, 329, 358, 365], "summary": {"covered_lines": 27, "num_statements": 27, "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}}}, "pyPhotoAlbum/mixins/operations/template_ops.py": {"executed_lines": [5, 17, 20, 23, 30, 32, 33, 34, 37, 38, 39, 42, 49, 50, 53, 55, 56, 58, 60, 63, 65, 67, 69, 70, 71, 73, 76, 79, 81, 82, 85, 88, 89, 90, 92, 95, 96, 97, 98, 100, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 119, 120, 122, 123, 124, 126, 127, 128, 129, 131, 132, 133, 135, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 150, 153, 154, 157, 158, 159, 160, 162, 164, 167, 168, 177, 180, 181, 183, 184, 186, 187, 188, 190, 197, 198, 200, 201, 202, 205, 207, 208, 211, 214, 215, 216, 218, 221, 222, 223, 224, 226, 229, 230, 232, 233, 234, 235, 236, 238, 239, 240, 241, 243, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 262, 263, 265, 266, 267, 269, 270, 271, 272, 274, 275, 276, 278, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 293, 296, 297, 300, 301, 302, 303, 305, 306, 308, 310, 313, 318, 320, 321, 323, 324, 325], "summary": {"covered_lines": 180, "num_statements": 180, "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": {"TemplateOperationsMixin.save_page_as_template": {"executed_lines": [32, 33, 34, 37, 38, 39, 42, 49, 50, 53, 55, 56, 58, 60, 63, 65, 67, 69, 70, 71], "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": 30}, "TemplateOperationsMixin.new_page_from_template": {"executed_lines": [79, 81, 82, 85, 88, 89, 90, 92, 95, 96, 97, 98, 100, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 119, 120, 122, 123, 124, 126, 127, 128, 129, 131, 132, 133, 135, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 150, 153, 154, 157, 158, 159, 160, 162, 164, 167, 168, 177, 180, 181, 183, 184, 186, 187, 188], "summary": {"covered_lines": 68, "num_statements": 68, "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": 76}, "TemplateOperationsMixin.apply_template_to_page": {"executed_lines": [200, 201, 202, 205, 207, 208, 211, 214, 215, 216, 218, 221, 222, 223, 224, 226, 229, 230, 232, 233, 234, 235, 236, 238, 239, 240, 241, 243, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 262, 263, 265, 266, 267, 269, 270, 271, 272, 274, 275, 276, 278, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 293, 296, 297, 300, 301, 302, 303, 305, 306, 308, 310, 313, 318, 320, 321, 323, 324, 325], "summary": {"covered_lines": 82, "num_statements": 82, "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": 198}, "": {"executed_lines": [5, 17, 20, 23, 30, 73, 76, 190, 197, 198], "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": {"TemplateOperationsMixin": {"executed_lines": [32, 33, 34, 37, 38, 39, 42, 49, 50, 53, 55, 56, 58, 60, 63, 65, 67, 69, 70, 71, 79, 81, 82, 85, 88, 89, 90, 92, 95, 96, 97, 98, 100, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 119, 120, 122, 123, 124, 126, 127, 128, 129, 131, 132, 133, 135, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 150, 153, 154, 157, 158, 159, 160, 162, 164, 167, 168, 177, 180, 181, 183, 184, 186, 187, 188, 200, 201, 202, 205, 207, 208, 211, 214, 215, 216, 218, 221, 222, 223, 224, 226, 229, 230, 232, 233, 234, 235, 236, 238, 239, 240, 241, 243, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 259, 262, 263, 265, 266, 267, 269, 270, 271, 272, 274, 275, 276, 278, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 293, 296, 297, 300, 301, 302, 303, 305, 306, 308, 310, 313, 318, 320, 321, 323, 324, 325], "summary": {"covered_lines": 170, "num_statements": 170, "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}, "": {"executed_lines": [5, 17, 20, 23, 30, 73, 76, 190, 197, 198], "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}}}, "pyPhotoAlbum/mixins/operations/view_ops.py": {"executed_lines": [5, 6, 9, 12, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 30, 31, 33, 34, 36, 37, 38, 41, 42, 43, 46, 47, 50, 51, 53, 54, 55, 56, 58, 65, 67, 68, 70, 72, 73, 74, 75, 77, 84, 86, 89, 91, 92, 93, 94, 96, 97, 99, 102, 104, 105, 106, 107, 109, 110, 122, 125, 140, 143, 145, 146, 148, 150, 151, 152, 154, 155, 157, 160, 162, 163, 164, 165, 167, 168, 170, 171, 172, 175, 176, 178, 179, 180, 182, 183, 185, 186, 187, 190, 191, 193, 194, 195, 197, 198, 200, 201, 202, 204, 205, 207, 208, 209, 211, 218, 228, 231, 233, 235, 236, 239, 240, 241, 243, 246, 247, 249, 250, 251, 252, 253, 254, 255, 257, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 286, 289], "summary": {"covered_lines": 153, "num_statements": 185, "percent_covered": 82.70270270270271, "percent_covered_display": "83", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 82.70270270270271, "percent_statements_covered_display": "83"}, "missing_lines": [87, 100, 112, 113, 115, 117, 118, 119, 120, 127, 128, 130, 131, 132, 133, 134, 135, 136, 158, 220, 221, 222, 223, 225, 226, 290, 291, 293, 294, 296, 297, 298], "excluded_lines": [], "functions": {"ViewOperationsMixin.zoom_in": {"executed_lines": [15, 16, 17, 18, 19], "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": 13}, "ViewOperationsMixin.zoom_out": {"executed_lines": [24, 25, 26, 27, 28], "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": 22}, "ViewOperationsMixin.zoom_fit": {"executed_lines": [33, 34, 36, 37, 38, 41, 42, 43, 46, 47, 50, 51, 53, 54, 55, 56], "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": 31}, "ViewOperationsMixin.toggle_grid_snap": {"executed_lines": [67, 68, 70, 72, 73, 74, 75], "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": 65}, "ViewOperationsMixin.toggle_edge_snap": {"executed_lines": [86, 89, 91, 92, 93, 94], "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": [87], "excluded_lines": [], "start_line": 84}, "ViewOperationsMixin.toggle_guide_snap": {"executed_lines": [99, 102, 104, 105, 106, 107], "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": [100], "excluded_lines": [], "start_line": 97}, "ViewOperationsMixin.toggle_show_grid": {"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": [112, 113, 115, 117, 118, 119, 120], "excluded_lines": [], "start_line": 110}, "ViewOperationsMixin.open_print_settings": {"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": [127, 128, 130, 131, 132, 133, 134, 135, 136], "excluded_lines": [], "start_line": 125}, "ViewOperationsMixin.toggle_print_guides": {"executed_lines": [145, 146, 148, 150, 151, 152], "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": 143}, "ViewOperationsMixin.toggle_snap_lines": {"executed_lines": [157, 160, 162, 163, 164, 165], "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": 155}, "ViewOperationsMixin.add_horizontal_guide": {"executed_lines": [170, 171, 172, 175, 176, 178, 179, 180], "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": 168}, "ViewOperationsMixin.add_vertical_guide": {"executed_lines": [185, 186, 187, 190, 191, 193, 194, 195], "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": 183}, "ViewOperationsMixin.clear_guides": {"executed_lines": [200, 201, 202, 204, 205, 207, 208, 209], "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": 198}, "ViewOperationsMixin.toggle_image_browser": {"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": [220, 221, 222, 223, 225, 226], "excluded_lines": [], "start_line": 218}, "ViewOperationsMixin.set_grid_size": {"executed_lines": [233, 235, 236, 239, 240, 241, 243, 246, 247, 249, 250, 251, 252, 253, 254, 255, 257, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 286, 289], "summary": {"covered_lines": 39, "num_statements": 46, "percent_covered": 84.78260869565217, "percent_covered_display": "85", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 84.78260869565217, "percent_statements_covered_display": "85"}, "missing_lines": [290, 291, 293, 294, 296, 297, 298], "excluded_lines": [], "start_line": 231}, "": {"executed_lines": [5, 6, 9, 12, 13, 21, 22, 30, 31, 58, 65, 77, 84, 96, 97, 109, 110, 122, 125, 140, 143, 154, 155, 167, 168, 182, 183, 197, 198, 211, 218, 228, 231], "summary": {"covered_lines": 33, "num_statements": 33, "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": {"ViewOperationsMixin": {"executed_lines": [15, 16, 17, 18, 19, 24, 25, 26, 27, 28, 33, 34, 36, 37, 38, 41, 42, 43, 46, 47, 50, 51, 53, 54, 55, 56, 67, 68, 70, 72, 73, 74, 75, 86, 89, 91, 92, 93, 94, 99, 102, 104, 105, 106, 107, 145, 146, 148, 150, 151, 152, 157, 160, 162, 163, 164, 165, 170, 171, 172, 175, 176, 178, 179, 180, 185, 186, 187, 190, 191, 193, 194, 195, 200, 201, 202, 204, 205, 207, 208, 209, 233, 235, 236, 239, 240, 241, 243, 246, 247, 249, 250, 251, 252, 253, 254, 255, 257, 260, 261, 263, 264, 265, 266, 267, 268, 269, 271, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 286, 289], "summary": {"covered_lines": 120, "num_statements": 152, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [87, 100, 112, 113, 115, 117, 118, 119, 120, 127, 128, 130, 131, 132, 133, 134, 135, 136, 158, 220, 221, 222, 223, 225, 226, 290, 291, 293, 294, 296, 297, 298], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [5, 6, 9, 12, 13, 21, 22, 30, 31, 58, 65, 77, 84, 96, 97, 109, 110, 122, 125, 140, 143, 154, 155, 167, 168, 182, 183, 197, 198, 211, 218, 228, 231], "summary": {"covered_lines": 33, "num_statements": 33, "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}}}, "pyPhotoAlbum/mixins/operations/zorder_ops.py": {"executed_lines": [5, 6, 9, 12, 20, 22, 23, 25, 26, 27, 29, 30, 32, 35, 36, 38, 39, 40, 43, 44, 46, 47, 48, 50, 58, 60, 61, 63, 64, 67, 68, 70, 73, 74, 76, 77, 78, 81, 82, 84, 85, 86, 88, 96, 98, 101, 102, 105, 106, 108, 111, 112, 114, 115, 116, 119, 120, 122, 123, 124, 126, 134, 136, 139, 140, 143, 144, 146, 149, 150, 152, 153, 154, 157, 158, 160, 161, 162, 164, 173, 175, 176, 177, 179, 180, 181, 183, 184, 187, 188, 189, 190, 191, 192, 195, 197, 198, 199], "summary": {"covered_lines": 98, "num_statements": 107, "percent_covered": 91.58878504672897, "percent_covered_display": "92", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 91.58878504672897, "percent_statements_covered_display": "92"}, "missing_lines": [33, 65, 71, 99, 103, 109, 137, 141, 147], "excluded_lines": [], "functions": {"ZOrderOperationsMixin.bring_to_front": {"executed_lines": [22, 23, 25, 26, 27, 29, 30, 32, 35, 36, 38, 39, 40, 43, 44, 46, 47, 48], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [33], "excluded_lines": [], "start_line": 20}, "ZOrderOperationsMixin.send_to_back": {"executed_lines": [60, 61, 63, 64, 67, 68, 70, 73, 74, 76, 77, 78, 81, 82, 84, 85, 86], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [65, 71], "excluded_lines": [], "start_line": 58}, "ZOrderOperationsMixin.bring_forward": {"executed_lines": [98, 101, 102, 105, 106, 108, 111, 112, 114, 115, 116, 119, 120, 122, 123, 124], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 84.21052631578948, "percent_statements_covered_display": "84"}, "missing_lines": [99, 103, 109], "excluded_lines": [], "start_line": 96}, "ZOrderOperationsMixin.send_backward": {"executed_lines": [136, 139, 140, 143, 144, 146, 149, 150, 152, 153, 154, 157, 158, 160, 161, 162], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 84.21052631578948, "percent_statements_covered_display": "84"}, "missing_lines": [137, 141, 147], "excluded_lines": [], "start_line": 134}, "ZOrderOperationsMixin.swap_order": {"executed_lines": [175, 176, 177, 179, 180, 181, 183, 184, 187, 188, 189, 190, 191, 192, 195, 197, 198, 199], "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": 173}, "": {"executed_lines": [5, 6, 9, 12, 20, 50, 58, 88, 96, 126, 134, 164, 173], "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": {"ZOrderOperationsMixin": {"executed_lines": [22, 23, 25, 26, 27, 29, 30, 32, 35, 36, 38, 39, 40, 43, 44, 46, 47, 48, 60, 61, 63, 64, 67, 68, 70, 73, 74, 76, 77, 78, 81, 82, 84, 85, 86, 98, 101, 102, 105, 106, 108, 111, 112, 114, 115, 116, 119, 120, 122, 123, 124, 136, 139, 140, 143, 144, 146, 149, 150, 152, 153, 154, 157, 158, 160, 161, 162, 175, 176, 177, 179, 180, 181, 183, 184, 187, 188, 189, 190, 191, 192, 195, 197, 198, 199], "summary": {"covered_lines": 85, "num_statements": 94, "percent_covered": 90.42553191489361, "percent_covered_display": "90", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 90.42553191489361, "percent_statements_covered_display": "90"}, "missing_lines": [33, 65, 71, 99, 103, 109, 137, 141, 147], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [5, 6, 9, 12, 20, 50, 58, 88, 96, 126, 134, 164, 173], "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}}}, "pyPhotoAlbum/mixins/page_navigation.py": {"executed_lines": [5, 11, 13, 14, 16, 18, 20, 22, 24, 31, 32, 35, 38, 40, 51, 52, 54, 55, 56, 59, 60, 62, 63, 65, 67, 75, 76, 77, 79, 80, 81, 83, 84, 86, 90, 91, 94, 95, 97, 98, 101, 102, 114, 116, 117, 119, 123, 124, 127, 129, 131, 132, 135, 136, 139, 142, 144, 146, 157, 160, 161, 162, 165, 168, 170, 173, 174, 177, 178, 179, 181, 183, 193, 196, 198, 201, 202, 205, 206, 214, 217, 218, 220, 221, 222, 224, 226, 234, 235, 236, 238, 242, 245, 247, 249, 251, 259, 260, 263, 264, 265], "summary": {"covered_lines": 101, "num_statements": 116, "percent_covered": 87.06896551724138, "percent_covered_display": "87", "missing_lines": 15, "excluded_lines": 2, "percent_statements_covered": 87.06896551724138, "percent_statements_covered_display": "87"}, "missing_lines": [82, 103, 106, 107, 110, 111, 158, 171, 239, 252, 253, 254, 255, 257, 269], "excluded_lines": [7, 8], "functions": {"PageNavigationMixin.update": {"executed_lines": [18], "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": 16}, "PageNavigationMixin.window": {"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}, "PageNavigationMixin.__init__": {"executed_lines": [32, 35, 38], "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": 31}, "PageNavigationMixin._get_page_at": {"executed_lines": [51, 52, 54, 55, 56, 59, 60, 62, 63, 65], "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": 40}, "PageNavigationMixin._get_page_positions": {"executed_lines": [75, 76, 77, 79, 80, 81, 83, 84, 86, 90, 91, 94, 95, 97, 98, 101, 102, 114, 116, 117, 119, 123, 124, 127, 129, 131, 132, 135, 136, 139, 142, 144], "summary": {"covered_lines": 32, "num_statements": 38, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 84.21052631578948, "percent_statements_covered_display": "84"}, "missing_lines": [82, 103, 106, 107, 110, 111], "excluded_lines": [], "start_line": 67}, "PageNavigationMixin._check_ghost_page_click": {"executed_lines": [157, 160, 161, 162, 165, 168, 170, 173, 174, 177, 178, 179, 181, 183, 193, 196, 198, 201, 202, 205, 206, 214, 217, 218, 220, 221, 222, 224], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.33333333333333, "percent_statements_covered_display": "93"}, "missing_lines": [158, 171], "excluded_lines": [], "start_line": 146}, "PageNavigationMixin._update_page_status": {"executed_lines": [234, 235, 236, 238, 242, 245, 247, 249, 251, 259, 260, 263, 264, 265], "summary": {"covered_lines": 14, "num_statements": 21, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [239, 252, 253, 254, 255, 257, 269], "excluded_lines": [], "start_line": 226}, "": {"executed_lines": [5, 11, 13, 14, 16, 20, 24, 31, 40, 67, 146, 226], "summary": {"covered_lines": 12, "num_statements": 12, "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": [7, 8], "start_line": 1}}, "classes": {"PageNavigationMixin": {"executed_lines": [18, 22, 32, 35, 38, 51, 52, 54, 55, 56, 59, 60, 62, 63, 65, 75, 76, 77, 79, 80, 81, 83, 84, 86, 90, 91, 94, 95, 97, 98, 101, 102, 114, 116, 117, 119, 123, 124, 127, 129, 131, 132, 135, 136, 139, 142, 144, 157, 160, 161, 162, 165, 168, 170, 173, 174, 177, 178, 179, 181, 183, 193, 196, 198, 201, 202, 205, 206, 214, 217, 218, 220, 221, 222, 224, 234, 235, 236, 238, 242, 245, 247, 249, 251, 259, 260, 263, 264, 265], "summary": {"covered_lines": 89, "num_statements": 104, "percent_covered": 85.57692307692308, "percent_covered_display": "86", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 85.57692307692308, "percent_statements_covered_display": "86"}, "missing_lines": [82, 103, 106, 107, 110, 111, 158, 171, 239, 252, 253, 254, 255, 257, 269], "excluded_lines": [], "start_line": 11}, "": {"executed_lines": [5, 11, 13, 14, 16, 20, 24, 31, 40, 67, 146, 226], "summary": {"covered_lines": 12, "num_statements": 12, "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": [7, 8], "start_line": 1}}}, "pyPhotoAlbum/mixins/rendering.py": {"executed_lines": [5, 7, 8, 9, 10, 13, 21, 23, 25, 26, 29, 30, 32, 34, 37, 38, 39, 40, 41, 42, 48, 49, 50, 51, 54, 57, 60, 63, 66, 69, 70, 71, 73, 74, 75, 77, 78, 80, 89, 91, 93, 94, 95, 98, 100, 121, 122, 123, 124, 125, 126, 129, 130, 134, 136, 138, 139, 141, 142, 143, 145, 146, 148, 150, 151, 152, 154, 155, 156, 158, 159, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 211, 218, 219, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 236, 238, 239, 241, 242, 243, 245, 246, 247, 249, 250, 251, 253, 254, 256, 257, 258, 260, 262, 263, 264, 266, 267, 270, 271, 274, 275, 276, 278, 279, 280, 281, 283, 285, 286, 287, 288, 289, 290, 291, 293, 295, 297, 300, 302, 304, 305, 306, 308, 309, 310, 312, 313, 315, 318, 319, 320, 322, 323, 324, 326, 327, 329, 332, 334, 344, 345], "summary": {"covered_lines": 196, "num_statements": 241, "percent_covered": 81.32780082987551, "percent_covered_display": "81", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 81.32780082987551, "percent_statements_covered_display": "81"}, "missing_lines": [35, 43, 45, 55, 102, 103, 104, 106, 107, 109, 118, 268, 347, 348, 350, 351, 353, 354, 355, 356, 357, 358, 361, 362, 364, 366, 367, 368, 369, 370, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 395, 396, 399, 400, 410], "excluded_lines": [], "functions": {"RenderingMixin.paintGL": {"executed_lines": [23, 25, 26, 29, 30, 32, 34, 37, 38, 39, 40, 41, 42, 48, 49, 50, 51, 54, 57, 60, 63, 66, 69, 70, 71, 73, 74, 75, 77, 78, 80, 89, 91, 93, 94, 95, 98, 100, 121, 122, 123, 124, 125, 126, 129, 130, 134], "summary": {"covered_lines": 47, "num_statements": 58, "percent_covered": 81.03448275862068, "percent_covered_display": "81", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 81.03448275862068, "percent_statements_covered_display": "81"}, "missing_lines": [35, 43, 45, 55, 102, 103, 104, 106, 107, 109, 118], "excluded_lines": [], "start_line": 21}, "RenderingMixin._draw_selection_handles": {"executed_lines": [138, 139, 141, 142, 143, 145, 146, 148, 150, 151, 152, 154, 155, 156, 158, 159, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 211, 218, 219, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234], "summary": {"covered_lines": 74, "num_statements": 74, "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}, "RenderingMixin._render_text_overlays": {"executed_lines": [238, 239, 241, 242, 243, 245, 246, 247, 249, 250, 251, 253, 254, 256, 257, 258, 260, 262, 263, 264, 266, 267, 270, 271, 274, 275, 276, 278, 279, 280, 281, 283, 285, 286, 287, 288, 289, 290, 291, 293, 295, 297, 300], "summary": {"covered_lines": 43, "num_statements": 44, "percent_covered": 97.72727272727273, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.72727272727273, "percent_statements_covered_display": "98"}, "missing_lines": [268], "excluded_lines": [], "start_line": 236}, "RenderingMixin._render_ghost_page": {"executed_lines": [304, 305, 306, 308, 309, 310, 312, 313, 315, 318, 319, 320, 322, 323, 324, 326, 327, 329, 332], "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": 302}, "RenderingMixin._draw_page_print_guides": {"executed_lines": [344, 345], "summary": {"covered_lines": 2, "num_statements": 23, "percent_covered": 8.695652173913043, "percent_covered_display": "9", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 8.695652173913043, "percent_statements_covered_display": "9"}, "missing_lines": [347, 348, 350, 351, 353, 354, 355, 356, 357, 358, 361, 362, 364, 366, 382, 383, 395, 396, 399, 400, 410], "excluded_lines": [], "start_line": 334}, "RenderingMixin._draw_page_print_guides._draw_rect_outline": {"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": [367, 368, 369, 370, 372, 373, 374, 375, 376, 377, 378, 379], "excluded_lines": [], "start_line": 366}, "": {"executed_lines": [5, 7, 8, 9, 10, 13, 21, 136, 236, 302, 334], "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": {"RenderingMixin": {"executed_lines": [23, 25, 26, 29, 30, 32, 34, 37, 38, 39, 40, 41, 42, 48, 49, 50, 51, 54, 57, 60, 63, 66, 69, 70, 71, 73, 74, 75, 77, 78, 80, 89, 91, 93, 94, 95, 98, 100, 121, 122, 123, 124, 125, 126, 129, 130, 134, 138, 139, 141, 142, 143, 145, 146, 148, 150, 151, 152, 154, 155, 156, 158, 159, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 211, 218, 219, 220, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 233, 234, 238, 239, 241, 242, 243, 245, 246, 247, 249, 250, 251, 253, 254, 256, 257, 258, 260, 262, 263, 264, 266, 267, 270, 271, 274, 275, 276, 278, 279, 280, 281, 283, 285, 286, 287, 288, 289, 290, 291, 293, 295, 297, 300, 304, 305, 306, 308, 309, 310, 312, 313, 315, 318, 319, 320, 322, 323, 324, 326, 327, 329, 332, 344, 345], "summary": {"covered_lines": 185, "num_statements": 230, "percent_covered": 80.43478260869566, "percent_covered_display": "80", "missing_lines": 45, "excluded_lines": 0, "percent_statements_covered": 80.43478260869566, "percent_statements_covered_display": "80"}, "missing_lines": [35, 43, 45, 55, 102, 103, 104, 106, 107, 109, 118, 268, 347, 348, 350, 351, 353, 354, 355, 356, 357, 358, 361, 362, 364, 366, 367, 368, 369, 370, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 395, 396, 399, 400, 410], "excluded_lines": [], "start_line": 13}, "": {"executed_lines": [5, 7, 8, 9, 10, 13, 21, 136, 236, 302, 334], "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}}}, "pyPhotoAlbum/mixins/viewport.py": {"executed_lines": [5, 8, 16, 17, 20, 21, 22, 25, 27, 32, 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 53, 55, 58, 60, 63, 64, 65, 67, 74, 75, 76, 78, 79, 82, 83, 86, 87, 88, 91, 92, 93, 96, 98, 108, 109, 110, 112, 113, 116, 117, 120, 121, 122, 125, 126, 130, 131, 132, 134, 136, 143, 144, 145, 147, 148, 149, 152, 153, 155, 156, 157, 158, 160, 161, 163, 164, 166, 167, 169, 178, 180, 181, 184, 186, 187, 188, 189, 191, 193, 195, 196, 198, 199, 201, 202, 203, 204, 206, 207, 209, 210, 212, 214, 216, 220, 222, 223, 226, 227, 229, 232, 233, 235, 237, 238, 239, 240, 242, 244, 246, 247, 249, 251, 252, 254, 256, 268, 269, 270, 272, 273, 276, 279, 280, 281, 285, 286, 289], "summary": {"covered_lines": 138, "num_statements": 143, "percent_covered": 96.5034965034965, "percent_covered_display": "97", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 96.5034965034965, "percent_statements_covered_display": "97"}, "missing_lines": [29, 30, 217, 230, 282], "excluded_lines": [], "functions": {"ViewportMixin.__init__": {"executed_lines": [17, 20, 21, 22, 25], "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": 16}, "ViewportMixin.initializeGL": {"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": [29, 30], "excluded_lines": [], "start_line": 27}, "ViewportMixin.resizeGL": {"executed_lines": [34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 53, 55, 58, 60, 63, 64, 65], "summary": {"covered_lines": 17, "num_statements": 17, "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}, "ViewportMixin._calculate_fit_to_screen_zoom": {"executed_lines": [74, 75, 76, 78, 79, 82, 83, 86, 87, 88, 91, 92, 93, 96], "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": 67}, "ViewportMixin._calculate_center_pan_offset": {"executed_lines": [108, 109, 110, 112, 113, 116, 117, 120, 121, 122, 125, 126, 130, 131, 132, 134], "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": 98}, "ViewportMixin.get_content_bounds": {"executed_lines": [143, 144, 145, 147, 148, 149, 152, 153, 155, 156, 157, 158, 160, 161, 163, 164, 166, 167, 169], "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": 136}, "ViewportMixin._clamp_vertical_pan": {"executed_lines": [180, 181, 184, 186, 187, 188, 189, 191], "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": 178}, "ViewportMixin._build_page_centerlines": {"executed_lines": [195, 196, 198, 199, 201, 202, 203, 204, 206, 207, 209, 210, 212], "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": 193}, "ViewportMixin._interpolate_target_centerline": {"executed_lines": [216, 220, 222, 223, 226, 227, 229, 232, 233], "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": [217, 230], "excluded_lines": [], "start_line": 214}, "ViewportMixin._find_page_at_viewport_y": {"executed_lines": [237, 238, 239, 240], "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": 235}, "ViewportMixin._clamp_horizontal_pan": {"executed_lines": [244, 246, 247, 249, 251, 252, 254], "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": 242}, "ViewportMixin.clamp_pan_offset": {"executed_lines": [268, 269, 270, 272, 273, 276, 279, 280, 281, 285, 286, 289], "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": [282], "excluded_lines": [], "start_line": 256}, "": {"executed_lines": [5, 8, 16, 27, 32, 67, 98, 136, 178, 193, 214, 235, 242, 256], "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": {"ViewportMixin": {"executed_lines": [17, 20, 21, 22, 25, 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 53, 55, 58, 60, 63, 64, 65, 74, 75, 76, 78, 79, 82, 83, 86, 87, 88, 91, 92, 93, 96, 108, 109, 110, 112, 113, 116, 117, 120, 121, 122, 125, 126, 130, 131, 132, 134, 143, 144, 145, 147, 148, 149, 152, 153, 155, 156, 157, 158, 160, 161, 163, 164, 166, 167, 169, 180, 181, 184, 186, 187, 188, 189, 191, 195, 196, 198, 199, 201, 202, 203, 204, 206, 207, 209, 210, 212, 216, 220, 222, 223, 226, 227, 229, 232, 233, 237, 238, 239, 240, 244, 246, 247, 249, 251, 252, 254, 268, 269, 270, 272, 273, 276, 279, 280, 281, 285, 286, 289], "summary": {"covered_lines": 124, "num_statements": 129, "percent_covered": 96.12403100775194, "percent_covered_display": "96", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 96.12403100775194, "percent_statements_covered_display": "96"}, "missing_lines": [29, 30, 217, 230, 282], "excluded_lines": [], "start_line": 8}, "": {"executed_lines": [5, 8, 16, 27, 32, 67, 98, 136, 178, 193, 214, 235, 242, 256], "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}}}, "pyPhotoAlbum/models.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 52, 60, 74, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 116, 118, 131, 133, 135, 137, 150, 151, 153, 154, 155, 156, 157, 170, 171, 172, 173, 202, 203, 206, 215, 216, 217, 220, 222, 225, 228, 231, 232, 233, 234, 237, 240, 241, 242, 245, 246, 248, 250, 252, 254, 255, 256, 258, 260, 268, 271, 274, 275, 276, 279, 280, 298, 301, 309, 310, 311, 315, 319, 322, 325, 326, 329, 330, 332, 338, 339, 342, 343, 344, 345, 348, 349, 350, 351, 352, 354, 356, 361, 363, 364, 366, 367, 368, 370, 373, 374, 375, 379, 380, 383, 384, 385, 386, 389, 390, 391, 398, 402, 403, 406, 411, 412, 413, 414, 417, 420, 425, 426, 429, 430, 431, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 448, 449, 450, 451, 452, 453, 454, 455, 458, 462, 463, 464, 465, 466, 467, 468, 471, 474, 500, 523, 538, 540, 551, 552, 555, 556, 559, 561, 563, 566, 568, 569, 570, 571, 572, 573, 574, 577, 580, 581, 582, 583, 584, 585, 586, 588, 589, 592, 593, 594, 597, 599, 610, 611, 614, 615, 616, 621, 643, 647, 648, 649, 650, 653, 656, 658, 660, 661, 662, 663, 665, 669, 671, 673, 678, 679, 681, 684, 685, 687, 688, 690, 691, 694, 695, 698, 699, 702, 704, 705, 706, 707, 708, 713, 714, 717, 720, 721, 723, 724, 726, 727, 730, 733, 734, 737, 738, 741, 742, 743, 744, 746, 753, 754, 755, 758, 761, 768, 769, 770, 772, 774, 777, 778, 781, 782, 784, 785, 786, 787, 788, 790, 793, 794, 795, 796, 797, 798, 799, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 814, 815, 817, 819, 829, 830, 832, 833, 835, 838, 840, 841, 842, 843, 844, 845, 847, 850, 853, 854, 855, 856, 857, 859, 861, 862, 865, 866, 868, 869, 870, 871, 872, 874, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 890, 891, 895, 897, 908, 909, 911, 914, 916, 917, 918, 919, 920, 921, 922, 925, 928, 929, 930, 931, 933, 938, 942, 943, 944, 947, 948, 951, 952, 953, 954, 955, 956, 957, 959, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 976, 979, 980, 981, 982, 983, 985, 987, 989, 990, 992, 995, 997, 998, 999], "summary": {"covered_lines": 400, "num_statements": 450, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 50, "excluded_lines": 25, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [393, 394, 395, 399, 408, 459, 472, 477, 478, 479, 480, 483, 484, 485, 486, 489, 490, 491, 492, 493, 494, 495, 496, 498, 503, 504, 505, 508, 509, 512, 514, 515, 516, 517, 518, 519, 520, 521, 525, 527, 528, 622, 625, 628, 633, 634, 637, 638, 641, 670], "excluded_lines": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 282, 283, 284, 285, 287, 288, 289, 290, 292, 293, 294, 295], "functions": {"ImageStyle.__init__": {"executed_lines": [104, 105, 106, 107, 108, 109, 110, 111, 112, 114], "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": 74}, "ImageStyle.copy": {"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": 116}, "ImageStyle.has_styling": {"executed_lines": [133], "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": 131}, "ImageStyle.serialize": {"executed_lines": [137], "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": 135}, "ImageStyle.deserialize": {"executed_lines": [153, 154, 155, 156, 157], "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": 151}, "ImageStyle.__eq__": {"executed_lines": [171, 172, 173], "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": 170}, "ImageStyle.__repr__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 12, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "start_line": 186}, "set_asset_resolution_context": {"executed_lines": [215, 216, 217], "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": 206}, "get_asset_search_paths": {"executed_lines": [222], "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": 220}, "BaseLayoutElement.__init__": {"executed_lines": [231, 232, 233, 234, 237, 240, 241, 242, 245, 246], "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": 228}, "BaseLayoutElement.mark_modified": {"executed_lines": [250], "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": 248}, "BaseLayoutElement.mark_deleted": {"executed_lines": [254, 255, 256], "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": 252}, "BaseLayoutElement._serialize_base_fields": {"executed_lines": [260], "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": 258}, "BaseLayoutElement._deserialize_base_fields": {"executed_lines": [271, 274, 275, 276, 279, 280], "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": 268}, "BaseLayoutElement.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [284, 285], "start_line": 283}, "BaseLayoutElement.serialize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [289, 290], "start_line": 288}, "BaseLayoutElement.deserialize": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "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": [294, 295], "start_line": 293}, "ImageData.__init__": {"executed_lines": [309, 310, 311, 315, 319, 322, 325, 326, 329, 330], "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": 301}, "ImageData.resolve_image_path": {"executed_lines": [338, 339, 342, 343, 344, 345, 348, 349, 350, 351, 352, 354], "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": 332}, "ImageData._extract_dimensions_metadata": {"executed_lines": [361, 363, 364, 366, 367, 368], "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": 356}, "ImageData.render": {"executed_lines": [373, 374, 375, 379, 380, 383, 384, 385, 386, 389, 390, 391, 398, 402, 403, 406, 411, 412, 413, 414, 417, 420, 425, 426, 429, 430, 431, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 448, 449, 450, 451, 452, 453, 454, 455, 458, 462, 463, 464, 465, 466, 467, 468, 471], "summary": {"covered_lines": 56, "num_statements": 63, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [393, 394, 395, 399, 408, 459, 472], "excluded_lines": [], "start_line": 370}, "ImageData._render_shadow": {"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": [477, 478, 479, 480, 483, 484, 485, 486, 489, 490, 491, 492, 493, 494, 495, 496, 498], "excluded_lines": [], "start_line": 474}, "ImageData._render_border": {"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": [503, 504, 505, 508, 509, 512, 514, 515, 516, 517, 518, 519, 520, 521], "excluded_lines": [], "start_line": 500}, "ImageData._render_frame": {"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": [525, 527, 528], "excluded_lines": [], "start_line": 523}, "ImageData.serialize": {"executed_lines": [540, 551, 552, 555, 556, 559, 561], "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": 538}, "ImageData.deserialize": {"executed_lines": [566, 568, 569, 570, 571, 572, 573, 574, 577, 580, 581, 582, 583, 584, 585, 586, 588, 589, 592, 593, 594, 597], "summary": {"covered_lines": 22, "num_statements": 22, "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": 563}, "ImageData._on_async_image_loaded": {"executed_lines": [610, 611, 614, 615, 616, 621, 643, 647, 648, 649, 650, 653, 656, 658, 660, 661, 662, 663], "summary": {"covered_lines": 18, "num_statements": 26, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [622, 625, 628, 633, 634, 637, 638, 641], "excluded_lines": [], "start_line": 599}, "ImageData._get_style_hash": {"executed_lines": [669, 671], "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": [670], "excluded_lines": [], "start_line": 665}, "ImageData._create_texture_from_pending_image": {"executed_lines": [678, 679, 681, 684, 685, 687, 688, 690, 691, 694, 695, 698, 699, 702, 704, 705, 706, 707, 708, 713, 714, 717, 720, 721, 723, 724, 726, 727, 730, 733, 734, 737, 738, 741, 742, 743, 744], "summary": {"covered_lines": 37, "num_statements": 37, "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": 673}, "ImageData._on_async_image_load_failed": {"executed_lines": [753, 754, 755], "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": 746}, "PlaceholderData.__init__": {"executed_lines": [768, 769, 770, 772], "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": 761}, "PlaceholderData.render": {"executed_lines": [777, 778, 781, 782, 784, 785, 786, 787, 788, 790, 793, 794, 795, 796, 797, 798, 799, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 814, 815], "summary": {"covered_lines": 29, "num_statements": 29, "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}, "PlaceholderData.serialize": {"executed_lines": [819, 829, 830, 832, 833], "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": 817}, "PlaceholderData.deserialize": {"executed_lines": [838, 840, 841, 842, 843, 844, 845, 847], "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": 835}, "TextBoxData.__init__": {"executed_lines": [854, 855, 856, 857], "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": 853}, "TextBoxData.render": {"executed_lines": [861, 862, 865, 866, 868, 869, 870, 871, 872, 874, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 890, 891], "summary": {"covered_lines": 22, "num_statements": 22, "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": 859}, "TextBoxData.serialize": {"executed_lines": [897, 908, 909], "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": 895}, "TextBoxData.deserialize": {"executed_lines": [914, 916, 917, 918, 919, 920, 921, 922], "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": 911}, "GhostPageData.__init__": {"executed_lines": [929, 930, 931], "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": 928}, "GhostPageData.render": {"executed_lines": [938, 942, 943, 944, 947, 948, 951, 952, 953, 954, 955, 956, 957, 959, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971], "summary": {"covered_lines": 24, "num_statements": 24, "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": 933}, "GhostPageData.get_page_rect": {"executed_lines": [979, 980, 981, 982, 983], "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": 976}, "GhostPageData.serialize": {"executed_lines": [987, 989, 990], "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": 985}, "GhostPageData.deserialize": {"executed_lines": [995, 997, 998, 999], "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": 992}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 52, 60, 74, 116, 131, 135, 150, 151, 170, 202, 203, 206, 220, 225, 228, 248, 252, 258, 268, 298, 301, 332, 356, 370, 474, 500, 523, 538, 563, 599, 665, 673, 746, 758, 761, 774, 817, 835, 850, 853, 859, 895, 911, 925, 928, 933, 976, 985, 992], "summary": {"covered_lines": 59, "num_statements": 59, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [186, 282, 283, 287, 288, 292, 293], "start_line": 1}}, "classes": {"ImageStyle": {"executed_lines": [104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 118, 133, 137, 153, 154, 155, 156, 157, 171, 172, 173], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 12, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "start_line": 60}, "BaseLayoutElement": {"executed_lines": [231, 232, 233, 234, 237, 240, 241, 242, 245, 246, 250, 254, 255, 256, 260, 271, 274, 275, 276, 279, 280], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [284, 285, 289, 290, 294, 295], "start_line": 225}, "ImageData": {"executed_lines": [309, 310, 311, 315, 319, 322, 325, 326, 329, 330, 338, 339, 342, 343, 344, 345, 348, 349, 350, 351, 352, 354, 361, 363, 364, 366, 367, 368, 373, 374, 375, 379, 380, 383, 384, 385, 386, 389, 390, 391, 398, 402, 403, 406, 411, 412, 413, 414, 417, 420, 425, 426, 429, 430, 431, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 444, 445, 448, 449, 450, 451, 452, 453, 454, 455, 458, 462, 463, 464, 465, 466, 467, 468, 471, 540, 551, 552, 555, 556, 559, 561, 566, 568, 569, 570, 571, 572, 573, 574, 577, 580, 581, 582, 583, 584, 585, 586, 588, 589, 592, 593, 594, 597, 610, 611, 614, 615, 616, 621, 643, 647, 648, 649, 650, 653, 656, 658, 660, 661, 662, 663, 669, 671, 678, 679, 681, 684, 685, 687, 688, 690, 691, 694, 695, 698, 699, 702, 704, 705, 706, 707, 708, 713, 714, 717, 720, 721, 723, 724, 726, 727, 730, 733, 734, 737, 738, 741, 742, 743, 744, 753, 754, 755], "summary": {"covered_lines": 173, "num_statements": 223, "percent_covered": 77.57847533632287, "percent_covered_display": "78", "missing_lines": 50, "excluded_lines": 0, "percent_statements_covered": 77.57847533632287, "percent_statements_covered_display": "78"}, "missing_lines": [393, 394, 395, 399, 408, 459, 472, 477, 478, 479, 480, 483, 484, 485, 486, 489, 490, 491, 492, 493, 494, 495, 496, 498, 503, 504, 505, 508, 509, 512, 514, 515, 516, 517, 518, 519, 520, 521, 525, 527, 528, 622, 625, 628, 633, 634, 637, 638, 641, 670], "excluded_lines": [], "start_line": 298}, "PlaceholderData": {"executed_lines": [768, 769, 770, 772, 777, 778, 781, 782, 784, 785, 786, 787, 788, 790, 793, 794, 795, 796, 797, 798, 799, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 814, 815, 819, 829, 830, 832, 833, 838, 840, 841, 842, 843, 844, 845, 847], "summary": {"covered_lines": 46, "num_statements": 46, "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": 758}, "TextBoxData": {"executed_lines": [854, 855, 856, 857, 861, 862, 865, 866, 868, 869, 870, 871, 872, 874, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 890, 891, 897, 908, 909, 914, 916, 917, 918, 919, 920, 921, 922], "summary": {"covered_lines": 37, "num_statements": 37, "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": 850}, "GhostPageData": {"executed_lines": [929, 930, 931, 938, 942, 943, 944, 947, 948, 951, 952, 953, 954, 955, 956, 957, 959, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 979, 980, 981, 982, 983, 987, 989, 990, 995, 997, 998, 999], "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": 925}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 52, 60, 74, 116, 131, 135, 150, 151, 170, 202, 203, 206, 215, 216, 217, 220, 222, 225, 228, 248, 252, 258, 268, 298, 301, 332, 356, 370, 474, 500, 523, 538, 563, 599, 665, 673, 746, 758, 761, 774, 817, 835, 850, 853, 859, 895, 911, 925, 928, 933, 976, 985, 992], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [186, 282, 283, 287, 288, 292, 293], "start_line": 1}}}, "pyPhotoAlbum/page_layout.py": {"executed_lines": [5, 10, 11, 12, 32, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 57, 59, 61, 63, 65, 67, 79, 82, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 113, 117, 119, 121, 123, 124, 126, 129, 130, 133, 134, 135, 136, 138, 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 159, 160, 163, 166, 168, 171, 173, 174, 175, 176, 177, 178, 179, 182, 183, 184, 185, 186, 187, 188, 191, 193, 194, 195, 196, 197, 198, 200, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 230, 232, 234, 245, 247, 248, 249, 250, 251, 255, 256, 257, 259, 260, 261, 262, 263, 264, 266, 268, 269, 272, 273, 276, 277, 278, 279, 282, 283, 284, 286, 289, 292, 293, 294, 295, 296, 298, 300, 302, 306, 307, 309, 310, 312, 314, 316, 317, 319, 321, 323, 325, 327, 328, 329, 330], "summary": {"covered_lines": 184, "num_statements": 185, "percent_covered": 99.45945945945945, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 2, "percent_statements_covered": 99.45945945945945, "percent_statements_covered_display": "99"}, "missing_lines": [122], "excluded_lines": [7, 8], "functions": {"PageLayout.__init__": {"executed_lines": [44, 45, 46, 47, 48, 49, 50, 51, 52], "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": 35}, "PageLayout.add_element": {"executed_lines": [56, 57], "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": 54}, "PageLayout.remove_element": {"executed_lines": [61], "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": 59}, "PageLayout.set_grid_layout": {"executed_lines": [65], "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": 63}, "PageLayout.render": {"executed_lines": [79, 82, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 113, 117, 119, 121, 123, 124, 126, 129, 130, 133, 134, 135, 136, 138, 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 159, 160, 163, 166], "summary": {"covered_lines": 59, "num_statements": 60, "percent_covered": 98.33333333333333, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.33333333333333, "percent_statements_covered_display": "98"}, "missing_lines": [122], "excluded_lines": [], "start_line": 67}, "PageLayout._render_snap_lines": {"executed_lines": [171, 173, 174, 175, 176, 177, 178, 179, 182, 183, 184, 185, 186, 187, 188, 191, 193, 194, 195, 196, 197, 198, 200, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 230], "summary": {"covered_lines": 46, "num_statements": 46, "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": 168}, "PageLayout.serialize": {"executed_lines": [234], "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": 232}, "PageLayout.deserialize": {"executed_lines": [247, 248, 249, 250, 251, 255, 256, 257, 259, 260, 261, 262, 263, 264, 266, 268, 269, 272, 273, 276, 277, 278, 279, 282, 283, 284, 286], "summary": {"covered_lines": 27, "num_statements": 27, "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": 245}, "GridLayout.__init__": {"executed_lines": [293, 294, 295, 296], "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": 292}, "GridLayout.merge_cells": {"executed_lines": [300], "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": 298}, "GridLayout.get_cell_position": {"executed_lines": [306, 307, 309, 310, 312], "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": 302}, "GridLayout.get_cell_size": {"executed_lines": [316, 317, 319], "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": 314}, "GridLayout.serialize": {"executed_lines": [323], "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": 321}, "GridLayout.deserialize": {"executed_lines": [327, 328, 329, 330], "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": 325}, "": {"executed_lines": [5, 10, 11, 12, 32, 35, 54, 59, 63, 67, 168, 232, 245, 289, 292, 298, 302, 314, 321, 325], "summary": {"covered_lines": 20, "num_statements": 20, "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": [7, 8], "start_line": 1}}, "classes": {"PageLayout": {"executed_lines": [44, 45, 46, 47, 48, 49, 50, 51, 52, 56, 57, 61, 65, 79, 82, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 113, 117, 119, 121, 123, 124, 126, 129, 130, 133, 134, 135, 136, 138, 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 157, 158, 159, 160, 163, 166, 171, 173, 174, 175, 176, 177, 178, 179, 182, 183, 184, 185, 186, 187, 188, 191, 193, 194, 195, 196, 197, 198, 200, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 230, 234, 247, 248, 249, 250, 251, 255, 256, 257, 259, 260, 261, 262, 263, 264, 266, 268, 269, 272, 273, 276, 277, 278, 279, 282, 283, 284, 286], "summary": {"covered_lines": 146, "num_statements": 147, "percent_covered": 99.31972789115646, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 99.31972789115646, "percent_statements_covered_display": "99"}, "missing_lines": [122], "excluded_lines": [], "start_line": 32}, "GridLayout": {"executed_lines": [293, 294, 295, 296, 300, 306, 307, 309, 310, 312, 316, 317, 319, 323, 327, 328, 329, 330], "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": 289}, "": {"executed_lines": [5, 10, 11, 12, 32, 35, 54, 59, 63, 67, 168, 232, 245, 289, 292, 298, 302, 314, 321, 325], "summary": {"covered_lines": 20, "num_statements": 20, "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": [7, 8], "start_line": 1}}}, "pyPhotoAlbum/page_renderer.py": {"executed_lines": [13, 14, 17, 25, 39, 40, 41, 42, 43, 44, 47, 48, 51, 52, 54, 65, 66, 67, 69, 80, 81, 82, 84, 95, 100, 111, 112, 115, 117, 118, 120, 122, 133, 140, 147, 149, 156], "summary": {"covered_lines": 37, "num_statements": 41, "percent_covered": 90.2439024390244, "percent_covered_display": "90", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 90.2439024390244, "percent_statements_covered_display": "90"}, "missing_lines": [127, 129, 131, 138], "excluded_lines": [], "functions": {"PageRenderer.__init__": {"executed_lines": [39, 40, 41, 42, 43, 44, 47, 48, 51, 52], "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": 25}, "PageRenderer.page_to_screen": {"executed_lines": [65, 66, 67], "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": 54}, "PageRenderer.screen_to_page": {"executed_lines": [80, 81, 82], "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": 69}, "PageRenderer.is_point_in_page": {"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": 84}, "PageRenderer.get_sub_page_at": {"executed_lines": [111, 112, 115, 117, 118, 120], "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": 100}, "PageRenderer.begin_render": {"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": [127, 129, 131], "excluded_lines": [], "start_line": 122}, "PageRenderer.end_render": {"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": [138], "excluded_lines": [], "start_line": 133}, "PageRenderer.get_page_bounds_screen": {"executed_lines": [147], "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": 140}, "PageRenderer.get_page_bounds_page": {"executed_lines": [156], "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": 149}, "": {"executed_lines": [13, 14, 17, 25, 54, 69, 84, 100, 122, 133, 140, 149], "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": {"PageRenderer": {"executed_lines": [39, 40, 41, 42, 43, 44, 47, 48, 51, 52, 65, 66, 67, 80, 81, 82, 95, 111, 112, 115, 117, 118, 120, 147, 156], "summary": {"covered_lines": 25, "num_statements": 29, "percent_covered": 86.20689655172414, "percent_covered_display": "86", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 86.20689655172414, "percent_statements_covered_display": "86"}, "missing_lines": [127, 129, 131, 138], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [13, 14, 17, 25, 54, 69, 84, 100, 122, 133, 140, 149], "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}}}, "pyPhotoAlbum/pdf_exporter.py": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 145, 146, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 163, 166, 167, 168, 169, 170, 171, 172, 173, 176, 180, 181, 183, 194, 195, 196, 197, 198, 199, 201, 216, 217, 219, 221, 226, 227, 228, 229, 230, 233, 235, 236, 237, 239, 242, 245, 246, 248, 250, 251, 255, 256, 257, 258, 259, 263, 264, 268, 270, 272, 273, 275, 281, 288, 289, 290, 291, 294, 295, 296, 297, 298, 299, 301, 302, 303, 305, 318, 319, 320, 321, 323, 324, 325, 326, 328, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 350, 352, 360, 362, 364, 365, 366, 368, 369, 370, 371, 372, 374, 383, 385, 392, 393, 395, 396, 401, 403, 404, 405, 407, 409, 411, 420, 422, 423, 424, 426, 427, 428, 431, 432, 434, 435, 437, 438, 440, 441, 443, 445, 458, 460, 469, 470, 471, 473, 474, 475, 477, 478, 479, 481, 482, 484, 485, 486, 488, 489, 492, 494, 495, 497, 501, 502, 503, 504, 507, 508, 509, 510, 512, 524, 525, 527, 528, 530, 532, 545, 547, 558, 559, 561, 562, 564, 565, 566, 568, 569, 571, 575, 577, 578, 580, 583, 584, 591, 598, 619, 633, 638, 639, 642, 643, 646, 648, 649, 652, 653, 654, 655, 658, 660, 661, 663, 666, 676, 678, 681, 682, 683, 684, 687, 689, 692, 694, 704, 706, 708, 731, 735, 736, 739, 740, 741, 742, 743, 746, 750, 751, 752, 753, 755, 756, 765, 766, 767, 769, 778, 782, 783, 786, 787, 788, 789, 790, 792, 794, 796, 797, 798, 801, 802, 803, 806, 809, 810, 816, 817, 820, 821, 824, 837, 839, 842, 843, 846, 856, 867, 868, 870, 872, 873, 874, 876, 877, 880, 883, 887, 900, 911, 915, 918, 925, 935, 938, 939, 940, 941, 942, 1002, 1042, 1066, 1084, 1096, 1100, 1101, 1102, 1106, 1107, 1108, 1111, 1116, 1119, 1123, 1128, 1134, 1137, 1147, 1148, 1149, 1150, 1151, 1154, 1157, 1159, 1161, 1180, 1184, 1185, 1187, 1195], "summary": {"covered_lines": 365, "num_statements": 545, "percent_covered": 66.97247706422019, "percent_covered_display": "67", "missing_lines": 180, "excluded_lines": 0, "percent_statements_covered": 66.97247706422019, "percent_statements_covered_display": "67"}, "missing_lines": [61, 63, 64, 67, 70, 71, 72, 73, 75, 78, 79, 86, 87, 89, 92, 95, 96, 99, 100, 101, 104, 105, 114, 117, 118, 119, 125, 126, 129, 130, 131, 132, 135, 136, 137, 139, 140, 142, 234, 238, 247, 260, 261, 262, 265, 269, 274, 277, 278, 279, 292, 293, 329, 330, 331, 332, 333, 334, 335, 336, 354, 355, 356, 357, 358, 367, 397, 398, 399, 400, 572, 573, 574, 586, 587, 588, 589, 592, 604, 607, 608, 611, 614, 615, 617, 623, 624, 625, 628, 629, 631, 732, 779, 884, 889, 890, 891, 892, 893, 895, 912, 916, 920, 921, 922, 923, 944, 946, 947, 950, 951, 954, 955, 956, 959, 960, 961, 963, 964, 967, 968, 977, 980, 981, 983, 984, 985, 988, 989, 990, 992, 994, 996, 997, 998, 999, 1000, 1004, 1007, 1008, 1011, 1012, 1015, 1016, 1019, 1020, 1021, 1022, 1032, 1040, 1044, 1047, 1050, 1052, 1053, 1054, 1057, 1058, 1059, 1060, 1062, 1064, 1068, 1070, 1071, 1073, 1097, 1120, 1163, 1164, 1165, 1166, 1170, 1173, 1174, 1176, 1189, 1190, 1191, 1192], "excluded_lines": [], "functions": {"_process_image_task": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [61, 63, 64, 67, 70, 71, 72, 73, 75, 78, 79, 86, 87, 89, 92, 95, 96, 99, 100, 101, 104, 105, 114, 117, 118, 119, 125, 126, 129, 130, 131, 132, 135, 136, 137, 139, 140, 142], "excluded_lines": [], "start_line": 48}, "PDFExporter.__init__": {"executed_lines": [194, 195, 196, 197, 198, 199], "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": 183}, "PDFExporter.export": {"executed_lines": [216, 217, 219, 221, 226, 227, 228, 229, 230, 233, 235, 236, 237, 239, 242, 245, 246, 248, 250, 251, 255, 256, 257, 258, 259, 263, 264, 268, 270, 272, 273, 275], "summary": {"covered_lines": 32, "num_statements": 44, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 72.72727272727273, "percent_statements_covered_display": "73"}, "missing_lines": [234, 238, 247, 260, 261, 262, 265, 269, 274, 277, 278, 279], "excluded_lines": [], "start_line": 201}, "PDFExporter._compute_page_sequence": {"executed_lines": [288, 289, 290, 291, 294, 295, 296, 297, 298, 299, 301, 302, 303], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [292, 293], "excluded_lines": [], "start_line": 281}, "PDFExporter._render_item_to_bytes": {"executed_lines": [318, 319, 320, 321, 323, 324, 325, 326, 328, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 350], "summary": {"covered_lines": 20, "num_statements": 28, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [329, 330, 331, 332, 333, 334, 335, 336], "excluded_lines": [], "start_line": 305}, "PDFExporter._make_blank_page_bytes": {"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": [354, 355, 356, 357, 358], "excluded_lines": [], "start_line": 352}, "PDFExporter._merge_page_pdfs": {"executed_lines": [362, 364, 365, 366, 368, 369, 370, 371, 372], "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": [367], "excluded_lines": [], "start_line": 360}, "PDFExporter._make_task_id": {"executed_lines": [383], "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": 374}, "PDFExporter._collect_image_tasks": {"executed_lines": [392, 393, 395, 396, 401, 403, 404, 405, 407, 409], "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": [397, 398, 399, 400], "excluded_lines": [], "start_line": 385}, "PDFExporter._collect_page_tasks": {"executed_lines": [420, 422, 423, 424, 426, 427, 428, 431, 432, 434, 435, 437, 438, 440, 441, 443, 445, 458], "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": 411}, "PDFExporter._collect_spread_tasks": {"executed_lines": [469, 470, 471, 473, 474, 475, 477, 478, 479, 481, 482, 484, 485, 486, 488, 489, 492, 494, 495, 497, 501, 502, 503, 504, 507, 508, 509, 510], "summary": {"covered_lines": 28, "num_statements": 28, "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": 460}, "PDFExporter._add_image_task": {"executed_lines": [524, 525, 527, 528, 530, 532, 545], "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": 512}, "PDFExporter._preprocess_images_parallel": {"executed_lines": [558, 559, 561, 562, 564, 565, 566, 568, 569, 571, 575, 577, 578, 580, 583, 584, 591], "summary": {"covered_lines": 17, "num_statements": 25, "percent_covered": 68.0, "percent_covered_display": "68", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 68.0, "percent_statements_covered_display": "68"}, "missing_lines": [572, 573, 574, 586, 587, 588, 589, 592], "excluded_lines": [], "start_line": 547}, "PDFExporter._export_cover": {"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": [604, 607, 608, 611, 614, 615, 617], "excluded_lines": [], "start_line": 598}, "PDFExporter._export_single_page": {"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": [623, 624, 625, 628, 629, 631], "excluded_lines": [], "start_line": 619}, "PDFExporter._export_spread": {"executed_lines": [638, 639, 642, 643, 646, 648, 649, 652, 653, 654, 655, 658, 660, 661, 663, 666, 676, 678, 681, 682, 683, 684, 687, 689, 692, 694, 704, 706], "summary": {"covered_lines": 28, "num_statements": 28, "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": 633}, "PDFExporter._render_element": {"executed_lines": [731, 735, 736, 739, 740, 741, 742, 743, 746, 750, 751, 752, 753, 755, 756, 765, 766, 767], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [732], "excluded_lines": [], "start_line": 708}, "PDFExporter._render_split_element": {"executed_lines": [778, 782, 783, 786, 787, 788, 789, 790, 792, 794, 796, 797, 798, 801, 802, 803, 806, 809, 810, 816, 817, 820, 821, 824, 837, 839, 842, 843, 846], "summary": {"covered_lines": 29, "num_statements": 30, "percent_covered": 96.66666666666667, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.66666666666667, "percent_statements_covered_display": "97"}, "missing_lines": [779], "excluded_lines": [], "start_line": 769}, "PDFExporter._render_image": {"executed_lines": [867, 868, 870, 872, 873, 874, 876, 877, 880, 883, 887, 900, 911, 915, 918], "summary": {"covered_lines": 15, "num_statements": 28, "percent_covered": 53.57142857142857, "percent_covered_display": "54", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 53.57142857142857, "percent_statements_covered_display": "54"}, "missing_lines": [884, 889, 890, 891, 892, 893, 895, 912, 916, 920, 921, 922, 923], "excluded_lines": [], "start_line": 856}, "PDFExporter._process_image_fallback": {"executed_lines": [935, 938, 939, 940, 941, 942], "summary": {"covered_lines": 6, "num_statements": 37, "percent_covered": 16.216216216216218, "percent_covered_display": "16", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 16.216216216216218, "percent_statements_covered_display": "16"}, "missing_lines": [944, 946, 947, 950, 951, 954, 955, 956, 959, 960, 961, 963, 964, 967, 968, 977, 980, 981, 983, 984, 985, 988, 989, 990, 992, 994, 996, 997, 998, 999, 1000], "excluded_lines": [], "start_line": 925}, "PDFExporter._draw_shadow_pdf": {"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": [1004, 1007, 1008, 1011, 1012, 1015, 1016, 1019, 1020, 1021, 1022, 1032, 1040], "excluded_lines": [], "start_line": 1002}, "PDFExporter._draw_border_pdf": {"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": [1044, 1047, 1050, 1052, 1053, 1054, 1057, 1058, 1059, 1060, 1062, 1064], "excluded_lines": [], "start_line": 1042}, "PDFExporter._draw_frame_pdf": {"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": [1068, 1070, 1071, 1073], "excluded_lines": [], "start_line": 1066}, "PDFExporter._render_textbox": {"executed_lines": [1096, 1100, 1101, 1102, 1106, 1107, 1108, 1111, 1116, 1119, 1123, 1128, 1134, 1137, 1147, 1148, 1149, 1150, 1151, 1154, 1157, 1159, 1161, 1180, 1184, 1185, 1187, 1195], "summary": {"covered_lines": 28, "num_statements": 42, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [1097, 1120, 1163, 1164, 1165, 1166, 1170, 1173, 1174, 1176, 1189, 1190, 1191, 1192], "excluded_lines": [], "start_line": 1084}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 145, 146, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 163, 166, 167, 168, 169, 170, 171, 172, 173, 176, 180, 181, 183, 201, 281, 305, 352, 360, 374, 385, 411, 460, 512, 547, 598, 619, 633, 708, 769, 856, 925, 1002, 1042, 1066, 1084], "summary": {"covered_lines": 80, "num_statements": 80, "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": {"ImageTask": {"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": 32}, "RenderContext": {"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": 146}, "SplitRenderParams": {"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": 163}, "PDFExporter": {"executed_lines": [194, 195, 196, 197, 198, 199, 216, 217, 219, 221, 226, 227, 228, 229, 230, 233, 235, 236, 237, 239, 242, 245, 246, 248, 250, 251, 255, 256, 257, 258, 259, 263, 264, 268, 270, 272, 273, 275, 288, 289, 290, 291, 294, 295, 296, 297, 298, 299, 301, 302, 303, 318, 319, 320, 321, 323, 324, 325, 326, 328, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 350, 362, 364, 365, 366, 368, 369, 370, 371, 372, 383, 392, 393, 395, 396, 401, 403, 404, 405, 407, 409, 420, 422, 423, 424, 426, 427, 428, 431, 432, 434, 435, 437, 438, 440, 441, 443, 445, 458, 469, 470, 471, 473, 474, 475, 477, 478, 479, 481, 482, 484, 485, 486, 488, 489, 492, 494, 495, 497, 501, 502, 503, 504, 507, 508, 509, 510, 524, 525, 527, 528, 530, 532, 545, 558, 559, 561, 562, 564, 565, 566, 568, 569, 571, 575, 577, 578, 580, 583, 584, 591, 638, 639, 642, 643, 646, 648, 649, 652, 653, 654, 655, 658, 660, 661, 663, 666, 676, 678, 681, 682, 683, 684, 687, 689, 692, 694, 704, 706, 731, 735, 736, 739, 740, 741, 742, 743, 746, 750, 751, 752, 753, 755, 756, 765, 766, 767, 778, 782, 783, 786, 787, 788, 789, 790, 792, 794, 796, 797, 798, 801, 802, 803, 806, 809, 810, 816, 817, 820, 821, 824, 837, 839, 842, 843, 846, 867, 868, 870, 872, 873, 874, 876, 877, 880, 883, 887, 900, 911, 915, 918, 935, 938, 939, 940, 941, 942, 1096, 1100, 1101, 1102, 1106, 1107, 1108, 1111, 1116, 1119, 1123, 1128, 1134, 1137, 1147, 1148, 1149, 1150, 1151, 1154, 1157, 1159, 1161, 1180, 1184, 1185, 1187, 1195], "summary": {"covered_lines": 285, "num_statements": 427, "percent_covered": 66.7447306791569, "percent_covered_display": "67", "missing_lines": 142, "excluded_lines": 0, "percent_statements_covered": 66.7447306791569, "percent_statements_covered_display": "67"}, "missing_lines": [234, 238, 247, 260, 261, 262, 265, 269, 274, 277, 278, 279, 292, 293, 329, 330, 331, 332, 333, 334, 335, 336, 354, 355, 356, 357, 358, 367, 397, 398, 399, 400, 572, 573, 574, 586, 587, 588, 589, 592, 604, 607, 608, 611, 614, 615, 617, 623, 624, 625, 628, 629, 631, 732, 779, 884, 889, 890, 891, 892, 893, 895, 912, 916, 920, 921, 922, 923, 944, 946, 947, 950, 951, 954, 955, 956, 959, 960, 961, 963, 964, 967, 968, 977, 980, 981, 983, 984, 985, 988, 989, 990, 992, 994, 996, 997, 998, 999, 1000, 1004, 1007, 1008, 1011, 1012, 1015, 1016, 1019, 1020, 1021, 1022, 1032, 1040, 1044, 1047, 1050, 1052, 1053, 1054, 1057, 1058, 1059, 1060, 1062, 1064, 1068, 1070, 1071, 1073, 1097, 1120, 1163, 1164, 1165, 1166, 1170, 1173, 1174, 1176, 1189, 1190, 1191, 1192], "excluded_lines": [], "start_line": 176}, "": {"executed_lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 145, 146, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 163, 166, 167, 168, 169, 170, 171, 172, 173, 176, 180, 181, 183, 201, 281, 305, 352, 360, 374, 385, 411, 460, 512, 547, 598, 619, 633, 708, 769, 856, 925, 1002, 1042, 1066, 1084], "summary": {"covered_lines": 80, "num_statements": 118, "percent_covered": 67.79661016949153, "percent_covered_display": "68", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 67.79661016949153, "percent_statements_covered_display": "68"}, "missing_lines": [61, 63, 64, 67, 70, 71, 72, 73, 75, 78, 79, 86, 87, 89, 92, 95, 96, 99, 100, 101, 104, 105, 114, 117, 118, 119, 125, 126, 129, 130, 131, 132, 135, 136, 137, 139, 140, 142], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/project.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 19, 28, 29, 30, 31, 34, 37, 38, 39, 42, 43, 46, 47, 49, 51, 53, 54, 56, 57, 65, 67, 79, 86, 88, 92, 98, 103, 105, 119, 121, 122, 123, 124, 127, 128, 129, 130, 131, 132, 134, 135, 136, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 156, 159, 160, 161, 164, 165, 166, 167, 170, 171, 172, 175, 179, 182, 183, 184, 185, 186, 187, 188, 191, 194, 197, 198, 200, 202, 203, 205, 207, 209, 211, 213, 215, 217, 225, 226, 228, 230, 232, 234, 236, 238, 240, 242, 268, 308, 318, 319, 322, 323, 327, 328, 330, 332, 391, 396, 398, 432, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 452, 455, 456, 457, 458, 459, 460, 461, 464, 465, 466, 467, 469, 472, 473, 474, 475, 478, 479, 480, 481, 484, 485, 486, 487, 489, 491, 496, 497, 499, 500, 501, 502, 506, 508], "summary": {"covered_lines": 173, "num_statements": 234, "percent_covered": 73.93162393162393, "percent_covered_display": "74", "missing_lines": 61, "excluded_lines": 0, "percent_statements_covered": 73.93162393162393, "percent_statements_covered_display": "74"}, "missing_lines": [61, 62, 74, 75, 77, 90, 94, 95, 96, 100, 101, 231, 239, 253, 254, 257, 259, 261, 263, 264, 266, 273, 274, 277, 278, 279, 280, 281, 283, 284, 287, 290, 294, 295, 298, 299, 300, 302, 325, 343, 345, 346, 348, 350, 352, 356, 359, 360, 362, 375, 377, 378, 381, 384, 385, 387, 389, 393, 394, 503, 504], "excluded_lines": [], "functions": {"Page.__init__": {"executed_lines": [28, 29, 30, 31, 34, 37, 38, 39, 42, 43, 46, 47, 49, 51, 53, 54, 56, 57, 65], "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": [61, 62], "excluded_lines": [], "start_line": 19}, "Page.get_page_numbers": {"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": [74, 75, 77], "excluded_lines": [], "start_line": 67}, "Page.get_page_count": {"executed_lines": [86], "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": 79}, "Page.mark_modified": {"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": [90], "excluded_lines": [], "start_line": 88}, "Page.mark_deleted": {"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": [94, 95, 96], "excluded_lines": [], "start_line": 92}, "Page.render": {"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": [100, 101], "excluded_lines": [], "start_line": 98}, "Page.serialize": {"executed_lines": [105], "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": 103}, "Page.deserialize": {"executed_lines": [121, 122, 123, 124, 127, 128, 129, 130, 131, 132, 134, 135, 136], "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": 119}, "Project.__init__": {"executed_lines": [143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 156, 159, 160, 161, 164, 165, 166, 167, 170, 171, 172, 175, 179, 182, 183, 184, 185, 186, 187, 188, 191, 194, 197, 198], "summary": {"covered_lines": 34, "num_statements": 34, "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}, "Project.mark_dirty": {"executed_lines": [202, 203], "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": 200}, "Project.mark_clean": {"executed_lines": [207], "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": 205}, "Project.is_dirty": {"executed_lines": [211], "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": 209}, "Project.mark_modified": {"executed_lines": [215], "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": 213}, "Project.add_page": {"executed_lines": [225, 226, 228, 230, 232], "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": [231], "excluded_lines": [], "start_line": 217}, "Project.remove_page": {"executed_lines": [236, 238, 240], "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": [239], "excluded_lines": [], "start_line": 234}, "Project.calculate_spine_width": {"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": [253, 254, 257, 259, 261, 263, 264, 266], "excluded_lines": [], "start_line": 242}, "Project.update_cover_dimensions": {"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": [273, 274, 277, 278, 279, 280, 281, 283, 284, 287, 290, 294, 295, 298, 299, 300, 302], "excluded_lines": [], "start_line": 268}, "Project.get_page_display_name": {"executed_lines": [318, 319, 322, 323, 327, 328, 330], "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": [325], "excluded_lines": [], "start_line": 308}, "Project.calculate_page_layout_with_ghosts": {"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": [343, 345, 346, 348, 350, 352, 356, 359, 360, 362, 375, 377, 378, 381, 384, 385, 387, 389], "excluded_lines": [], "start_line": 332}, "Project.render_all_pages": {"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": [393, 394], "excluded_lines": [], "start_line": 391}, "Project.serialize": {"executed_lines": [398], "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": 396}, "Project.deserialize": {"executed_lines": [434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 452, 455, 456, 457, 458, 459, 460, 461, 464, 465, 466, 467, 469, 472, 473, 474, 475, 478, 479, 480, 481, 484, 485, 486, 487, 489], "summary": {"covered_lines": 42, "num_statements": 42, "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": 432}, "Project.cleanup": {"executed_lines": [496, 497, 499, 500, 501, 502], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [503, 504], "excluded_lines": [], "start_line": 491}, "Project.__del__": {"executed_lines": [508], "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": 506}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 19, 67, 79, 88, 92, 98, 103, 119, 139, 142, 200, 205, 209, 213, 217, 234, 242, 268, 308, 332, 391, 396, 432, 491, 506], "summary": {"covered_lines": 35, "num_statements": 35, "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": {"Page": {"executed_lines": [28, 29, 30, 31, 34, 37, 38, 39, 42, 43, 46, 47, 49, 51, 53, 54, 56, 57, 65, 86, 105, 121, 122, 123, 124, 127, 128, 129, 130, 131, 132, 134, 135, 136], "summary": {"covered_lines": 34, "num_statements": 45, "percent_covered": 75.55555555555556, "percent_covered_display": "76", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 75.55555555555556, "percent_statements_covered_display": "76"}, "missing_lines": [61, 62, 74, 75, 77, 90, 94, 95, 96, 100, 101], "excluded_lines": [], "start_line": 16}, "Project": {"executed_lines": [143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 156, 159, 160, 161, 164, 165, 166, 167, 170, 171, 172, 175, 179, 182, 183, 184, 185, 186, 187, 188, 191, 194, 197, 198, 202, 203, 207, 211, 215, 225, 226, 228, 230, 232, 236, 238, 240, 318, 319, 322, 323, 327, 328, 330, 398, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 452, 455, 456, 457, 458, 459, 460, 461, 464, 465, 466, 467, 469, 472, 473, 474, 475, 478, 479, 480, 481, 484, 485, 486, 487, 489, 496, 497, 499, 500, 501, 502, 508], "summary": {"covered_lines": 104, "num_statements": 154, "percent_covered": 67.53246753246754, "percent_covered_display": "68", "missing_lines": 50, "excluded_lines": 0, "percent_statements_covered": 67.53246753246754, "percent_statements_covered_display": "68"}, "missing_lines": [231, 239, 253, 254, 257, 259, 261, 263, 264, 266, 273, 274, 277, 278, 279, 280, 281, 283, 284, 287, 290, 294, 295, 298, 299, 300, 302, 325, 343, 345, 346, 348, 350, 352, 356, 359, 360, 362, 375, 377, 378, 381, 384, 385, 387, 389, 393, 394, 503, 504], "excluded_lines": [], "start_line": 139}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 19, 67, 79, 88, 92, 98, 103, 119, 139, 142, 200, 205, 209, 213, 217, 234, 242, 268, 308, 332, 391, 396, 432, 491, 506], "summary": {"covered_lines": 35, "num_statements": 35, "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}}}, "pyPhotoAlbum/project_serializer.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 22, 25, 33, 35, 37, 38, 39, 41, 43, 47, 59, 71, 75, 84, 86, 88, 89, 90, 91, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 119, 120, 123, 134, 136, 137, 140, 143, 146, 147, 150, 152, 153, 156, 157, 158, 159, 160, 162, 163, 165, 166, 168, 169, 170, 171, 174, 295, 307, 308, 311, 314, 317, 318, 319, 322, 325, 326, 329, 330, 331, 333, 334, 338, 341, 342, 346, 347, 348, 349, 350, 354, 355, 358, 361, 362, 363, 367, 368, 369, 373, 377, 379, 381, 382, 385, 395, 396, 398, 399, 401, 408, 409, 410], "summary": {"covered_lines": 113, "num_statements": 204, "percent_covered": 55.3921568627451, "percent_covered_display": "55", "missing_lines": 91, "excluded_lines": 0, "percent_statements_covered": 55.3921568627451, "percent_statements_covered_display": "55"}, "missing_lines": [45, 46, 50, 51, 52, 53, 56, 62, 63, 64, 65, 66, 67, 68, 69, 72, 109, 110, 111, 112, 113, 114, 115, 117, 200, 201, 202, 208, 209, 211, 213, 214, 215, 216, 217, 218, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 234, 235, 239, 241, 242, 243, 244, 246, 247, 249, 250, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 264, 265, 266, 267, 269, 270, 272, 274, 275, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 290, 291, 292, 343, 351], "excluded_lines": [], "functions": {"_import_external_images": {"executed_lines": [33, 35, 37, 38, 39, 41, 43, 47, 59, 71], "summary": {"covered_lines": 10, "num_statements": 26, "percent_covered": 38.46153846153846, "percent_covered_display": "38", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 38.46153846153846, "percent_statements_covered_display": "38"}, "missing_lines": [45, 46, 50, 51, 52, 53, 56, 62, 63, 64, 65, 66, 67, 68, 69, 72], "excluded_lines": [], "start_line": 25}, "_normalize_asset_paths": {"executed_lines": [84, 86, 88, 89, 90, 91, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 119, 120], "summary": {"covered_lines": 18, "num_statements": 26, "percent_covered": 69.23076923076923, "percent_covered_display": "69", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 69.23076923076923, "percent_statements_covered_display": "69"}, "missing_lines": [109, 110, 111, 112, 113, 114, 115, 117], "excluded_lines": [], "start_line": 75}, "save_to_zip": {"executed_lines": [134, 136, 137, 140, 143, 146, 147, 150, 152, 153, 156, 157, 158, 159, 160, 162, 163, 165, 166, 168, 169, 170, 171], "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": 123}, "save_to_zip_async": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [200, 201, 202, 208, 209, 211, 213, 214, 215, 216, 217, 218, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 234, 235, 239, 290, 291, 292], "excluded_lines": [], "start_line": 174}, "save_to_zip_async._background_save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 37, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 37, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [241, 242, 243, 244, 246, 247, 249, 250, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 264, 265, 266, 267, 269, 270, 272, 274, 275, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288], "excluded_lines": [], "start_line": 239}, "load_from_zip": {"executed_lines": [307, 308, 311, 314, 317, 318, 319, 322, 325, 326, 329, 330, 331, 333, 334, 338, 341, 342, 346, 347, 348, 349, 350, 354, 355, 358, 361, 362, 363, 367, 368, 369, 373, 377, 379, 381, 382], "summary": {"covered_lines": 37, "num_statements": 39, "percent_covered": 94.87179487179488, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.87179487179488, "percent_statements_covered_display": "95"}, "missing_lines": [343, 351], "excluded_lines": [], "start_line": 295}, "get_project_info": {"executed_lines": [395, 396, 398, 399, 401, 408, 409, 410], "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": 385}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 22, 25, 75, 123, 174, 295, 385], "summary": {"covered_lines": 17, "num_statements": 17, "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": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 22, 25, 33, 35, 37, 38, 39, 41, 43, 47, 59, 71, 75, 84, 86, 88, 89, 90, 91, 94, 95, 99, 100, 101, 102, 103, 104, 105, 106, 119, 120, 123, 134, 136, 137, 140, 143, 146, 147, 150, 152, 153, 156, 157, 158, 159, 160, 162, 163, 165, 166, 168, 169, 170, 171, 174, 295, 307, 308, 311, 314, 317, 318, 319, 322, 325, 326, 329, 330, 331, 333, 334, 338, 341, 342, 346, 347, 348, 349, 350, 354, 355, 358, 361, 362, 363, 367, 368, 369, 373, 377, 379, 381, 382, 385, 395, 396, 398, 399, 401, 408, 409, 410], "summary": {"covered_lines": 113, "num_statements": 204, "percent_covered": 55.3921568627451, "percent_covered_display": "55", "missing_lines": 91, "excluded_lines": 0, "percent_statements_covered": 55.3921568627451, "percent_statements_covered_display": "55"}, "missing_lines": [45, 46, 50, 51, 52, 53, 56, 62, 63, 64, 65, 66, 67, 68, 69, 72, 109, 110, 111, 112, 113, 114, 115, 117, 200, 201, 202, 208, 209, 211, 213, 214, 215, 216, 217, 218, 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 234, 235, 239, 241, 242, 243, 244, 246, 247, 249, 250, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 264, 265, 266, 267, 269, 270, 272, 274, 275, 277, 278, 279, 280, 281, 284, 285, 286, 287, 288, 290, 291, 292, 343, 351], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/ribbon_builder.py": {"executed_lines": [8, 9, 12, 44, 47, 48, 49, 52, 53, 56, 57, 60, 74, 77, 80, 81, 82, 84, 85, 88, 91, 101, 102, 104, 105, 107, 109, 110, 111, 112, 114, 116, 119, 130, 132, 133, 134, 136, 137, 138, 140, 141, 145, 148, 158, 160, 161, 162, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 178, 179, 180, 181, 183, 184, 186, 187, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 201, 202, 203, 205, 208, 215, 217, 218, 219, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232], "summary": {"covered_lines": 97, "num_statements": 101, "percent_covered": 96.03960396039604, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 96.03960396039604, "percent_statements_covered_display": "96"}, "missing_lines": [69, 71, 142, 143], "excluded_lines": [], "functions": {"build_ribbon_config": {"executed_lines": [44, 47, 48, 49, 52, 53, 56, 57, 60, 74, 77, 80, 81, 82, 84, 85, 88, 91, 101, 102, 104, 105, 107, 109, 110, 111, 112, 114, 116], "summary": {"covered_lines": 29, "num_statements": 31, "percent_covered": 93.54838709677419, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.54838709677419, "percent_statements_covered_display": "94"}, "missing_lines": [69, 71], "excluded_lines": [], "start_line": 12}, "get_keyboard_shortcuts": {"executed_lines": [130, 132, 133, 134, 136, 137, 138, 140, 141, 145], "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": [142, 143], "excluded_lines": [], "start_line": 119}, "validate_ribbon_config": {"executed_lines": [158, 160, 161, 162, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 178, 179, 180, 181, 183, 184, 186, 187, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 201, 202, 203, 205], "summary": {"covered_lines": 37, "num_statements": 37, "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": 148}, "print_ribbon_summary": {"executed_lines": [215, 217, 218, 219, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232], "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": 208}, "": {"executed_lines": [8, 9, 12, 119, 148, 208], "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": [8, 9, 12, 44, 47, 48, 49, 52, 53, 56, 57, 60, 74, 77, 80, 81, 82, 84, 85, 88, 91, 101, 102, 104, 105, 107, 109, 110, 111, 112, 114, 116, 119, 130, 132, 133, 134, 136, 137, 138, 140, 141, 145, 148, 158, 160, 161, 162, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 178, 179, 180, 181, 183, 184, 186, 187, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 201, 202, 203, 205, 208, 215, 217, 218, 219, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232], "summary": {"covered_lines": 97, "num_statements": 101, "percent_covered": 96.03960396039604, "percent_covered_display": "96", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 96.03960396039604, "percent_statements_covered_display": "96"}, "missing_lines": [69, 71, 142, 143], "excluded_lines": [], "start_line": 1}}}, "pyPhotoAlbum/ribbon_widget.py": {"executed_lines": [5, 6, 9, 12, 13, 14, 15, 18, 23, 26, 27, 28, 29, 32, 33, 34, 37, 39, 41, 42, 43, 45, 47, 48, 49, 50, 51, 54, 55, 56, 59, 61, 63, 65, 66, 67, 68, 69, 72, 73, 76, 79, 80, 81, 82, 83, 84, 86, 89, 90, 91, 92, 95, 96, 97, 99, 101, 103, 104, 105, 108, 109, 111, 113, 115, 117, 118, 119, 120, 122], "summary": {"covered_lines": 70, "num_statements": 72, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 97.22222222222223, "percent_statements_covered_display": "97"}, "missing_lines": [19, 21], "excluded_lines": [], "functions": {"RibbonWidget.__init__": {"executed_lines": [13, 14, 15, 18, 23, 26, 27, 28, 29, 32, 33, 34, 37], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [19, 21], "excluded_lines": [], "start_line": 12}, "RibbonWidget._build_ribbon": {"executed_lines": [41, 42, 43], "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": 39}, "RibbonWidget._create_tab": {"executed_lines": [47, 48, 49, 50, 51, 54, 55, 56, 59, 61], "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": 45}, "RibbonWidget._create_group": {"executed_lines": [65, 66, 67, 68, 69, 72, 73, 76, 79, 80, 81, 82, 83, 84, 86, 89, 90, 91, 92, 95, 96, 97, 99], "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": 63}, "RibbonWidget._create_action_button": {"executed_lines": [103, 104, 105, 108, 109, 111, 113], "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": 101}, "RibbonWidget._execute_action": {"executed_lines": [117, 118, 119, 120, 122], "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": 115}, "": {"executed_lines": [5, 6, 9, 12, 39, 45, 63, 101, 115], "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": {"RibbonWidget": {"executed_lines": [13, 14, 15, 18, 23, 26, 27, 28, 29, 32, 33, 34, 37, 41, 42, 43, 47, 48, 49, 50, 51, 54, 55, 56, 59, 61, 65, 66, 67, 68, 69, 72, 73, 76, 79, 80, 81, 82, 83, 84, 86, 89, 90, 91, 92, 95, 96, 97, 99, 103, 104, 105, 108, 109, 111, 113, 117, 118, 119, 120, 122], "summary": {"covered_lines": 61, "num_statements": 63, "percent_covered": 96.82539682539682, "percent_covered_display": "97", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.82539682539682, "percent_statements_covered_display": "97"}, "missing_lines": [19, 21], "excluded_lines": [], "start_line": 9}, "": {"executed_lines": [5, 6, 9, 12, 39, 45, 63, 101, 115], "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}}}, "pyPhotoAlbum/snapping.py": {"executed_lines": [6, 7, 8, 11, 12, 15, 16, 18, 20, 22, 23, 25, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 45, 52, 53, 54, 55, 56, 57, 59, 61, 62, 63, 65, 67, 68, 70, 72, 74, 95, 96, 97, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 114, 117, 120, 121, 122, 125, 135, 145, 146, 147, 148, 151, 152, 153, 154, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 170, 171, 172, 175, 176, 177, 179, 180, 181, 184, 185, 187, 188, 189, 190, 191, 194, 195, 197, 199, 209, 210, 211, 214, 217, 220, 223, 224, 227, 229, 230, 232, 234, 236, 238, 239, 241, 243, 249, 251, 254, 261, 263, 265, 268, 269, 272, 274, 277, 284, 286, 288, 291, 292, 295, 296, 297, 299, 301, 325, 331, 332, 333, 334, 336, 339, 341, 344, 345, 348, 349, 352, 353, 356, 357, 358, 359, 360, 363, 364, 366, 367, 368, 369, 371, 373, 384, 385, 386, 388, 391, 392, 395, 396, 397, 398, 401, 402, 403, 404, 407, 408, 413, 414, 415, 416, 418, 420, 422, 431, 433, 434, 435, 436, 437, 439, 440, 441], "summary": {"covered_lines": 198, "num_statements": 209, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [215, 256, 257, 258, 279, 280, 281, 326, 327, 328, 329], "excluded_lines": [], "functions": {"Guide.serialize": {"executed_lines": [20], "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}, "Guide.deserialize": {"executed_lines": [25], "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": 23}, "SnappingSystem.__init__": {"executed_lines": [52, 53, 54, 55, 56, 57], "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": 45}, "SnappingSystem.add_guide": {"executed_lines": [61, 62, 63], "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}, "SnappingSystem.remove_guide": {"executed_lines": [67, 68], "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": 65}, "SnappingSystem.clear_guides": {"executed_lines": [72], "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": 70}, "SnappingSystem.snap_position": {"executed_lines": [95, 96, 97, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 114, 117, 120, 121, 122, 125, 135, 145, 146, 147, 148, 151, 152, 153, 154, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 170, 171, 172, 175, 176, 177, 179, 180, 181, 184, 185, 187, 188, 189, 190, 191, 194, 195, 197], "summary": {"covered_lines": 59, "num_statements": 59, "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}, "SnappingSystem.snap_resize": {"executed_lines": [209, 210, 211, 214, 217, 220, 223, 224, 227, 229, 230, 232, 234, 236, 238, 239, 241, 243, 249, 251, 254, 261, 263, 265, 268, 269, 272, 274, 277, 284, 286, 288, 291, 292, 295, 296, 297, 299], "summary": {"covered_lines": 38, "num_statements": 45, "percent_covered": 84.44444444444444, "percent_covered_display": "84", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 84.44444444444444, "percent_statements_covered_display": "84"}, "missing_lines": [215, 256, 257, 258, 279, 280, 281], "excluded_lines": [], "start_line": 199}, "SnappingSystem._snap_edge_to_targets": {"executed_lines": [325, 331, 332, 333, 334, 336, 339, 341, 344, 345, 348, 349, 352, 353, 356, 357, 358, 359, 360, 363, 364, 366, 367, 368, 369, 371], "summary": {"covered_lines": 26, "num_statements": 30, "percent_covered": 86.66666666666667, "percent_covered_display": "87", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 86.66666666666667, "percent_statements_covered_display": "87"}, "missing_lines": [326, 327, 328, 329], "excluded_lines": [], "start_line": 301}, "SnappingSystem.get_snap_lines": {"executed_lines": [384, 385, 386, 388, 391, 392, 395, 396, 397, 398, 401, 402, 403, 404, 407, 408, 413, 414, 415, 416, 418], "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": 373}, "SnappingSystem.serialize": {"executed_lines": [422], "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": 420}, "SnappingSystem.deserialize": {"executed_lines": [433, 434, 435, 436, 437, 439, 440, 441], "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": 431}, "": {"executed_lines": [6, 7, 8, 11, 12, 15, 16, 18, 22, 23, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 45, 59, 65, 70, 74, 199, 301, 373, 420, 431], "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": 1}}, "classes": {"Guide": {"executed_lines": [20, 25], "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": 12}, "SnapResizeParams": {"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}, "SnappingSystem": {"executed_lines": [52, 53, 54, 55, 56, 57, 61, 62, 63, 67, 68, 72, 95, 96, 97, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 114, 117, 120, 121, 122, 125, 135, 145, 146, 147, 148, 151, 152, 153, 154, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 170, 171, 172, 175, 176, 177, 179, 180, 181, 184, 185, 187, 188, 189, 190, 191, 194, 195, 197, 209, 210, 211, 214, 217, 220, 223, 224, 227, 229, 230, 232, 234, 236, 238, 239, 241, 243, 249, 251, 254, 261, 263, 265, 268, 269, 272, 274, 277, 284, 286, 288, 291, 292, 295, 296, 297, 299, 325, 331, 332, 333, 334, 336, 339, 341, 344, 345, 348, 349, 352, 353, 356, 357, 358, 359, 360, 363, 364, 366, 367, 368, 369, 371, 384, 385, 386, 388, 391, 392, 395, 396, 397, 398, 401, 402, 403, 404, 407, 408, 413, 414, 415, 416, 418, 422, 433, 434, 435, 436, 437, 439, 440, 441], "summary": {"covered_lines": 165, "num_statements": 176, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [215, 256, 257, 258, 279, 280, 281, 326, 327, 328, 329], "excluded_lines": [], "start_line": 42}, "": {"executed_lines": [6, 7, 8, 11, 12, 15, 16, 18, 22, 23, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 45, 59, 65, 70, 74, 199, 301, 373, 420, 431], "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": 1}}}, "pyPhotoAlbum/template_manager.py": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 14, 17, 20, 21, 22, 23, 25, 27, 29, 31, 38, 39, 41, 48, 49, 51, 52, 53, 54, 56, 58, 59, 61, 63, 65, 66, 68, 69, 71, 72, 73, 76, 79, 80, 81, 82, 84, 87, 88, 89, 91, 94, 95, 97, 99, 102, 103, 105, 107, 110, 111, 112, 115, 116, 117, 120, 121, 122, 123, 124, 126, 128, 139, 147, 148, 149, 152, 153, 154, 157, 159, 160, 162, 164, 172, 178, 179, 181, 183, 184, 187, 188, 189, 190, 191, 192, 196, 197, 198, 200, 207, 210, 211, 213, 218, 221, 222, 224, 233, 234, 236, 247, 248, 250, 260, 262, 264, 285, 286, 289, 290, 293, 294, 297, 299, 300, 301, 302, 303, 305, 306, 307, 309, 310, 311, 312, 315, 316, 317, 318, 320, 321, 324, 325, 328, 329, 338, 339, 341, 342, 343, 344, 346, 350, 351, 352, 354, 356, 358, 360, 362, 364, 386, 387, 388, 390, 392, 395, 400, 401, 403, 405, 406, 409, 413, 414, 417, 420, 421, 423, 424, 425, 426, 427, 430, 433, 437, 440, 464, 465, 466, 469, 470, 471, 473, 475, 480, 483, 484, 487, 488], "summary": {"covered_lines": 198, "num_statements": 210, "percent_covered": 94.28571428571429, "percent_covered_display": "94", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 94.28571428571429, "percent_statements_covered_display": "94"}, "missing_lines": [140, 141, 142, 143, 144, 174, 175, 193, 208, 335, 434, 438], "excluded_lines": [], "functions": {"Template.__init__": {"executed_lines": [20, 21, 22, 23], "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": 17}, "Template.add_element": {"executed_lines": [27], "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": 25}, "Template.to_dict": {"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": 29}, "Template.from_dict": {"executed_lines": [41, 48, 49, 51, 52, 53, 54, 56, 58, 59, 61], "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": 39}, "Template.save_to_file": {"executed_lines": [65, 66], "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": 63}, "Template.load_from_file": {"executed_lines": [71, 72, 73], "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": 69}, "TemplateManager.__init__": {"executed_lines": [80, 81, 82], "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": 79}, "TemplateManager._get_templates_directory": {"executed_lines": [87, 88, 89], "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": 84}, "TemplateManager._get_builtin_templates_directory": {"executed_lines": [94, 95], "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": 91}, "TemplateManager._ensure_templates_directory": {"executed_lines": [99, 102, 103], "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": 97}, "TemplateManager.list_templates": {"executed_lines": [107, 110, 111, 112, 115, 116, 117, 120, 121, 122, 123, 124, 126], "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": 105}, "TemplateManager.load_template": {"executed_lines": [139, 147, 148, 149, 152, 153, 154, 157, 159, 160, 162], "summary": {"covered_lines": 11, "num_statements": 16, "percent_covered": 68.75, "percent_covered_display": "69", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 68.75, "percent_statements_covered_display": "69"}, "missing_lines": [140, 141, 142, 143, 144], "excluded_lines": [], "start_line": 128}, "TemplateManager.save_template": {"executed_lines": [172, 178, 179], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [174, 175], "excluded_lines": [], "start_line": 164}, "TemplateManager.delete_template": {"executed_lines": [183, 184, 187, 188, 189, 190, 191, 192, 196, 197, 198], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [193], "excluded_lines": [], "start_line": 181}, "TemplateManager.embed_template": {"executed_lines": [207, 210, 211], "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": [208], "excluded_lines": [], "start_line": 200}, "TemplateManager.create_template_from_page": {"executed_lines": [218, 221, 222, 224, 233, 234, 236, 247, 248, 250, 260, 262], "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": 213}, "TemplateManager.scale_template_elements": {"executed_lines": [285, 286, 289, 290, 293, 294, 297, 299, 300, 301, 302, 303, 305, 306, 307, 309, 310, 311, 312, 315, 316, 317, 318, 320, 321, 324, 325, 328, 329, 338, 339, 341, 342, 343, 344, 346, 350, 351, 352, 354, 356, 358, 360, 362], "summary": {"covered_lines": 44, "num_statements": 45, "percent_covered": 97.77777777777777, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.77777777777777, "percent_statements_covered_display": "98"}, "missing_lines": [335], "excluded_lines": [], "start_line": 264}, "TemplateManager.apply_template_to_page": {"executed_lines": [386, 387, 388, 390, 392, 395, 400, 401, 403, 405, 406, 409, 413, 414, 417, 420, 421, 423, 424, 425, 426, 427, 430, 433, 437], "summary": {"covered_lines": 25, "num_statements": 27, "percent_covered": 92.5925925925926, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.5925925925926, "percent_statements_covered_display": "93"}, "missing_lines": [434, 438], "excluded_lines": [], "start_line": 364}, "TemplateManager.create_page_from_template": {"executed_lines": [464, 465, 466, 469, 470, 471, 473, 475, 480, 483, 484, 487, 488], "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": 440}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 14, 17, 25, 29, 38, 39, 63, 68, 69, 76, 79, 84, 91, 97, 105, 128, 164, 181, 200, 213, 264, 364, 440], "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": {"Template": {"executed_lines": [20, 21, 22, 23, 27, 31, 41, 48, 49, 51, 52, 53, 54, 56, 58, 59, 61, 65, 66, 71, 72, 73], "summary": {"covered_lines": 22, "num_statements": 22, "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}, "TemplateManager": {"executed_lines": [80, 81, 82, 87, 88, 89, 94, 95, 99, 102, 103, 107, 110, 111, 112, 115, 116, 117, 120, 121, 122, 123, 124, 126, 139, 147, 148, 149, 152, 153, 154, 157, 159, 160, 162, 172, 178, 179, 183, 184, 187, 188, 189, 190, 191, 192, 196, 197, 198, 207, 210, 211, 218, 221, 222, 224, 233, 234, 236, 247, 248, 250, 260, 262, 285, 286, 289, 290, 293, 294, 297, 299, 300, 301, 302, 303, 305, 306, 307, 309, 310, 311, 312, 315, 316, 317, 318, 320, 321, 324, 325, 328, 329, 338, 339, 341, 342, 343, 344, 346, 350, 351, 352, 354, 356, 358, 360, 362, 386, 387, 388, 390, 392, 395, 400, 401, 403, 405, 406, 409, 413, 414, 417, 420, 421, 423, 424, 425, 426, 427, 430, 433, 437, 464, 465, 466, 469, 470, 471, 473, 475, 480, 483, 484, 487, 488], "summary": {"covered_lines": 146, "num_statements": 158, "percent_covered": 92.40506329113924, "percent_covered_display": "92", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 92.40506329113924, "percent_statements_covered_display": "92"}, "missing_lines": [140, 141, 142, 143, 144, 174, 175, 193, 208, 335, 434, 438], "excluded_lines": [], "start_line": 76}, "": {"executed_lines": [5, 6, 7, 8, 9, 10, 11, 14, 17, 25, 29, 38, 39, 63, 68, 69, 76, 79, 84, 91, 97, 105, 128, 164, 181, 200, 213, 264, 364, 440], "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}}}, "pyPhotoAlbum/text_edit_dialog.py": {"executed_lines": [5, 16, 17, 20, 23, 24, 25, 26, 27, 30, 33, 35, 37, 40, 41, 42, 43, 44, 47, 50, 51, 52, 55, 58, 59, 60, 61, 62, 65, 66, 67, 68, 70, 71, 74, 75, 76, 77, 78, 79, 80, 83, 84, 86, 87, 88, 90, 91, 92, 93, 95, 97, 99, 102, 105, 106, 107, 108, 110, 111, 114, 115, 117, 120, 121, 124, 125, 126, 127, 129, 131, 132, 133, 134, 136, 138, 143, 145], "summary": {"covered_lines": 78, "num_statements": 78, "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": {"TextEditDialog.__init__": {"executed_lines": [24, 25, 26, 27, 30, 33], "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": 23}, "TextEditDialog._init_ui": {"executed_lines": [37, 40, 41, 42, 43, 44, 47, 50, 51, 52, 55, 58, 59, 60, 61, 62, 65, 66, 67, 68, 70, 71, 74, 75, 76, 77, 78, 79, 80, 83, 84, 86, 87, 88, 90, 91, 92, 93, 95, 97], "summary": {"covered_lines": 40, "num_statements": 40, "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}, "TextEditDialog._load_values": {"executed_lines": [102, 105, 106, 107, 108, 110, 111, 114, 115, 117, 120, 121, 124, 125, 126, 127], "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": 99}, "TextEditDialog._choose_color": {"executed_lines": [131, 132, 133, 134], "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": 129}, "TextEditDialog._update_color_button": {"executed_lines": [138], "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": 136}, "TextEditDialog.get_values": {"executed_lines": [145], "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": 143}, "": {"executed_lines": [5, 16, 17, 20, 23, 35, 99, 129, 136, 143], "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": {"TextEditDialog": {"executed_lines": [24, 25, 26, 27, 30, 33, 37, 40, 41, 42, 43, 44, 47, 50, 51, 52, 55, 58, 59, 60, 61, 62, 65, 66, 67, 68, 70, 71, 74, 75, 76, 77, 78, 79, 80, 83, 84, 86, 87, 88, 90, 91, 92, 93, 95, 97, 102, 105, 106, 107, 108, 110, 111, 114, 115, 117, 120, 121, 124, 125, 126, 127, 131, 132, 133, 134, 138, 145], "summary": {"covered_lines": 68, "num_statements": 68, "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}, "": {"executed_lines": [5, 16, 17, 20, 23, 35, 99, 129, 136, 143], "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}}}, "pyPhotoAlbum/thumbnail_browser.py": {"executed_lines": [5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 20, 23, 29, 32, 33, 34, 35, 36, 39, 40, 41, 44, 45, 46, 47, 48, 50, 52, 54, 56, 59, 65, 66, 68, 69, 70, 73, 76, 77, 80, 81, 84, 85, 88, 89, 92, 94, 96, 98, 102, 104, 111, 126, 146, 174, 247, 277, 315, 317, 320, 321, 322, 323, 325, 328, 331, 333, 335, 337, 338, 339, 342, 343, 347, 348, 351, 354, 355, 357, 360, 363, 364, 367, 368, 369, 370, 372, 373, 376, 406, 412, 413, 416, 419, 427, 428, 429, 431, 433, 436, 437, 438, 439, 442, 444, 446, 447, 478, 487, 497, 500, 501, 502, 504, 507, 508, 509, 511, 512, 514, 515, 516, 519, 520, 522, 525, 529, 530, 531, 533, 534, 537, 539, 541, 545, 554, 566, 570, 572, 573, 574, 576, 578, 580, 581, 582, 584, 586, 592, 627, 632, 671, 676, 677, 680, 681, 682, 683, 686, 688, 689, 690, 692, 693, 694, 696, 699, 700, 702, 703, 705, 706, 707, 708, 709, 711, 712, 713, 714, 716, 717, 718, 719, 721, 723, 726, 729, 730, 731, 734, 735, 738, 739, 740, 743, 745, 747, 750, 751, 758, 760, 762, 763, 764, 782, 788, 790, 797, 798, 800, 802, 803, 805, 806, 807, 808, 810, 827, 829, 830, 854, 881], "summary": {"covered_lines": 222, "num_statements": 517, "percent_covered": 42.94003868471954, "percent_covered_display": "43", "missing_lines": 295, "excluded_lines": 0, "percent_statements_covered": 42.94003868471954, "percent_statements_covered_display": "43"}, "missing_lines": [24, 25, 26, 106, 107, 108, 109, 113, 114, 115, 116, 117, 120, 121, 124, 128, 129, 131, 132, 135, 136, 139, 140, 143, 144, 149, 152, 153, 154, 157, 158, 159, 161, 163, 164, 167, 169, 170, 172, 176, 179, 180, 183, 185, 186, 187, 189, 191, 192, 193, 194, 197, 198, 199, 200, 203, 206, 207, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 245, 250, 251, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 266, 267, 268, 269, 270, 271, 279, 280, 282, 283, 286, 287, 290, 291, 294, 295, 296, 297, 298, 299, 303, 304, 305, 306, 308, 310, 311, 312, 313, 344, 377, 379, 380, 381, 383, 385, 388, 389, 391, 392, 395, 396, 399, 401, 402, 403, 408, 409, 420, 421, 422, 423, 424, 449, 450, 451, 452, 455, 457, 458, 460, 463, 466, 468, 469, 470, 471, 474, 475, 476, 480, 481, 484, 485, 489, 490, 492, 493, 494, 495, 526, 535, 551, 552, 556, 558, 559, 560, 561, 564, 568, 588, 589, 590, 594, 595, 597, 598, 601, 603, 604, 607, 608, 610, 613, 616, 617, 621, 622, 623, 624, 625, 629, 630, 634, 637, 639, 641, 644, 647, 648, 649, 653, 654, 658, 664, 665, 667, 668, 766, 767, 768, 771, 772, 774, 776, 777, 778, 779, 780, 784, 786, 813, 814, 815, 817, 820, 821, 823, 824, 825, 831, 833, 835, 837, 838, 839, 841, 843, 844, 845, 847, 849, 851, 852, 856, 857, 858, 860, 861, 862, 864, 865, 866, 868, 870, 871, 872, 873, 874, 875, 876, 879, 883, 884, 885, 887, 888, 889, 891, 892, 893, 894, 895, 896, 899], "excluded_lines": [], "functions": {"DateHeader.__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}, "ThumbnailItem.__init__": {"executed_lines": [33, 34, 35, 36, 39, 40, 41, 44, 45, 46, 47, 48], "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": 32}, "ThumbnailItem.get_bounds": {"executed_lines": [52], "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": 50}, "ThumbnailItem.contains_point": {"executed_lines": [56], "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}, "ThumbnailGLWidget.__init__": {"executed_lines": [66, 68, 69, 70, 73, 76, 77, 80, 81, 84, 85, 88, 89, 92], "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": 65}, "ThumbnailGLWidget.window": {"executed_lines": [96], "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": 94}, "ThumbnailGLWidget.update": {"executed_lines": [102], "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": 98}, "ThumbnailGLWidget.initializeGL": {"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": [106, 107, 108, 109], "excluded_lines": [], "start_line": 104}, "ThumbnailGLWidget.resizeGL": {"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": [113, 114, 115, 116, 117, 120, 121, 124], "excluded_lines": [], "start_line": 111}, "ThumbnailGLWidget.paintGL": {"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": [128, 129, 131, 132, 135, 136, 139, 140, 143, 144], "excluded_lines": [], "start_line": 126}, "ThumbnailGLWidget.paintEvent": {"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": [149, 152, 153, 154, 157, 158, 159, 161, 163, 164, 167, 169, 170, 172], "excluded_lines": [], "start_line": 146}, "ThumbnailGLWidget._render_thumbnail": {"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": [176, 179, 180, 183, 185, 186, 187, 189, 191, 192, 193, 194, 197, 198, 199, 200, 203, 206, 207, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 245], "excluded_lines": [], "start_line": 174}, "ThumbnailGLWidget._render_date_header": {"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": [250, 251, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 266, 267, 268, 269, 270, 271], "excluded_lines": [], "start_line": 247}, "ThumbnailGLWidget._create_texture_for_thumbnail": {"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": [279, 280, 282, 283, 286, 287, 290, 291, 294, 295, 296, 297, 298, 299, 303, 304, 305, 306, 308, 310, 311, 312, 313], "excluded_lines": [], "start_line": 277}, "ThumbnailGLWidget.load_folder": {"executed_lines": [317, 320, 321, 322, 323, 325, 328, 331, 333], "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": 315}, "ThumbnailGLWidget._arrange_thumbnails": {"executed_lines": [337, 338, 339, 342, 343, 347, 348, 351, 354, 355, 357, 360, 363, 364, 367, 368, 369, 370, 372, 373, 376, 406, 412, 413, 416, 419, 427, 428, 429, 431, 433, 436, 437, 438, 439, 442], "summary": {"covered_lines": 36, "num_statements": 60, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [344, 377, 379, 380, 381, 383, 385, 388, 389, 391, 392, 395, 396, 399, 401, 402, 403, 408, 409, 420, 421, 422, 423, 424], "excluded_lines": [], "start_line": 335}, "ThumbnailGLWidget._update_scrollbar_range": {"executed_lines": [446, 447], "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": [449, 450, 451, 452, 455, 457, 458, 460, 463, 466, 468, 469, 470, 471, 474, 475, 476], "excluded_lines": [], "start_line": 444}, "ThumbnailGLWidget._on_scrollbar_changed": {"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": [480, 481, 484, 485], "excluded_lines": [], "start_line": 478}, "ThumbnailGLWidget._update_scrollbar_position": {"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": [489, 490, 492, 493, 494, 495], "excluded_lines": [], "start_line": 487}, "ThumbnailGLWidget.update_used_images": {"executed_lines": [500, 501, 502, 504, 507, 508, 509, 511, 512, 514, 515, 516, 519, 520], "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": 497}, "ThumbnailGLWidget._request_thumbnail_load": {"executed_lines": [525, 529, 530, 531, 533, 534, 537, 539, 541, 545], "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": [526, 535, 551, 552], "excluded_lines": [], "start_line": 522}, "ThumbnailGLWidget._on_image_loaded": {"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": [556, 558, 559, 560, 561, 564], "excluded_lines": [], "start_line": 554}, "ThumbnailGLWidget._on_image_load_failed": {"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": [568], "excluded_lines": [], "start_line": 566}, "ThumbnailGLWidget.screen_to_viewport": {"executed_lines": [572, 573, 574], "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": 570}, "ThumbnailGLWidget.get_thumbnail_at": {"executed_lines": [578, 580, 581, 582, 584], "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": 576}, "ThumbnailGLWidget.mousePressEvent": {"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": [588, 589, 590], "excluded_lines": [], "start_line": 586}, "ThumbnailGLWidget.mouseMoveEvent": {"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": [594, 595, 597, 598, 601, 603, 604, 607, 608, 610, 613, 616, 617, 621, 622, 623, 624, 625], "excluded_lines": [], "start_line": 592}, "ThumbnailGLWidget.mouseReleaseEvent": {"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": [629, 630], "excluded_lines": [], "start_line": 627}, "ThumbnailGLWidget.wheelEvent": {"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": [634, 637, 639, 641, 644, 647, 648, 649, 653, 654, 658, 664, 665, 667, 668], "excluded_lines": [], "start_line": 632}, "ThumbnailBrowserDock.__init__": {"executed_lines": [677, 680, 681, 682, 683, 686, 688, 689, 690, 692, 693, 694, 696, 699, 700, 702, 703, 705, 706, 707, 708, 709, 711, 712, 713, 714, 716, 717, 718, 719, 721, 723, 726, 729, 730, 731, 734, 735, 738, 739, 740, 743, 745, 747, 750, 751, 758], "summary": {"covered_lines": 47, "num_statements": 47, "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": 676}, "ThumbnailBrowserDock._connect_async_loader": {"executed_lines": [762, 763, 764], "summary": {"covered_lines": 3, "num_statements": 14, "percent_covered": 21.428571428571427, "percent_covered_display": "21", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 21.428571428571427, "percent_statements_covered_display": "21"}, "missing_lines": [766, 767, 768, 771, 772, 774, 776, 777, 778, 779, 780], "excluded_lines": [], "start_line": 760}, "ThumbnailBrowserDock.showEvent": {"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": [784, 786], "excluded_lines": [], "start_line": 782}, "ThumbnailBrowserDock._select_folder": {"executed_lines": [790, 797, 798], "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": 788}, "ThumbnailBrowserDock.load_folder": {"executed_lines": [802, 803, 805, 806, 807, 808], "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": 800}, "ThumbnailBrowserDock._sort_by": {"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": [813, 814, 815, 817, 820, 821, 823, 824, 825], "excluded_lines": [], "start_line": 810}, "ThumbnailBrowserDock._apply_sort": {"executed_lines": [829, 830], "summary": {"covered_lines": 2, "num_statements": 16, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 12.5, "percent_statements_covered_display": "12"}, "missing_lines": [831, 833, 835, 837, 838, 839, 841, 843, 844, 845, 847, 849, 851, 852], "excluded_lines": [], "start_line": 827}, "ThumbnailBrowserDock._get_image_date": {"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": [856, 857, 858, 860, 861, 862, 864, 865, 866, 868, 870, 871, 872, 873, 874, 875, 876, 879], "excluded_lines": [], "start_line": 854}, "ThumbnailBrowserDock._get_camera_model": {"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": [883, 884, 885, 887, 888, 889, 891, 892, 893, 894, 895, 896, 899], "excluded_lines": [], "start_line": 881}, "": {"executed_lines": [5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 20, 23, 29, 32, 50, 54, 59, 65, 94, 98, 104, 111, 126, 146, 174, 247, 277, 315, 335, 444, 478, 487, 497, 522, 554, 566, 570, 576, 586, 592, 627, 632, 671, 676, 760, 782, 788, 800, 810, 827, 854, 881], "summary": {"covered_lines": 52, "num_statements": 52, "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": {"DateHeader": {"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": 20}, "ThumbnailItem": {"executed_lines": [33, 34, 35, 36, 39, 40, 41, 44, 45, 46, 47, 48, 52, 56], "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": 29}, "ThumbnailGLWidget": {"executed_lines": [66, 68, 69, 70, 73, 76, 77, 80, 81, 84, 85, 88, 89, 92, 96, 102, 317, 320, 321, 322, 323, 325, 328, 331, 333, 337, 338, 339, 342, 343, 347, 348, 351, 354, 355, 357, 360, 363, 364, 367, 368, 369, 370, 372, 373, 376, 406, 412, 413, 416, 419, 427, 428, 429, 431, 433, 436, 437, 438, 439, 442, 446, 447, 500, 501, 502, 504, 507, 508, 509, 511, 512, 514, 515, 516, 519, 520, 525, 529, 530, 531, 533, 534, 537, 539, 541, 545, 572, 573, 574, 578, 580, 581, 582, 584], "summary": {"covered_lines": 95, "num_statements": 320, "percent_covered": 29.6875, "percent_covered_display": "30", "missing_lines": 225, "excluded_lines": 0, "percent_statements_covered": 29.6875, "percent_statements_covered_display": "30"}, "missing_lines": [106, 107, 108, 109, 113, 114, 115, 116, 117, 120, 121, 124, 128, 129, 131, 132, 135, 136, 139, 140, 143, 144, 149, 152, 153, 154, 157, 158, 159, 161, 163, 164, 167, 169, 170, 172, 176, 179, 180, 183, 185, 186, 187, 189, 191, 192, 193, 194, 197, 198, 199, 200, 203, 206, 207, 210, 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 245, 250, 251, 252, 253, 254, 257, 258, 259, 260, 261, 262, 263, 266, 267, 268, 269, 270, 271, 279, 280, 282, 283, 286, 287, 290, 291, 294, 295, 296, 297, 298, 299, 303, 304, 305, 306, 308, 310, 311, 312, 313, 344, 377, 379, 380, 381, 383, 385, 388, 389, 391, 392, 395, 396, 399, 401, 402, 403, 408, 409, 420, 421, 422, 423, 424, 449, 450, 451, 452, 455, 457, 458, 460, 463, 466, 468, 469, 470, 471, 474, 475, 476, 480, 481, 484, 485, 489, 490, 492, 493, 494, 495, 526, 535, 551, 552, 556, 558, 559, 560, 561, 564, 568, 588, 589, 590, 594, 595, 597, 598, 601, 603, 604, 607, 608, 610, 613, 616, 617, 621, 622, 623, 624, 625, 629, 630, 634, 637, 639, 641, 644, 647, 648, 649, 653, 654, 658, 664, 665, 667, 668], "excluded_lines": [], "start_line": 59}, "ThumbnailBrowserDock": {"executed_lines": [677, 680, 681, 682, 683, 686, 688, 689, 690, 692, 693, 694, 696, 699, 700, 702, 703, 705, 706, 707, 708, 709, 711, 712, 713, 714, 716, 717, 718, 719, 721, 723, 726, 729, 730, 731, 734, 735, 738, 739, 740, 743, 745, 747, 750, 751, 758, 762, 763, 764, 790, 797, 798, 802, 803, 805, 806, 807, 808, 829, 830], "summary": {"covered_lines": 61, "num_statements": 128, "percent_covered": 47.65625, "percent_covered_display": "48", "missing_lines": 67, "excluded_lines": 0, "percent_statements_covered": 47.65625, "percent_statements_covered_display": "48"}, "missing_lines": [766, 767, 768, 771, 772, 774, 776, 777, 778, 779, 780, 784, 786, 813, 814, 815, 817, 820, 821, 823, 824, 825, 831, 833, 835, 837, 838, 839, 841, 843, 844, 845, 847, 849, 851, 852, 856, 857, 858, 860, 861, 862, 864, 865, 866, 868, 870, 871, 872, 873, 874, 875, 876, 879, 883, 884, 885, 887, 888, 889, 891, 892, 893, 894, 895, 896, 899], "excluded_lines": [], "start_line": 671}, "": {"executed_lines": [5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 20, 23, 29, 32, 50, 54, 59, 65, 94, 98, 104, 111, 126, 146, 174, 247, 277, 315, 335, 444, 478, 487, 497, 522, 554, 566, 570, 576, 586, 592, 627, 632, 671, 676, 760, 782, 788, 800, 810, 827, 854, 881], "summary": {"covered_lines": 52, "num_statements": 52, "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}}}, "pyPhotoAlbum/version_manager.py": {"executed_lines": [5, 6, 7, 8, 11, 14, 44, 47, 48, 58, 59, 60, 62, 63, 74, 76, 77, 81, 82, 96, 99, 100, 102, 106, 107, 108, 113, 117, 119, 120, 123, 124, 125, 127, 129, 130, 142, 146, 147, 151, 152, 153, 154, 155, 157, 158, 159, 163, 169, 170, 189, 190, 200, 203, 206, 207, 208, 210, 211, 213, 214, 217, 219, 220, 223, 224, 225, 226, 229, 230, 231, 232, 235, 236, 238, 239, 242, 243, 244, 245, 248, 249, 250, 251, 254, 256, 258, 261, 272, 275, 276, 277, 278, 303], "summary": {"covered_lines": 94, "num_statements": 133, "percent_covered": 70.67669172932331, "percent_covered_display": "71", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 70.67669172932331, "percent_statements_covered_display": "71"}, "missing_lines": [79, 97, 103, 110, 143, 148, 161, 178, 181, 186, 273, 281, 282, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 300, 305, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 323], "excluded_lines": [], "functions": {"VersionCompatibility.is_compatible": {"executed_lines": [58, 59, 60], "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": 48}, "VersionCompatibility.needs_migration": {"executed_lines": [74], "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": 63}, "VersionCompatibility.get_version_info": {"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": [79], "excluded_lines": [], "start_line": 77}, "VersionCompatibility.get_migration_path": {"executed_lines": [96, 99, 100, 102, 106, 107, 108], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 70.0, "percent_statements_covered_display": "70"}, "missing_lines": [97, 103, 110], "excluded_lines": [], "start_line": 82}, "DataMigration.register_migration": {"executed_lines": [123, 127], "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": 120}, "DataMigration.register_migration.decorator": {"executed_lines": [124, 125], "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": 123}, "DataMigration.migrate": {"executed_lines": [142, 146, 147, 151, 152, 153, 154, 155, 157, 158, 159, 163], "summary": {"covered_lines": 12, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [143, 148, 161], "excluded_lines": [], "start_line": 130}, "migrate_1_0_to_2_0": {"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": [178, 181, 186], "excluded_lines": [], "start_line": 170}, "migrate_2_0_to_3_0": {"executed_lines": [200, 203, 206, 207, 208, 210, 211, 213, 214, 217, 219, 220, 223, 224, 225, 226, 229, 230, 231, 232, 235, 236, 238, 239, 242, 243, 244, 245, 248, 249, 250, 251, 254, 256, 258], "summary": {"covered_lines": 35, "num_statements": 35, "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}, "check_version_compatibility": {"executed_lines": [272, 275, 276, 277, 278], "summary": {"covered_lines": 5, "num_statements": 22, "percent_covered": 22.727272727272727, "percent_covered_display": "23", "missing_lines": 17, "excluded_lines": 0, "percent_statements_covered": 22.727272727272727, "percent_statements_covered_display": "23"}, "missing_lines": [273, 281, 282, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 300], "excluded_lines": [], "start_line": 261}, "format_version_info": {"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": [305, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 323], "excluded_lines": [], "start_line": 303}, "": {"executed_lines": [5, 6, 7, 8, 11, 14, 44, 47, 48, 62, 63, 76, 77, 81, 82, 113, 117, 119, 120, 129, 130, 169, 170, 189, 190, 261, 303], "summary": {"covered_lines": 27, "num_statements": 27, "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": {"VersionCompatibility": {"executed_lines": [58, 59, 60, 74, 96, 99, 100, 102, 106, 107, 108], "summary": {"covered_lines": 11, "num_statements": 15, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 73.33333333333333, "percent_statements_covered_display": "73"}, "missing_lines": [79, 97, 103, 110], "excluded_lines": [], "start_line": 44}, "DataMigration": {"executed_lines": [123, 124, 125, 127, 142, 146, 147, 151, 152, 153, 154, 155, 157, 158, 159, 163], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 84.21052631578948, "percent_statements_covered_display": "84"}, "missing_lines": [143, 148, 161], "excluded_lines": [], "start_line": 113}, "": {"executed_lines": [5, 6, 7, 8, 11, 14, 44, 47, 48, 62, 63, 76, 77, 81, 82, 113, 117, 119, 120, 129, 130, 169, 170, 189, 190, 200, 203, 206, 207, 208, 210, 211, 213, 214, 217, 219, 220, 223, 224, 225, 226, 229, 230, 231, 232, 235, 236, 238, 239, 242, 243, 244, 245, 248, 249, 250, 251, 254, 256, 258, 261, 272, 275, 276, 277, 278, 303], "summary": {"covered_lines": 67, "num_statements": 99, "percent_covered": 67.67676767676768, "percent_covered_display": "68", "missing_lines": 32, "excluded_lines": 0, "percent_statements_covered": 67.67676767676768, "percent_statements_covered_display": "68"}, "missing_lines": [178, 181, 186, 273, 281, 282, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 300, 305, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 323], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 7389, "num_statements": 10147, "percent_covered": 72.81955257711638, "percent_covered_display": "73", "missing_lines": 2758, "excluded_lines": 108, "percent_statements_covered": 72.81955257711638, "percent_statements_covered_display": "73"}}