Repository navigation
Expand file tree
/
Copy pathcoverage.json
More file actions
1 lines (1 loc) · 105 KB
/
Copy pathcoverage.json
File metadata and controls
1 lines (1 loc) · 105 KB
1
{"meta": {"format": 3, "version": "7.13.5", "timestamp": "2026-06-06T22:19:50.231240", "branch_coverage": false, "show_contexts": false}, "files": {"src/sin_codocs/__init__.py": {"executed_lines": [25, 26, 27, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [25, 26, 27, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [25, 26, 27, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "src/sin_codocs/audit_inline.py": {"executed_lines": [48, 50, 51, 52, 53, 54, 55, 62, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 82, 84, 86, 104, 117, 118, 122, 127, 128, 133, 138, 139, 140, 141, 144, 173, 180, 181, 182, 192, 193, 195, 196, 197, 199, 202, 211, 212, 213, 219, 220, 221, 222, 226, 227, 228, 229, 235, 236, 242, 248, 252, 260, 267, 287, 288, 289, 290, 291, 292, 293, 296, 297, 298, 299, 300, 301, 305, 306, 316, 319, 333, 334, 335, 338, 339, 342, 350, 354, 401, 437], "summary": {"covered_lines": 93, "num_statements": 150, "percent_covered": 62.0, "percent_covered_display": "62", "missing_lines": 57, "excluded_lines": 0, "percent_statements_covered": 62.0, "percent_statements_covered_display": "62"}, "missing_lines": [83, 88, 153, 154, 158, 159, 160, 161, 162, 166, 167, 168, 169, 185, 186, 256, 261, 307, 341, 347, 363, 366, 367, 368, 369, 371, 372, 373, 374, 376, 378, 379, 381, 385, 386, 388, 394, 395, 396, 397, 398, 409, 415, 416, 417, 418, 421, 424, 425, 428, 429, 430, 431, 432, 433, 434, 441], "excluded_lines": [], "functions": {"AuditResult.docstring_coverage": {"executed_lines": [82, 84], "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": [83], "excluded_lines": [], "start_line": 80}, "AuditResult.to_dict": {"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": [88], "excluded_lines": [], "start_line": 86}, "audit_file": {"executed_lines": [117, 118, 122, 127, 128, 133, 138, 139, 140, 141], "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": 104}, "audit_paths": {"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": [153, 154, 158, 159, 160, 161, 162, 166, 167, 168, 169], "excluded_lines": [], "start_line": 144}, "_check_module_docstring": {"executed_lines": [180, 181, 182, 192, 193, 195, 196, 197, 199], "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": [185, 186], "excluded_lines": [], "start_line": 173}, "_walk_functions": {"executed_lines": [211, 212, 213, 219, 220, 221, 222, 226, 227, 228, 229, 235, 236, 242, 248, 252, 260], "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": [256, 261], "excluded_lines": [], "start_line": 202}, "_find_magic_numbers": {"executed_lines": [287, 288, 289, 290, 291, 292, 293, 296, 297, 298, 299, 300, 301, 305, 306], "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": [307], "excluded_lines": [], "start_line": 267}, "_complexity": {"executed_lines": [333, 334, 335, 338, 339, 342, 350], "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": [341, 347], "excluded_lines": [], "start_line": 319}, "main": {"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": [363, 366, 367, 368, 369, 371, 372, 373, 374, 376, 378, 379, 381, 385, 386, 388, 394, 395, 396, 397, 398], "excluded_lines": [], "start_line": 354}, "_print_human": {"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": [409, 415, 416, 417, 418, 421, 424, 425, 428, 429, 430, 431, 432, 433, 434], "excluded_lines": [], "start_line": 401}, "": {"executed_lines": [48, 50, 51, 52, 53, 54, 55, 62, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 86, 104, 144, 173, 202, 267, 316, 319, 354, 401, 437], "summary": {"covered_lines": 33, "num_statements": 34, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.05882352941177, "percent_statements_covered_display": "97"}, "missing_lines": [441], "excluded_lines": [], "start_line": 1}}, "classes": {"AuditResult": {"executed_lines": [82, 84], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [83, 88], "excluded_lines": [], "start_line": 66}, "": {"executed_lines": [48, 50, 51, 52, 53, 54, 55, 62, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 86, 104, 117, 118, 122, 127, 128, 133, 138, 139, 140, 141, 144, 173, 180, 181, 182, 192, 193, 195, 196, 197, 199, 202, 211, 212, 213, 219, 220, 221, 222, 226, 227, 228, 229, 235, 236, 242, 248, 252, 260, 267, 287, 288, 289, 290, 291, 292, 293, 296, 297, 298, 299, 300, 301, 305, 306, 316, 319, 333, 334, 335, 338, 339, 342, 350, 354, 401, 437], "summary": {"covered_lines": 91, "num_statements": 146, "percent_covered": 62.32876712328767, "percent_covered_display": "62", "missing_lines": 55, "excluded_lines": 0, "percent_statements_covered": 62.32876712328767, "percent_statements_covered_display": "62"}, "missing_lines": [153, 154, 158, 159, 160, 161, 162, 166, 167, 168, 169, 185, 186, 256, 261, 307, 341, 347, 363, 366, 367, 368, 369, 371, 372, 373, 374, 376, 378, 379, 381, 385, 386, 388, 394, 395, 396, 397, 398, 409, 415, 416, 417, 418, 421, 424, 425, 428, 429, 430, 431, 432, 433, 434, 441], "excluded_lines": [], "start_line": 1}}}, "src/sin_codocs/generator.py": {"executed_lines": [37, 39, 40, 41, 42, 46, 47, 50, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 79, 100, 101, 103, 108, 109, 111, 112, 122, 125, 130, 131, 133, 134, 138, 139, 141, 142, 143, 154, 157, 176, 177, 178, 179, 180, 181, 184, 185, 186, 193, 196, 197, 198, 202, 206, 209, 216, 217, 218, 219, 229, 239, 240, 241, 243, 245, 246, 251, 252, 253, 255, 256, 268, 271, 272, 273, 274, 277, 310, 311, 312, 313, 314, 315, 317, 320, 321, 322, 323, 324, 325, 328, 329, 330, 331, 332, 333, 337, 374], "summary": {"covered_lines": 98, "num_statements": 160, "percent_covered": 61.25, "percent_covered_display": "61", "missing_lines": 62, "excluded_lines": 0, "percent_statements_covered": 61.25, "percent_statements_covered_display": "61"}, "missing_lines": [69, 70, 71, 72, 73, 74, 75, 102, 104, 135, 136, 144, 145, 146, 147, 148, 149, 150, 152, 221, 222, 223, 224, 225, 226, 247, 249, 257, 259, 265, 267, 287, 290, 292, 295, 297, 300, 302, 306, 316, 346, 347, 349, 352, 353, 355, 357, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 375, 376], "excluded_lines": [], "functions": {"SourceFacts.summary": {"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": [69, 70, 71, 72, 73, 74, 75], "excluded_lines": [], "start_line": 62}, "generate_draft": {"executed_lines": [100, 101, 103, 108, 109, 111, 112, 122], "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": [102, 104], "excluded_lines": [], "start_line": 79}, "extract_facts": {"executed_lines": [130, 131, 133, 134, 138, 139, 141, 142, 143, 154], "summary": {"covered_lines": 10, "num_statements": 20, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [135, 136, 144, 145, 146, 147, 148, 149, 150, 152], "excluded_lines": [], "start_line": 125}, "write_draft": {"executed_lines": [176, 177, 178, 179, 180, 181, 184, 185, 186], "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": 157}, "_extract_purpose": {"executed_lines": [216, 217, 218, 219], "summary": {"covered_lines": 4, "num_statements": 10, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 40.0, "percent_statements_covered_display": "40"}, "missing_lines": [221, 222, 223, 224, 225, 226], "excluded_lines": [], "start_line": 209}, "_populate_python": {"executed_lines": [239, 240, 241, 243, 245, 246, 251, 252, 253, 255, 256, 268, 271, 272, 273, 274], "summary": {"covered_lines": 16, "num_statements": 22, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 72.72727272727273, "percent_statements_covered_display": "73"}, "missing_lines": [247, 249, 257, 259, 265, 267], "excluded_lines": [], "start_line": 229}, "_populate_jsts": {"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": [287, 290, 292, 295, 297, 300, 302, 306], "excluded_lines": [], "start_line": 277}, "_render_imports": {"executed_lines": [311, 312, 313, 314, 315, 317], "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": [316], "excluded_lines": [], "start_line": 310}, "_render_public_funcs": {"executed_lines": [321, 322, 323, 324, 325], "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": 320}, "_render_constants": {"executed_lines": [329, 330, 331, 332, 333], "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": 328}, "main": {"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": [346, 347, 349, 352, 353, 355, 357, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371], "excluded_lines": [], "start_line": 337}, "": {"executed_lines": [37, 39, 40, 41, 42, 46, 47, 50, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 79, 125, 157, 193, 196, 197, 198, 202, 206, 209, 229, 277, 310, 320, 328, 337, 374], "summary": {"covered_lines": 35, "num_statements": 37, "percent_covered": 94.5945945945946, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.5945945945946, "percent_statements_covered_display": "95"}, "missing_lines": [375, 376], "excluded_lines": [], "start_line": 1}}, "classes": {"SourceFacts": {"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": [69, 70, 71, 72, 73, 74, 75], "excluded_lines": [], "start_line": 51}, "": {"executed_lines": [37, 39, 40, 41, 42, 46, 47, 50, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 79, 100, 101, 103, 108, 109, 111, 112, 122, 125, 130, 131, 133, 134, 138, 139, 141, 142, 143, 154, 157, 176, 177, 178, 179, 180, 181, 184, 185, 186, 193, 196, 197, 198, 202, 206, 209, 216, 217, 218, 219, 229, 239, 240, 241, 243, 245, 246, 251, 252, 253, 255, 256, 268, 271, 272, 273, 274, 277, 310, 311, 312, 313, 314, 315, 317, 320, 321, 322, 323, 324, 325, 328, 329, 330, 331, 332, 333, 337, 374], "summary": {"covered_lines": 98, "num_statements": 153, "percent_covered": 64.05228758169935, "percent_covered_display": "64", "missing_lines": 55, "excluded_lines": 0, "percent_statements_covered": 64.05228758169935, "percent_statements_covered_display": "64"}, "missing_lines": [102, 104, 135, 136, 144, 145, 146, 147, 148, 149, 150, 152, 221, 222, 223, 224, 225, 226, 247, 249, 257, 259, 265, 267, 287, 290, 292, 295, 297, 300, 302, 306, 316, 346, 347, 349, 352, 353, 355, 357, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 375, 376], "excluded_lines": [], "start_line": 1}}}, "src/sin_codocs/metrics.py": {"executed_lines": [55, 57, 58, 59, 60, 61, 62, 68, 72, 83, 87, 90, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 110, 111, 113, 115, 116, 118, 120, 121, 123, 125, 126, 132, 133, 135, 141, 150, 159, 160, 162, 165, 167, 168, 169, 170, 171, 172, 173, 174, 175, 178, 181, 196, 200, 204, 218, 219, 223, 228, 233, 238, 239, 242, 252, 257, 261, 262, 263, 268, 269, 275, 278, 285, 286, 289, 301, 302, 306, 311, 315, 316, 320, 321, 322, 326, 327, 330, 364, 411, 437], "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": [161, 163, 177, 224, 229, 234, 264, 270, 274, 290, 294, 295, 338, 339, 340, 343, 344, 352, 353, 356, 360, 373, 374, 378, 379, 381, 383, 384, 390, 397, 400, 402, 408, 418, 422, 423, 424, 427, 428, 429, 430, 433, 434, 438], "excluded_lines": [], "functions": {"CoverageReport.doc_md_pct": {"executed_lines": [108], "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": 106}, "CoverageReport.header_pct": {"executed_lines": [113], "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": 111}, "CoverageReport.docstring_pct": {"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}, "CoverageReport.comment_density_pct": {"executed_lines": [123], "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": 121}, "CoverageReport.overall_pct": {"executed_lines": [132, 133, 135, 141], "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": 126}, "measure": {"executed_lines": [159, 160, 162, 165, 167, 168, 169, 170, 171, 172, 173, 174, 175, 178], "summary": {"covered_lines": 14, "num_statements": 17, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 82.3529411764706, "percent_statements_covered_display": "82"}, "missing_lines": [161, 163, 177], "excluded_lines": [], "start_line": 150}, "_has_companion_doc": {"executed_lines": [196, 200], "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}, "_iter_sources": {"executed_lines": [218, 219, 223, 228, 233, 238, 239], "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": [224, 229, 234], "excluded_lines": [], "start_line": 204}, "_has_purpose_header": {"executed_lines": [252, 257, 261, 262, 263, 268, 269, 275], "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": [264, 270, 274], "excluded_lines": [], "start_line": 242}, "_measure_python": {"executed_lines": [285, 286, 289, 301, 302, 306, 311, 315, 316, 320, 321, 322, 326, 327], "summary": {"covered_lines": 14, "num_statements": 17, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 82.3529411764706, "percent_statements_covered_display": "82"}, "missing_lines": [290, 294, 295], "excluded_lines": [], "start_line": 278}, "_measure_generic": {"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": [338, 339, 340, 343, 344, 352, 353, 356, 360], "excluded_lines": [], "start_line": 330}, "main": {"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": [373, 374, 378, 379, 381, 383, 384, 390, 397, 400, 402, 408], "excluded_lines": [], "start_line": 364}, "_print_human": {"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": [418, 422, 423, 424, 427, 428, 429, 430, 433, 434], "excluded_lines": [], "start_line": 411}, "": {"executed_lines": [55, 57, 58, 59, 60, 61, 62, 68, 72, 83, 87, 90, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 110, 111, 115, 116, 120, 121, 125, 126, 150, 181, 204, 242, 278, 330, 364, 411, 437], "summary": {"covered_lines": 41, "num_statements": 42, "percent_covered": 97.61904761904762, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.61904761904762, "percent_statements_covered_display": "98"}, "missing_lines": [438], "excluded_lines": [], "start_line": 1}}, "classes": {"CoverageReport": {"executed_lines": [108, 113, 118, 123, 132, 133, 135, 141], "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": 94}, "": {"executed_lines": [55, 57, 58, 59, 60, 61, 62, 68, 72, 83, 87, 90, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 110, 111, 115, 116, 120, 121, 125, 126, 150, 159, 160, 162, 165, 167, 168, 169, 170, 171, 172, 173, 174, 175, 178, 181, 196, 200, 204, 218, 219, 223, 228, 233, 238, 239, 242, 252, 257, 261, 262, 263, 268, 269, 275, 278, 285, 286, 289, 301, 302, 306, 311, 315, 316, 320, 321, 322, 326, 327, 330, 364, 411, 437], "summary": {"covered_lines": 86, "num_statements": 130, "percent_covered": 66.15384615384616, "percent_covered_display": "66", "missing_lines": 44, "excluded_lines": 0, "percent_statements_covered": 66.15384615384616, "percent_statements_covered_display": "66"}, "missing_lines": [161, 163, 177, 224, 229, 234, 264, 270, 274, 290, 294, 295, 338, 339, 340, 343, 344, 352, 353, 356, 360, 373, 374, 378, 379, 381, 383, 384, 390, 397, 400, 402, 408, 418, 422, 423, 424, 427, 428, 429, 430, 433, 434, 438], "excluded_lines": [], "start_line": 1}}}, "src/sin_codocs/reporter.py": {"executed_lines": [25, 27, 35, 37, 38, 39, 43, 44, 45, 46, 47, 48, 49, 50, 53, 55, 57, 58, 61, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 76, 77, 78, 81, 86, 87, 88, 100, 103, 108, 121, 122, 125, 126, 128, 138, 142, 206], "summary": {"covered_lines": 48, "num_statements": 89, "percent_covered": 53.93258426966292, "percent_covered_display": "54", "missing_lines": 41, "excluded_lines": 3, "percent_statements_covered": 53.93258426966292, "percent_statements_covered_display": "54"}, "missing_lines": [56, 123, 124, 151, 152, 153, 154, 156, 159, 160, 161, 162, 163, 166, 168, 169, 170, 172, 173, 174, 177, 178, 179, 181, 182, 184, 185, 186, 188, 189, 191, 192, 193, 194, 196, 198, 199, 201, 203, 207, 208], "excluded_lines": [29, 30, 31], "functions": {"format_gap_table": {"executed_lines": [37, 38, 39, 43, 44, 45, 46, 47, 48, 49, 50], "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": 35}, "format_gap_listing": {"executed_lines": [55, 57, 58, 61, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 76, 77, 78], "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": [56], "excluded_lines": [], "start_line": 53}, "format_sprint_summary": {"executed_lines": [86, 87, 88, 100], "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": 81}, "format_diff": {"executed_lines": [108, 128, 138], "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}, "format_diff.delta": {"executed_lines": [121, 122, 125, 126], "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": [123, 124], "excluded_lines": [], "start_line": 108}, "main": {"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": [151, 152, 153, 154, 156, 159, 160, 161, 162, 163, 166, 168, 169, 170, 172, 173, 174, 177, 178, 179, 181, 182, 184, 185, 186, 188, 189, 191, 192, 193, 194, 196, 198, 199, 201, 203], "excluded_lines": [], "start_line": 142}, "": {"executed_lines": [25, 27, 35, 53, 81, 103, 142, 206], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 3, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [207, 208], "excluded_lines": [29, 30, 31], "start_line": 1}}, "classes": {"": {"executed_lines": [25, 27, 35, 37, 38, 39, 43, 44, 45, 46, 47, 48, 49, 50, 53, 55, 57, 58, 61, 62, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 76, 77, 78, 81, 86, 87, 88, 100, 103, 108, 121, 122, 125, 126, 128, 138, 142, 206], "summary": {"covered_lines": 48, "num_statements": 89, "percent_covered": 53.93258426966292, "percent_covered_display": "54", "missing_lines": 41, "excluded_lines": 3, "percent_statements_covered": 53.93258426966292, "percent_statements_covered_display": "54"}, "missing_lines": [56, 123, 124, 151, 152, 153, 154, 156, 159, 160, 161, 162, 163, 166, 168, 169, 170, 172, 173, 174, 177, 178, 179, 181, 182, 184, 185, 186, 188, 189, 191, 192, 193, 194, 196, 198, 199, 201, 203, 207, 208], "excluded_lines": [29, 30, 31], "start_line": 1}}}, "src/sin_codocs/scanner.py": {"executed_lines": [26, 28, 29, 30, 31, 36, 39, 48, 49, 54, 58, 59, 61, 62, 63, 64, 65, 68, 69, 71, 72, 73, 74, 75, 76, 78, 79, 80, 84, 85, 87, 89, 96, 97, 101, 112, 113, 114, 115, 116, 117, 121, 122, 123, 124, 125, 126, 130, 132, 133, 134, 135, 136, 137, 138, 141, 143, 144, 146, 147, 154, 155, 162, 163, 164, 172, 180, 181, 186, 187, 190, 197, 198, 199, 205, 206, 207, 208, 209, 211, 212, 213, 214, 218, 265, 280], "summary": {"covered_lines": 86, "num_statements": 124, "percent_covered": 69.35483870967742, "percent_covered_display": "69", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 69.35483870967742, "percent_statements_covered_display": "69"}, "missing_lines": [118, 119, 182, 184, 200, 203, 226, 227, 228, 230, 233, 234, 235, 238, 240, 241, 242, 243, 245, 246, 257, 258, 260, 262, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 281, 282], "excluded_lines": [], "functions": {"ScanResult.__post_init__": {"executed_lines": [79, 80], "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": 78}, "ScanResult.has_gaps": {"executed_lines": [87], "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": 85}, "ScanResult.add": {"executed_lines": [96, 97], "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": 89}, "scan_repo": {"executed_lines": [112, 113, 114, 115, 116, 117, 121, 122, 123, 124, 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": [118, 119], "excluded_lines": [], "start_line": 101}, "_iter_sources": {"executed_lines": [132, 133, 134, 135, 136, 137, 138], "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": 130}, "_check_file": {"executed_lines": [143, 144, 146, 147, 154, 155, 162, 163, 164], "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": 141}, "_has_header": {"executed_lines": [180, 181, 186, 187], "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": [182, 184], "excluded_lines": [], "start_line": 172}, "_missing_docstrings": {"executed_lines": [197, 198, 199, 205, 206, 207, 208, 209, 211, 212, 213, 214], "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": [200, 203], "excluded_lines": [], "start_line": 190}, "main": {"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": [226, 227, 228, 230, 233, 234, 235, 238, 240, 241, 242, 243, 245, 246, 257, 258, 260, 262], "excluded_lines": [], "start_line": 218}, "_print_human": {"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": [266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277], "excluded_lines": [], "start_line": 265}, "": {"executed_lines": [26, 28, 29, 30, 31, 36, 39, 48, 49, 54, 58, 59, 61, 62, 63, 64, 65, 68, 69, 71, 72, 73, 74, 75, 76, 78, 84, 85, 89, 101, 130, 141, 172, 190, 218, 265, 280], "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": [281, 282], "excluded_lines": [], "start_line": 1}}, "classes": {"Gap": {"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": 59}, "ScanResult": {"executed_lines": [79, 80, 87, 96, 97], "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": 69}, "": {"executed_lines": [26, 28, 29, 30, 31, 36, 39, 48, 49, 54, 58, 59, 61, 62, 63, 64, 65, 68, 69, 71, 72, 73, 74, 75, 76, 78, 84, 85, 89, 101, 112, 113, 114, 115, 116, 117, 121, 122, 123, 124, 125, 126, 130, 132, 133, 134, 135, 136, 137, 138, 141, 143, 144, 146, 147, 154, 155, 162, 163, 164, 172, 180, 181, 186, 187, 190, 197, 198, 199, 205, 206, 207, 208, 209, 211, 212, 213, 214, 218, 265, 280], "summary": {"covered_lines": 81, "num_statements": 119, "percent_covered": 68.0672268907563, "percent_covered_display": "68", "missing_lines": 38, "excluded_lines": 0, "percent_statements_covered": 68.0672268907563, "percent_statements_covered_display": "68"}, "missing_lines": [118, 119, 182, 184, 200, 203, 226, 227, 228, 230, 233, 234, 235, 238, 240, 241, 242, 243, 245, 246, 257, 258, 260, 262, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 281, 282], "excluded_lines": [], "start_line": 1}}}, "src/sin_codocs/sprint_metrics.py": {"executed_lines": [25, 27, 28, 29, 30, 31, 32, 33, 44, 56, 60, 64, 65, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 92, 106, 107, 108, 110, 111, 113, 114, 117, 129, 130, 134, 139, 140, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 158, 161, 164, 167, 173, 205, 220], "summary": {"covered_lines": 59, "num_statements": 99, "percent_covered": 59.5959595959596, "percent_covered_display": "60", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 59.5959595959596, "percent_statements_covered_display": "60"}, "missing_lines": [122, 123, 124, 125, 127, 128, 136, 137, 141, 142, 143, 169, 182, 183, 186, 187, 188, 190, 192, 193, 194, 195, 197, 198, 199, 200, 202, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 221], "excluded_lines": [], "functions": {"run_sprint_metrics": {"executed_lines": [106, 107, 108, 110, 111, 113, 114, 117, 129, 130, 134, 139, 140, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 158, 161, 164], "summary": {"covered_lines": 26, "num_statements": 37, "percent_covered": 70.27027027027027, "percent_covered_display": "70", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 70.27027027027027, "percent_statements_covered_display": "70"}, "missing_lines": [122, 123, 124, 125, 127, 128, 136, 137, 141, 142, 143], "excluded_lines": [], "start_line": 92}, "to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [169], "excluded_lines": [], "start_line": 167}, "main": {"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": [182, 183, 186, 187, 188, 190, 192, 193, 194, 195, 197, 198, 199, 200, 202], "excluded_lines": [], "start_line": 173}, "_print_human": {"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": [206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217], "excluded_lines": [], "start_line": 205}, "": {"executed_lines": [25, 27, 28, 29, 30, 31, 32, 33, 44, 56, 60, 64, 65, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 92, 167, 173, 205, 220], "summary": {"covered_lines": 33, "num_statements": 34, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.05882352941177, "percent_statements_covered_display": "97"}, "missing_lines": [221], "excluded_lines": [], "start_line": 1}}, "classes": {"SprintReport": {"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": 65}, "": {"executed_lines": [25, 27, 28, 29, 30, 31, 32, 33, 44, 56, 60, 64, 65, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 92, 106, 107, 108, 110, 111, 113, 114, 117, 129, 130, 134, 139, 140, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 158, 161, 164, 167, 173, 205, 220], "summary": {"covered_lines": 59, "num_statements": 99, "percent_covered": 59.5959595959596, "percent_covered_display": "60", "missing_lines": 40, "excluded_lines": 0, "percent_statements_covered": 59.5959595959596, "percent_statements_covered_display": "60"}, "missing_lines": [122, 123, 124, 125, 127, 128, 136, 137, 141, 142, 143, 169, 182, 183, 186, 187, 188, 190, 192, 193, 194, 195, 197, 198, 199, 200, 202, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 221], "excluded_lines": [], "start_line": 1}}}, "src/sin_codocs/template.py": {"executed_lines": [44, 47, 48, 49, 50, 51, 54, 64, 70, 74, 79, 83, 124, 162, 177], "summary": {"covered_lines": 15, "num_statements": 39, "percent_covered": 38.46153846153846, "percent_covered_display": "38", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 38.46153846153846, "percent_statements_covered_display": "38"}, "missing_lines": [100, 103, 105, 109, 114, 115, 116, 119, 121, 145, 146, 147, 148, 149, 152, 157, 158, 170, 171, 172, 173, 182, 183, 186], "excluded_lines": [], "functions": {"load_config": {"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": [100, 103, 105, 109, 114, 115, 116, 119, 121], "excluded_lines": [], "start_line": 83}, "retry_with_backoff": {"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": [145, 146, 147, 148, 149, 152, 157, 158], "excluded_lines": [], "start_line": 124}, "_validate_key": {"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": [170, 171, 172, 173], "excluded_lines": [], "start_line": 162}, "": {"executed_lines": [44, 47, 48, 49, 50, 51, 54, 64, 70, 74, 79, 83, 124, 162, 177], "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": [182, 183, 186], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [44, 47, 48, 49, 50, 51, 54, 64, 70, 74, 79, 83, 124, 162, 177], "summary": {"covered_lines": 15, "num_statements": 39, "percent_covered": 38.46153846153846, "percent_covered_display": "38", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 38.46153846153846, "percent_statements_covered_display": "38"}, "missing_lines": [100, 103, 105, 109, 114, 115, 116, 119, 121, 145, 146, 147, 148, 149, 152, 157, 158, 170, 171, 172, 173, 182, 183, 186], "excluded_lines": [], "start_line": 1}}}, "tests/test_generator.py": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 33, 35, 36, 37, 39, 41, 42, 44, 46, 47, 48, 49, 51, 53, 54, 55, 56, 57, 59, 61, 62, 63, 64, 66, 69, 71, 72, 73, 74, 75, 76, 77, 78, 80, 82, 83, 84, 86, 88, 89, 90, 91, 93, 96, 98, 100, 102, 103, 105, 107, 108, 109, 110, 111, 113, 115, 116, 117, 118, 119, 120, 121, 123, 125, 126, 127, 128, 129, 130, 132, 134, 135, 137, 140, 142, 144, 146, 147, 149, 151, 152, 153, 154, 155, 156, 158, 160, 161, 162, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 178, 179], "summary": {"covered_lines": 116, "num_statements": 119, "percent_covered": 97.47899159663865, "percent_covered_display": "97", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 97.47899159663865, "percent_statements_covered_display": "97"}, "missing_lines": [27, 28, 180], "excluded_lines": [], "functions": {"_write": {"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": [27, 28], "excluded_lines": [], "start_line": 26}, "TestExtractFacts.test_purpose_from_header": {"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": 33}, "TestExtractFacts.test_purpose_from_python_docstring": {"executed_lines": [41, 42], "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": 39}, "TestExtractFacts.test_imports_extracted": {"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": 44}, "TestExtractFacts.test_public_funcs_extracted": {"executed_lines": [53, 54, 55, 56, 57], "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": 51}, "TestExtractFacts.test_constants_extracted": {"executed_lines": [61, 62, 63, 64], "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": 59}, "TestGenerateDraft.test_basic_substitution": {"executed_lines": [71, 72, 73, 74, 75, 76, 77, 78], "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": 69}, "TestGenerateDraft.test_purpose_fallback": {"executed_lines": [82, 83, 84], "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}, "TestGenerateDraft.test_missing_imports_shows_placeholder": {"executed_lines": [88, 89, 90, 91], "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": 86}, "TestWriteDraft.setUp": {"executed_lines": [98], "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": 96}, "TestWriteDraft.tearDown": {"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}, "TestWriteDraft.test_creates_new_file": {"executed_lines": [107, 108, 109, 110, 111], "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": 105}, "TestWriteDraft.test_refuses_to_overwrite": {"executed_lines": [115, 116, 117, 118, 119, 120, 121], "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": 113}, "TestWriteDraft.test_overwrite_with_flag": {"executed_lines": [125, 126, 127, 128, 129, 130], "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": 123}, "TestWriteDraft.test_raises_on_missing_source": {"executed_lines": [134, 135], "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": 132}, "TestGeneratorCLI.setUp": {"executed_lines": [142], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "TestGeneratorCLI.tearDown": {"executed_lines": [146, 147], "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": 144}, "TestGeneratorCLI.test_stdout_flag": {"executed_lines": [151, 152, 153, 154, 155, 156], "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": 149}, "TestGeneratorCLI.test_writes_when_no_stdout": {"executed_lines": [160, 161, 162, 163, 164], "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": 158}, "extract_facts_for": {"executed_lines": [168, 169, 170, 171, 172, 173, 174, 175, 176, 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": 166}, "": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 33, 39, 44, 51, 59, 66, 69, 80, 86, 93, 96, 100, 105, 113, 123, 132, 137, 140, 144, 149, 158, 166, 179], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.29729729729729, "percent_statements_covered_display": "97"}, "missing_lines": [180], "excluded_lines": [], "start_line": 1}}, "classes": {"TestExtractFacts": {"executed_lines": [35, 36, 37, 41, 42, 46, 47, 48, 49, 53, 54, 55, 56, 57, 61, 62, 63, 64], "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": 30}, "TestGenerateDraft": {"executed_lines": [71, 72, 73, 74, 75, 76, 77, 78, 82, 83, 84, 88, 89, 90, 91], "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": 66}, "TestWriteDraft": {"executed_lines": [98, 102, 103, 107, 108, 109, 110, 111, 115, 116, 117, 118, 119, 120, 121, 125, 126, 127, 128, 129, 130, 134, 135], "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": 93}, "TestGeneratorCLI": {"executed_lines": [142, 146, 147, 151, 152, 153, 154, 155, 156, 160, 161, 162, 163, 164], "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": 137}, "": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 33, 39, 44, 51, 59, 66, 69, 80, 86, 93, 96, 100, 105, 113, 123, 132, 137, 140, 144, 149, 158, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 178, 179], "summary": {"covered_lines": 46, "num_statements": 49, "percent_covered": 93.87755102040816, "percent_covered_display": "94", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 93.87755102040816, "percent_statements_covered_display": "94"}, "missing_lines": [27, 28, 180], "excluded_lines": [], "start_line": 1}}}, "tests/test_init.py": {"executed_lines": [13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 32, 35, 37, 39, 40, 41, 43, 45, 47, 48, 49, 51, 54, 56, 58, 59, 60, 61, 64, 66, 68, 69, 70, 73, 75, 76, 78, 80, 81, 85, 91, 94, 96, 98, 100, 101, 102, 107, 109, 110, 111, 113, 115, 118, 120, 122, 124, 126, 127, 129, 131, 133, 134, 136, 137, 138, 141, 144, 146, 148, 150, 152, 153, 158, 160, 161, 162, 163, 165, 168, 171, 172, 173, 174, 175, 177, 179, 180, 183, 186, 188, 189, 190, 194, 196, 198, 200, 202, 203, 204, 205, 206, 208, 210, 215, 221, 222, 223, 224, 225, 227, 231, 232, 238, 240, 241, 242, 246, 249, 255], "summary": {"covered_lines": 125, "num_statements": 133, "percent_covered": 93.98496240601504, "percent_covered_display": "94", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 93.98496240601504, "percent_statements_covered_display": "94"}, "missing_lines": [77, 104, 105, 191, 192, 243, 244, 256], "excluded_lines": [], "functions": {"TestScriptsExist.test_required_scripts": {"executed_lines": [37, 39, 40, 41], "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": 35}, "TestScriptsExist.test_scripts_are_executable": {"executed_lines": [45, 47, 48, 49, 51], "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": 43}, "TestScriptsExist.test_scripts_have_shebang": {"executed_lines": [56, 58, 59, 60, 61], "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": 54}, "TestScriptsExist.test_scripts_have_purpose_comment": {"executed_lines": [66, 68, 69, 70], "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": 64}, "TestScriptsExist.test_scripts_pass_bash_syntax": {"executed_lines": [75, 76, 78, 80, 81, 85], "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": [77], "excluded_lines": [], "start_line": 73}, "TestTemplates.test_module_template_exists": {"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}, "TestTemplates.test_module_template_compiles": {"executed_lines": [100, 101, 102], "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": [104, 105], "excluded_lines": [], "start_line": 98}, "TestTemplates.test_module_template_has_purpose_and_docs": {"executed_lines": [109, 110, 111], "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": 107}, "TestTemplates.test_module_template_has_section_separators": {"executed_lines": [115, 118], "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": 113}, "TestTemplates.test_doc_md_template_exists": {"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}, "TestTemplates.test_doc_md_template_has_required_sections": {"executed_lines": [126, 127, 129], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 124}, "TestTemplates.test_go_template_compiles_as_text": {"executed_lines": [133, 134, 136, 137, 138], "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}, "TestInitScriptBehavior.setUp": {"executed_lines": [146], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 144}, "TestInitScriptBehavior.tearDown": {"executed_lines": [150], "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": 148}, "TestInitScriptBehavior._run_init": {"executed_lines": [153], "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": 152}, "TestInitScriptBehavior.test_init_creates_doc_md_for_existing_source": {"executed_lines": [160, 161, 162, 163, 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": 158}, "TestInitScriptBehavior.test_init_skips_skill_own_files": {"executed_lines": [171, 172, 173, 174, 175], "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": 168}, "TestInitScriptBehavior.test_init_dry_runs_on_empty_dir": {"executed_lines": [179, 180], "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": 177}, "TestExamples.test_good_auth_compiles": {"executed_lines": [188, 189, 190], "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": [191, 192], "excluded_lines": [], "start_line": 186}, "TestExamples.test_good_auth_has_companion_doc": {"executed_lines": [196], "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": 194}, "TestExamples.test_good_auth_has_purpose_and_docs_in_header": {"executed_lines": [200, 202, 203, 204, 205, 206], "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": 198}, "TestExamples.test_good_auth_public_functions_have_docstrings": {"executed_lines": [210, 215, 221, 222, 223, 224, 225, 227, 231, 232], "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": 208}, "TestExamples.test_bad_legacy_compiles": {"executed_lines": [240, 241, 242], "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": [243, 244], "excluded_lines": [], "start_line": 238}, "TestExamples.test_bad_legacy_has_no_companion_doc": {"executed_lines": [249], "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": 246}, "": {"executed_lines": [13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 32, 35, 43, 54, 64, 73, 91, 94, 98, 107, 113, 120, 124, 131, 141, 144, 148, 152, 158, 168, 177, 183, 186, 194, 198, 208, 238, 246, 255], "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": [256], "excluded_lines": [], "start_line": 1}}, "classes": {"TestScriptsExist": {"executed_lines": [37, 39, 40, 41, 45, 47, 48, 49, 51, 56, 58, 59, 60, 61, 66, 68, 69, 70, 75, 76, 78, 80, 81, 85], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.0, "percent_statements_covered_display": "96"}, "missing_lines": [77], "excluded_lines": [], "start_line": 32}, "TestTemplates": {"executed_lines": [96, 100, 101, 102, 109, 110, 111, 115, 118, 122, 126, 127, 129, 133, 134, 136, 137, 138], "summary": {"covered_lines": 18, "num_statements": 20, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [104, 105], "excluded_lines": [], "start_line": 91}, "TestInitScriptBehavior": {"executed_lines": [146, 150, 153, 160, 161, 162, 163, 165, 171, 172, 173, 174, 175, 179, 180], "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": 141}, "TestExamples": {"executed_lines": [188, 189, 190, 196, 200, 202, 203, 204, 205, 206, 210, 215, 221, 222, 223, 224, 225, 227, 231, 232, 240, 241, 242, 249], "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": [191, 192, 243, 244], "excluded_lines": [], "start_line": 183}, "": {"executed_lines": [13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 32, 35, 43, 54, 64, 73, 91, 94, 98, 107, 113, 120, 124, 131, 141, 144, 148, 152, 158, 168, 177, 183, 186, 194, 198, 208, 238, 246, 255], "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": [256], "excluded_lines": [], "start_line": 1}}}, "tests/test_metrics.py": {"executed_lines": [15, 17, 18, 19, 20, 21, 22, 24, 25, 26, 29, 32, 34, 35, 36, 38, 40, 42, 44, 45, 48, 52, 57, 59, 60, 62, 67, 69, 70, 71, 73, 75, 77, 82, 83, 84, 87, 89, 91, 93, 99, 101, 103, 104, 110, 111, 112, 115, 118, 120, 121, 122, 124, 126, 128, 130, 131, 133, 134, 135, 140, 142, 143, 148, 149, 151, 153, 156, 157, 158, 160, 162, 163, 165, 167, 172, 173, 174, 175, 176, 177, 179, 181, 187, 190], "summary": {"covered_lines": 85, "num_statements": 88, "percent_covered": 96.5909090909091, "percent_covered_display": "97", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 96.5909090909091, "percent_statements_covered_display": "97"}, "missing_lines": [85, 86, 191], "excluded_lines": [], "functions": {"TestMetricsLib.setUp": {"executed_lines": [34, 35, 36], "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": 32}, "TestMetricsLib.tearDown": {"executed_lines": [40], "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": 38}, "TestMetricsLib.test_good_example_high_overall": {"executed_lines": [44, 45, 48, 52], "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": 42}, "TestMetricsLib.test_bad_example_low_overall": {"executed_lines": [59, 60, 62], "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": 57}, "TestMetricsLib.test_empty_dir_returns_zero_files": {"executed_lines": [69, 70, 71, 73], "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": 67}, "TestMetricsLib.test_metrics_cli_json_output": {"executed_lines": [77, 82, 83, 84, 87, 89], "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": [85, 86], "excluded_lines": [], "start_line": 75}, "TestMetricsLib.test_metrics_cli_min_threshold": {"executed_lines": [93, 99], "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}, "TestMetricsLib.test_report_to_dict_serializable": {"executed_lines": [103, 104, 110, 111, 112], "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": 101}, "TestAuditInlineLib.setUp": {"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}, "TestAuditInlineLib.tearDown": {"executed_lines": [126], "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": 124}, "TestAuditInlineLib.test_good_example_passes_module_docstring_check": {"executed_lines": [130, 131, 133, 134, 135], "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}, "TestAuditInlineLib.test_bad_example_flagged_for_missing_docstring": {"executed_lines": [142, 143, 148, 149], "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": 140}, "TestAuditInlineLib.test_docstring_coverage_calculation": {"executed_lines": [153, 156, 157, 158], "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": 151}, "TestAuditInlineLib.test_missing_file_raises": {"executed_lines": [162, 163], "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": 160}, "TestAuditInlineLib.test_audit_cli_json_output": {"executed_lines": [167, 172, 173, 174, 175, 176, 177], "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": 165}, "TestAuditInlineLib.test_audit_cli_strict_exits_1_on_bad_example": {"executed_lines": [181, 187], "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": 179}, "": {"executed_lines": [15, 17, 18, 19, 20, 21, 22, 24, 25, 26, 29, 32, 38, 42, 57, 67, 75, 91, 101, 115, 118, 124, 128, 140, 151, 160, 165, 179, 190], "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": [191], "excluded_lines": [], "start_line": 1}}, "classes": {"TestMetricsLib": {"executed_lines": [34, 35, 36, 40, 44, 45, 48, 52, 59, 60, 62, 69, 70, 71, 73, 77, 82, 83, 84, 87, 89, 93, 99, 103, 104, 110, 111, 112], "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": [85, 86], "excluded_lines": [], "start_line": 29}, "TestAuditInlineLib": {"executed_lines": [120, 121, 122, 126, 130, 131, 133, 134, 135, 142, 143, 148, 149, 153, 156, 157, 158, 162, 163, 167, 172, 173, 174, 175, 176, 177, 181, 187], "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": 115}, "": {"executed_lines": [15, 17, 18, 19, 20, 21, 22, 24, 25, 26, 29, 32, 38, 42, 57, 67, 75, 91, 101, 115, 118, 124, 128, 140, 151, 160, 165, 179, 190], "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": [191], "excluded_lines": [], "start_line": 1}}}, "tests/test_reporter.py": {"executed_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 35, 36, 37, 39, 41, 42, 43, 45, 47, 48, 49, 51, 53, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 68, 69, 71, 73, 74, 75, 76, 78, 80, 82, 83, 84, 86, 88, 89, 91, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103], "summary": {"covered_lines": 71, "num_statements": 72, "percent_covered": 98.61111111111111, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.61111111111111, "percent_statements_covered_display": "99"}, "missing_lines": [104], "excluded_lines": [], "functions": {"_make_result": {"executed_lines": [21, 22, 23, 24, 25, 26], "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": 20}, "_make_sprint": {"executed_lines": [29], "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}, "TestFormatGapTable.test_includes_all_kinds": {"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": 33}, "TestFormatGapTable.test_shows_totals": {"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}, "TestFormatGapTable.test_error_path": {"executed_lines": [47, 48, 49], "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}, "TestFormatGapListing.test_groups_by_kind": {"executed_lines": [55, 56, 57, 58, 59, 60], "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": 53}, "TestFormatGapListing.test_caps_long_listings": {"executed_lines": [64, 65, 66, 67, 68, 69], "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}, "TestFormatGapListing.test_no_gaps_message": {"executed_lines": [73, 74, 75, 76], "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": 71}, "TestFormatSprintSummary.test_includes_coverage_and_gaps": {"executed_lines": [82, 83, 84], "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}, "TestFormatSprintSummary.test_error_path": {"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": 86}, "TestFormatDiff.test_shows_before_after": {"executed_lines": [95, 96, 97, 98, 99, 100, 101, 102], "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": 93}, "": {"executed_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 28, 31, 33, 39, 45, 51, 53, 62, 71, 78, 80, 86, 91, 93, 103], "summary": {"covered_lines": 26, "num_statements": 27, "percent_covered": 96.29629629629629, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.29629629629629, "percent_statements_covered_display": "96"}, "missing_lines": [104], "excluded_lines": [], "start_line": 1}}, "classes": {"TestFormatGapTable": {"executed_lines": [35, 36, 37, 41, 42, 43, 47, 48, 49], "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": 31}, "TestFormatGapListing": {"executed_lines": [55, 56, 57, 58, 59, 60, 64, 65, 66, 67, 68, 69, 73, 74, 75, 76], "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": 51}, "TestFormatSprintSummary": {"executed_lines": [82, 83, 84, 88, 89], "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": 78}, "TestFormatDiff": {"executed_lines": [95, 96, 97, 98, 99, 100, 101, 102], "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": 91}, "": {"executed_lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 39, 45, 51, 53, 62, 71, 78, 80, 86, 91, 93, 103], "summary": {"covered_lines": 33, "num_statements": 34, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.05882352941177, "percent_statements_covered_display": "97"}, "missing_lines": [104], "excluded_lines": [], "start_line": 1}}}, "tests/test_scanner.py": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 33, 36, 38, 40, 42, 43, 45, 47, 48, 49, 51, 53, 54, 55, 57, 59, 60, 61, 62, 63, 64, 66, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 81, 83, 84, 85, 86, 87, 88, 89, 90, 92, 94, 95, 96, 97, 98, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 114, 115, 116, 117, 118, 119, 120, 122, 124, 125, 126, 127, 128, 130, 133, 135, 137, 139, 140, 142, 144, 145, 146, 147, 148, 149, 151, 153, 154, 155, 156, 157, 158, 159], "summary": {"covered_lines": 108, "num_statements": 109, "percent_covered": 99.08256880733946, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 99.08256880733946, "percent_statements_covered_display": "99"}, "missing_lines": [160], "excluded_lines": [], "functions": {"_write": {"executed_lines": [30, 31], "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": 29}, "TestScanRepo.setUp": {"executed_lines": [38], "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": 36}, "TestScanRepo.tearDown": {"executed_lines": [42, 43], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 40}, "TestScanRepo.test_empty_dir_has_no_gaps": {"executed_lines": [47, 48, 49], "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}, "TestScanRepo.test_missing_dir_sets_error": {"executed_lines": [53, 54, 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": 51}, "TestScanRepo.test_detects_missing_companion": {"executed_lines": [59, 60, 61, 62, 63, 64], "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": 57}, "TestScanRepo.test_detects_missing_header": {"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}, "TestScanRepo.test_clean_file_has_no_gaps": {"executed_lines": [76, 77, 78, 79], "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": 74}, "TestScanRepo.test_detects_missing_docstring": {"executed_lines": [83, 84, 85, 86, 87, 88, 89, 90], "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": 81}, "TestScanRepo.test_skips_private_functions": {"executed_lines": [94, 95, 96, 97, 98], "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": 92}, "TestScanRepo.test_skips_junk_dirs": {"executed_lines": [102, 103, 104, 105, 106, 107, 108, 109, 110], "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": 100}, "TestScanRepo.test_supports_multiple_languages": {"executed_lines": [114, 115, 116, 117, 118, 119, 120], "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": 112}, "TestScanRepo.test_suggested_doc_path": {"executed_lines": [124, 125, 126, 127, 128], "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": 122}, "TestScannerCLI.setUp": {"executed_lines": [135], "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}, "TestScannerCLI.tearDown": {"executed_lines": [139, 140], "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": 137}, "TestScannerCLI.test_json_output": {"executed_lines": [144, 145, 146, 147, 148, 149], "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": 142}, "TestScannerCLI.test_kind_filter": {"executed_lines": [153, 154, 155, 156, 157, 158], "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": 151}, "": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 33, 36, 40, 45, 51, 57, 66, 74, 81, 92, 100, 112, 122, 130, 133, 137, 142, 151, 159], "summary": {"covered_lines": 33, "num_statements": 34, "percent_covered": 97.05882352941177, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.05882352941177, "percent_statements_covered_display": "97"}, "missing_lines": [160], "excluded_lines": [], "start_line": 1}}, "classes": {"TestScanRepo": {"executed_lines": [38, 42, 43, 47, 48, 49, 53, 54, 55, 59, 60, 61, 62, 63, 64, 68, 69, 70, 71, 72, 76, 77, 78, 79, 83, 84, 85, 86, 87, 88, 89, 90, 94, 95, 96, 97, 98, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 115, 116, 117, 118, 119, 120, 124, 125, 126, 127, 128], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_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}, "TestScannerCLI": {"executed_lines": [135, 139, 140, 144, 145, 146, 147, 148, 149, 153, 154, 155, 156, 157, 158], "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": 130}, "": {"executed_lines": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 33, 36, 40, 45, 51, 57, 66, 74, 81, 92, 100, 112, 122, 130, 133, 137, 142, 151, 159], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.22222222222223, "percent_statements_covered_display": "97"}, "missing_lines": [160], "excluded_lines": [], "start_line": 1}}}, "tests/test_scripts.py": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 50, 51, 52, 54, 56, 57, 58, 59, 61, 63, 64, 66, 67, 68, 69, 71, 73, 75, 77, 79, 80, 81, 83, 85, 87, 89, 91, 94, 96, 97, 99, 101, 103, 105, 106, 107, 108, 110, 112, 113, 114, 116, 118, 119, 121, 123, 124, 125, 127, 129, 130, 131, 133, 136, 138, 139, 140, 141, 142], "summary": {"covered_lines": 88, "num_statements": 90, "percent_covered": 97.77777777777777, "percent_covered_display": "98", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 97.77777777777777, "percent_statements_covered_display": "98"}, "missing_lines": [65, 143], "excluded_lines": [], "functions": {"TestScriptsExist.test_required_scripts": {"executed_lines": [33, 34, 35, 36], "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": 31}, "TestScriptsExist.test_scripts_are_executable": {"executed_lines": [40, 41, 42, 43, 44], "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": 38}, "TestScriptsExist.test_scripts_have_shebang": {"executed_lines": [48, 49, 50, 51, 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": 46}, "TestScriptsExist.test_scripts_have_purpose_comment": {"executed_lines": [56, 57, 58, 59], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 54}, "TestScriptsExist.test_scripts_pass_bash_syntax": {"executed_lines": [63, 64, 66, 67, 68, 69], "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": [65], "excluded_lines": [], "start_line": 61}, "TestTemplates.test_draft_template_exists": {"executed_lines": [75], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 73}, "TestTemplates.test_draft_template_has_placeholders": {"executed_lines": [79, 80, 81], "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": 77}, "TestTemplates.test_inline_template_exists": {"executed_lines": [85], "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": 83}, "TestTemplates.test_sprint_checklist_exists": {"executed_lines": [89], "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}, "TestSmokeRun.setUp": {"executed_lines": [96, 97], "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": 94}, "TestSmokeRun.tearDown": {"executed_lines": [101], "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": 99}, "TestSmokeRun.test_scan_sh_runs": {"executed_lines": [105, 106, 107, 108], "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": 103}, "TestSmokeRun.test_diff_sh_runs": {"executed_lines": [112, 113, 114], "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}, "TestSmokeRun.test_status_sh_runs": {"executed_lines": [118, 119], "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": 116}, "TestSmokeRun.test_generate_sh_creates_doc": {"executed_lines": [123, 124, 125], "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": 121}, "TestSmokeRun.test_sprint_sh_dry_run": {"executed_lines": [129, 130, 131], "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": 127}, "TestInstallSkillScript.test_dry_run": {"executed_lines": [138, 139, 140, 141], "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": 136}, "": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 38, 46, 54, 61, 71, 73, 77, 83, 87, 91, 94, 99, 103, 110, 116, 121, 127, 133, 136, 142], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.29729729729729, "percent_statements_covered_display": "97"}, "missing_lines": [143], "excluded_lines": [], "start_line": 1}}, "classes": {"TestScriptsExist": {"executed_lines": [33, 34, 35, 36, 40, 41, 42, 43, 44, 48, 49, 50, 51, 52, 56, 57, 58, 59, 63, 64, 66, 67, 68, 69], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.0, "percent_statements_covered_display": "96"}, "missing_lines": [65], "excluded_lines": [], "start_line": 29}, "TestTemplates": {"executed_lines": [75, 79, 80, 81, 85, 89], "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": 71}, "TestSmokeRun": {"executed_lines": [96, 97, 101, 105, 106, 107, 108, 112, 113, 114, 118, 119, 123, 124, 125, 129, 130, 131], "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": 91}, "TestInstallSkillScript": {"executed_lines": [138, 139, 140, 141], "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": 133}, "": {"executed_lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 38, 46, 54, 61, 71, 73, 77, 83, 87, 91, 94, 99, 103, 110, 116, 121, 127, 133, 136, 142], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.29729729729729, "percent_statements_covered_display": "97"}, "missing_lines": [143], "excluded_lines": [], "start_line": 1}}}, "tests/test_sprint_metrics.py": {"executed_lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 28, 30, 32, 34, 35, 37, 38, 39, 40, 41, 42, 44, 46, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 62, 63, 65, 66, 67, 68, 70, 72, 73, 74, 75, 76, 77, 78, 79, 81, 83, 86, 88, 90, 92, 93, 95, 97, 98, 99, 100, 101, 102, 103, 104, 106, 108, 109, 110], "summary": {"covered_lines": 72, "num_statements": 75, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 96.0, "percent_statements_covered_display": "96"}, "missing_lines": [51, 64, 111], "excluded_lines": [], "functions": {"TestRunSprintMetrics.setUp": {"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}, "TestRunSprintMetrics.tearDown": {"executed_lines": [34, 35], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 32}, "TestRunSprintMetrics._make_python_file": {"executed_lines": [38, 39, 40, 41, 42, 44], "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": 37}, "TestRunSprintMetrics.test_basic_report_shape": {"executed_lines": [48, 49, 50, 52, 53, 54, 55, 56, 57, 58], "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": [51], "excluded_lines": [], "start_line": 46}, "TestRunSprintMetrics.test_derived_fields": {"executed_lines": [62, 63, 65, 66, 67, 68], "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": [64], "excluded_lines": [], "start_line": 60}, "TestRunSprintMetrics.test_missing_upstream_sets_error": {"executed_lines": [72, 73, 74, 75, 76, 77, 78, 79, 81], "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": 70}, "TestMetricsCLI.setUp": {"executed_lines": [88], "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": 86}, "TestMetricsCLI.tearDown": {"executed_lines": [92, 93], "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": 90}, "TestMetricsCLI.test_json_output_shape": {"executed_lines": [97, 98, 99, 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": 95}, "TestMetricsCLI.test_min_threshold_exit_code": {"executed_lines": [108, 109], "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": 106}, "": {"executed_lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 28, 32, 37, 46, 60, 70, 83, 86, 90, 95, 106, 110], "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": [111], "excluded_lines": [], "start_line": 1}}, "classes": {"TestRunSprintMetrics": {"executed_lines": [30, 34, 35, 38, 39, 40, 41, 42, 44, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 62, 63, 65, 66, 67, 68, 72, 73, 74, 75, 76, 77, 78, 79, 81], "summary": {"covered_lines": 34, "num_statements": 36, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.44444444444444, "percent_statements_covered_display": "94"}, "missing_lines": [51, 64], "excluded_lines": [], "start_line": 25}, "TestMetricsCLI": {"executed_lines": [88, 92, 93, 97, 98, 99, 100, 101, 102, 103, 104, 108, 109], "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": 83}, "": {"executed_lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 28, 32, 37, 46, 60, 70, 83, 86, 90, 95, 106, 110], "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": [111], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 1163, "num_statements": 1490, "percent_covered": 78.05369127516778, "percent_covered_display": "78", "missing_lines": 327, "excluded_lines": 3, "percent_statements_covered": 78.05369127516778, "percent_statements_covered_display": "78"}}