Repository navigation
Expand file tree
/
Copy pathcoverage.json
More file actions
1 lines (1 loc) 路 91.5 KB
/
Copy pathcoverage.json
File metadata and controls
1 lines (1 loc) 路 91.5 KB
1
{"meta": {"format": 3, "version": "7.9.1", "timestamp": "2025-06-14T00:18:53.099143", "branch_coverage": false, "show_contexts": false}, "files": {"anomstack/__init__.py": {"executed_lines": [1], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/alerts/asciiart.py": {"executed_lines": [1, 6, 8, 9, 10, 12, 13, 15, 23, 26, 27, 117, 118, 121, 133, 134, 141, 142, 149, 212, 310, 315, 365, 384, 397, 427, 506], "summary": {"covered_lines": 26, "num_statements": 245, "percent_covered": 10.612244897959183, "percent_covered_display": "11", "missing_lines": 219, "excluded_lines": 0}, "missing_lines": [21, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 97, 98, 110, 111, 112, 113, 115, 119, 122, 123, 124, 125, 126, 127, 128, 130, 131, 136, 137, 139, 144, 145, 147, 153, 154, 155, 156, 157, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 173, 174, 181, 182, 184, 188, 190, 194, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 210, 217, 220, 222, 223, 225, 229, 234, 236, 237, 239, 242, 244, 245, 246, 247, 249, 250, 251, 252, 255, 256, 257, 258, 259, 262, 263, 264, 267, 272, 273, 276, 277, 278, 279, 280, 283, 284, 285, 288, 291, 294, 297, 298, 304, 312, 313, 319, 320, 321, 322, 326, 327, 331, 332, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 347, 348, 350, 356, 357, 359, 368, 369, 370, 371, 372, 374, 375, 376, 377, 378, 379, 381, 382, 386, 387, 388, 389, 390, 391, 392, 393, 395, 398, 399, 400, 401, 402, 410, 417, 418, 425, 437, 438, 439, 441, 442, 443, 445, 447, 449, 456, 458, 460, 464, 467, 469, 473, 475, 477, 478, 479, 481, 482, 491, 499, 500, 501, 503, 517, 520, 523, 524, 525, 528, 531, 532, 533, 534, 545, 546, 549, 550, 551, 553, 554, 559, 560, 568, 569, 573], "excluded_lines": [], "functions": {"Pyasciigraph.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 97, 98, 110, 111, 112, 113, 115], "excluded_lines": []}, "Pyasciigraph._len_noansi": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [119], "excluded_lines": []}, "Pyasciigraph._trans_hr": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [122, 123, 124, 125, 126, 127, 128, 130, 131], "excluded_lines": []}, "Pyasciigraph._u": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [136, 137, 139], "excluded_lines": []}, "Pyasciigraph._color_string": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [144, 145, 147], "excluded_lines": []}, "Pyasciigraph._get_thresholds": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [153, 154, 155, 156, 157, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 173, 174, 181, 182, 184, 188, 190, 194, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 210], "excluded_lines": []}, "Pyasciigraph._gen_graph_string": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 39, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 39, "excluded_lines": 0}, "missing_lines": [217, 234, 236, 237, 239, 242, 244, 245, 246, 247, 249, 250, 251, 252, 255, 256, 257, 258, 259, 262, 263, 264, 267, 272, 273, 276, 277, 278, 279, 280, 283, 284, 285, 288, 291, 294, 297, 298, 304], "excluded_lines": []}, "Pyasciigraph._gen_graph_string._gen_graph_string_part": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [220, 222, 223, 225, 229], "excluded_lines": []}, "Pyasciigraph._gen_info_string": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [312, 313], "excluded_lines": []}, "Pyasciigraph._gen_value_string": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [319, 320, 321, 322, 326, 327, 331, 332, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 347, 348, 350, 356, 357, 359], "excluded_lines": []}, "Pyasciigraph._sanitize_string": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [368, 369, 370, 371, 372, 374, 375, 376, 377, 378, 379, 381, 382], "excluded_lines": []}, "Pyasciigraph._sanitize_value": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [386, 387, 388, 389, 390, 391, 392, 393, 395], "excluded_lines": []}, "Pyasciigraph._sanitize_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [398, 399, 400, 401, 402, 410, 417, 418, 425], "excluded_lines": []}, "Pyasciigraph.graph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 27, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 27, "excluded_lines": 0}, "missing_lines": [437, 438, 439, 441, 442, 443, 445, 447, 449, 456, 458, 460, 464, 467, 469, 473, 475, 477, 478, 479, 481, 482, 491, 499, 500, 501, 503], "excluded_lines": []}, "make_alert_message": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [517, 520, 523, 524, 525, 528, 531, 532, 533, 534, 545, 546, 549, 550, 551, 553, 554, 559, 560, 568, 569, 573], "excluded_lines": []}, "": {"executed_lines": [1, 6, 8, 9, 10, 12, 13, 15, 23, 26, 27, 117, 118, 121, 133, 134, 141, 142, 149, 212, 310, 315, 365, 384, 397, 427, 506], "summary": {"covered_lines": 26, "num_statements": 27, "percent_covered": 96.29629629629629, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [21], "excluded_lines": []}}, "classes": {"Pyasciigraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 196, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 196, "excluded_lines": 0}, "missing_lines": [83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 97, 98, 110, 111, 112, 113, 115, 119, 122, 123, 124, 125, 126, 127, 128, 130, 131, 136, 137, 139, 144, 145, 147, 153, 154, 155, 156, 157, 159, 160, 163, 164, 167, 168, 169, 170, 171, 172, 173, 174, 181, 182, 184, 188, 190, 194, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 210, 217, 220, 222, 223, 225, 229, 234, 236, 237, 239, 242, 244, 245, 246, 247, 249, 250, 251, 252, 255, 256, 257, 258, 259, 262, 263, 264, 267, 272, 273, 276, 277, 278, 279, 280, 283, 284, 285, 288, 291, 294, 297, 298, 304, 312, 313, 319, 320, 321, 322, 326, 327, 331, 332, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 347, 348, 350, 356, 357, 359, 368, 369, 370, 371, 372, 374, 375, 376, 377, 378, 379, 381, 382, 386, 387, 388, 389, 390, 391, 392, 393, 395, 398, 399, 400, 401, 402, 410, 417, 418, 425, 437, 438, 439, 441, 442, 443, 445, 447, 449, 456, 458, 460, 464, 467, 469, 473, 475, 477, 478, 479, 481, 482, 491, 499, 500, 501, 503], "excluded_lines": []}, "": {"executed_lines": [1, 6, 8, 9, 10, 12, 13, 15, 23, 26, 27, 117, 118, 121, 133, 134, 141, 142, 149, 212, 310, 315, 365, 384, 397, 427, 506], "summary": {"covered_lines": 26, "num_statements": 49, "percent_covered": 53.06122448979592, "percent_covered_display": "53", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [21, 517, 520, 523, 524, 525, 528, 531, 532, 533, 534, 545, 546, 549, 550, 551, 553, 554, 559, 560, 568, 569, 573], "excluded_lines": []}}}, "anomstack/alerts/email.py": {"executed_lines": [1, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 95], "summary": {"covered_lines": 12, "num_statements": 61, "percent_covered": 19.672131147540984, "percent_covered_display": "20", "missing_lines": 49, "excluded_lines": 0}, "missing_lines": [50, 52, 53, 54, 55, 56, 58, 61, 64, 66, 67, 68, 69, 71, 72, 73, 76, 77, 78, 81, 83, 84, 85, 86, 87, 88, 89, 90, 92, 110, 112, 113, 114, 115, 116, 118, 119, 120, 121, 123, 125, 126, 127, 128, 129, 130, 131, 132, 134], "excluded_lines": [], "functions": {"send_email_with_plot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 29, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 29, "excluded_lines": 0}, "missing_lines": [50, 52, 53, 54, 55, 56, 58, 61, 64, 66, 67, 68, 69, 71, 72, 73, 76, 77, 78, 81, 83, 84, 85, 86, 87, 88, 89, 90, 92], "excluded_lines": []}, "send_email": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0}, "missing_lines": [110, 112, 113, 114, 115, 116, 118, 119, 120, 121, 123, 125, 126, 127, 128, 129, 130, 131, 132, 134], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 95], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 95], "summary": {"covered_lines": 12, "num_statements": 61, "percent_covered": 19.672131147540984, "percent_covered_display": "20", "missing_lines": 49, "excluded_lines": 0}, "missing_lines": [50, 52, 53, 54, 55, 56, 58, 61, 64, 66, 67, 68, 69, 71, 72, 73, 76, 77, 78, 81, 83, 84, 85, 86, 87, 88, 89, 90, 92, 110, 112, 113, 114, 115, 116, 118, 119, 120, 121, 123, 125, 126, 127, 128, 129, 130, 131, 132, 134], "excluded_lines": []}}}, "anomstack/alerts/send.py": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 47, 48, 49, 52, 53, 64, 65, 77, 80, 102, 103, 104, 105, 106, 107, 108, 113], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"send_alert": {"executed_lines": [47, 48, 49, 52, 53, 64, 65, 77], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "send_df": {"executed_lines": [102, 103, 104, 105, 106, 107, 108, 113], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 80], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 47, 48, 49, 52, 53, 64, 65, 77, 80, 102, 103, 104, 105, 106, 107, 108, 113], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/alerts/slack.py": {"executed_lines": [1, 41, 42, 44, 45, 46, 47, 49, 52, 129], "summary": {"covered_lines": 9, "num_statements": 50, "percent_covered": 18.0, "percent_covered_display": "18", "missing_lines": 41, "excluded_lines": 0}, "missing_lines": [71, 73, 74, 75, 82, 84, 85, 86, 87, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 122, 125, 126, 145, 146, 148, 153, 156, 157, 159, 160, 167], "excluded_lines": [], "functions": {"send_alert_slack": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 32, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 32, "excluded_lines": 0}, "missing_lines": [71, 73, 74, 75, 82, 84, 85, 86, 87, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 122, 125, 126], "excluded_lines": []}, "send_alert_slack_with_plot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [145, 146, 148, 153, 156, 157, 159, 160, 167], "excluded_lines": []}, "": {"executed_lines": [1, 41, 42, 44, 45, 46, 47, 49, 52, 129], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 41, 42, 44, 45, 46, 47, 49, 52, 129], "summary": {"covered_lines": 9, "num_statements": 50, "percent_covered": 18.0, "percent_covered_display": "18", "missing_lines": 41, "excluded_lines": 0}, "missing_lines": [71, 73, 74, 75, 82, 84, 85, 86, 87, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 122, 125, 126, 145, 146, 148, 153, 156, 157, 159, 160, 167], "excluded_lines": []}}}, "anomstack/config.py": {"executed_lines": [1, 5, 6, 8, 11, 14, 26, 27, 28, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 57, 59, 64, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 38, "num_statements": 39, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [63], "excluded_lines": [], "functions": {"get_specs": {"executed_lines": [26, 27, 28, 29, 32, 33, 34, 35, 36, 38, 57, 59, 64, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [63], "excluded_lines": []}, "get_specs.process_yaml_file": {"executed_lines": [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 11, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 11, 14, 26, 27, 28, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 57, 59, 64, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 38, "num_statements": 39, "percent_covered": 97.43589743589743, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [63], "excluded_lines": []}}}, "anomstack/df/resample.py": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 13, "percent_covered": 23.076923076923077, "percent_covered_display": "23", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [25, 27, 28, 29, 30, 31, 33, 34, 36, 38], "excluded_lines": [], "functions": {"resample": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [25, 27, 28, 29, 30, 31, 33, 34, 36, 38], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 13, "percent_covered": 23.076923076923077, "percent_covered_display": "23", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [25, 27, 28, 29, 30, 31, 33, 34, 36, 38], "excluded_lines": []}}}, "anomstack/df/save.py": {"executed_lines": [1, 5, 7, 8, 9, 10, 11, 13], "summary": {"covered_lines": 7, "num_statements": 19, "percent_covered": 36.8421052631579, "percent_covered_display": "37", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43], "excluded_lines": [], "functions": {"save_df": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 9, 10, 11, 13], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 9, 10, 11, 13], "summary": {"covered_lines": 7, "num_statements": 19, "percent_covered": 36.8421052631579, "percent_covered_display": "37", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 43], "excluded_lines": []}}}, "anomstack/df/utils.py": {"executed_lines": [1, 3, 4, 7, 14, 16, 17, 18, 19, 22], "summary": {"covered_lines": 10, "num_statements": 27, "percent_covered": 37.03703703703704, "percent_covered_display": "37", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [15, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41], "excluded_lines": [], "functions": {"log_df_info": {"executed_lines": [14, 16, 17, 18, 19], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [15], "excluded_lines": []}, "generate_insert_sql": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7, 22], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 7, 14, 16, 17, 18, 19, 22], "summary": {"covered_lines": 10, "num_statements": 27, "percent_covered": 37.03703703703704, "percent_covered_display": "37", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [15, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41], "excluded_lines": []}}}, "anomstack/df/wrangle.py": {"executed_lines": [1, 5, 6, 7, 8, 11, 24, 27, 30, 33, 34, 37, 50, 51, 54, 57, 59, 62, 64, 65, 67, 68, 70, 72, 73, 75, 78, 79, 82, 83, 85, 86, 88, 89, 91, 92, 95, 97], "summary": {"covered_lines": 37, "num_statements": 38, "percent_covered": 97.36842105263158, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [74], "excluded_lines": [], "functions": {"wrangle_df": {"executed_lines": [24, 27, 30, 33, 34, 37, 50, 51, 54, 57, 59], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "extract_metadata": {"executed_lines": [64, 65, 67, 91, 92, 95, 97], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "extract_metadata.safe_extract": {"executed_lines": [68, 70, 72, 73, 75, 78, 79, 82, 83, 85, 86, 88, 89], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [74], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 8, 11, 62], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 8, 11, 24, 27, 30, 33, 34, 37, 50, 51, 54, 57, 59, 62, 64, 65, 67, 68, 70, 72, 73, 75, 78, 79, 82, 83, 85, 86, 88, 89, 91, 92, 95, 97], "summary": {"covered_lines": 37, "num_statements": 38, "percent_covered": 97.36842105263158, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [74], "excluded_lines": []}}}, "anomstack/external/aws/credentials.py": {"executed_lines": [1, 5, 8], "summary": {"covered_lines": 2, "num_statements": 8, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [17, 18, 20, 21, 23, 28], "excluded_lines": [], "functions": {"get_aws_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [17, 18, 20, 21, 23, 28], "excluded_lines": []}, "": {"executed_lines": [1, 5, 8], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 8], "summary": {"covered_lines": 2, "num_statements": 8, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [17, 18, 20, 21, 23, 28], "excluded_lines": []}}}, "anomstack/external/aws/s3.py": {"executed_lines": [1, 5, 6, 8, 9, 10, 12, 15, 32, 48, 81], "summary": {"covered_lines": 10, "num_statements": 34, "percent_covered": 29.41176470588235, "percent_covered_display": "29", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [25, 26, 27, 29, 39, 41, 62, 63, 65, 67, 68, 69, 71, 72, 78, 96, 97, 99, 100, 102, 104, 109, 110, 112], "excluded_lines": [], "functions": {"split_model_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [25, 26, 27, 29], "excluded_lines": []}, "get_s3_client": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [39, 41], "excluded_lines": []}, "save_models_s3": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [62, 63, 65, 67, 68, 69, 71, 72, 78], "excluded_lines": []}, "load_model_s3": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [96, 97, 99, 100, 102, 104, 109, 110, 112], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 10, 12, 15, 32, 48, 81], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 10, 12, 15, 32, 48, 81], "summary": {"covered_lines": 10, "num_statements": 34, "percent_covered": 29.41176470588235, "percent_covered_display": "29", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [25, 26, 27, 29, 39, 41, 62, 63, 65, 67, 68, 69, 71, 72, 78, 96, 97, 99, 100, 102, 104, 109, 110, 112], "excluded_lines": []}}}, "anomstack/external/clickhouse/clickhouse.py": {"executed_lines": [1, 5, 6, 7, 8, 11, 27, 53, 69, 110], "summary": {"covered_lines": 9, "num_statements": 53, "percent_covered": 16.9811320754717, "percent_covered_display": "17", "missing_lines": 44, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 20, 21, 22, 24, 34, 36, 37, 38, 39, 40, 42, 44, 63, 64, 66, 80, 82, 83, 85, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, 103, 105, 107, 120, 121, 122, 123, 124, 125, 126], "excluded_lines": [], "functions": {"map_dtype": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 20, 21, 22, 24], "excluded_lines": []}, "get_clickhouse_client": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [34, 36, 37, 38, 39, 40, 42, 44], "excluded_lines": []}, "read_sql_clickhouse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [63, 64, 66], "excluded_lines": []}, "save_df_clickhouse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [80, 82, 83, 85, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, 103, 105, 107], "excluded_lines": []}, "run_sql_clickhouse": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [120, 121, 122, 123, 124, 125, 126], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 8, 11, 27, 53, 69, 110], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 8, 11, 27, 53, 69, 110], "summary": {"covered_lines": 9, "num_statements": 53, "percent_covered": 16.9811320754717, "percent_covered_display": "17", "missing_lines": 44, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 20, 21, 22, 24, 34, 36, 37, 38, 39, 40, 42, 44, 63, 64, 66, 80, 82, 83, 85, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, 103, 105, 107, 120, 121, 122, 123, 124, 125, 126], "excluded_lines": []}}}, "anomstack/external/duckdb/duckdb.py": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 56, 112], "summary": {"covered_lines": 8, "num_statements": 102, "percent_covered": 7.8431372549019605, "percent_covered_display": "8", "missing_lines": 94, "excluded_lines": 0}, "missing_lines": [24, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 68, 70, 71, 73, 74, 75, 76, 78, 79, 80, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 124, 126, 127, 129, 130, 131, 132, 134, 135, 136, 138, 140, 141, 142, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 165, 166], "excluded_lines": [], "functions": {"read_sql_duckdb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [24, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53], "excluded_lines": []}, "save_df_duckdb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [68, 70, 71, 73, 74, 75, 76, 78, 79, 80, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109], "excluded_lines": []}, "run_sql_duckdb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [124, 126, 127, 129, 130, 131, 132, 134, 135, 136, 138, 140, 141, 142, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 165, 166], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 56, 112], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 56, 112], "summary": {"covered_lines": 8, "num_statements": 102, "percent_covered": 7.8431372549019605, "percent_covered_display": "8", "missing_lines": 94, "excluded_lines": 0}, "missing_lines": [24, 26, 27, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 68, 70, 71, 73, 74, 75, 76, 78, 79, 80, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 124, 126, 127, 129, 130, 131, 132, 134, 135, 136, 138, 140, 141, 142, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 162, 163, 165, 166], "excluded_lines": []}}}, "anomstack/external/gcp/bigquery.py": {"executed_lines": [1, 5, 6, 7, 9, 10, 11, 12, 13, 15, 18, 37, 91], "summary": {"covered_lines": 12, "num_statements": 49, "percent_covered": 24.489795918367346, "percent_covered_display": "24", "missing_lines": 37, "excluded_lines": 0}, "missing_lines": [28, 29, 34, 54, 56, 57, 58, 64, 66, 75, 76, 77, 79, 81, 88, 113, 114, 115, 116, 120, 122, 126, 128, 130, 132, 133, 140, 141, 142, 145, 146, 147, 148, 151, 157, 159, 163], "excluded_lines": [], "functions": {"read_sql_bigquery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [28, 29, 34], "excluded_lines": []}, "pandas_save_df_bigquery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [54, 56, 57, 58, 64, 66, 75, 76, 77, 79, 81, 88], "excluded_lines": []}, "save_df_bigquery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [113, 114, 115, 116, 120, 122, 126, 128, 130, 132, 133, 140, 141, 142, 145, 146, 147, 148, 151, 157, 159, 163], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 9, 10, 11, 12, 13, 15, 18, 37, 91], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 9, 10, 11, 12, 13, 15, 18, 37, 91], "summary": {"covered_lines": 12, "num_statements": 49, "percent_covered": 24.489795918367346, "percent_covered_display": "24", "missing_lines": 37, "excluded_lines": 0}, "missing_lines": [28, 29, 34, 54, 56, 57, 58, 64, 66, 75, 76, 77, 79, 81, 88, 113, 114, 115, 116, 120, 122, 126, 128, 130, 132, 133, 140, 141, 142, 145, 146, 147, 148, 151, 157, 159, 163], "excluded_lines": []}}}, "anomstack/external/gcp/credentials.py": {"executed_lines": [1, 5, 6, 8, 9, 12], "summary": {"covered_lines": 5, "num_statements": 24, "percent_covered": 20.833333333333332, "percent_covered_display": "21", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 31, 32, 33, 35, 36, 37, 45, 46, 48, 49, 50, 51, 54, 55, 56, 58], "excluded_lines": [], "functions": {"get_google_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 31, 32, 33, 35, 36, 37, 45, 46, 48, 49, 50, 51, 54, 55, 56, 58], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 12], "summary": {"covered_lines": 5, "num_statements": 24, "percent_covered": 20.833333333333332, "percent_covered_display": "21", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [25, 28, 29, 31, 32, 33, 35, 36, 37, 45, 46, 48, 49, 50, 51, 54, 55, 56, 58], "excluded_lines": []}}}, "anomstack/external/gcp/gcs.py": {"executed_lines": [1, 5, 6, 7, 8, 10, 11, 12, 13, 16, 33, 53, 87], "summary": {"covered_lines": 12, "num_statements": 46, "percent_covered": 26.08695652173913, "percent_covered_display": "26", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [26, 27, 28, 30, 40, 41, 43, 44, 47, 48, 50, 67, 69, 71, 72, 73, 75, 76, 77, 79, 81, 82, 84, 101, 103, 105, 106, 107, 109, 110, 112, 114, 115, 117], "excluded_lines": [], "functions": {"split_model_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [26, 27, 28, 30], "excluded_lines": []}, "get_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [40, 41, 43, 44, 47, 48, 50], "excluded_lines": []}, "save_models_gcs": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [67, 69, 71, 72, 73, 75, 76, 77, 79, 81, 82, 84], "excluded_lines": []}, "load_model_gcs": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [101, 103, 105, 106, 107, 109, 110, 112, 114, 115, 117], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 8, 10, 11, 12, 13, 16, 33, 53, 87], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 8, 10, 11, 12, 13, 16, 33, 53, 87], "summary": {"covered_lines": 12, "num_statements": 46, "percent_covered": 26.08695652173913, "percent_covered_display": "26", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [26, 27, 28, 30, 40, 41, 43, 44, 47, 48, 50, 67, 69, 71, 72, 73, 75, 76, 77, 79, 81, 82, 84, 101, 103, 105, 106, 107, 109, 110, 112, 114, 115, 117], "excluded_lines": []}}}, "anomstack/external/snowflake/credentials.py": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 9, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [20, 21, 22, 23, 25, 32], "excluded_lines": [], "functions": {"get_snowflake_credentials": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [20, 21, 22, 23, 25, 32], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 9, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [20, 21, 22, 23, 25, 32], "excluded_lines": []}}}, "anomstack/external/snowflake/snowflake.py": {"executed_lines": [1, 5, 6, 8, 11, 41], "summary": {"covered_lines": 5, "num_statements": 22, "percent_covered": 22.727272727272727, "percent_covered_display": "23", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [23, 25, 31, 32, 33, 35, 36, 38, 58, 60, 62, 74, 76, 85, 87, 88, 90], "excluded_lines": [], "functions": {"read_sql_snowflake": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [23, 25, 31, 32, 33, 35, 36, 38], "excluded_lines": []}, "save_df_snowflake": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [58, 60, 62, 74, 76, 85, 87, 88, 90], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 11, 41], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 11, 41], "summary": {"covered_lines": 5, "num_statements": 22, "percent_covered": 22.727272727272727, "percent_covered_display": "23", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [23, 25, 31, 32, 33, 35, 36, 38, 58, 60, 62, 74, 76, 85, 87, 88, 90], "excluded_lines": []}}}, "anomstack/external/sqlite/sqlite.py": {"executed_lines": [1, 5, 6, 7, 9, 10, 11, 13, 14, 16, 17, 20, 36, 59, 93, 94, 103, 123, 141, 164, 191], "summary": {"covered_lines": 20, "num_statements": 86, "percent_covered": 23.25581395348837, "percent_covered_display": "23", "missing_lines": 66, "excluded_lines": 0}, "missing_lines": [28, 29, 31, 32, 33, 51, 52, 53, 54, 56, 75, 76, 77, 78, 79, 80, 81, 85, 87, 88, 89, 90, 98, 99, 100, 113, 114, 115, 116, 117, 118, 120, 134, 138, 151, 152, 154, 155, 156, 157, 158, 159, 161, 175, 176, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 214], "excluded_lines": [], "functions": {"get_sqlite_path": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [28, 29, 31, 32, 33], "excluded_lines": []}, "get_conn": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [51, 52, 53, 54, 56], "excluded_lines": []}, "with_sqlite_retry": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [75, 76, 77, 78, 79, 80, 81, 85, 87, 88, 89, 90], "excluded_lines": []}, "sqlite_connection": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [98, 99, 100], "excluded_lines": []}, "infer_sqlite_type": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [113, 114, 115, 116, 117, 118, 120], "excluded_lines": []}, "generate_create_table_sql": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [134, 138], "excluded_lines": []}, "read_sql_sqlite": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [151, 152, 154, 161], "excluded_lines": []}, "read_sql_sqlite._action": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [155, 156, 157, 158, 159], "excluded_lines": []}, "save_df_sqlite": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [175, 176, 178, 188], "excluded_lines": []}, "save_df_sqlite._action": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [179, 180, 181, 182, 183, 184, 185, 186], "excluded_lines": []}, "run_sql_sqlite": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [202, 203, 205, 214], "excluded_lines": []}, "run_sql_sqlite._action": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [206, 207, 208, 209, 210, 211, 212], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 9, 10, 11, 13, 14, 16, 17, 20, 36, 59, 93, 94, 103, 123, 141, 164, 191], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 9, 10, 11, 13, 14, 16, 17, 20, 36, 59, 93, 94, 103, 123, 141, 164, 191], "summary": {"covered_lines": 20, "num_statements": 86, "percent_covered": 23.25581395348837, "percent_covered_display": "23", "missing_lines": 66, "excluded_lines": 0}, "missing_lines": [28, 29, 31, 32, 33, 51, 52, 53, 54, 56, 75, 76, 77, 78, 79, 80, 81, 85, 87, 88, 89, 90, 98, 99, 100, 113, 114, 115, 116, 117, 118, 120, 134, 138, 151, 152, 154, 155, 156, 157, 158, 159, 161, 175, 176, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 214], "excluded_lines": []}}}, "anomstack/fn/run.py": {"executed_lines": [1, 5, 7, 8, 11, 32, 55], "summary": {"covered_lines": 6, "num_statements": 23, "percent_covered": 26.08695652173913, "percent_covered_display": "26", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [22, 23, 24, 25, 26, 27, 28, 29, 44, 46, 47, 49, 50, 52, 68, 70, 72], "excluded_lines": [], "functions": {"validate_function_definition": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [22, 23, 24, 25, 26, 27, 28, 29], "excluded_lines": []}, "define_fn": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [44, 46, 47, 49, 50, 52], "excluded_lines": []}, "run_df_fn": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [68, 70, 72], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 11, 32, 55], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 11, 32, 55], "summary": {"covered_lines": 6, "num_statements": 23, "percent_covered": 26.08695652173913, "percent_covered_display": "26", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [22, 23, 24, 25, 26, 27, 28, 29, 44, 46, 47, 49, 50, 52, 68, 70, 72], "excluded_lines": []}}}, "anomstack/io/load.py": {"executed_lines": [1, 5, 7, 9, 10, 13, 32, 33, 36, 40, 41, 45, 47, 50, 66, 68, 69, 71], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": [], "functions": {"load_model": {"executed_lines": [32, 33, 36, 40, 41, 45, 47], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": []}, "load_model_local": {"executed_lines": [66, 68, 69, 71], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 9, 10, 13, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 9, 10, 13, 32, 33, 36, 40, 41, 45, 47, 50, 66, 68, 69, 71], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [37], "excluded_lines": []}}}, "anomstack/io/save.py": {"executed_lines": [1, 5, 6, 7, 9, 11, 12, 15, 32, 34, 35, 37, 38, 41, 42, 44, 47, 64, 65, 66, 68, 69, 71, 73], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [67], "excluded_lines": [], "functions": {"save_models_local": {"executed_lines": [32, 34, 35, 37, 38, 41, 42, 44], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "save_models": {"executed_lines": [64, 65, 66, 68, 69, 71, 73], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [67], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 9, 11, 12, 15, 47], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 9, 11, 12, 15, 32, 34, 35, 37, 38, 41, 42, 44, 47, 64, 65, 66, 68, 69, 71, 73], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [67], "excluded_lines": []}}}, "anomstack/jinja/render.py": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 11, "percent_covered": 27.272727272727273, "percent_covered_display": "27", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [24, 25, 26, 29, 31, 35, 38, 40], "excluded_lines": [], "functions": {"render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [24, 25, 26, 29, 31, 35, 38, 40], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 11, "percent_covered": 27.272727272727273, "percent_covered_display": "27", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [24, 25, 26, 29, 31, 35, 38, 40], "excluded_lines": []}}}, "anomstack/jobs/alert.py": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 22, 23, 24, 26, 29, 40, 42, 46, 47, 48, 51, 53, 55, 57, 58, 59, 60, 61, 62, 64, 68, 73, 74, 85, 86, 141, 142, 177, 179, 183, 184, 185, 186, 187, 188, 189, 192, 193, 198], "summary": {"covered_lines": 46, "num_statements": 79, "percent_covered": 58.22784810126582, "percent_covered_display": "58", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [49, 81, 83, 99, 100, 102, 103, 104, 105, 108, 111, 114, 121, 124, 125, 134, 135, 136, 139, 153, 155, 156, 157, 159, 166, 167, 168, 169, 170, 171, 173, 175, 190], "excluded_lines": [], "functions": {"build_alert_job": {"executed_lines": [40, 42, 46, 47, 53, 55, 57, 58, 59, 60, 61, 62, 64, 68, 179], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_alert_job._dummy_job": {"executed_lines": [48, 51], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_alert_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [49], "excluded_lines": []}, "build_alert_job._job": {"executed_lines": [73, 74, 85, 86, 141, 142, 177], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_alert_job._job.get_alerts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [81, 83], "excluded_lines": []}, "build_alert_job._job.alert": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [99, 100, 102, 103, 104, 105, 108, 111, 114, 121, 124, 125, 134, 135, 136, 139], "excluded_lines": []}, "build_alert_job._job.save_alerts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [153, 155, 156, 157, 159, 166, 167, 168, 169, 170, 171, 173, 175], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 22, 23, 24, 26, 29, 183, 184, 185, 186, 187, 188, 189, 192, 193, 198], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [190], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 22, 23, 24, 26, 29, 40, 42, 46, 47, 48, 51, 53, 55, 57, 58, 59, 60, 61, 62, 64, 68, 73, 74, 85, 86, 141, 142, 177, 179, 183, 184, 185, 186, 187, 188, 189, 192, 193, 198], "summary": {"covered_lines": 46, "num_statements": 79, "percent_covered": 58.22784810126582, "percent_covered_display": "58", "missing_lines": 33, "excluded_lines": 0}, "missing_lines": [49, 81, 83, 99, 100, 102, 103, 104, 105, 108, 111, 114, 121, 124, 125, 134, 135, 136, 139, 153, 155, 156, 157, 159, 166, 167, 168, 169, 170, 171, 173, 175, 190], "excluded_lines": []}}}, "anomstack/jobs/change.py": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 22, 23, 24, 25, 27, 32, 43, 58, 60, 61, 62, 63, 64, 65, 66, 68, 72, 77, 78, 90, 91, 114, 115, 171, 172, 217, 219, 223, 224, 225, 226, 227, 228, 229, 232, 233, 238], "summary": {"covered_lines": 44, "num_statements": 93, "percent_covered": 47.31182795698925, "percent_covered_display": "47", "missing_lines": 49, "excluded_lines": 0}, "missing_lines": [45, 49, 50, 51, 52, 54, 56, 86, 88, 99, 100, 101, 102, 105, 110, 112, 128, 129, 131, 132, 133, 134, 137, 140, 143, 150, 153, 154, 164, 165, 166, 169, 183, 184, 185, 187, 189, 190, 191, 195, 202, 203, 206, 207, 208, 211, 213, 215, 230], "excluded_lines": [], "functions": {"build_change_job": {"executed_lines": [43, 58, 60, 61, 62, 63, 64, 65, 66, 68, 72, 219], "summary": {"covered_lines": 12, "num_statements": 16, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [45, 49, 50, 56], "excluded_lines": []}, "build_change_job._dummy_job": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [51, 54], "excluded_lines": []}, "build_change_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [52], "excluded_lines": []}, "build_change_job._job": {"executed_lines": [77, 78, 90, 91, 114, 115, 171, 172, 217], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_change_job._job.get_change_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [86, 88], "excluded_lines": []}, "build_change_job._job.detect_changes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [99, 100, 101, 102, 105, 110, 112], "excluded_lines": []}, "build_change_job._job.alert": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [128, 129, 131, 132, 133, 134, 137, 140, 143, 150, 153, 154, 164, 165, 166, 169], "excluded_lines": []}, "build_change_job._job.save_alerts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [183, 184, 185, 187, 189, 190, 191, 195, 202, 203, 206, 207, 208, 211, 213, 215], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 22, 23, 24, 25, 27, 32, 223, 224, 225, 226, 227, 228, 229, 232, 233, 238], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [230], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 22, 23, 24, 25, 27, 32, 43, 58, 60, 61, 62, 63, 64, 65, 66, 68, 72, 77, 78, 90, 91, 114, 115, 171, 172, 217, 219, 223, 224, 225, 226, 227, 228, 229, 232, 233, 238], "summary": {"covered_lines": 44, "num_statements": 93, "percent_covered": 47.31182795698925, "percent_covered_display": "47", "missing_lines": 49, "excluded_lines": 0}, "missing_lines": [45, 49, 50, 51, 52, 54, 56, 86, 88, 99, 100, 101, 102, 105, 110, 112, 128, 129, 131, 132, 133, 134, 137, 140, 143, 150, 153, 154, 164, 165, 166, 169, 183, 184, 185, 187, 189, 190, 191, 195, 202, 203, 206, 207, 208, 211, 213, 215, 230], "excluded_lines": []}}}, "anomstack/jobs/delete.py": {"executed_lines": [1, 5, 7, 17, 18, 19, 21, 26, 37, 52, 54, 55, 56, 57, 58, 59, 61, 65, 70, 71, 82, 84, 88, 89, 90, 91, 92, 93, 94, 97, 98, 103], "summary": {"covered_lines": 31, "num_statements": 41, "percent_covered": 75.60975609756098, "percent_covered_display": "76", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 45, 46, 48, 50, 78, 80, 95], "excluded_lines": [], "functions": {"build_delete_job": {"executed_lines": [37, 52, 54, 55, 56, 57, 58, 59, 61, 65, 84], "summary": {"covered_lines": 11, "num_statements": 15, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 50], "excluded_lines": []}, "build_delete_job._dummy_job": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [45, 48], "excluded_lines": []}, "build_delete_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "build_delete_job._job": {"executed_lines": [70, 71, 82], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_delete_job._job.delete_old_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [78, 80], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 17, 18, 19, 21, 26, 88, 89, 90, 91, 92, 93, 94, 97, 98, 103], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [95], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 17, 18, 19, 21, 26, 37, 52, 54, 55, 56, 57, 58, 59, 61, 65, 70, 71, 82, 84, 88, 89, 90, 91, 92, 93, 94, 97, 98, 103], "summary": {"covered_lines": 31, "num_statements": 41, "percent_covered": 75.60975609756098, "percent_covered_display": "76", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 45, 46, 48, 50, 78, 80, 95], "excluded_lines": []}}}, "anomstack/jobs/ingest.py": {"executed_lines": [1, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 27, 30, 41, 43, 47, 48, 49, 52, 54, 56, 57, 58, 59, 60, 61, 63, 67, 72, 73, 96, 97, 112, 114, 117, 120, 121, 122, 123, 124, 125, 126, 127, 128, 131, 132, 137], "summary": {"covered_lines": 47, "num_statements": 62, "percent_covered": 75.80645161290323, "percent_covered_display": "76", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [50, 80, 81, 82, 83, 85, 88, 89, 90, 91, 92, 94, 108, 110, 129], "excluded_lines": [], "functions": {"build_ingest_job": {"executed_lines": [41, 43, 47, 48, 54, 56, 57, 58, 59, 60, 61, 63, 67, 114], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_ingest_job._dummy_job": {"executed_lines": [49, 52], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_ingest_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [50], "excluded_lines": []}, "build_ingest_job._job": {"executed_lines": [72, 73, 96, 97, 112], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_ingest_job._job.create_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [80, 81, 82, 83, 85, 88, 89, 90, 91, 92, 94], "excluded_lines": []}, "build_ingest_job._job.save_metrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [108, 110], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 27, 30, 117, 120, 121, 122, 123, 124, 125, 126, 127, 128, 131, 132, 137], "summary": {"covered_lines": 26, "num_statements": 27, "percent_covered": 96.29629629629629, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [129], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 27, 30, 41, 43, 47, 48, 49, 52, 54, 56, 57, 58, 59, 60, 61, 63, 67, 72, 73, 96, 97, 112, 114, 117, 120, 121, 122, 123, 124, 125, 126, 127, 128, 131, 132, 137], "summary": {"covered_lines": 47, "num_statements": 62, "percent_covered": 75.80645161290323, "percent_covered_display": "76", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [50, 80, 81, 82, 83, 85, 88, 89, 90, 91, 92, 94, 108, 110, 129], "excluded_lines": []}}}, "anomstack/jobs/llmalert.py": {"executed_lines": [1, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 32, 42, 44, 46, 50, 51, 52, 55, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 73, 77, 82, 83, 94, 95, 242, 243, 286, 288, 292, 293, 294, 295, 296, 297, 298, 301, 302, 307], "summary": {"covered_lines": 53, "num_statements": 111, "percent_covered": 47.747747747747745, "percent_covered_display": "48", "missing_lines": 58, "excluded_lines": 0}, "missing_lines": [53, 90, 92, 107, 109, 110, 115, 116, 120, 121, 127, 132, 135, 136, 139, 142, 149, 150, 154, 155, 159, 162, 167, 173, 178, 182, 186, 191, 193, 197, 204, 207, 208, 209, 215, 216, 232, 233, 234, 238, 240, 254, 255, 256, 258, 260, 261, 262, 263, 264, 270, 278, 279, 280, 281, 282, 284, 299], "excluded_lines": [], "functions": {"build_llmalert_job": {"executed_lines": [42, 44, 46, 50, 51, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 73, 77, 288], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_llmalert_job._dummy_job": {"executed_lines": [52, 55], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_llmalert_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [53], "excluded_lines": []}, "build_llmalert_job._job": {"executed_lines": [82, 83, 94, 95, 242, 243, 286], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_llmalert_job._job.get_llmalert_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [90, 92], "excluded_lines": []}, "build_llmalert_job._job.llmalert": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 38, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 38, "excluded_lines": 0}, "missing_lines": [107, 109, 110, 115, 116, 120, 121, 127, 132, 135, 136, 139, 142, 149, 150, 154, 155, 159, 162, 167, 173, 178, 182, 186, 191, 193, 197, 204, 207, 208, 209, 215, 216, 232, 233, 234, 238, 240], "excluded_lines": []}, "build_llmalert_job._job.save_llmalerts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [254, 255, 256, 258, 260, 261, 262, 263, 264, 270, 278, 279, 280, 281, 282, 284], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 32, 292, 293, 294, 295, 296, 297, 298, 301, 302, 307], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [299], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 32, 42, 44, 46, 50, 51, 52, 55, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 73, 77, 82, 83, 94, 95, 242, 243, 286, 288, 292, 293, 294, 295, 296, 297, 298, 301, 302, 307], "summary": {"covered_lines": 53, "num_statements": 111, "percent_covered": 47.747747747747745, "percent_covered_display": "48", "missing_lines": 58, "excluded_lines": 0}, "missing_lines": [53, 90, 92, 107, 109, 110, 115, 116, 120, 121, 127, 132, 135, 136, 139, 142, 149, 150, 154, 155, 159, 162, 167, 173, 178, 182, 186, 191, 193, 197, 204, 207, 208, 209, 215, 216, 232, 233, 234, 238, 240, 254, 255, 256, 258, 260, 261, 262, 263, 264, 270, 278, 279, 280, 281, 282, 284, 299], "excluded_lines": []}}}, "anomstack/jobs/plot.py": {"executed_lines": [1, 5, 6, 7, 9, 10, 22, 23, 24, 25, 26, 28, 33, 43, 45, 60, 61, 62, 63, 64, 66, 70, 73, 74, 92, 93, 116, 118, 122, 123, 124, 125, 126, 127, 128, 131, 132, 137], "summary": {"covered_lines": 37, "num_statements": 61, "percent_covered": 60.65573770491803, "percent_covered_display": "61", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [47, 51, 52, 53, 54, 56, 58, 81, 82, 83, 84, 85, 87, 88, 90, 101, 103, 105, 106, 107, 108, 110, 114, 129], "excluded_lines": [], "functions": {"build_plot_job": {"executed_lines": [43, 45, 60, 61, 62, 63, 64, 66, 70, 118], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [47, 51, 52, 58], "excluded_lines": []}, "build_plot_job._dummy_job": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [53, 56], "excluded_lines": []}, "build_plot_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [54], "excluded_lines": []}, "build_plot_job._job": {"executed_lines": [73, 74, 92, 93, 116], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_plot_job._job.get_plot_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [81, 82, 83, 84, 85, 87, 88, 90], "excluded_lines": []}, "build_plot_job._job.make_plot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [101, 103, 105, 106, 107, 108, 110, 114], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 9, 10, 22, 23, 24, 25, 26, 28, 33, 122, 123, 124, 125, 126, 127, 128, 131, 132, 137], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [129], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 9, 10, 22, 23, 24, 25, 26, 28, 33, 43, 45, 60, 61, 62, 63, 64, 66, 70, 73, 74, 92, 93, 116, 118, 122, 123, 124, 125, 126, 127, 128, 131, 132, 137], "summary": {"covered_lines": 37, "num_statements": 61, "percent_covered": 60.65573770491803, "percent_covered_display": "61", "missing_lines": 24, "excluded_lines": 0}, "missing_lines": [47, 51, 52, 53, 54, 56, 58, 81, 82, 83, 84, 85, 87, 88, 90, 101, 103, 105, 106, 107, 108, 110, 114, 129], "excluded_lines": []}}}, "anomstack/jobs/score.py": {"executed_lines": [1, 5, 7, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 31, 42, 44, 48, 49, 50, 53, 55, 57, 59, 60, 61, 62, 63, 64, 65, 66, 68, 72, 77, 78, 90, 91, 211, 212, 232, 234, 238, 239, 240, 241, 242, 243, 244, 247, 248, 253], "summary": {"covered_lines": 50, "num_statements": 107, "percent_covered": 46.728971962616825, "percent_covered_display": "47", "missing_lines": 57, "excluded_lines": 0}, "missing_lines": [51, 86, 88, 102, 106, 108, 109, 111, 112, 114, 116, 117, 120, 122, 124, 125, 127, 129, 130, 133, 134, 135, 136, 137, 138, 142, 143, 144, 145, 149, 151, 152, 153, 154, 155, 156, 158, 164, 172, 180, 185, 186, 195, 196, 198, 200, 201, 202, 204, 205, 207, 209, 223, 224, 226, 230, 245], "excluded_lines": [], "functions": {"build_score_job": {"executed_lines": [42, 44, 48, 49, 55, 57, 59, 60, 61, 62, 63, 64, 65, 66, 68, 72, 234], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_score_job._dummy_job": {"executed_lines": [50, 53], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_score_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": []}, "build_score_job._job": {"executed_lines": [77, 78, 90, 91, 211, 212, 232], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_score_job._job.get_score_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [86, 88], "excluded_lines": []}, "build_score_job._job.score": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 49, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 49, "excluded_lines": 0}, "missing_lines": [102, 106, 108, 109, 111, 112, 114, 116, 117, 120, 122, 124, 125, 127, 129, 130, 133, 134, 135, 136, 137, 138, 142, 143, 144, 145, 149, 151, 152, 153, 154, 155, 156, 158, 164, 172, 180, 185, 186, 195, 196, 198, 200, 201, 202, 204, 205, 207, 209], "excluded_lines": []}, "build_score_job._job.save_scores": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [223, 224, 226, 230], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 31, 238, 239, 240, 241, 242, 243, 244, 247, 248, 253], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [245], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 31, 42, 44, 48, 49, 50, 53, 55, 57, 59, 60, 61, 62, 63, 64, 65, 66, 68, 72, 77, 78, 90, 91, 211, 212, 232, 234, 238, 239, 240, 241, 242, 243, 244, 247, 248, 253], "summary": {"covered_lines": 50, "num_statements": 107, "percent_covered": 46.728971962616825, "percent_covered_display": "47", "missing_lines": 57, "excluded_lines": 0}, "missing_lines": [51, 86, 88, 102, 106, 108, 109, 111, 112, 114, 116, 117, 120, 122, 124, 125, 127, 129, 130, 133, 134, 135, 136, 137, 138, 142, 143, 144, 145, 149, 151, 152, 153, 154, 155, 156, 158, 164, 172, 180, 185, 186, 195, 196, 198, 200, 201, 202, 204, 205, 207, 209, 223, 224, 226, 230, 245], "excluded_lines": []}}}, "anomstack/jobs/summary.py": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 23, 26, 37, 52, 54, 55, 57, 61, 66, 67, 78, 79, 90, 92, 96, 97, 98, 99, 100, 101, 102, 107], "summary": {"covered_lines": 29, "num_statements": 41, "percent_covered": 70.73170731707317, "percent_covered_display": "71", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 45, 46, 48, 50, 74, 76, 82, 83, 88], "excluded_lines": [], "functions": {"build_summary_job": {"executed_lines": [37, 52, 54, 55, 57, 61, 92], "summary": {"covered_lines": 7, "num_statements": 11, "percent_covered": 63.63636363636363, "percent_covered_display": "64", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 50], "excluded_lines": []}, "build_summary_job._dummy_job": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [45, 48], "excluded_lines": []}, "build_summary_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [46], "excluded_lines": []}, "build_summary_job._job": {"executed_lines": [66, 67, 78, 79, 90], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_summary_job._job.get_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [74, 76], "excluded_lines": []}, "build_summary_job._job.send_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [82, 83, 88], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 23, 26, 96, 97, 98, 99, 100, 101, 102, 107], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 18, 19, 20, 21, 23, 26, 37, 52, 54, 55, 57, 61, 66, 67, 78, 79, 90, 92, 96, 97, 98, 99, 100, 101, 102, 107], "summary": {"covered_lines": 29, "num_statements": 41, "percent_covered": 70.73170731707317, "percent_covered_display": "71", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [39, 43, 44, 45, 46, 48, 50, 74, 76, 82, 83, 88], "excluded_lines": []}}}, "anomstack/jobs/train.py": {"executed_lines": [1, 5, 6, 8, 9, 18, 20, 21, 22, 23, 24, 25, 27, 30, 41, 43, 47, 48, 49, 52, 54, 56, 57, 58, 59, 60, 62, 66, 71, 73, 74, 86, 87, 150, 151, 168, 170, 174, 175, 176, 177, 178, 179, 180, 183, 184, 189], "summary": {"covered_lines": 46, "num_statements": 73, "percent_covered": 63.013698630136986, "percent_covered_display": "63", "missing_lines": 27, "excluded_lines": 0}, "missing_lines": [50, 82, 84, 100, 104, 106, 107, 109, 112, 113, 114, 117, 118, 123, 124, 125, 131, 132, 133, 134, 135, 142, 144, 148, 164, 166, 181], "excluded_lines": [], "functions": {"build_train_job": {"executed_lines": [41, 43, 47, 48, 54, 56, 57, 58, 59, 60, 62, 66, 170], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_train_job._dummy_job": {"executed_lines": [49, 52], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_train_job._dummy_job.noop": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [50], "excluded_lines": []}, "build_train_job._job": {"executed_lines": [71, 73, 74, 86, 87, 150, 151, 168], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "build_train_job._job.get_train_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 84], "excluded_lines": []}, "build_train_job._job.train": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [100, 104, 106, 107, 109, 112, 113, 114, 117, 118, 123, 124, 125, 131, 132, 133, 134, 135, 142, 144, 148], "excluded_lines": []}, "build_train_job._job.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [164, 166], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 18, 20, 21, 22, 23, 24, 25, 27, 30, 174, 175, 176, 177, 178, 179, 180, 183, 184, 189], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [181], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 18, 20, 21, 22, 23, 24, 25, 27, 30, 41, 43, 47, 48, 49, 52, 54, 56, 57, 58, 59, 60, 62, 66, 71, 73, 74, 86, 87, 150, 151, 168, 170, 174, 175, 176, 177, 178, 179, 180, 183, 184, 189], "summary": {"covered_lines": 46, "num_statements": 73, "percent_covered": 63.013698630136986, "percent_covered_display": "63", "missing_lines": 27, "excluded_lines": 0}, "missing_lines": [50, 82, 84, 100, 104, 106, 107, 109, 112, 113, 114, 117, 118, 123, 124, 125, 131, 132, 133, 134, 135, 142, 144, 148, 164, 166, 181], "excluded_lines": []}}}, "anomstack/llm/agent.py": {"executed_lines": [1, 3, 6], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [17, 18, 19, 21], "excluded_lines": [], "functions": {"detect_anomalies": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [17, 18, 19, 21], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [17, 18, 19, 21], "excluded_lines": []}}}, "anomstack/main.py": {"executed_lines": [1, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 30, 42], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 30, 42], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 30, 42], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/ml/change.py": {"executed_lines": [1, 6, 7, 8, 9, 11, 13, 16, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 54, 55, 56, 57, 58, 64, 68], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [59, 62], "excluded_lines": [], "functions": {"detect_change": {"executed_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 54, 55, 56, 57, 58, 64, 68], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [59, 62], "excluded_lines": []}, "": {"executed_lines": [1, 6, 7, 8, 9, 11, 13, 16], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 6, 7, 8, 9, 11, 13, 16, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 54, 55, 56, 57, 58, 64, 68], "summary": {"covered_lines": 28, "num_statements": 30, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [59, 62], "excluded_lines": []}}}, "anomstack/ml/preprocess.py": {"executed_lines": [1, 5, 6, 9, 35, 37, 42, 44, 45, 47, 48, 50, 51, 52, 54, 55, 57, 58, 61, 63, 65, 67], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"make_x": {"executed_lines": [35, 37, 42, 44, 45, 47, 48, 50, 51, 52, 54, 55, 57, 58, 61, 63, 65, 67], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 9, 35, 37, 42, 44, 45, 47, 48, 50, 51, 52, 54, 55, 57, 58, 61, 63, 65, 67], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/ml/train.py": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 34, 36, 40, 42, 43, 44, 45, 46, 54], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"train_model": {"executed_lines": [34, 36, 40, 42, 43, 44, 45, 46, 54], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 8, 9, 10, 13], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 8, 9, 10, 13, 34, 36, 40, 42, 43, 44, 45, 46, 54], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/plots/plot.py": {"executed_lines": [1, 5, 6, 7, 8, 9, 10, 13, 38, 42, 44, 45, 47, 54, 55, 61, 62, 63, 64, 66, 74, 75, 82, 86, 87, 91, 92, 93, 95, 96, 97, 98, 100, 101, 102, 104, 106, 109, 120, 121, 122, 124, 128, 129, 131, 132, 133, 134, 136, 146, 147, 149, 150, 152, 153, 164, 165, 166, 168, 169, 178, 179, 180, 189, 191, 193], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"make_alert_plot": {"executed_lines": [38, 42, 44, 45, 47, 54, 55, 61, 62, 63, 64, 66, 74, 75, 82, 86, 87, 91, 92, 93, 95, 96, 97, 98, 100, 101, 102, 104, 106], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "make_batch_plot": {"executed_lines": [120, 121, 122, 124, 128, 129, 131, 132, 133, 134, 136, 146, 147, 149, 150, 152, 153, 164, 165, 166, 168, 169, 178, 179, 180, 189, 191, 193], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 7, 8, 9, 10, 13, 109], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 6, 7, 8, 9, 10, 13, 38, 42, 44, 45, 47, 54, 55, 61, 62, 63, 64, 66, 74, 75, 82, 86, 87, 91, 92, 93, 95, 96, 97, 98, 100, 101, 102, 104, 106, 109, 120, 121, 122, 124, 128, 129, 131, 132, 133, 134, 136, 146, 147, 149, 150, 152, 153, 164, 165, 166, 168, 169, 178, 179, 180, 189, 191, 193], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/sensors/failure.py": {"executed_lines": [1, 3, 5, 8, 11, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 3, 5, 8, 11, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 5, 8, 11, 15], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/sql/read.py": {"executed_lines": [1, 7, 8, 10, 11, 12, 13, 14, 15, 19, 21, 24, 37, 39, 41, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 78, 79, 80, 82], "summary": {"covered_lines": 46, "num_statements": 47, "percent_covered": 97.87234042553192, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [76], "excluded_lines": [], "functions": {"read_sql": {"executed_lines": [37, 39, 41, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 78, 79, 80, 82], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [76], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 10, 11, 12, 13, 14, 15, 19, 21, 24], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 8, 10, 11, 12, 13, 14, 15, 19, 21, 24, 37, 39, 41, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 78, 79, 80, 82], "summary": {"covered_lines": 46, "num_statements": 47, "percent_covered": 97.87234042553192, "percent_covered_display": "98", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [76], "excluded_lines": []}}}, "anomstack/sql/translate.py": {"executed_lines": [1, 3, 6, 18, 20, 21, 22, 23, 24, 30], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"db_translate": {"executed_lines": [18, 20, 21, 22, 23, 24, 30], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 3, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 6, 18, 20, 21, 22, 23, 24, 30], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "anomstack/sql/utils.py": {"executed_lines": [1, 3, 4, 7], "summary": {"covered_lines": 4, "num_statements": 11, "percent_covered": 36.36363636363637, "percent_covered_display": "36", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [17, 18, 19, 20, 21, 22, 23], "excluded_lines": [], "functions": {"get_columns_from_sql": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [17, 18, 19, 20, 21, 22, 23], "excluded_lines": []}, "": {"executed_lines": [1, 3, 4, 7], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 3, 4, 7], "summary": {"covered_lines": 4, "num_statements": 11, "percent_covered": 36.36363636363637, "percent_covered_display": "36", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [17, 18, 19, 20, 21, 22, 23], "excluded_lines": []}}}, "anomstack/validate/validate.py": {"executed_lines": [1, 5, 7, 8, 11, 22, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 38, 39, 42, 44, 48, 52], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"validate_df": {"executed_lines": [22, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 38, 39, 42, 44, 48, 52], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 5, 7, 8, 11], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 5, 7, 8, 11, 22, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 38, 39, 42, 44, 48, 52], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 917, "num_statements": 1940, "percent_covered": 47.2680412371134, "percent_covered_display": "47", "missing_lines": 1023, "excluded_lines": 0}}