This repository was archived by the owner on Jun 15, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathcoverage.json
More file actions
1 lines (1 loc) · 202 KB
/
Copy pathcoverage.json
File metadata and controls
1 lines (1 loc) · 202 KB
1
{"meta": {"format": 3, "version": "7.13.2", "timestamp": "2026-02-05T13:44:05.407973", "branch_coverage": false, "show_contexts": false}, "files": {"iqtoolkit_analyzer/__init__.py": {"executed_lines": [17, 18, 20, 22, 36, 50, 51, 56], "summary": {"covered_lines": 8, "num_statements": 12, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [52, 53, 54, 55], "excluded_lines": [], "functions": {"__getattr__": {"executed_lines": [51, 56], "summary": {"covered_lines": 2, "num_statements": 6, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 33.333333333333336, "percent_statements_covered_display": "33"}, "missing_lines": [52, 53, 54, 55], "excluded_lines": [], "start_line": 50}, "": {"executed_lines": [17, 18, 20, 22, 36, 50], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [17, 18, 20, 22, 36, 50, 51, 56], "summary": {"covered_lines": 8, "num_statements": 12, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [52, 53, 54, 55], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/__version__.py": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/ai/__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/ai/google_ai_adapter.py": {"executed_lines": [3, 4, 5, 7, 10, 17, 33, 34, 35, 39, 40, 43, 44, 46, 47, 54, 68, 82, 113, 135, 143, 144, 150], "summary": {"covered_lines": 23, "num_statements": 45, "percent_covered": 51.111111111111114, "percent_covered_display": "51", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 51.111111111111114, "percent_statements_covered_display": "51"}, "missing_lines": [48, 49, 66, 80, 97, 98, 103, 104, 106, 107, 109, 110, 111, 123, 124, 126, 127, 128, 130, 132, 133, 141], "excluded_lines": [], "functions": {"GoogleAIAdapter.__init__": {"executed_lines": [33, 34, 35, 39, 40, 43, 44, 46, 47], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 81.81818181818181, "percent_statements_covered_display": "82"}, "missing_lines": [48, 49], "excluded_lines": [], "start_line": 17}, "GoogleAIAdapter.analyze_postgresql": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [66], "excluded_lines": [], "start_line": 54}, "GoogleAIAdapter.analyze_mongodb": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [80], "excluded_lines": [], "start_line": 68}, "GoogleAIAdapter._send_prompt": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [97, 98, 103, 104, 106, 107, 109, 110, 111], "excluded_lines": [], "start_line": 82}, "GoogleAIAdapter._stream_response": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [123, 124, 126, 127, 128, 130, 132, 133], "excluded_lines": [], "start_line": 113}, "GoogleAIAdapter.is_available": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [141], "excluded_lines": [], "start_line": 135}, "GoogleAIAdapter.get_available_models": {"executed_lines": [150], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 144}, "": {"executed_lines": [3, 4, 5, 7, 10, 17, 54, 68, 82, 113, 135, 143, 144], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"GoogleAIAdapter": {"executed_lines": [33, 34, 35, 39, 40, 43, 44, 46, 47, 150], "summary": {"covered_lines": 10, "num_statements": 32, "percent_covered": 31.25, "percent_covered_display": "31", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 31.25, "percent_statements_covered_display": "31"}, "missing_lines": [48, 49, 66, 80, 97, 98, 103, 104, 106, 107, 109, 110, 111, 123, 124, 126, 127, 128, 130, 132, 133, 141], "excluded_lines": [], "start_line": 10}, "": {"executed_lines": [3, 4, 5, 7, 10, 17, 54, 68, 82, 113, 135, 143, 144], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/ai/prompts.py": {"executed_lines": [4, 7, 16, 17, 40, 67, 69, 70, 72, 73, 74, 83, 84, 86, 87, 88, 89, 90, 92, 93, 95, 96, 97, 101, 103, 104, 106, 107, 108, 117, 120, 132, 133, 154, 181, 183, 184, 186, 187, 188, 194, 195, 197, 198, 199, 205, 206, 208, 209, 210, 211, 219, 220, 222, 229, 232, 233, 235, 236, 245, 246, 247, 248, 250], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"PostgreSQLPromptBuilder.build_prompt": {"executed_lines": [40, 67], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 17}, "PostgreSQLPromptBuilder._format_slow_queries": {"executed_lines": [72, 73, 74], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 70}, "PostgreSQLPromptBuilder._format_locks": {"executed_lines": [86, 87, 88, 89, 90], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 84}, "PostgreSQLPromptBuilder._format_cache": {"executed_lines": [95, 96, 97, 101], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 93}, "PostgreSQLPromptBuilder._format_tables": {"executed_lines": [106, 107, 108], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 104}, "MongoDBPromptBuilder.build_prompt": {"executed_lines": [154, 181], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 133}, "MongoDBPromptBuilder._format_profiler": {"executed_lines": [186, 187, 188], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 184}, "MongoDBPromptBuilder._format_indexes": {"executed_lines": [197, 198, 199], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 195}, "MongoDBPromptBuilder._format_slow_ops": {"executed_lines": [208, 209, 210, 211], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 206}, "MongoDBPromptBuilder._format_resources": {"executed_lines": [222], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 220}, "AIPromptDefaults.get_system_instruction": {"executed_lines": [245, 246, 247, 248, 250], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 236}, "": {"executed_lines": [4, 7, 16, 17, 69, 70, 83, 84, 92, 93, 103, 104, 117, 120, 132, 133, 183, 184, 194, 195, 205, 206, 219, 220, 229, 232, 233, 235, 236], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PostgreSQLPromptBuilder": {"executed_lines": [40, 67, 72, 73, 74, 86, 87, 88, 89, 90, 95, 96, 97, 101, 106, 107, 108], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 4}, "MongoDBPromptBuilder": {"executed_lines": [154, 181, 186, 187, 188, 197, 198, 199, 208, 209, 210, 211, 222], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 117}, "AIPromptDefaults": {"executed_lines": [245, 246, 247, 248, 250], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 229}, "": {"executed_lines": [4, 7, 16, 17, 69, 70, 83, 84, 92, 93, 103, 104, 117, 120, 132, 133, 183, 184, 194, 195, 205, 206, 219, 220, 229, 232, 233, 235, 236], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/analyzer.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 19, 20, 22, 26, 30, 34, 38, 43, 46, 56, 58, 60, 62, 64, 65, 71, 72, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 96, 97, 100, 103, 104, 105, 106, 109, 112, 113, 114, 115, 116, 117, 120, 123, 124, 125, 126, 127, 130, 132, 146, 149, 153, 156, 158, 159, 160, 162, 170, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 187, 188, 191, 196, 197, 204, 209, 216, 222, 244, 246, 251, 252, 255, 256, 259, 260, 261, 262, 263, 265, 268, 269, 272, 275, 277, 288, 289, 291, 302, 303, 304, 305, 331, 350, 353, 365, 368, 369, 374, 377, 378, 379, 383, 384, 387, 388, 390, 391, 393, 394, 395, 399, 402, 403, 404, 406, 409, 416, 417, 419, 422, 424, 427, 429, 430, 432, 433, 435, 437], "summary": {"covered_lines": 154, "num_statements": 175, "percent_covered": 88.0, "percent_covered_display": "88", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 88.0, "percent_statements_covered_display": "88"}, "missing_lines": [66, 67, 68, 147, 154, 253, 257, 266, 278, 332, 372, 375, 380, 381, 385, 396, 397, 400, 407, 420, 425], "excluded_lines": [], "functions": {"normalize_query": {"executed_lines": [56, 58, 60, 62, 64, 65], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [66, 67, 68], "excluded_lines": [], "start_line": 46}, "SlowQueryAnalyzer.__init__": {"executed_lines": [124, 125, 126, 127, 130], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 123}, "SlowQueryAnalyzer.analyze_slow_queries": {"executed_lines": [146, 149, 153, 156, 158, 159, 160, 162, 170, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 187, 188, 191, 196, 197, 204, 209, 216, 222, 244, 246], "summary": {"covered_lines": 32, "num_statements": 34, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [147, 154], "excluded_lines": [], "start_line": 132}, "_compute_percentile": {"executed_lines": [252, 255, 256, 259, 260, 261, 262, 263, 265, 268, 269], "summary": {"covered_lines": 11, "num_statements": 14, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 78.57142857142857, "percent_statements_covered_display": "79"}, "missing_lines": [253, 257, 266], "excluded_lines": [], "start_line": 251}, "_build_summary": {"executed_lines": [275, 277, 288, 289, 291], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [278], "excluded_lines": [], "start_line": 272}, "_build_dataframe": {"executed_lines": [303, 304, 305, 331, 350], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [332], "excluded_lines": [], "start_line": 302}, "run_slow_query_analysis": {"executed_lines": [365, 368, 369, 374, 377, 378, 379, 383, 384, 387, 388, 390, 391, 393, 394, 395, 399, 402, 403, 404, 406, 409, 416, 417, 419, 422, 424, 427, 429, 430, 432, 433, 435, 437], "summary": {"covered_lines": 34, "num_statements": 45, "percent_covered": 75.55555555555556, "percent_covered_display": "76", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 75.55555555555556, "percent_statements_covered_display": "76"}, "missing_lines": [372, 375, 380, 381, 385, 396, 397, 400, 407, 420, 425], "excluded_lines": [], "start_line": 353}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 19, 20, 22, 26, 30, 34, 38, 43, 46, 71, 72, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 96, 97, 100, 103, 104, 105, 106, 109, 112, 113, 114, 115, 116, 117, 120, 123, 132, 251, 272, 302, 353], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SlowQuery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 72}, "QueryRecord": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 100}, "NormalizedQueryRecord": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "SlowQueryAnalyzer": {"executed_lines": [124, 125, 126, 127, 130, 146, 149, 153, 156, 158, 159, 160, 162, 170, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 187, 188, 191, 196, 197, 204, 209, 216, 222, 244, 246], "summary": {"covered_lines": 37, "num_statements": 39, "percent_covered": 94.87179487179488, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 94.87179487179488, "percent_statements_covered_display": "95"}, "missing_lines": [147, 154], "excluded_lines": [], "start_line": 120}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 19, 20, 22, 26, 30, 34, 38, 43, 46, 56, 58, 60, 62, 64, 65, 71, 72, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 93, 96, 97, 100, 103, 104, 105, 106, 109, 112, 113, 114, 115, 116, 117, 120, 123, 132, 251, 252, 255, 256, 259, 260, 261, 262, 263, 265, 268, 269, 272, 275, 277, 288, 289, 291, 302, 303, 304, 305, 331, 350, 353, 365, 368, 369, 374, 377, 378, 379, 383, 384, 387, 388, 390, 391, 393, 394, 395, 399, 402, 403, 404, 406, 409, 416, 417, 419, 422, 424, 427, 429, 430, 432, 433, 435, 437], "summary": {"covered_lines": 117, "num_statements": 136, "percent_covered": 86.02941176470588, "percent_covered_display": "86", "missing_lines": 19, "excluded_lines": 0, "percent_statements_covered": 86.02941176470588, "percent_statements_covered_display": "86"}, "missing_lines": [66, 67, 68, 253, 257, 266, 278, 332, 372, 375, 380, 381, 385, 396, 397, 400, 407, 420, 425], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/antipatterns.py": {"executed_lines": [8, 9, 10, 11, 14, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41, 43, 45, 100, 110, 112, 113, 115, 116, 126, 128, 130, 134, 137, 139, 140, 141, 145, 147, 150, 153, 155, 168, 169, 191, 194, 195, 197, 207, 208, 210, 212, 222, 223], "summary": {"covered_lines": 55, "num_statements": 76, "percent_covered": 72.36842105263158, "percent_covered_display": "72", "missing_lines": 21, "excluded_lines": 0, "percent_statements_covered": 72.36842105263158, "percent_statements_covered_display": "72"}, "missing_lines": [142, 143, 151, 171, 173, 174, 178, 179, 180, 182, 183, 185, 186, 188, 226, 234, 235, 236, 237, 238, 241], "excluded_lines": [], "functions": {"AntiPatternDetector.__init__": {"executed_lines": [41], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 40}, "AntiPatternDetector._initialize_patterns": {"executed_lines": [45], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "AntiPatternDetector.detect_antipatterns": {"executed_lines": [110, 112, 113, 115, 116, 126, 128], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 100}, "AntiPatternDetector._calculate_confidence": {"executed_lines": [134, 137, 139, 140, 141, 145, 147, 150, 153], "summary": {"covered_lines": 9, "num_statements": 12, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [142, 143, 151], "excluded_lines": [], "start_line": 130}, "AntiPatternDetector.generate_rewrite_report": {"executed_lines": [168, 169], "summary": {"covered_lines": 2, "num_statements": 13, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 15.384615384615385, "percent_statements_covered_display": "15"}, "missing_lines": [171, 173, 174, 178, 179, 180, 182, 183, 185, 186, 188], "excluded_lines": [], "start_line": 155}, "StaticQueryRewriter.__init__": {"executed_lines": [195], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 194}, "StaticQueryRewriter.analyze_query": {"executed_lines": [207, 208, 210], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 197}, "StaticQueryRewriter.get_optimization_score": {"executed_lines": [222, 223], "summary": {"covered_lines": 2, "num_statements": 9, "percent_covered": 22.22222222222222, "percent_covered_display": "22", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 22.22222222222222, "percent_statements_covered_display": "22"}, "missing_lines": [226, 234, 235, 236, 237, 238, 241], "excluded_lines": [], "start_line": 212}, "": {"executed_lines": [8, 9, 10, 11, 14, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 40, 43, 100, 130, 155, 191, 194, 197, 212], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AntiPatternType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 14}, "AntiPatternMatch": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "AntiPatternDetector": {"executed_lines": [41, 45, 110, 112, 113, 115, 116, 126, 128, 134, 137, 139, 140, 141, 145, 147, 150, 153, 168, 169], "summary": {"covered_lines": 20, "num_statements": 34, "percent_covered": 58.8235294117647, "percent_covered_display": "59", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 58.8235294117647, "percent_statements_covered_display": "59"}, "missing_lines": [142, 143, 151, 171, 173, 174, 178, 179, 180, 182, 183, 185, 186, 188], "excluded_lines": [], "start_line": 37}, "StaticQueryRewriter": {"executed_lines": [195, 207, 208, 210, 222, 223], "summary": {"covered_lines": 6, "num_statements": 13, "percent_covered": 46.15384615384615, "percent_covered_display": "46", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 46.15384615384615, "percent_statements_covered_display": "46"}, "missing_lines": [226, 234, 235, 236, 237, 238, 241], "excluded_lines": [], "start_line": 191}, "": {"executed_lines": [8, 9, 10, 11, 14, 17, 18, 19, 20, 21, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 40, 43, 100, 130, 155, 191, 194, 197, 212], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/cli/__init__.py": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 6], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/cli/main.py": {"executed_lines": [3, 5, 7, 10, 11, 14, 20, 21, 22, 32, 33, 36], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 2, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [28, 38], "excluded_lines": [41, 42], "functions": {"cli": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [28], "excluded_lines": [], "start_line": 22}, "main": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [38], "excluded_lines": [], "start_line": 36}, "": {"executed_lines": [3, 5, 7, 10, 11, 14, 20, 21, 22, 32, 33, 36], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [41, 42], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 7, 10, 11, 14, 20, 21, 22, 32, 33, 36], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 2, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [28, 38], "excluded_lines": [41, 42], "start_line": 1}}}, "iqtoolkit_analyzer/cli/mongodb_commands.py": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 12, 13, 16, 17, 19, 24, 27, 28, 30, 33, 34, 40, 46, 51, 57, 62, 70, 75, 98, 101, 103, 105, 107, 108, 129, 130, 135, 136, 137, 140, 141, 142, 144, 145, 148, 149, 150, 153, 154, 157, 158, 159, 160, 161, 162, 167, 168, 169, 172, 173, 183, 184, 186, 188, 190, 192, 199, 200, 206, 212, 218, 224], "summary": {"covered_lines": 69, "num_statements": 108, "percent_covered": 63.888888888888886, "percent_covered_display": "64", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 63.888888888888886, "percent_statements_covered_display": "64"}, "missing_lines": [20, 21, 22, 99, 109, 110, 114, 115, 117, 118, 119, 120, 121, 122, 126, 193, 194, 195, 196, 238, 239, 241, 243, 244, 245, 247, 248, 249, 252, 254, 255, 256, 261, 265, 267, 268, 269, 270, 271], "excluded_lines": [], "functions": {"mongodb_group": {"executed_lines": [30], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "analyze_database": {"executed_lines": [98, 101, 103, 105, 107, 108, 129, 130, 135, 136, 137, 140, 141, 142, 144, 145, 148, 149, 150, 153, 154, 157, 158, 159, 160, 161, 162, 167, 168, 169, 172, 173, 183, 184, 186, 188, 190, 192], "summary": {"covered_lines": 38, "num_statements": 54, "percent_covered": 70.37037037037037, "percent_covered_display": "70", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 70.37037037037037, "percent_statements_covered_display": "70"}, "missing_lines": [99, 109, 110, 114, 115, 117, 118, 119, 120, 121, 122, 126, 193, 194, 195, 196], "excluded_lines": [], "start_line": 75}, "manage_profiling": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [238, 239, 241, 243, 244, 245, 247, 248, 249, 252, 254, 255, 256, 261, 265, 267, 268, 269, 270, 271], "excluded_lines": [], "start_line": 224}, "": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 12, 13, 16, 17, 19, 24, 27, 28, 33, 34, 40, 46, 51, 57, 62, 70, 75, 199, 200, 206, 212, 218, 224], "summary": {"covered_lines": 30, "num_statements": 33, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [20, 21, 22], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 5, 6, 7, 8, 10, 12, 13, 16, 17, 19, 24, 27, 28, 30, 33, 34, 40, 46, 51, 57, 62, 70, 75, 98, 101, 103, 105, 107, 108, 129, 130, 135, 136, 137, 140, 141, 142, 144, 145, 148, 149, 150, 153, 154, 157, 158, 159, 160, 161, 162, 167, 168, 169, 172, 173, 183, 184, 186, 188, 190, 192, 199, 200, 206, 212, 218, 224], "summary": {"covered_lines": 69, "num_statements": 108, "percent_covered": 63.888888888888886, "percent_covered_display": "64", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 63.888888888888886, "percent_statements_covered_display": "64"}, "missing_lines": [20, 21, 22, 99, 109, 110, 114, 115, 117, 118, 119, 120, 121, 122, 126, 193, 194, 195, 196, 238, 239, 241, 243, 244, 245, 247, 248, 249, 252, 254, 255, 256, 261, 265, 267, 268, 269, 270, 271], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/cli/pg_commands.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 17, 18, 20, 25, 28, 29, 31, 34, 35, 41, 46, 52, 57, 65, 70, 92, 95, 97, 99, 101, 102, 123, 124, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153, 154, 155, 156, 159, 160, 161, 162, 163, 164, 165, 166, 167, 172, 173, 174, 175, 176, 179, 196, 197, 230, 231, 232, 234, 236, 237, 238, 242, 245, 246, 252, 258, 264, 278, 281, 283, 285, 286, 289, 290, 291, 294, 295, 297, 298, 299, 300, 301, 302, 303, 304, 315, 316, 322, 328, 334, 346, 348, 350, 351, 352, 354, 358, 362, 364, 365, 366, 367, 368, 370, 371, 372, 373, 380, 381, 387, 393, 402, 404, 406, 407, 408, 411, 413, 417, 419, 420, 421, 422, 423, 424, 431, 432, 438], "summary": {"covered_lines": 145, "num_statements": 220, "percent_covered": 65.9090909090909, "percent_covered_display": "66", "missing_lines": 75, "excluded_lines": 2, "percent_statements_covered": 65.9090909090909, "percent_statements_covered_display": "66"}, "missing_lines": [21, 22, 23, 93, 103, 104, 108, 109, 111, 112, 113, 114, 115, 116, 120, 180, 181, 182, 183, 184, 187, 188, 190, 191, 192, 193, 239, 241, 279, 306, 307, 308, 309, 311, 312, 359, 360, 375, 376, 377, 414, 415, 426, 427, 428, 447, 449, 451, 452, 453, 456, 457, 460, 461, 462, 463, 464, 465, 467, 468, 470, 472, 473, 474, 475, 477, 478, 479, 481, 482, 483, 484, 486, 487, 488], "excluded_lines": [491, 492], "functions": {"postgresql_group": {"executed_lines": [31], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 29}, "analyze_database": {"executed_lines": [92, 95, 97, 99, 101, 102, 123, 124, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153, 154, 155, 156, 159, 160, 161, 162, 163, 164, 165, 166, 167, 172, 173, 174, 175, 176, 179, 196, 197, 230, 231, 232, 234, 236, 237, 238, 242], "summary": {"covered_lines": 57, "num_statements": 82, "percent_covered": 69.51219512195122, "percent_covered_display": "70", "missing_lines": 25, "excluded_lines": 0, "percent_statements_covered": 69.51219512195122, "percent_statements_covered_display": "70"}, "missing_lines": [93, 103, 104, 108, 109, 111, 112, 113, 114, 115, 116, 120, 180, 181, 182, 183, 184, 187, 188, 190, 191, 192, 193, 239, 241], "excluded_lines": [], "start_line": 70}, "generate_settings_report": {"executed_lines": [278, 281, 283, 285, 286, 289, 290, 291, 294, 295, 297, 298, 299, 300, 301, 302, 303, 304], "summary": {"covered_lines": 18, "num_statements": 25, "percent_covered": 72.0, "percent_covered_display": "72", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 72.0, "percent_statements_covered_display": "72"}, "missing_lines": [279, 306, 307, 308, 309, 311, 312], "excluded_lines": [], "start_line": 264}, "analyze_slow_queries": {"executed_lines": [346, 348, 350, 351, 352, 354, 358, 362, 364, 365, 366, 367, 368, 370, 371, 372, 373], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 77.27272727272727, "percent_statements_covered_display": "77"}, "missing_lines": [359, 360, 375, 376, 377], "excluded_lines": [], "start_line": 334}, "detect_table_bloat": {"executed_lines": [402, 404, 406, 407, 408, 411, 413, 417, 419, 420, 421, 422, 423, 424], "summary": {"covered_lines": 14, "num_statements": 19, "percent_covered": 73.6842105263158, "percent_covered_display": "74", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 73.6842105263158, "percent_statements_covered_display": "74"}, "missing_lines": [414, 415, 426, 427, 428], "excluded_lines": [], "start_line": 393}, "health_check": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [447, 449, 451, 452, 453, 456, 457, 460, 461, 462, 463, 464, 465, 467, 468, 470, 472, 473, 474, 475, 477, 478, 479, 481, 482, 483, 484, 486, 487, 488], "excluded_lines": [], "start_line": 438}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 17, 18, 20, 25, 28, 29, 34, 35, 41, 46, 52, 57, 65, 70, 245, 246, 252, 258, 264, 315, 316, 322, 328, 334, 380, 381, 387, 393, 431, 432, 438], "summary": {"covered_lines": 38, "num_statements": 41, "percent_covered": 92.6829268292683, "percent_covered_display": "93", "missing_lines": 3, "excluded_lines": 2, "percent_statements_covered": 92.6829268292683, "percent_statements_covered_display": "93"}, "missing_lines": [21, 22, 23], "excluded_lines": [491, 492], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 17, 18, 20, 25, 28, 29, 31, 34, 35, 41, 46, 52, 57, 65, 70, 92, 95, 97, 99, 101, 102, 123, 124, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 153, 154, 155, 156, 159, 160, 161, 162, 163, 164, 165, 166, 167, 172, 173, 174, 175, 176, 179, 196, 197, 230, 231, 232, 234, 236, 237, 238, 242, 245, 246, 252, 258, 264, 278, 281, 283, 285, 286, 289, 290, 291, 294, 295, 297, 298, 299, 300, 301, 302, 303, 304, 315, 316, 322, 328, 334, 346, 348, 350, 351, 352, 354, 358, 362, 364, 365, 366, 367, 368, 370, 371, 372, 373, 380, 381, 387, 393, 402, 404, 406, 407, 408, 411, 413, 417, 419, 420, 421, 422, 423, 424, 431, 432, 438], "summary": {"covered_lines": 145, "num_statements": 220, "percent_covered": 65.9090909090909, "percent_covered_display": "66", "missing_lines": 75, "excluded_lines": 2, "percent_statements_covered": 65.9090909090909, "percent_statements_covered_display": "66"}, "missing_lines": [21, 22, 23, 93, 103, 104, 108, 109, 111, 112, 113, 114, 115, 116, 120, 180, 181, 182, 183, 184, 187, 188, 190, 191, 192, 193, 239, 241, 279, 306, 307, 308, 309, 311, 312, 359, 360, 375, 376, 377, 414, 415, 426, 427, 428, 447, 449, 451, 452, 453, 456, 457, 460, 461, 462, 463, 464, 465, 467, 468, 470, 472, 473, 474, 475, 477, 478, 479, 481, 482, 483, 484, 486, 487, 488], "excluded_lines": [491, 492], "start_line": 1}}}, "iqtoolkit_analyzer/config.py": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 13, 16, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 41, 42, 47, 50, 53, 54, 55, 56, 57, 58, 61, 64, 65, 68, 69, 72, 73, 78, 79, 80, 81, 84, 85, 86, 87, 88, 89, 90, 91, 93, 94, 96, 97, 98, 99, 101, 103, 105, 107, 109, 111, 113, 117], "summary": {"covered_lines": 66, "num_statements": 69, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 95.65217391304348, "percent_statements_covered_display": "96"}, "missing_lines": [14, 115, 119], "excluded_lines": [], "functions": {"substitute_env_vars": {"executed_lines": [13, 16, 19], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [14], "excluded_lines": [], "start_line": 11}, "substitute_env_vars.replace": {"executed_lines": [17], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "DatabaseConfig.__init__": {"executed_lines": [26, 27, 28, 29, 30, 31, 32], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "DatabaseConfig.get_connection_string": {"executed_lines": [36, 37, 41, 42, 47], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "LLMProviderConfig.__init__": {"executed_lines": [54, 55, 56, 57, 58], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 53}, "IQToolkitConfig.__init__": {"executed_lines": [65, 68, 69, 72, 73, 78, 79, 80, 81, 84, 85, 86, 87, 88, 89, 90, 91], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 64}, "IQToolkitConfig.load": {"executed_lines": [96, 97, 98, 99, 101, 103], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 94}, "IQToolkitConfig.get_database": {"executed_lines": [107], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 105}, "IQToolkitConfig.get_provider": {"executed_lines": [111], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "IQToolkitConfig.list_databases": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [115], "excluded_lines": [], "start_line": 113}, "IQToolkitConfig.list_providers": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [119], "excluded_lines": [], "start_line": 117}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 22, 25, 34, 50, 53, 61, 64, 93, 94, 105, 109, 113, 117], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"DatabaseConfig": {"executed_lines": [26, 27, 28, 29, 30, 31, 32, 36, 37, 41, 42, 47], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 22}, "LLMProviderConfig": {"executed_lines": [54, 55, 56, 57, 58], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 50}, "IQToolkitConfig": {"executed_lines": [65, 68, 69, 72, 73, 78, 79, 80, 81, 84, 85, 86, 87, 88, 89, 90, 91, 96, 97, 98, 99, 101, 103, 107, 111], "summary": {"covered_lines": 25, "num_statements": 27, "percent_covered": 92.5925925925926, "percent_covered_display": "93", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 92.5925925925926, "percent_statements_covered_display": "93"}, "missing_lines": [115, 119], "excluded_lines": [], "start_line": 61}, "": {"executed_lines": [1, 2, 3, 4, 6, 8, 11, 13, 16, 17, 19, 22, 25, 34, 50, 53, 61, 64, 93, 94, 105, 109, 113, 117], "summary": {"covered_lines": 24, "num_statements": 25, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 96.0, "percent_statements_covered_display": "96"}, "missing_lines": [14], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/explain_antipatterns.py": {"executed_lines": [1, 2, 3, 5, 6, 9, 10, 11, 12, 15, 16, 19, 20, 21, 24, 27, 40, 42, 43, 54, 58, 73, 85, 87, 89, 92, 100, 105], "summary": {"covered_lines": 28, "num_statements": 35, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 80.0, "percent_statements_covered_display": "80"}, "missing_lines": [74, 90, 97, 98, 101, 102, 103], "excluded_lines": [], "functions": {"AntiPatternDetector.detect": {"executed_lines": [40, 42, 43, 54, 58, 73, 85], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [74], "excluded_lines": [], "start_line": 27}, "AntiPatternDetector._has_inefficient_filter": {"executed_lines": [89, 92, 100, 105], "summary": {"covered_lines": 4, "num_statements": 10, "percent_covered": 40.0, "percent_covered_display": "40", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 40.0, "percent_statements_covered_display": "40"}, "missing_lines": [90, 97, 98, 101, 102, 103], "excluded_lines": [], "start_line": 87}, "": {"executed_lines": [1, 2, 3, 5, 6, 9, 10, 11, 12, 15, 16, 19, 20, 21, 24, 27, 87], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"AntiPatternType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 9}, "ExplainAntiPattern": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "AntiPatternDetector": {"executed_lines": [40, 42, 43, 54, 58, 73, 85, 89, 92, 100, 105], "summary": {"covered_lines": 11, "num_statements": 18, "percent_covered": 61.111111111111114, "percent_covered_display": "61", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 61.111111111111114, "percent_statements_covered_display": "61"}, "missing_lines": [74, 90, 97, 98, 101, 102, 103], "excluded_lines": [], "start_line": 24}, "": {"executed_lines": [1, 2, 3, 5, 6, 9, 10, 11, 12, 15, 16, 19, 20, 21, 24, 27, 87], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/explain_metrics.py": {"executed_lines": [1, 2, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 25, 35, 36, 37, 39, 40, 46, 48, 50, 52, 55, 58, 59, 60, 64, 65, 68, 73, 75, 76, 77], "summary": {"covered_lines": 36, "num_statements": 37, "percent_covered": 97.29729729729729, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 97.29729729729729, "percent_statements_covered_display": "97"}, "missing_lines": [53], "excluded_lines": [], "functions": {"MetricsExtractor.extract": {"executed_lines": [35, 36, 37, 39, 40, 46, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "MetricsExtractor._traverse_plan": {"executed_lines": [52, 55, 58, 59, 60, 64, 65, 68, 73, 75, 76, 77], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [53], "excluded_lines": [], "start_line": 50}, "": {"executed_lines": [1, 2, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 25, 50], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ExplainMetrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 8}, "MetricsExtractor": {"executed_lines": [35, 36, 37, 39, 40, 46, 48, 52, 55, 58, 59, 60, 64, 65, 68, 73, 75, 76, 77], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.0, "percent_statements_covered_display": "95"}, "missing_lines": [53], "excluded_lines": [], "start_line": 22}, "": {"executed_lines": [1, 2, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 25, 50], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/explain_parser.py": {"executed_lines": [1, 2, 3, 5, 7, 10, 13, 14, 15, 18, 21, 22, 23, 24, 25, 28, 31, 32, 33, 36, 39, 40, 41, 42, 45, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 68, 69, 70, 71, 72, 75, 78, 88, 89, 91, 92, 93, 94, 96, 97, 98, 99], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"ExplainParser.parse": {"executed_lines": [88, 89, 91, 92, 93, 94, 96, 97, 98, 99], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 78}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 13, 14, 15, 18, 21, 22, 23, 24, 25, 28, 31, 32, 33, 36, 39, 40, 41, 42, 45, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 68, 69, 70, 71, 72, 75, 78], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"JITOptions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 10}, "JITTiming": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "JITInfo": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "Trigger": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "ExplainPlan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "ExplainResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 65}, "ExplainParser": {"executed_lines": [88, 89, 91, 92, 93, 94, 96, 97, 98, 99], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 75}, "": {"executed_lines": [1, 2, 3, 5, 7, 10, 13, 14, 15, 18, 21, 22, 23, 24, 25, 28, 31, 32, 33, 36, 39, 40, 41, 42, 45, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 68, 69, 70, 71, 72, 75, 78], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/explain_recommender.py": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 13, 14, 17, 20, 33, 34, 35, 38, 39, 40, 50, 52, 59, 62, 66, 67, 68, 70, 71, 72, 73, 74], "summary": {"covered_lines": 29, "num_statements": 31, "percent_covered": 93.54838709677419, "percent_covered_display": "94", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 93.54838709677419, "percent_statements_covered_display": "94"}, "missing_lines": [60, 76], "excluded_lines": [], "functions": {"IndexRecommender.recommend": {"executed_lines": [33, 34, 35, 38, 39, 40, 50], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 20}, "IndexRecommender._find_table_and_columns_for_seq_scan": {"executed_lines": [59, 62, 66, 67, 68, 70, 71, 72, 73, 74], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [60, 76], "excluded_lines": [], "start_line": 52}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 13, 14, 17, 20, 52], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"IndexRecommendation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 9}, "IndexRecommender": {"executed_lines": [33, 34, 35, 38, 39, 40, 50, 59, 62, 66, 67, 68, 70, 71, 72, 73, 74], "summary": {"covered_lines": 17, "num_statements": 19, "percent_covered": 89.47368421052632, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 89.47368421052632, "percent_statements_covered_display": "89"}, "missing_lines": [60, 76], "excluded_lines": [], "start_line": 17}, "": {"executed_lines": [1, 2, 4, 5, 8, 9, 12, 13, 14, 17, 20, 52], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/llm_client.py": {"executed_lines": [1, 2, 3, 4, 6, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 41, 44, 45, 48, 49, 54, 57, 58, 61, 62, 65, 66, 67, 68, 71, 72, 75, 76, 77, 78, 81, 82, 83, 86, 93, 94, 95, 96, 97, 99, 100, 101, 104, 105, 110, 111, 112, 114, 115, 116, 119, 120, 121, 122, 136, 137, 139, 140, 141, 145, 150, 156, 157, 158, 159, 161, 162, 163, 164, 167, 171, 172, 173, 174, 176, 177, 178, 183, 184, 185, 188, 189, 194, 195, 196, 198, 199, 200, 203, 204, 205, 210, 215, 221, 222, 227, 232, 244, 245, 253, 257, 258, 271, 272, 273, 275, 276, 277, 281, 282, 285, 287, 288, 295, 296, 297, 298, 299, 300, 301, 302, 306, 307, 312, 314, 316, 317, 324, 325, 329, 331, 332, 334, 342, 343, 344, 345, 349, 351, 352, 358, 359, 363, 365, 366, 379, 380, 381, 385, 386, 387, 389, 400, 405, 408, 411, 413, 414, 424, 425, 426, 427, 429, 431, 445, 466, 468, 481, 483, 484, 486, 494, 496, 500, 503], "summary": {"covered_lines": 192, "num_statements": 218, "percent_covered": 88.07339449541284, "percent_covered_display": "88", "missing_lines": 26, "excluded_lines": 5, "percent_statements_covered": 88.07339449541284, "percent_statements_covered_display": "88"}, "missing_lines": [7, 8, 9, 10, 11, 34, 35, 38, 39, 106, 151, 190, 206, 211, 291, 292, 293, 294, 303, 304, 406, 409, 415, 512, 513, 515], "excluded_lines": [126, 129, 135, 383, 384], "functions": {"LLMClient.__init__": {"executed_lines": [94, 95, 96, 97, 99, 100, 101, 104, 105, 110, 111, 112, 114, 115, 116, 119, 120, 121, 122, 136, 137, 139, 140, 141, 145, 150, 156, 157, 158, 159, 161, 162, 163, 164, 167, 171, 172, 173, 174, 176, 177, 178, 183, 184, 185, 188, 189, 194, 195, 196, 198, 199, 200, 203, 204, 205, 210, 215, 221, 222, 227], "summary": {"covered_lines": 61, "num_statements": 66, "percent_covered": 92.42424242424242, "percent_covered_display": "92", "missing_lines": 5, "excluded_lines": 3, "percent_statements_covered": 92.42424242424242, "percent_statements_covered_display": "92"}, "missing_lines": [106, 151, 190, 206, 211], "excluded_lines": [126, 129, 135], "start_line": 93}, "LLMClient.generate_recommendations": {"executed_lines": [244, 245, 253, 257, 258, 271, 272, 273, 275, 276, 277, 281, 282, 285, 287, 288, 295, 296, 297, 298, 299, 300, 301, 302, 306, 307, 312, 314, 316, 317, 324, 325, 329, 331, 332, 334, 342, 343, 344, 345, 349, 351, 352, 358, 359, 363, 365, 366, 379, 380, 381, 385, 386, 387], "summary": {"covered_lines": 54, "num_statements": 60, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 6, "excluded_lines": 2, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [291, 292, 293, 294, 303, 304], "excluded_lines": [383, 384], "start_line": 232}, "LLMClient._build_prompt": {"executed_lines": [400, 405, 408, 411, 413, 414, 424, 425, 426, 427, 429, 431, 445, 466], "summary": {"covered_lines": 14, "num_statements": 17, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 82.3529411764706, "percent_statements_covered_display": "82"}, "missing_lines": [406, 409, 415], "excluded_lines": [], "start_line": 389}, "LLMClient.batch_generate_recommendations": {"executed_lines": [481, 483, 484, 486, 494, 496], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 468}, "generate_recommendations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [512, 513, 515], "excluded_lines": [], "start_line": 503}, "": {"executed_lines": [1, 2, 3, 4, 6, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 41, 44, 45, 48, 49, 54, 57, 58, 61, 62, 65, 66, 67, 68, 71, 72, 75, 76, 77, 78, 81, 82, 83, 86, 93, 232, 389, 468, 500, 503], "summary": {"covered_lines": 57, "num_statements": 66, "percent_covered": 86.36363636363636, "percent_covered_display": "86", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 86.36363636363636, "percent_statements_covered_display": "86"}, "missing_lines": [7, 8, 9, 10, 11, 34, 35, 38, 39], "excluded_lines": [], "start_line": 1}}, "classes": {"LLMConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 45}, "LLMClient": {"executed_lines": [94, 95, 96, 97, 99, 100, 101, 104, 105, 110, 111, 112, 114, 115, 116, 119, 120, 121, 122, 136, 137, 139, 140, 141, 145, 150, 156, 157, 158, 159, 161, 162, 163, 164, 167, 171, 172, 173, 174, 176, 177, 178, 183, 184, 185, 188, 189, 194, 195, 196, 198, 199, 200, 203, 204, 205, 210, 215, 221, 222, 227, 244, 245, 253, 257, 258, 271, 272, 273, 275, 276, 277, 281, 282, 285, 287, 288, 295, 296, 297, 298, 299, 300, 301, 302, 306, 307, 312, 314, 316, 317, 324, 325, 329, 331, 332, 334, 342, 343, 344, 345, 349, 351, 352, 358, 359, 363, 365, 366, 379, 380, 381, 385, 386, 387, 400, 405, 408, 411, 413, 414, 424, 425, 426, 427, 429, 431, 445, 466, 481, 483, 484, 486, 494, 496], "summary": {"covered_lines": 135, "num_statements": 149, "percent_covered": 90.60402684563758, "percent_covered_display": "91", "missing_lines": 14, "excluded_lines": 5, "percent_statements_covered": 90.60402684563758, "percent_statements_covered_display": "91"}, "missing_lines": [106, 151, 190, 206, 211, 291, 292, 293, 294, 303, 304, 406, 409, 415], "excluded_lines": [126, 129, 135, 383, 384], "start_line": 86}, "": {"executed_lines": [1, 2, 3, 4, 6, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 41, 44, 45, 48, 49, 54, 57, 58, 61, 62, 65, 66, 67, 68, 71, 72, 75, 76, 77, 78, 81, 82, 83, 86, 93, 232, 389, 468, 500, 503], "summary": {"covered_lines": 57, "num_statements": 69, "percent_covered": 82.6086956521739, "percent_covered_display": "83", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 82.6086956521739, "percent_statements_covered_display": "83"}, "missing_lines": [7, 8, 9, 10, 11, 34, 35, 38, 39, 512, 513, 515], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/main.py": {"executed_lines": [5, 6, 7, 8, 9, 12, 13, 15, 19, 21, 24, 26, 27, 28, 29, 36, 38, 39, 43, 45, 50, 52, 53, 54, 55, 57, 58, 69, 70, 71, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 86, 93, 97, 98, 99, 103, 104, 105, 106, 107, 109, 117, 119, 120, 124, 126, 127, 128, 131, 132, 133, 134, 135, 138, 139, 140, 144, 145, 148, 149, 151, 152, 153, 164, 167, 168, 173, 174, 175, 177, 178, 179, 181, 184, 185, 186, 189, 191, 192, 196, 198, 200, 203, 204, 207, 212, 213, 214, 215, 216, 219, 222, 224, 226, 227, 230, 231, 234, 239, 244, 245, 246, 249, 250, 251, 252, 253, 255, 258, 262, 267, 270, 271, 272, 273, 274, 275, 276, 281, 282, 283, 284, 285, 288, 289, 290, 292, 293, 295, 296, 297, 298, 299, 304, 305, 306, 307, 312, 313, 314, 315, 320, 327, 329, 331, 332, 333, 335, 342, 344, 345, 347, 349, 351, 352, 353, 356, 357, 358, 359, 362, 364, 366, 368, 369, 371, 372, 373, 374, 376, 377, 378, 379, 380, 382, 384, 385, 386, 387, 388, 390, 392, 395, 397, 417, 424, 430, 438, 443, 448, 454, 462, 466, 470, 474, 480, 488, 491, 495, 496, 499, 500, 508, 513, 520, 523, 524, 530, 538, 541, 542, 543, 546, 547, 548, 550, 552, 553], "summary": {"covered_lines": 228, "num_statements": 255, "percent_covered": 89.41176470588235, "percent_covered_display": "89", "missing_lines": 27, "excluded_lines": 2, "percent_statements_covered": 89.41176470588235, "percent_statements_covered_display": "89"}, "missing_lines": [16, 17, 101, 141, 142, 182, 183, 205, 220, 235, 236, 301, 302, 309, 310, 317, 318, 322, 323, 324, 350, 381, 389, 549, 551, 555, 556], "excluded_lines": [559, 560], "functions": {"postgresql_command": {"executed_lines": [26, 27, 28, 29, 36, 38, 39, 43, 45, 50, 52, 53, 54, 55, 57, 58, 69, 70, 71, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 86, 93, 97, 98, 99, 103, 104, 105, 106, 107, 109, 117, 119, 120, 124, 126, 127, 128, 131, 132, 133, 134, 135, 138, 139, 140, 144, 145, 148, 149, 151, 152, 153, 164, 167, 168, 173, 174, 175, 177, 178, 179, 181, 184, 185, 186], "summary": {"covered_lines": 75, "num_statements": 80, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 93.75, "percent_statements_covered_display": "94"}, "missing_lines": [101, 141, 142, 182, 183], "excluded_lines": [], "start_line": 24}, "mongodb_command": {"executed_lines": [191, 192, 196, 198, 200, 203, 204, 207, 212, 213, 214, 215, 216, 219, 222, 224, 226, 227, 230, 231, 234, 239, 244, 245, 246, 249, 250, 251, 252, 253, 255, 258, 262, 267, 270, 271, 272, 273, 274, 275, 276, 281, 282, 283, 284, 285, 288, 289, 290, 292, 293, 295, 296, 297, 298, 299, 304, 305, 306, 307, 312, 313, 314, 315, 320], "summary": {"covered_lines": 65, "num_statements": 78, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [205, 220, 235, 236, 301, 302, 309, 310, 317, 318, 322, 323, 324], "excluded_lines": [], "start_line": 189}, "setup_logging": {"executed_lines": [329, 331, 332, 333, 335], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 327}, "serve_command": {"executed_lines": [344, 345, 347, 349, 351, 352, 353, 356, 357, 358, 359], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 91.66666666666667, "percent_statements_covered_display": "92"}, "missing_lines": [350], "excluded_lines": [], "start_line": 342}, "show_config_info": {"executed_lines": [364, 366, 368, 369, 371, 372, 373, 374, 376, 377, 378, 379, 380, 382, 384, 385, 386, 387, 388, 390, 392], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [381, 389], "excluded_lines": [], "start_line": 362}, "main": {"executed_lines": [397, 417, 424, 430, 438, 443, 448, 454, 462, 466, 470, 474, 480, 488, 491, 495, 496, 499, 500, 508, 513, 520, 523, 524, 530, 538, 541, 542, 543, 546, 547, 548, 550, 552, 553], "summary": {"covered_lines": 35, "num_statements": 39, "percent_covered": 89.74358974358974, "percent_covered_display": "90", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 89.74358974358974, "percent_statements_covered_display": "90"}, "missing_lines": [549, 551, 555, 556], "excluded_lines": [], "start_line": 395}, "": {"executed_lines": [5, 6, 7, 8, 9, 12, 13, 15, 19, 21, 24, 189, 327, 342, 362, 395], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 2, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [16, 17], "excluded_lines": [559, 560], "start_line": 1}}, "classes": {"": {"executed_lines": [5, 6, 7, 8, 9, 12, 13, 15, 19, 21, 24, 26, 27, 28, 29, 36, 38, 39, 43, 45, 50, 52, 53, 54, 55, 57, 58, 69, 70, 71, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 86, 93, 97, 98, 99, 103, 104, 105, 106, 107, 109, 117, 119, 120, 124, 126, 127, 128, 131, 132, 133, 134, 135, 138, 139, 140, 144, 145, 148, 149, 151, 152, 153, 164, 167, 168, 173, 174, 175, 177, 178, 179, 181, 184, 185, 186, 189, 191, 192, 196, 198, 200, 203, 204, 207, 212, 213, 214, 215, 216, 219, 222, 224, 226, 227, 230, 231, 234, 239, 244, 245, 246, 249, 250, 251, 252, 253, 255, 258, 262, 267, 270, 271, 272, 273, 274, 275, 276, 281, 282, 283, 284, 285, 288, 289, 290, 292, 293, 295, 296, 297, 298, 299, 304, 305, 306, 307, 312, 313, 314, 315, 320, 327, 329, 331, 332, 333, 335, 342, 344, 345, 347, 349, 351, 352, 353, 356, 357, 358, 359, 362, 364, 366, 368, 369, 371, 372, 373, 374, 376, 377, 378, 379, 380, 382, 384, 385, 386, 387, 388, 390, 392, 395, 397, 417, 424, 430, 438, 443, 448, 454, 462, 466, 470, 474, 480, 488, 491, 495, 496, 499, 500, 508, 513, 520, 523, 524, 530, 538, 541, 542, 543, 546, 547, 548, 550, 552, 553], "summary": {"covered_lines": 228, "num_statements": 255, "percent_covered": 89.41176470588235, "percent_covered_display": "89", "missing_lines": 27, "excluded_lines": 2, "percent_statements_covered": 89.41176470588235, "percent_statements_covered_display": "89"}, "missing_lines": [16, 17, 101, 141, 142, 182, 183, 205, 220, 235, 236, 301, 302, 309, 310, 317, 318, 322, 323, 324, 350, 381, 389, 549, 551, 555, 556], "excluded_lines": [559, 560], "start_line": 1}}}, "iqtoolkit_analyzer/mongodb_analyzer.py": {"executed_lines": [8, 9, 10, 11, 12, 14, 15, 19, 26, 27, 29, 35, 39, 40, 42, 43, 48, 49, 50, 52, 55, 56, 59, 60, 61, 64, 67, 77, 78, 82, 95, 96, 112, 113, 115, 118, 119, 123, 124, 125, 126, 127, 128, 131, 132, 133, 134, 137, 138, 141, 142, 143, 146, 147, 150, 151, 152, 153, 154, 157, 160, 161, 163, 173, 174, 176, 177, 182, 184, 187, 188, 189, 190, 192, 193, 194, 195, 196, 200, 201, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228, 231, 234, 241, 247, 248, 249, 250, 251, 252, 253, 256, 257, 258, 261, 262, 265, 266, 267, 270, 271, 273, 275, 276, 280, 281, 284, 289, 293, 298, 309, 313, 314, 317, 321, 325, 331, 344, 348, 349, 350, 353, 354, 357, 364, 365, 367, 373, 383, 386, 389, 392, 393, 396, 399, 402, 412, 413, 415, 419, 424, 429, 430, 432, 441, 462, 470, 473, 474, 475, 476, 477, 479, 480, 483, 484, 485, 486, 490, 492, 493, 495, 497, 501, 504, 506, 507, 508, 509, 512, 514, 516, 520, 522, 523, 524, 525, 527, 529, 536, 538, 539, 540, 543, 544, 550, 551, 557, 558, 563, 570, 577, 578, 579, 580, 581, 584, 586, 620, 623, 624, 625, 627, 702, 745, 748, 753, 754, 755, 756, 758, 760, 761, 762, 763, 765, 767, 768, 769, 772, 774, 788, 792, 797, 798, 800, 801, 802, 803, 809, 810, 815, 817, 818, 820, 824, 827, 830, 831, 832, 835, 836, 837, 840, 841, 842, 843, 846, 847, 850, 872, 874, 888, 892, 902, 903, 906, 907, 908, 909, 911, 925, 928, 929, 930, 933, 937, 939, 960, 964, 965, 996, 1002, 1004, 1005, 1008], "summary": {"covered_lines": 293, "num_statements": 441, "percent_covered": 66.43990929705215, "percent_covered_display": "66", "missing_lines": 148, "excluded_lines": 0, "percent_statements_covered": 66.43990929705215, "percent_statements_covered_display": "66"}, "missing_lines": [30, 31, 32, 33, 36, 37, 44, 46, 47, 79, 83, 97, 100, 101, 178, 179, 180, 185, 191, 198, 202, 203, 204, 205, 207, 242, 285, 286, 290, 291, 294, 295, 296, 310, 311, 327, 328, 329, 345, 346, 369, 370, 371, 433, 434, 437, 438, 439, 478, 487, 491, 505, 513, 515, 517, 521, 564, 571, 582, 598, 599, 600, 602, 603, 604, 606, 607, 608, 609, 614, 615, 616, 617, 640, 641, 643, 644, 645, 648, 651, 654, 655, 661, 674, 676, 677, 680, 681, 682, 685, 687, 690, 696, 698, 699, 700, 709, 712, 713, 719, 722, 723, 729, 730, 736, 737, 742, 770, 771, 793, 794, 804, 805, 806, 811, 812, 825, 886, 912, 913, 918, 919, 921, 922, 932, 941, 973, 974, 976, 977, 978, 980, 984, 1011, 1012, 1013, 1019, 1020, 1021, 1027, 1028, 1029, 1031, 1032, 1038, 1039, 1040, 1045], "excluded_lines": [], "functions": {"AggregationPipelineAnalyzer.detect": {"executed_lines": [77, 78, 82, 95, 96, 112, 113, 115], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 61.53846153846154, "percent_statements_covered_display": "62"}, "missing_lines": [79, 83, 97, 100, 101], "excluded_lines": [], "start_line": 67}, "MongoDBQueryPatternRecognizer.__init__": {"executed_lines": [161], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 160}, "MongoDBQueryPatternRecognizer.normalize_query": {"executed_lines": [173, 174, 176, 177], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [178, 179, 180], "excluded_lines": [], "start_line": 163}, "MongoDBQueryPatternRecognizer._normalize_dict": {"executed_lines": [184, 187, 188, 189, 190, 192, 193, 194, 195, 196, 200, 201], "summary": {"covered_lines": 12, "num_statements": 20, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [185, 191, 198, 202, 203, 204, 205, 207], "excluded_lines": [], "start_line": 182}, "MongoDBQueryPatternRecognizer.categorize_operation": {"executed_lines": [211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 209}, "MongoDBProfilerIntegration.__init__": {"executed_lines": [241, 247, 248, 249, 250, 251, 252, 253, 256, 257, 258, 261, 262, 265, 266, 267, 270, 271], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.73684210526316, "percent_statements_covered_display": "95"}, "missing_lines": [242], "excluded_lines": [], "start_line": 234}, "MongoDBProfilerIntegration.connect": {"executed_lines": [275, 276, 280, 281, 284, 289, 293], "summary": {"covered_lines": 7, "num_statements": 14, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [285, 286, 290, 291, 294, 295, 296], "excluded_lines": [], "start_line": 273}, "MongoDBProfilerIntegration.enable_profiling": {"executed_lines": [309, 313, 314, 317, 321, 325], "summary": {"covered_lines": 6, "num_statements": 11, "percent_covered": 54.54545454545455, "percent_covered_display": "55", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 54.54545454545455, "percent_statements_covered_display": "55"}, "missing_lines": [310, 311, 327, 328, 329], "excluded_lines": [], "start_line": 298}, "MongoDBProfilerIntegration.collect_profile_data": {"executed_lines": [344, 348, 349, 350, 353, 354, 357, 364, 365, 367], "summary": {"covered_lines": 10, "num_statements": 15, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [345, 346, 369, 370, 371], "excluded_lines": [], "start_line": 331}, "MongoDBProfilerIntegration.analyze_profile_record": {"executed_lines": [383, 386, 389, 392, 393, 396, 399, 402, 412, 413, 415, 419, 424, 429, 430, 432, 441], "summary": {"covered_lines": 17, "num_statements": 22, "percent_covered": 77.27272727272727, "percent_covered_display": "77", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 77.27272727272727, "percent_statements_covered_display": "77"}, "missing_lines": [433, 434, 437, 438, 439], "excluded_lines": [], "start_line": 373}, "MongoDBProfilerIntegration._calculate_efficiency_score": {"executed_lines": [470, 473, 474, 475, 476, 477, 479, 480, 483, 484, 485, 486, 490, 492, 493, 495], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 84.21052631578948, "percent_statements_covered_display": "84"}, "missing_lines": [478, 487, 491], "excluded_lines": [], "start_line": 462}, "MongoDBProfilerIntegration._calculate_impact_score": {"executed_lines": [501, 504, 506, 507, 508, 509, 512, 514, 516, 520, 522, 523, 524, 525, 527], "summary": {"covered_lines": 15, "num_statements": 20, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [505, 513, 515, 517, 521], "excluded_lines": [], "start_line": 497}, "MongoDBProfilerIntegration._generate_optimization_suggestions": {"executed_lines": [536, 538, 539, 540, 543, 544, 550, 551, 557, 558, 563, 570, 577, 578, 579, 580, 581, 584], "summary": {"covered_lines": 18, "num_statements": 21, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [564, 571, 582], "excluded_lines": [], "start_line": 529}, "MongoDBProfilerIntegration.get_current_operations_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [598, 599, 600, 602, 603, 604, 606, 607, 608, 609, 614, 615, 616, 617], "excluded_lines": [], "start_line": 586}, "MongoDBCollectionAnalyzer.__init__": {"executed_lines": [624, 625], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 623}, "MongoDBCollectionAnalyzer.analyze_collection_performance": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [640, 641, 643, 644, 645, 648, 651, 654, 655, 661, 674, 676, 677, 680, 681, 682, 685, 687, 690, 696, 698, 699, 700], "excluded_lines": [], "start_line": 627}, "MongoDBCollectionAnalyzer._generate_collection_recommendations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [709, 712, 713, 719, 722, 723, 729, 730, 736, 737, 742], "excluded_lines": [], "start_line": 702}, "MongoDBSlowQueryDetector.__init__": {"executed_lines": [753, 754, 755, 756], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 748}, "MongoDBSlowQueryDetector.initialize": {"executed_lines": [760, 761, 762, 763], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 758}, "MongoDBSlowQueryDetector.start_monitoring": {"executed_lines": [767, 768, 769, 772], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [770, 771], "excluded_lines": [], "start_line": 765}, "MongoDBSlowQueryDetector.detect_slow_queries": {"executed_lines": [788, 792, 797, 798, 800, 801, 802, 803, 809, 810, 815, 817, 818], "summary": {"covered_lines": 13, "num_statements": 20, "percent_covered": 65.0, "percent_covered_display": "65", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 65.0, "percent_statements_covered_display": "65"}, "missing_lines": [793, 794, 804, 805, 806, 811, 812], "excluded_lines": [], "start_line": 774}, "MongoDBSlowQueryDetector._aggregate_similar_queries": {"executed_lines": [824, 827, 830, 831, 832, 835, 836, 837, 840, 841, 842, 843, 846, 847, 850, 872], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 94.11764705882354, "percent_statements_covered_display": "94"}, "missing_lines": [825], "excluded_lines": [], "start_line": 820}, "MongoDBSlowQueryDetector.get_current_operations_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [886], "excluded_lines": [], "start_line": 874}, "MongoDBSlowQueryDetector.generate_comprehensive_report": {"executed_lines": [892, 902, 903, 906, 907, 908, 909, 911, 925, 928, 929, 930, 933, 937], "summary": {"covered_lines": 14, "num_statements": 21, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [912, 913, 918, 919, 921, 922, 932], "excluded_lines": [], "start_line": 888}, "MongoDBSlowQueryDetector._query_to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [941], "excluded_lines": [], "start_line": 939}, "MongoDBSlowQueryDetector._generate_summary_stats": {"executed_lines": [964, 965], "summary": {"covered_lines": 2, "num_statements": 9, "percent_covered": 22.22222222222222, "percent_covered_display": "22", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 22.22222222222222, "percent_statements_covered_display": "22"}, "missing_lines": [973, 974, 976, 977, 978, 980, 984], "excluded_lines": [], "start_line": 960}, "MongoDBSlowQueryDetector._generate_database_recommendations": {"executed_lines": [1002, 1004, 1005, 1008], "summary": {"covered_lines": 4, "num_statements": 19, "percent_covered": 21.05263157894737, "percent_covered_display": "21", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 21.05263157894737, "percent_statements_covered_display": "21"}, "missing_lines": [1011, 1012, 1013, 1019, 1020, 1021, 1027, 1028, 1029, 1031, 1032, 1038, 1039, 1040, 1045], "excluded_lines": [], "start_line": 996}, "": {"executed_lines": [8, 9, 10, 11, 12, 14, 15, 19, 26, 27, 29, 35, 39, 40, 42, 43, 48, 49, 50, 52, 55, 56, 59, 60, 61, 64, 67, 118, 119, 123, 124, 125, 126, 127, 128, 131, 132, 133, 134, 137, 138, 141, 142, 143, 146, 147, 150, 151, 152, 153, 154, 157, 160, 163, 182, 209, 231, 234, 273, 298, 331, 373, 462, 497, 529, 586, 620, 623, 627, 702, 745, 748, 758, 765, 774, 820, 874, 888, 939, 960, 996], "summary": {"covered_lines": 81, "num_statements": 90, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [30, 31, 32, 33, 36, 37, 44, 46, 47], "excluded_lines": [], "start_line": 1}}, "classes": {"AggregationAntiPattern": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 56}, "AggregationPipelineAnalyzer": {"executed_lines": [77, 78, 82, 95, 96, 112, 113, 115], "summary": {"covered_lines": 8, "num_statements": 13, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 61.53846153846154, "percent_statements_covered_display": "62"}, "missing_lines": [79, 83, 97, 100, 101], "excluded_lines": [], "start_line": 64}, "MongoDBSlowQuery": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 119}, "MongoDBQueryPatternRecognizer": {"executed_lines": [161, 173, 174, 176, 177, 184, 187, 188, 189, 190, 192, 193, 194, 195, 196, 200, 201, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 228], "summary": {"covered_lines": 34, "num_statements": 45, "percent_covered": 75.55555555555556, "percent_covered_display": "76", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 75.55555555555556, "percent_statements_covered_display": "76"}, "missing_lines": [178, 179, 180, 185, 191, 198, 202, 203, 204, 205, 207], "excluded_lines": [], "start_line": 157}, "MongoDBProfilerIntegration": {"executed_lines": [241, 247, 248, 249, 250, 251, 252, 253, 256, 257, 258, 261, 262, 265, 266, 267, 270, 271, 275, 276, 280, 281, 284, 289, 293, 309, 313, 314, 317, 321, 325, 344, 348, 349, 350, 353, 354, 357, 364, 365, 367, 383, 386, 389, 392, 393, 396, 399, 402, 412, 413, 415, 419, 424, 429, 430, 432, 441, 470, 473, 474, 475, 476, 477, 479, 480, 483, 484, 485, 486, 490, 492, 493, 495, 501, 504, 506, 507, 508, 509, 512, 514, 516, 520, 522, 523, 524, 525, 527, 536, 538, 539, 540, 543, 544, 550, 551, 557, 558, 563, 570, 577, 578, 579, 580, 581, 584], "summary": {"covered_lines": 107, "num_statements": 155, "percent_covered": 69.03225806451613, "percent_covered_display": "69", "missing_lines": 48, "excluded_lines": 0, "percent_statements_covered": 69.03225806451613, "percent_statements_covered_display": "69"}, "missing_lines": [242, 285, 286, 290, 291, 294, 295, 296, 310, 311, 327, 328, 329, 345, 346, 369, 370, 371, 433, 434, 437, 438, 439, 478, 487, 491, 505, 513, 515, 517, 521, 564, 571, 582, 598, 599, 600, 602, 603, 604, 606, 607, 608, 609, 614, 615, 616, 617], "excluded_lines": [], "start_line": 231}, "MongoDBCollectionAnalyzer": {"executed_lines": [624, 625], "summary": {"covered_lines": 2, "num_statements": 36, "percent_covered": 5.555555555555555, "percent_covered_display": "6", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 5.555555555555555, "percent_statements_covered_display": "6"}, "missing_lines": [640, 641, 643, 644, 645, 648, 651, 654, 655, 661, 674, 676, 677, 680, 681, 682, 685, 687, 690, 696, 698, 699, 700, 709, 712, 713, 719, 722, 723, 729, 730, 736, 737, 742], "excluded_lines": [], "start_line": 620}, "MongoDBSlowQueryDetector": {"executed_lines": [753, 754, 755, 756, 760, 761, 762, 763, 767, 768, 769, 772, 788, 792, 797, 798, 800, 801, 802, 803, 809, 810, 815, 817, 818, 824, 827, 830, 831, 832, 835, 836, 837, 840, 841, 842, 843, 846, 847, 850, 872, 892, 902, 903, 906, 907, 908, 909, 911, 925, 928, 929, 930, 933, 937, 964, 965, 1002, 1004, 1005, 1008], "summary": {"covered_lines": 61, "num_statements": 102, "percent_covered": 59.80392156862745, "percent_covered_display": "60", "missing_lines": 41, "excluded_lines": 0, "percent_statements_covered": 59.80392156862745, "percent_statements_covered_display": "60"}, "missing_lines": [770, 771, 793, 794, 804, 805, 806, 811, 812, 825, 886, 912, 913, 918, 919, 921, 922, 932, 941, 973, 974, 976, 977, 978, 980, 984, 1011, 1012, 1013, 1019, 1020, 1021, 1027, 1028, 1029, 1031, 1032, 1038, 1039, 1040, 1045], "excluded_lines": [], "start_line": 745}, "": {"executed_lines": [8, 9, 10, 11, 12, 14, 15, 19, 26, 27, 29, 35, 39, 40, 42, 43, 48, 49, 50, 52, 55, 56, 59, 60, 61, 64, 67, 118, 119, 123, 124, 125, 126, 127, 128, 131, 132, 133, 134, 137, 138, 141, 142, 143, 146, 147, 150, 151, 152, 153, 154, 157, 160, 163, 182, 209, 231, 234, 273, 298, 331, 373, 462, 497, 529, 586, 620, 623, 627, 702, 745, 748, 758, 765, 774, 820, 874, 888, 939, 960, 996], "summary": {"covered_lines": 81, "num_statements": 90, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [30, 31, 32, 33, 36, 37, 44, 46, 47], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/mongodb_cli.py": {"executed_lines": [8, 9, 10, 11, 12, 14, 15, 20, 23, 25, 27, 28, 29, 31, 38, 40, 42, 45, 46, 48, 49, 52, 53, 56, 57, 58, 61, 67, 68, 69, 70, 71, 73, 76, 81, 84, 85, 86, 87, 88, 89, 90, 95, 96, 97, 98, 99, 102, 103, 105, 106, 108, 109, 110, 111, 113, 114, 117, 121, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 140, 141, 143, 148, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 177, 178, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 195, 196, 203, 205, 206, 207, 208, 210, 213, 214, 216, 221, 222, 226, 227, 228, 230, 233, 235, 237, 238, 239, 241, 242, 243, 247, 248, 254, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 269, 275, 276, 278, 279, 280, 287, 289, 290, 291, 293, 294, 296, 297, 298, 301, 302, 303, 306, 308, 310, 312, 313, 320, 322, 323, 345, 348, 353, 356, 359, 360, 361, 369, 374, 381, 382, 387, 388, 398, 399, 400, 409, 414, 416, 417, 418, 421, 423, 425, 427, 430, 431], "summary": {"covered_lines": 202, "num_statements": 224, "percent_covered": 90.17857142857143, "percent_covered_display": "90", "missing_lines": 22, "excluded_lines": 2, "percent_statements_covered": 90.17857142857143, "percent_statements_covered_display": "90"}, "missing_lines": [62, 63, 64, 198, 199, 200, 217, 218, 223, 224, 271, 272, 282, 283, 284, 315, 316, 317, 422, 424, 426, 428], "excluded_lines": [434, 435], "functions": {"setup_logging": {"executed_lines": [25, 27, 28, 29, 31], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 23}, "analyze_command": {"executed_lines": [40, 42, 45, 46, 48, 49, 52, 53, 56, 57, 58, 61, 67, 68, 69, 70, 71, 73, 76, 81, 84, 85, 86, 87, 88, 89, 90, 95, 96, 97, 98, 99, 102, 103, 105, 106, 108, 109, 110, 111, 113, 114], "summary": {"covered_lines": 42, "num_statements": 45, "percent_covered": 93.33333333333333, "percent_covered_display": "93", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 93.33333333333333, "percent_statements_covered_display": "93"}, "missing_lines": [62, 63, 64], "excluded_lines": [], "start_line": 38}, "generate_reports": {"executed_lines": [121, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 140, 141, 143], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 117}, "config_command": {"executed_lines": [150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 177, 178, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 195, 196], "summary": {"covered_lines": 36, "num_statements": 39, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [198, 199, 200], "excluded_lines": [], "start_line": 148}, "monitor_command": {"executed_lines": [205, 206, 207, 208, 210, 213, 214, 216, 221, 222, 226, 227, 228, 230, 233, 235, 237, 238, 239, 241, 242, 243, 247, 248, 254, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 269, 275, 276, 278, 279, 280], "summary": {"covered_lines": 41, "num_statements": 50, "percent_covered": 82.0, "percent_covered_display": "82", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 82.0, "percent_statements_covered_display": "82"}, "missing_lines": [217, 218, 223, 224, 271, 272, 282, 283, 284], "excluded_lines": [], "start_line": 203}, "test_connection_command": {"executed_lines": [289, 290, 291, 293, 294, 296, 297, 298, 301, 302, 303, 306, 308, 310, 312, 313], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 84.21052631578948, "percent_statements_covered_display": "84"}, "missing_lines": [315, 316, 317], "excluded_lines": [], "start_line": 287}, "main": {"executed_lines": [322, 323, 345, 348, 353, 356, 359, 360, 361, 369, 374, 381, 382, 387, 388, 398, 399, 400, 409, 414, 416, 417, 418, 421, 423, 425, 427, 430, 431], "summary": {"covered_lines": 29, "num_statements": 33, "percent_covered": 87.87878787878788, "percent_covered_display": "88", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 87.87878787878788, "percent_statements_covered_display": "88"}, "missing_lines": [422, 424, 426, 428], "excluded_lines": [], "start_line": 320}, "": {"executed_lines": [8, 9, 10, 11, 12, 14, 15, 20, 23, 38, 117, 148, 203, 287, 320], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [434, 435], "start_line": 1}}, "classes": {"": {"executed_lines": [8, 9, 10, 11, 12, 14, 15, 20, 23, 25, 27, 28, 29, 31, 38, 40, 42, 45, 46, 48, 49, 52, 53, 56, 57, 58, 61, 67, 68, 69, 70, 71, 73, 76, 81, 84, 85, 86, 87, 88, 89, 90, 95, 96, 97, 98, 99, 102, 103, 105, 106, 108, 109, 110, 111, 113, 114, 117, 121, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 137, 138, 140, 141, 143, 148, 150, 151, 152, 153, 154, 155, 157, 158, 160, 161, 162, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 177, 178, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 195, 196, 203, 205, 206, 207, 208, 210, 213, 214, 216, 221, 222, 226, 227, 228, 230, 233, 235, 237, 238, 239, 241, 242, 243, 247, 248, 254, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 269, 275, 276, 278, 279, 280, 287, 289, 290, 291, 293, 294, 296, 297, 298, 301, 302, 303, 306, 308, 310, 312, 313, 320, 322, 323, 345, 348, 353, 356, 359, 360, 361, 369, 374, 381, 382, 387, 388, 398, 399, 400, 409, 414, 416, 417, 418, 421, 423, 425, 427, 430, 431], "summary": {"covered_lines": 202, "num_statements": 224, "percent_covered": 90.17857142857143, "percent_covered_display": "90", "missing_lines": 22, "excluded_lines": 2, "percent_statements_covered": 90.17857142857143, "percent_statements_covered_display": "90"}, "missing_lines": [62, 63, 64, 198, 199, 200, 217, 218, 223, 224, 271, 272, 282, 283, 284, 315, 316, 317, 422, 424, 426, 428], "excluded_lines": [434, 435], "start_line": 1}}}, "iqtoolkit_analyzer/mongodb_config.py": {"executed_lines": [8, 9, 10, 11, 13, 15, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31, 34, 35, 36, 37, 39, 41, 47, 50, 51, 53, 57, 59, 61, 63, 66, 70, 73, 74, 78, 79, 80, 83, 84, 87, 88, 91, 92, 95, 96, 99, 100, 103, 104, 105, 106, 108, 110, 111, 112, 113, 114, 115, 117, 120, 121, 125, 126, 129, 130, 133, 134, 137, 140, 141, 143, 145, 146, 157, 158, 161, 162, 166, 167, 168, 171, 172, 173, 176, 177, 178, 181, 182, 185, 186, 187, 188, 191, 192, 195, 196, 199, 200, 204, 205, 208, 209, 210, 211, 214, 215, 218, 219, 222, 223, 225, 227, 228, 231, 232, 235, 236, 237, 238, 239, 242, 243, 246, 247, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 265, 266, 268, 269, 271, 272, 274, 275, 277, 278, 280, 281, 283, 284, 287, 301, 303, 304, 306, 307, 308, 309, 320, 321, 369, 371, 383, 385, 386, 387, 388, 389, 394, 396, 399, 403, 404, 405, 406, 411, 420, 421, 423, 427, 428, 435, 436, 439, 441, 443, 444, 448, 463, 464, 465, 471, 472, 477, 478, 479, 480, 481, 482, 484, 487], "summary": {"covered_lines": 202, "num_statements": 284, "percent_covered": 71.12676056338029, "percent_covered_display": "71", "missing_lines": 82, "excluded_lines": 8, "percent_statements_covered": 71.12676056338029, "percent_statements_covered_display": "71"}, "missing_lines": [42, 43, 52, 54, 58, 60, 62, 64, 67, 68, 310, 311, 312, 313, 314, 315, 316, 317, 318, 323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, 346, 347, 350, 351, 352, 353, 356, 357, 358, 359, 362, 363, 364, 365, 367, 390, 391, 392, 400, 410, 415, 422, 424, 432, 437, 445, 467, 468, 473, 474, 475, 489, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 504], "excluded_lines": [507, 509, 512, 513, 516, 517, 518, 519], "functions": {"MongoDBConnectionConfig.to_mongo_uri": {"executed_lines": [41, 47, 50, 51, 53, 57, 59, 61, 63, 66, 70], "summary": {"covered_lines": 11, "num_statements": 21, "percent_covered": 52.38095238095238, "percent_covered_display": "52", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 52.38095238095238, "percent_statements_covered_display": "52"}, "missing_lines": [42, 43, 52, 54, 58, 60, 62, 64, 67, 68], "excluded_lines": [], "start_line": 39}, "MongoDBThresholdConfig.get_severity_level": {"executed_lines": [110, 111, 112, 113, 114, 115, 117], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 108}, "MongoDBProfilingConfig.__post_init__": {"executed_lines": [145, 146, 157, 158], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 143}, "MongoDBReportingConfig.__post_init__": {"executed_lines": [227, 228], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 225}, "MongoDBConfig.__post_init__": {"executed_lines": [251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 265, 266], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 249}, "MongoDBConfig.from_dict": {"executed_lines": [271, 272, 274, 275, 277, 278, 280, 281, 283, 284, 287, 301], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 269}, "MongoDBConfig.from_yaml_file": {"executed_lines": [306, 307, 308, 309], "summary": {"covered_lines": 4, "num_statements": 13, "percent_covered": 30.76923076923077, "percent_covered_display": "31", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 30.76923076923077, "percent_statements_covered_display": "31"}, "missing_lines": [310, 311, 312, 313, 314, 315, 316, 317, 318], "excluded_lines": [], "start_line": 304}, "MongoDBConfig.from_environment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, 346, 347, 350, 351, 352, 353, 356, 357, 358, 359, 362, 363, 364, 365, 367], "excluded_lines": [], "start_line": 321}, "MongoDBConfig.to_dict": {"executed_lines": [371], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 369}, "MongoDBConfig.to_yaml_file": {"executed_lines": [385, 386, 387, 388, 389], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [390, 391, 392], "excluded_lines": [], "start_line": 383}, "MongoDBConfig.validate": {"executed_lines": [396, 399, 403, 404, 405, 406, 411, 420, 421, 423, 427, 428, 435, 436, 439], "summary": {"covered_lines": 15, "num_statements": 22, "percent_covered": 68.18181818181819, "percent_covered_display": "68", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 68.18181818181819, "percent_statements_covered_display": "68"}, "missing_lines": [400, 410, 415, 422, 424, 432, 437], "excluded_lines": [], "start_line": 394}, "MongoDBConfig.get_effective_connection_string": {"executed_lines": [443, 444], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [445], "excluded_lines": [], "start_line": 441}, "load_mongodb_config": {"executed_lines": [463, 464, 465, 471, 472, 477, 478, 479, 480, 481, 482, 484], "summary": {"covered_lines": 12, "num_statements": 17, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 70.58823529411765, "percent_statements_covered_display": "71"}, "missing_lines": [467, 468, 473, 474, 475], "excluded_lines": [], "start_line": 448}, "create_sample_config_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [489, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 504], "excluded_lines": [], "start_line": 487}, "": {"executed_lines": [8, 9, 10, 11, 13, 15, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31, 34, 35, 36, 37, 39, 73, 74, 78, 79, 80, 83, 84, 87, 88, 91, 92, 95, 96, 99, 100, 103, 104, 105, 106, 108, 120, 121, 125, 126, 129, 130, 133, 134, 137, 140, 141, 143, 161, 162, 166, 167, 168, 171, 172, 173, 176, 177, 178, 181, 182, 185, 186, 187, 188, 191, 192, 195, 196, 199, 200, 204, 205, 208, 209, 210, 211, 214, 215, 218, 219, 222, 223, 225, 231, 232, 235, 236, 237, 238, 239, 242, 243, 246, 247, 249, 268, 269, 303, 304, 320, 321, 369, 383, 394, 441, 448, 487], "summary": {"covered_lines": 113, "num_statements": 113, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 8, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [507, 509, 512, 513, 516, 517, 518, 519], "start_line": 1}}, "classes": {"MongoDBConnectionConfig": {"executed_lines": [41, 47, 50, 51, 53, 57, 59, 61, 63, 66, 70], "summary": {"covered_lines": 11, "num_statements": 21, "percent_covered": 52.38095238095238, "percent_covered_display": "52", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 52.38095238095238, "percent_statements_covered_display": "52"}, "missing_lines": [42, 43, 52, 54, 58, 60, 62, 64, 67, 68], "excluded_lines": [], "start_line": 19}, "MongoDBThresholdConfig": {"executed_lines": [110, 111, 112, 113, 114, 115, 117], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 74}, "MongoDBProfilingConfig": {"executed_lines": [145, 146, 157, 158], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 121}, "MongoDBAnalysisConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 162}, "MongoDBReportingConfig": {"executed_lines": [227, 228], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 200}, "MongoDBConfig": {"executed_lines": [251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 265, 266, 271, 272, 274, 275, 277, 278, 280, 281, 283, 284, 287, 301, 306, 307, 308, 309, 371, 385, 386, 387, 388, 389, 396, 399, 403, 404, 405, 406, 411, 420, 421, 423, 427, 428, 435, 436, 439, 443, 444], "summary": {"covered_lines": 53, "num_statements": 107, "percent_covered": 49.532710280373834, "percent_covered_display": "50", "missing_lines": 54, "excluded_lines": 0, "percent_statements_covered": 49.532710280373834, "percent_statements_covered_display": "50"}, "missing_lines": [310, 311, 312, 313, 314, 315, 316, 317, 318, 323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, 346, 347, 350, 351, 352, 353, 356, 357, 358, 359, 362, 363, 364, 365, 367, 390, 391, 392, 400, 410, 415, 422, 424, 432, 437, 445], "excluded_lines": [], "start_line": 232}, "": {"executed_lines": [8, 9, 10, 11, 13, 15, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31, 34, 35, 36, 37, 39, 73, 74, 78, 79, 80, 83, 84, 87, 88, 91, 92, 95, 96, 99, 100, 103, 104, 105, 106, 108, 120, 121, 125, 126, 129, 130, 133, 134, 137, 140, 141, 143, 161, 162, 166, 167, 168, 171, 172, 173, 176, 177, 178, 181, 182, 185, 186, 187, 188, 191, 192, 195, 196, 199, 200, 204, 205, 208, 209, 210, 211, 214, 215, 218, 219, 222, 223, 225, 231, 232, 235, 236, 237, 238, 239, 242, 243, 246, 247, 249, 268, 269, 303, 304, 320, 321, 369, 383, 394, 441, 448, 463, 464, 465, 471, 472, 477, 478, 479, 480, 481, 482, 484, 487], "summary": {"covered_lines": 125, "num_statements": 143, "percent_covered": 87.41258741258741, "percent_covered_display": "87", "missing_lines": 18, "excluded_lines": 8, "percent_statements_covered": 87.41258741258741, "percent_statements_covered_display": "87"}, "missing_lines": [467, 468, 473, 474, 475, 489, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 504], "excluded_lines": [507, 509, 512, 513, 516, 517, 518, 519], "start_line": 1}}}, "iqtoolkit_analyzer/mongodb_currentop_analyzer.py": {"executed_lines": [13, 14, 15, 16, 18, 20, 23, 25, 26, 29, 30, 32, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 56, 57, 58, 59, 60, 61, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 78, 90, 95, 96, 101, 102, 103, 106, 107, 109, 111, 112, 115, 116, 117, 118, 119, 120, 122, 124, 125, 126, 128, 141, 142, 143, 194, 196, 198, 199, 200, 201, 202, 205, 206, 207, 208, 209, 210, 211, 212, 219, 220, 221, 222, 226, 229, 232, 234, 251, 255, 262, 266, 268, 319, 321, 322, 323, 324, 325, 327, 329, 330, 332, 333, 337, 338, 340, 348, 351, 352, 353, 356, 377, 378, 379, 397, 418, 420], "summary": {"covered_lines": 122, "num_statements": 177, "percent_covered": 68.92655367231639, "percent_covered_display": "69", "missing_lines": 55, "excluded_lines": 0, "percent_statements_covered": 68.92655367231639, "percent_statements_covered_display": "69"}, "missing_lines": [21, 28, 145, 147, 148, 149, 151, 154, 155, 156, 158, 161, 162, 163, 164, 165, 168, 169, 170, 171, 172, 175, 179, 190, 191, 192, 213, 216, 223, 247, 248, 249, 272, 275, 276, 278, 279, 280, 281, 282, 283, 285, 287, 288, 289, 290, 291, 294, 295, 296, 297, 317, 335, 398, 399], "excluded_lines": [], "functions": {"MongoDBCurrentOpAnalyzer.__init__": {"executed_lines": [95, 96, 101, 102, 103, 106, 107], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 90}, "MongoDBCurrentOpAnalyzer.connect": {"executed_lines": [111, 112, 115, 116, 117, 118, 119, 120], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "MongoDBCurrentOpAnalyzer.disconnect": {"executed_lines": [124, 125, 126], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 122}, "MongoDBCurrentOpAnalyzer.get_current_ops_snapshot": {"executed_lines": [141, 142, 143], "summary": {"covered_lines": 3, "num_statements": 27, "percent_covered": 11.11111111111111, "percent_covered_display": "11", "missing_lines": 24, "excluded_lines": 0, "percent_statements_covered": 11.11111111111111, "percent_statements_covered_display": "11"}, "missing_lines": [145, 147, 148, 149, 151, 154, 155, 156, 158, 161, 162, 163, 164, 165, 168, 169, 170, 171, 172, 175, 179, 190, 191, 192], "excluded_lines": [], "start_line": 128}, "MongoDBCurrentOpAnalyzer._parse_current_op": {"executed_lines": [196, 198, 199, 200, 201, 202, 205, 206, 207, 208, 209, 210, 211, 212, 219, 220, 221, 222, 226, 229, 232, 234], "summary": {"covered_lines": 22, "num_statements": 28, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 78.57142857142857, "percent_statements_covered_display": "79"}, "missing_lines": [213, 216, 223, 247, 248, 249], "excluded_lines": [], "start_line": 194}, "MongoDBCurrentOpAnalyzer._identify_long_running": {"executed_lines": [255], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 251}, "MongoDBCurrentOpAnalyzer._identify_blocking_ops": {"executed_lines": [266], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 262}, "MongoDBCurrentOpAnalyzer._analyze_lock_contention": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [272, 275, 276, 278, 279, 280, 281, 282, 283, 285, 287, 288, 289, 290, 291, 294, 295, 296, 297, 317], "excluded_lines": [], "start_line": 268}, "MongoDBCurrentOpAnalyzer._get_operation_breakdown": {"executed_lines": [321, 322, 323, 324, 325], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 319}, "MongoDBCurrentOpAnalyzer._get_database_breakdown": {"executed_lines": [329, 330, 332, 333, 337, 338], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 85.71428571428571, "percent_statements_covered_display": "86"}, "missing_lines": [335], "excluded_lines": [], "start_line": 327}, "MongoDBCurrentOpAnalyzer._generate_insights": {"executed_lines": [348, 351, 352, 353, 356, 377, 378, 379, 397, 418, 420], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [398, 399], "excluded_lines": [], "start_line": 340}, "": {"executed_lines": [13, 14, 15, 16, 18, 20, 23, 25, 26, 29, 30, 32, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 56, 57, 58, 59, 60, 61, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 78, 90, 109, 122, 128, 194, 251, 262, 268, 319, 327, 340], "summary": {"covered_lines": 55, "num_statements": 57, "percent_covered": 96.49122807017544, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.49122807017544, "percent_statements_covered_display": "96"}, "missing_lines": [21, 28], "excluded_lines": [], "start_line": 1}}, "classes": {"CurrentOpMetrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 36}, "OperationInsight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 53}, "CurrentOpSnapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 65}, "MongoDBCurrentOpAnalyzer": {"executed_lines": [95, 96, 101, 102, 103, 106, 107, 111, 112, 115, 116, 117, 118, 119, 120, 124, 125, 126, 141, 142, 143, 196, 198, 199, 200, 201, 202, 205, 206, 207, 208, 209, 210, 211, 212, 219, 220, 221, 222, 226, 229, 232, 234, 255, 266, 321, 322, 323, 324, 325, 329, 330, 332, 333, 337, 338, 348, 351, 352, 353, 356, 377, 378, 379, 397, 418, 420], "summary": {"covered_lines": 67, "num_statements": 120, "percent_covered": 55.833333333333336, "percent_covered_display": "56", "missing_lines": 53, "excluded_lines": 0, "percent_statements_covered": 55.833333333333336, "percent_statements_covered_display": "56"}, "missing_lines": [145, 147, 148, 149, 151, 154, 155, 156, 158, 161, 162, 163, 164, 165, 168, 169, 170, 171, 172, 175, 179, 190, 191, 192, 213, 216, 223, 247, 248, 249, 272, 275, 276, 278, 279, 280, 281, 282, 283, 285, 287, 288, 289, 290, 291, 294, 295, 296, 297, 317, 335, 398, 399], "excluded_lines": [], "start_line": 78}, "": {"executed_lines": [13, 14, 15, 16, 18, 20, 23, 25, 26, 29, 30, 32, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 56, 57, 58, 59, 60, 61, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 78, 90, 109, 122, 128, 194, 251, 262, 268, 319, 327, 340], "summary": {"covered_lines": 55, "num_statements": 57, "percent_covered": 96.49122807017544, "percent_covered_display": "96", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 96.49122807017544, "percent_statements_covered_display": "96"}, "missing_lines": [21, 28], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/mongodb_profiler_deep_analysis.py": {"executed_lines": [11, 12, 13, 15, 17, 20, 22, 23, 26, 27, 30, 31, 36, 37, 38, 39, 40, 42, 45, 46, 49, 50, 51, 52, 53, 54, 57, 58, 62, 63, 64, 67, 68, 71, 72, 75, 77, 79, 80, 83, 94, 99, 100, 105, 106, 111, 112, 113, 116, 117, 118, 120, 122, 123, 126, 127, 130, 133, 134, 135, 136, 138, 149, 186, 190, 192, 193, 194, 197, 198, 199, 200, 201, 202, 218, 219, 220, 221, 222, 238, 240, 244, 246, 247, 248, 251, 253, 254, 269, 271, 272, 276, 277, 278, 291, 293, 297, 299, 300, 302, 306, 307, 308, 321, 322, 324, 325, 327, 343, 344, 345, 356, 358, 382, 399, 400, 418, 422, 424, 426, 428, 429, 432, 433, 438, 441, 442, 443, 444, 446, 447, 448, 453, 455, 457, 458, 459], "summary": {"covered_lines": 137, "num_statements": 184, "percent_covered": 74.45652173913044, "percent_covered_display": "74", "missing_lines": 47, "excluded_lines": 0, "percent_statements_covered": 74.45652173913044, "percent_statements_covered_display": "74"}, "missing_lines": [18, 25, 32, 33, 35, 131, 140, 141, 142, 143, 144, 145, 146, 147, 164, 167, 170, 173, 174, 177, 178, 179, 180, 181, 182, 184, 303, 328, 362, 364, 365, 367, 376, 377, 378, 380, 402, 403, 404, 407, 411, 412, 414, 415, 416, 450, 451], "excluded_lines": [], "functions": {"ExecutionPlanMetrics.__post_init__": {"executed_lines": [79, 80], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 77}, "MongoDBProfilerDeepAnalyzer.__init__": {"executed_lines": [99, 100, 105, 106, 111, 112, 113, 116, 117, 118], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 94}, "MongoDBProfilerDeepAnalyzer.connect": {"executed_lines": [122, 123, 126, 127, 130, 133, 134, 135, 136], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [131], "excluded_lines": [], "start_line": 120}, "MongoDBProfilerDeepAnalyzer._initialize_toolkit_analyzers": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [140, 141, 142, 143, 144, 145, 146, 147], "excluded_lines": [], "start_line": 138}, "MongoDBProfilerDeepAnalyzer.analyze_profiler_record_deep": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [164, 167, 170, 173, 174, 177, 178, 179, 180, 181, 182, 184], "excluded_lines": [], "start_line": 149}, "MongoDBProfilerDeepAnalyzer._analyze_execution_efficiency": {"executed_lines": [190, 192, 193, 194, 197, 198, 199, 200, 201, 202, 218, 219, 220, 221, 222, 238], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 186}, "MongoDBProfilerDeepAnalyzer._analyze_index_usage": {"executed_lines": [244, 246, 247, 248, 251, 253, 254, 269, 271, 272, 276, 277, 278, 291], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 240}, "MongoDBProfilerDeepAnalyzer._analyze_aggregation_pipeline": {"executed_lines": [297, 299, 300, 302, 306, 307, 308, 321, 322, 324, 325, 327, 343, 344, 345, 356], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [303, 328], "excluded_lines": [], "start_line": 293}, "MongoDBProfilerDeepAnalyzer._get_toolkit_insights": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [362, 364, 365, 367, 376, 377, 378, 380], "excluded_lines": [], "start_line": 358}, "MongoDBProfilerDeepAnalyzer.get_execution_plan_metrics": {"executed_lines": [399, 400], "summary": {"covered_lines": 2, "num_statements": 11, "percent_covered": 18.181818181818183, "percent_covered_display": "18", "missing_lines": 9, "excluded_lines": 0, "percent_statements_covered": 18.181818181818183, "percent_statements_covered_display": "18"}, "missing_lines": [402, 403, 404, 407, 411, 412, 414, 415, 416], "excluded_lines": [], "start_line": 382}, "MongoDBProfilerDeepAnalyzer._extract_metrics_from_explain": {"executed_lines": [422, 424, 426, 428, 429, 432, 433, 438, 441, 442, 443, 444, 446, 447, 448, 453], "summary": {"covered_lines": 16, "num_statements": 18, "percent_covered": 88.88888888888889, "percent_covered_display": "89", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 88.88888888888889, "percent_statements_covered_display": "89"}, "missing_lines": [450, 451], "excluded_lines": [], "start_line": 418}, "MongoDBProfilerDeepAnalyzer.disconnect": {"executed_lines": [457, 458, 459], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 455}, "": {"executed_lines": [11, 12, 13, 15, 17, 20, 22, 23, 26, 27, 30, 31, 36, 37, 38, 39, 40, 42, 45, 46, 49, 50, 51, 52, 53, 54, 57, 58, 62, 63, 64, 67, 68, 71, 72, 75, 77, 83, 94, 120, 138, 149, 186, 240, 293, 358, 382, 418, 455], "summary": {"covered_lines": 49, "num_statements": 54, "percent_covered": 90.74074074074075, "percent_covered_display": "91", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 90.74074074074075, "percent_statements_covered_display": "91"}, "missing_lines": [18, 25, 32, 33, 35], "excluded_lines": [], "start_line": 1}}, "classes": {"ProfilerInsight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 46}, "ExecutionPlanMetrics": {"executed_lines": [79, 80], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 58}, "MongoDBProfilerDeepAnalyzer": {"executed_lines": [99, 100, 105, 106, 111, 112, 113, 116, 117, 118, 122, 123, 126, 127, 130, 133, 134, 135, 136, 190, 192, 193, 194, 197, 198, 199, 200, 201, 202, 218, 219, 220, 221, 222, 238, 244, 246, 247, 248, 251, 253, 254, 269, 271, 272, 276, 277, 278, 291, 297, 299, 300, 302, 306, 307, 308, 321, 322, 324, 325, 327, 343, 344, 345, 356, 399, 400, 422, 424, 426, 428, 429, 432, 433, 438, 441, 442, 443, 444, 446, 447, 448, 453, 457, 458, 459], "summary": {"covered_lines": 86, "num_statements": 128, "percent_covered": 67.1875, "percent_covered_display": "67", "missing_lines": 42, "excluded_lines": 0, "percent_statements_covered": 67.1875, "percent_statements_covered_display": "67"}, "missing_lines": [131, 140, 141, 142, 143, 144, 145, 146, 147, 164, 167, 170, 173, 174, 177, 178, 179, 180, 181, 182, 184, 303, 328, 362, 364, 365, 367, 376, 377, 378, 380, 402, 403, 404, 407, 411, 412, 414, 415, 416, 450, 451], "excluded_lines": [], "start_line": 83}, "": {"executed_lines": [11, 12, 13, 15, 17, 20, 22, 23, 26, 27, 30, 31, 36, 37, 38, 39, 40, 42, 45, 46, 49, 50, 51, 52, 53, 54, 57, 58, 62, 63, 64, 67, 68, 71, 72, 75, 77, 83, 94, 120, 138, 149, 186, 240, 293, 358, 382, 418, 455], "summary": {"covered_lines": 49, "num_statements": 54, "percent_covered": 90.74074074074075, "percent_covered_display": "91", "missing_lines": 5, "excluded_lines": 0, "percent_statements_covered": 90.74074074074075, "percent_statements_covered_display": "91"}, "missing_lines": [18, 25, 32, 33, 35], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/mongodb_report_generator.py": {"executed_lines": [9, 10, 11, 12, 13, 15, 16, 21, 22, 23, 24, 25, 27, 29, 32, 35, 36, 37, 39, 52, 53, 55, 56, 58, 59, 65, 78, 79, 81, 82, 84, 85, 91, 104, 105, 107, 108, 110, 111, 117, 119, 135, 137, 139, 140, 146, 147, 153, 155, 159, 160, 163, 164, 165, 166, 169, 172, 177, 178, 180, 181, 182, 183, 184, 186, 189, 193, 198, 204, 227, 229, 232, 235, 236, 239, 247, 248, 249, 253, 256, 259, 260, 266, 274, 275, 277, 279, 281, 283, 284, 287, 288, 289, 293, 294, 295, 299, 302, 303, 304, 309, 312, 313, 319, 320, 325, 326, 330, 332, 334, 367, 369, 396, 398, 399, 402, 403, 404, 405, 408, 409, 410, 412, 413, 414, 417, 420, 423, 426, 429, 430, 431, 432, 435, 438, 441, 442, 443, 444, 445, 448, 449, 450, 452, 453, 454, 457, 458, 461, 462, 465, 469, 470, 471, 472, 474, 477, 478, 479, 480, 481, 482, 485, 486, 487, 489, 490, 491, 492, 495, 498, 501, 506, 507, 508, 509, 511, 513, 515, 517, 519, 582, 585, 586, 587, 590, 593, 594, 595, 598, 599, 601, 604, 605, 606, 607, 610, 611, 612, 613, 614, 616, 617, 618, 619, 620, 621, 624, 625, 628, 629, 630, 631, 635, 636, 640, 641, 645, 646, 648, 651, 652, 653, 654, 655, 656, 659, 660, 662, 664, 665, 666, 667, 668, 672, 673, 675, 676, 679, 683, 687, 688, 692, 693, 697, 698, 702, 703, 707, 708, 709, 713, 715, 716, 717, 720, 721, 722, 723, 724, 726, 729, 730, 731, 732, 733, 734, 736, 738, 751, 752, 753, 792, 824, 853], "summary": {"covered_lines": 275, "num_statements": 374, "percent_covered": 73.52941176470588, "percent_covered_display": "74", "missing_lines": 99, "excluded_lines": 0, "percent_statements_covered": 73.52941176470588, "percent_statements_covered_display": "74"}, "missing_lines": [17, 18, 20, 61, 62, 63, 87, 88, 89, 113, 114, 115, 321, 670, 755, 756, 758, 759, 760, 762, 763, 765, 767, 770, 771, 774, 777, 778, 781, 784, 785, 787, 788, 790, 796, 797, 799, 800, 801, 803, 807, 808, 809, 811, 812, 814, 815, 816, 818, 820, 821, 822, 828, 829, 831, 833, 836, 837, 838, 839, 841, 843, 844, 845, 847, 849, 850, 851, 857, 859, 860, 861, 862, 863, 869, 872, 875, 877, 878, 881, 887, 888, 890, 892, 893, 894, 895, 898, 901, 902, 903, 911, 913, 914, 915, 917, 919, 920, 921], "excluded_lines": [], "functions": {"MongoDBReportGenerator.__init__": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 35}, "MongoDBReportGenerator.generate_json_report": {"executed_lines": [52, 53, 55, 56, 58, 59], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [61, 62, 63], "excluded_lines": [], "start_line": 39}, "MongoDBReportGenerator.generate_markdown_report": {"executed_lines": [78, 79, 81, 82, 84, 85], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [87, 88, 89], "excluded_lines": [], "start_line": 65}, "MongoDBReportGenerator.generate_html_report": {"executed_lines": [104, 105, 107, 108, 110, 111], "summary": {"covered_lines": 6, "num_statements": 9, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 66.66666666666667, "percent_statements_covered_display": "67"}, "missing_lines": [113, 114, 115], "excluded_lines": [], "start_line": 91}, "MongoDBReportGenerator._create_base_report": {"executed_lines": [119], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 117}, "MongoDBReportGenerator._get_config_summary": {"executed_lines": [137, 139, 140, 146, 147, 153], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 135}, "MongoDBReportGenerator._create_executive_summary": {"executed_lines": [159, 160, 163, 164, 165, 166, 169, 172, 177, 178, 180, 181, 182, 183, 184, 186, 189, 193, 198, 204], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 155}, "MongoDBReportGenerator._identify_primary_issues": {"executed_lines": [229, 232, 235, 236, 239, 247, 248, 249, 253, 256, 259, 260, 266, 274, 275, 277], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 227}, "MongoDBReportGenerator._generate_key_findings": {"executed_lines": [281, 283, 284, 287, 288, 289, 293, 294, 295, 299, 302, 303, 304, 309, 312, 313, 319, 320, 325, 326, 330], "summary": {"covered_lines": 21, "num_statements": 22, "percent_covered": 95.45454545454545, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 95.45454545454545, "percent_statements_covered_display": "95"}, "missing_lines": [321], "excluded_lines": [], "start_line": 279}, "MongoDBReportGenerator._create_appendix": {"executed_lines": [334], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 332}, "MongoDBReportGenerator._create_optimization_guide": {"executed_lines": [369], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 367}, "MongoDBReportGenerator._create_markdown_content": {"executed_lines": [398, 399, 402, 403, 404, 405, 408, 409, 410, 412, 413, 414, 417, 420, 423, 426, 429, 430, 431, 432, 435, 438, 441, 442, 443, 444, 445, 448, 449, 450, 452, 453, 454, 457, 458, 461, 462, 465, 469, 470, 471, 472, 474, 477, 478, 479, 480, 481, 482, 485, 486, 487, 489, 490, 491, 492, 495, 498, 501, 506, 507, 508, 509, 511, 513], "summary": {"covered_lines": 65, "num_statements": 65, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 396}, "MongoDBReportGenerator._create_html_content": {"executed_lines": [517, 519, 582, 585, 586, 587, 590, 593, 594, 595, 598, 599, 601, 604, 605, 606, 607, 610, 611, 612, 613, 614, 616, 617, 618, 619, 620, 621, 624, 625, 628, 629, 630, 631, 635, 636, 640, 641, 645, 646, 648, 651, 652, 653, 654, 655, 656, 659, 660, 662, 664, 665, 666, 667, 668, 672, 673, 675, 676, 679, 683, 687, 688, 692, 693, 697, 698, 702, 703, 707, 708, 709, 713, 715, 716, 717, 720, 721, 722, 723, 724, 726, 729, 730, 731, 732, 733, 734, 736], "summary": {"covered_lines": 89, "num_statements": 90, "percent_covered": 98.88888888888889, "percent_covered_display": "99", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 98.88888888888889, "percent_statements_covered_display": "99"}, "missing_lines": [670], "excluded_lines": [], "start_line": 515}, "MongoDBReportGenerator.generate_charts": {"executed_lines": [751, 752, 753], "summary": {"covered_lines": 3, "num_statements": 23, "percent_covered": 13.043478260869565, "percent_covered_display": "13", "missing_lines": 20, "excluded_lines": 0, "percent_statements_covered": 13.043478260869565, "percent_statements_covered_display": "13"}, "missing_lines": [755, 756, 758, 759, 760, 762, 763, 765, 767, 770, 771, 774, 777, 778, 781, 784, 785, 787, 788, 790], "excluded_lines": [], "start_line": 738}, "MongoDBReportGenerator._create_duration_frequency_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [796, 797, 799, 800, 801, 803, 807, 808, 809, 811, 812, 814, 815, 816, 818, 820, 821, 822], "excluded_lines": [], "start_line": 792}, "MongoDBReportGenerator._create_impact_distribution_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [828, 829, 831, 833, 836, 837, 838, 839, 841, 843, 844, 845, 847, 849, 850, 851], "excluded_lines": [], "start_line": 824}, "MongoDBReportGenerator._create_collection_comparison_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [857, 859, 860, 861, 862, 863, 869, 872, 875, 877, 878, 881, 887, 888, 890, 892, 893, 894, 895, 898, 901, 902, 903, 911, 913, 914, 915, 917, 919, 920, 921], "excluded_lines": [], "start_line": 853}, "": {"executed_lines": [9, 10, 11, 12, 13, 15, 16, 21, 22, 23, 24, 25, 27, 29, 32, 35, 39, 65, 91, 117, 135, 155, 227, 279, 332, 367, 396, 515, 738, 792, 824, 853], "summary": {"covered_lines": 32, "num_statements": 35, "percent_covered": 91.42857142857143, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.42857142857143, "percent_statements_covered_display": "91"}, "missing_lines": [17, 18, 20], "excluded_lines": [], "start_line": 1}}, "classes": {"MongoDBReportGenerator": {"executed_lines": [36, 37, 52, 53, 55, 56, 58, 59, 78, 79, 81, 82, 84, 85, 104, 105, 107, 108, 110, 111, 119, 137, 139, 140, 146, 147, 153, 159, 160, 163, 164, 165, 166, 169, 172, 177, 178, 180, 181, 182, 183, 184, 186, 189, 193, 198, 204, 229, 232, 235, 236, 239, 247, 248, 249, 253, 256, 259, 260, 266, 274, 275, 277, 281, 283, 284, 287, 288, 289, 293, 294, 295, 299, 302, 303, 304, 309, 312, 313, 319, 320, 325, 326, 330, 334, 369, 398, 399, 402, 403, 404, 405, 408, 409, 410, 412, 413, 414, 417, 420, 423, 426, 429, 430, 431, 432, 435, 438, 441, 442, 443, 444, 445, 448, 449, 450, 452, 453, 454, 457, 458, 461, 462, 465, 469, 470, 471, 472, 474, 477, 478, 479, 480, 481, 482, 485, 486, 487, 489, 490, 491, 492, 495, 498, 501, 506, 507, 508, 509, 511, 513, 517, 519, 582, 585, 586, 587, 590, 593, 594, 595, 598, 599, 601, 604, 605, 606, 607, 610, 611, 612, 613, 614, 616, 617, 618, 619, 620, 621, 624, 625, 628, 629, 630, 631, 635, 636, 640, 641, 645, 646, 648, 651, 652, 653, 654, 655, 656, 659, 660, 662, 664, 665, 666, 667, 668, 672, 673, 675, 676, 679, 683, 687, 688, 692, 693, 697, 698, 702, 703, 707, 708, 709, 713, 715, 716, 717, 720, 721, 722, 723, 724, 726, 729, 730, 731, 732, 733, 734, 736, 751, 752, 753], "summary": {"covered_lines": 243, "num_statements": 339, "percent_covered": 71.68141592920354, "percent_covered_display": "72", "missing_lines": 96, "excluded_lines": 0, "percent_statements_covered": 71.68141592920354, "percent_statements_covered_display": "72"}, "missing_lines": [61, 62, 63, 87, 88, 89, 113, 114, 115, 321, 670, 755, 756, 758, 759, 760, 762, 763, 765, 767, 770, 771, 774, 777, 778, 781, 784, 785, 787, 788, 790, 796, 797, 799, 800, 801, 803, 807, 808, 809, 811, 812, 814, 815, 816, 818, 820, 821, 822, 828, 829, 831, 833, 836, 837, 838, 839, 841, 843, 844, 845, 847, 849, 850, 851, 857, 859, 860, 861, 862, 863, 869, 872, 875, 877, 878, 881, 887, 888, 890, 892, 893, 894, 895, 898, 901, 902, 903, 911, 913, 914, 915, 917, 919, 920, 921], "excluded_lines": [], "start_line": 32}, "": {"executed_lines": [9, 10, 11, 12, 13, 15, 16, 21, 22, 23, 24, 25, 27, 29, 32, 35, 39, 65, 91, 117, 135, 155, 227, 279, 332, 367, 396, 515, 738, 792, 824, 853], "summary": {"covered_lines": 32, "num_statements": 35, "percent_covered": 91.42857142857143, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 91.42857142857143, "percent_statements_covered_display": "91"}, "missing_lines": [17, 18, 20], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/parser.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 14, 17, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 35, 36, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51, 54, 61, 62, 64, 65, 66, 68, 69, 70, 72, 73, 83, 86, 89, 90, 91, 93, 94, 95, 97, 100, 101, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 124, 127, 142, 144, 146, 147, 148, 151, 159, 160, 161, 165, 166, 167, 171, 173, 182, 185, 186, 187, 188, 189, 200, 202, 205, 206, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 261, 264, 265, 266, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 288, 291, 292, 294, 295, 300, 303, 308, 310, 311, 312, 314, 316, 318, 330, 333, 335, 336, 338, 340, 341, 342, 343, 344, 345, 346, 350, 352, 357, 358, 359, 362, 367, 368, 369, 373, 381, 382, 383, 384, 385, 387, 389, 392, 393, 399, 401], "summary": {"covered_lines": 197, "num_statements": 224, "percent_covered": 87.94642857142857, "percent_covered_display": "88", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 87.94642857142857, "percent_statements_covered_display": "88"}, "missing_lines": [25, 27, 34, 37, 40, 41, 76, 77, 183, 184, 197, 198, 199, 203, 228, 229, 262, 263, 347, 348, 353, 371, 386, 394, 395, 396, 397], "excluded_lines": [], "functions": {"_default_allowed_path_roots": {"executed_lines": [21, 22, 23, 24, 29, 30, 31, 32, 33, 35, 36, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51], "summary": {"covered_lines": 21, "num_statements": 27, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 77.77777777777777, "percent_statements_covered_display": "78"}, "missing_lines": [25, 27, 34, 37, 40, 41], "excluded_lines": [], "start_line": 20}, "_resolve_existing_file": {"executed_lines": [61, 62, 64, 65, 66, 68, 69, 70, 72, 73, 83], "summary": {"covered_lines": 11, "num_statements": 13, "percent_covered": 84.61538461538461, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 84.61538461538461, "percent_statements_covered_display": "85"}, "missing_lines": [76, 77], "excluded_lines": [], "start_line": 54}, "load_config": {"executed_lines": [89, 90, 91, 93, 94, 95, 97, 100, 101, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 124], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 86}, "parse_postgres_log": {"executed_lines": [142, 144, 146, 147, 148, 151, 159, 160, 161, 165, 166, 167, 171, 173, 182, 185, 186, 187, 188, 189, 200, 202, 205, 206, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 261, 264, 265, 266, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285], "summary": {"covered_lines": 73, "num_statements": 83, "percent_covered": 87.95180722891567, "percent_covered_display": "88", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 87.95180722891567, "percent_statements_covered_display": "88"}, "missing_lines": [183, 184, 197, 198, 199, 203, 228, 229, 262, 263], "excluded_lines": [], "start_line": 127}, "_normalize_plan_data": {"executed_lines": [291, 292, 294, 295, 300], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 288}, "_plan_data_to_df": {"executed_lines": [308, 310, 311, 312, 314, 316, 318], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 303}, "parse_explain_plan": {"executed_lines": [333, 335, 336, 338, 340, 350, 352, 357, 358, 359], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 90.9090909090909, "percent_statements_covered_display": "91"}, "missing_lines": [353], "excluded_lines": [], "start_line": 330}, "parse_explain_plan._load_plan": {"executed_lines": [341, 342, 343, 344, 345, 346], "summary": {"covered_lines": 6, "num_statements": 8, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [347, 348], "excluded_lines": [], "start_line": 340}, "fetch_explain_plan_from_db": {"executed_lines": [367, 368, 369, 373, 381, 382, 383, 384, 385, 387, 389, 392, 393, 399, 401], "summary": {"covered_lines": 15, "num_statements": 21, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [371, 386, 394, 395, 396, 397], "excluded_lines": [], "start_line": 362}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 14, 17, 20, 54, 86, 127, 288, 303, 330, 362], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 14, 17, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 35, 36, 38, 39, 44, 45, 46, 47, 48, 49, 50, 51, 54, 61, 62, 64, 65, 66, 68, 69, 70, 72, 73, 83, 86, 89, 90, 91, 93, 94, 95, 97, 100, 101, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 124, 127, 142, 144, 146, 147, 148, 151, 159, 160, 161, 165, 166, 167, 171, 173, 182, 185, 186, 187, 188, 189, 200, 202, 205, 206, 208, 210, 211, 212, 213, 214, 215, 216, 217, 218, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 261, 264, 265, 266, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 288, 291, 292, 294, 295, 300, 303, 308, 310, 311, 312, 314, 316, 318, 330, 333, 335, 336, 338, 340, 341, 342, 343, 344, 345, 346, 350, 352, 357, 358, 359, 362, 367, 368, 369, 373, 381, 382, 383, 384, 385, 387, 389, 392, 393, 399, 401], "summary": {"covered_lines": 197, "num_statements": 224, "percent_covered": 87.94642857142857, "percent_covered_display": "88", "missing_lines": 27, "excluded_lines": 0, "percent_statements_covered": 87.94642857142857, "percent_statements_covered_display": "88"}, "missing_lines": [25, 27, 34, 37, 40, 41, 76, 77, 183, 184, 197, 198, 199, 203, 228, 229, 262, 263, 347, 348, 353, 371, 386, 394, 395, 396, 397], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/postgresql/__init__.py": {"executed_lines": [3, 8, 9, 15, 16, 18], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 8, 9, 15, 16, 18], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 8, 9, 15, 16, 18], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/postgresql/pgtools_analyzer.py": {"executed_lines": [3, 4, 5, 7, 8, 12, 15, 16, 18, 24, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 75, 76, 77, 78, 79, 80, 81, 83, 89, 91, 92, 95, 96, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 120, 133, 134, 135, 136, 138, 141, 144, 146, 157, 160, 163, 166, 169, 172, 175, 178, 181, 183, 185, 189, 191, 192, 195, 196, 197, 198, 212, 213, 214, 215, 216, 220, 232, 234, 238, 240, 280, 282, 286, 288, 307, 309, 313, 315, 331, 333, 337, 339, 356, 358, 362, 364, 365, 366, 368, 369, 372, 385, 387, 391, 398, 400, 404, 406, 419, 421, 440], "summary": {"covered_lines": 132, "num_statements": 171, "percent_covered": 77.19298245614036, "percent_covered_display": "77", "missing_lines": 39, "excluded_lines": 0, "percent_statements_covered": 77.19298245614036, "percent_statements_covered_display": "77"}, "missing_lines": [19, 20, 21, 22, 241, 242, 243, 244, 247, 248, 249, 250, 251, 265, 266, 289, 290, 294, 295, 316, 340, 341, 343, 344, 407, 434, 435, 436, 438, 454, 455, 456, 458, 460, 472, 476, 478, 479, 480], "excluded_lines": [], "functions": {"PostgreSQLAnalyzer.__init__": {"executed_lines": [75, 76, 77, 78, 79, 80, 81], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 62}, "PostgreSQLAnalyzer.analyze": {"executed_lines": [89, 91, 92, 95, 96, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 120, 133, 134, 135, 136, 138, 141, 144], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 83}, "PostgreSQLAnalyzer._generate_recommendations": {"executed_lines": [157, 160, 163, 166, 169, 172, 175, 178, 181, 183], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 146}, "PostgreSQLAnalyzer._analyze_slow_queries": {"executed_lines": [189, 191, 192, 195, 196, 197, 198, 212, 213, 214, 215, 216, 220, 232], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 185}, "PostgreSQLAnalyzer._analyze_tables": {"executed_lines": [238, 240, 280], "summary": {"covered_lines": 3, "num_statements": 14, "percent_covered": 21.428571428571427, "percent_covered_display": "21", "missing_lines": 11, "excluded_lines": 0, "percent_statements_covered": 21.428571428571427, "percent_statements_covered_display": "21"}, "missing_lines": [241, 242, 243, 244, 247, 248, 249, 250, 251, 265, 266], "excluded_lines": [], "start_line": 234}, "PostgreSQLAnalyzer._analyze_indexes": {"executed_lines": [286, 288, 307], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 42.857142857142854, "percent_statements_covered_display": "43"}, "missing_lines": [289, 290, 294, 295], "excluded_lines": [], "start_line": 282}, "PostgreSQLAnalyzer._analyze_locks": {"executed_lines": [313, 315, 331], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [316], "excluded_lines": [], "start_line": 309}, "PostgreSQLAnalyzer._analyze_vacuum": {"executed_lines": [337, 339, 356], "summary": {"covered_lines": 3, "num_statements": 7, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 42.857142857142854, "percent_statements_covered_display": "43"}, "missing_lines": [340, 341, 343, 344], "excluded_lines": [], "start_line": 333}, "PostgreSQLAnalyzer._analyze_cache": {"executed_lines": [362, 364, 365, 366, 368, 369, 372, 385], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 358}, "PostgreSQLAnalyzer._analyze_settings": {"executed_lines": [391, 398], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 387}, "PostgreSQLAnalyzer._analyze_connections": {"executed_lines": [404, 406, 419], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [407], "excluded_lines": [], "start_line": 400}, "PostgreSQLAnalyzer.get_activity_snapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [434, 435, 436, 438], "excluded_lines": [], "start_line": 421}, "PostgreSQLAnalyzer.get_ai_recommendations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [454, 455, 456, 458, 460, 472, 476, 478, 479, 480], "excluded_lines": [], "start_line": 440}, "": {"executed_lines": [3, 4, 5, 7, 8, 12, 15, 16, 18, 24, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 83, 146, 185, 234, 282, 309, 333, 358, 387, 400, 421, 440], "summary": {"covered_lines": 48, "num_statements": 52, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [19, 20, 21, 22], "excluded_lines": [], "start_line": 1}}, "classes": {"AnalysisRecommendation": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 28}, "PostgreSQLAnalysisResult": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "PostgreSQLAnalyzer": {"executed_lines": [75, 76, 77, 78, 79, 80, 81, 89, 91, 92, 95, 96, 97, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 120, 133, 134, 135, 136, 138, 141, 144, 157, 160, 163, 166, 169, 172, 175, 178, 181, 183, 189, 191, 192, 195, 196, 197, 198, 212, 213, 214, 215, 216, 220, 232, 238, 240, 280, 286, 288, 307, 313, 315, 331, 337, 339, 356, 362, 364, 365, 366, 368, 369, 372, 385, 391, 398, 404, 406, 419], "summary": {"covered_lines": 84, "num_statements": 119, "percent_covered": 70.58823529411765, "percent_covered_display": "71", "missing_lines": 35, "excluded_lines": 0, "percent_statements_covered": 70.58823529411765, "percent_statements_covered_display": "71"}, "missing_lines": [241, 242, 243, 244, 247, 248, 249, 250, 251, 265, 266, 289, 290, 294, 295, 316, 340, 341, 343, 344, 407, 434, 435, 436, 438, 454, 455, 456, 458, 460, 472, 476, 478, 479, 480], "excluded_lines": [], "start_line": 59}, "": {"executed_lines": [3, 4, 5, 7, 8, 12, 15, 16, 18, 24, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 62, 83, 146, 185, 234, 282, 309, 333, 358, 387, 400, 421, 440], "summary": {"covered_lines": 48, "num_statements": 52, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 92.3076923076923, "percent_statements_covered_display": "92"}, "missing_lines": [19, 20, 21, 22], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/postgresql/pgtools_wrapper.py": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 17, 18, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 58, 59, 73, 74, 75, 78, 81, 87, 88, 89, 91, 93, 94, 95, 96, 97, 98, 100, 102, 103, 104, 106, 115, 116, 118, 121, 122, 123, 125, 126, 129, 130, 131, 132, 133, 135, 136, 142, 154, 155, 156, 158, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 178, 182, 191, 192, 194, 195, 196, 198, 204, 205, 206, 207, 208, 210, 216, 217, 218, 219, 220, 222, 228, 229, 230, 231, 232, 234, 240, 241, 242, 243, 244, 246, 252, 253, 254, 255, 256, 258, 264, 265, 266, 267, 268, 270], "summary": {"covered_lines": 126, "num_statements": 140, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 14, "excluded_lines": 0, "percent_statements_covered": 90.0, "percent_statements_covered_display": "90"}, "missing_lines": [60, 61, 63, 64, 65, 66, 67, 69, 119, 138, 139, 140, 193, 276], "excluded_lines": [], "functions": {"PgToolsScriptLoader.load_sql_script": {"executed_lines": [27, 28, 29, 30, 31, 32, 33, 34], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 18}, "PgToolsScriptLoader.load_bash_script": {"executed_lines": [46, 47, 48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 37}, "PgToolsScriptLoader.list_available_scripts": {"executed_lines": [58, 59, 73, 74, 75], "summary": {"covered_lines": 5, "num_statements": 13, "percent_covered": 38.46153846153846, "percent_covered_display": "38", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 38.46153846153846, "percent_statements_covered_display": "38"}, "missing_lines": [60, 61, 63, 64, 65, 66, 67, 69], "excluded_lines": [], "start_line": 56}, "PgToolsWrapper.__init__": {"executed_lines": [87, 88, 89], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 81}, "PgToolsWrapper.connect": {"executed_lines": [93, 94, 95, 96, 97, 98], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 91}, "PgToolsWrapper.disconnect": {"executed_lines": [102, 103, 104], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 100}, "PgToolsWrapper.execute_sql_script": {"executed_lines": [115, 116, 118, 121, 122, 123, 125, 126, 129, 130, 131, 132, 133, 135, 136], "summary": {"covered_lines": 15, "num_statements": 19, "percent_covered": 78.94736842105263, "percent_covered_display": "79", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 78.94736842105263, "percent_statements_covered_display": "79"}, "missing_lines": [119, 138, 139, 140], "excluded_lines": [], "start_line": 106}, "PgToolsWrapper.execute_bash_script": {"executed_lines": [154, 155, 156, 158, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 178], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 142}, "PgToolsWrapper.get_slow_queries": {"executed_lines": [191, 192, 194, 195, 196], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 83.33333333333333, "percent_statements_covered_display": "83"}, "missing_lines": [193], "excluded_lines": [], "start_line": 182}, "PgToolsWrapper.get_table_stats": {"executed_lines": [204, 205, 206, 207, 208], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 198}, "PgToolsWrapper.get_index_stats": {"executed_lines": [216, 217, 218, 219, 220], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 210}, "PgToolsWrapper.get_locks": {"executed_lines": [228, 229, 230, 231, 232], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 222}, "PgToolsWrapper.get_vacuum_stats": {"executed_lines": [240, 241, 242, 243, 244], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 234}, "PgToolsWrapper.get_cache_info": {"executed_lines": [252, 253, 254, 255, 256], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 246}, "PgToolsWrapper.get_connections": {"executed_lines": [264, 265, 266, 267, 268], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 258}, "PgToolsWrapper.list_scripts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 0.0, "percent_statements_covered_display": "0"}, "missing_lines": [276], "excluded_lines": [], "start_line": 270}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 17, 18, 36, 37, 55, 56, 78, 81, 91, 100, 106, 142, 182, 198, 210, 222, 234, 246, 258, 270], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PgToolsScriptLoader": {"executed_lines": [27, 28, 29, 30, 31, 32, 33, 34, 46, 47, 48, 49, 50, 51, 52, 53, 58, 59, 73, 74, 75], "summary": {"covered_lines": 21, "num_statements": 29, "percent_covered": 72.41379310344827, "percent_covered_display": "72", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 72.41379310344827, "percent_statements_covered_display": "72"}, "missing_lines": [60, 61, 63, 64, 65, 66, 67, 69], "excluded_lines": [], "start_line": 14}, "PgToolsWrapper": {"executed_lines": [87, 88, 89, 93, 94, 95, 96, 97, 98, 102, 103, 104, 115, 116, 118, 121, 122, 123, 125, 126, 129, 130, 131, 132, 133, 135, 136, 154, 155, 156, 158, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 178, 191, 192, 194, 195, 196, 204, 205, 206, 207, 208, 216, 217, 218, 219, 220, 228, 229, 230, 231, 232, 240, 241, 242, 243, 244, 252, 253, 254, 255, 256, 264, 265, 266, 267, 268], "summary": {"covered_lines": 77, "num_statements": 83, "percent_covered": 92.7710843373494, "percent_covered_display": "93", "missing_lines": 6, "excluded_lines": 0, "percent_statements_covered": 92.7710843373494, "percent_statements_covered_display": "93"}, "missing_lines": [119, 138, 139, 140, 193, 276], "excluded_lines": [], "start_line": 78}, "": {"executed_lines": [3, 4, 5, 6, 7, 9, 11, 14, 17, 18, 36, 37, 55, 56, 78, 81, 91, 100, 106, 142, 182, 198, 210, 222, 234, 246, 258, 270], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/postgresql/postgresql_activity_analyzer.py": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 39, 40, 41, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 67, 70, 85, 86, 87, 89, 100, 101, 102, 104, 105, 108, 128, 131, 132, 133, 135, 136, 142, 143, 144, 145, 146, 147, 150, 154, 171, 177, 186, 187, 205, 206, 207, 209, 210, 213, 214, 215, 217, 218, 220, 240, 251, 252, 253, 257, 259, 261, 272, 274, 275, 278, 307, 308, 309, 312, 313, 314, 320, 334, 336, 347, 348, 349, 350, 355, 357, 363, 374, 375, 376, 377, 378, 380, 391, 392, 393, 394, 395, 397, 408, 409, 410, 411, 412, 414, 432, 435, 436, 456, 477, 478, 501, 504, 519], "summary": {"covered_lines": 140, "num_statements": 162, "percent_covered": 86.41975308641975, "percent_covered_display": "86", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 86.41975308641975, "percent_statements_covered_display": "86"}, "missing_lines": [129, 137, 138, 139, 173, 174, 175, 236, 237, 238, 315, 316, 317, 321, 322, 327, 328, 329, 331, 332, 457, 505], "excluded_lines": [], "functions": {"PostgreSQLActivityAnalyzer.__init__": {"executed_lines": [85, 86, 87], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 70}, "PostgreSQLActivityAnalyzer.get_activity_snapshot": {"executed_lines": [100, 101, 102, 104, 105, 108, 128, 131, 132, 133, 135, 136, 142, 143, 144, 145, 146, 147, 150, 154, 171], "summary": {"covered_lines": 21, "num_statements": 28, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 7, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [129, 137, 138, 139, 173, 174, 175], "excluded_lines": [], "start_line": 89}, "PostgreSQLActivityAnalyzer._parse_activity_row": {"executed_lines": [186, 187, 205, 206, 207, 209, 210, 213, 214, 215, 217, 218, 220], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 81.25, "percent_statements_covered_display": "81"}, "missing_lines": [236, 237, 238], "excluded_lines": [], "start_line": 177}, "PostgreSQLActivityAnalyzer._identify_long_running": {"executed_lines": [251, 252, 253, 257, 259], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 240}, "PostgreSQLActivityAnalyzer._identify_blocking_queries": {"executed_lines": [272, 274, 275, 278, 307, 308, 309, 312, 313, 314, 320, 334], "summary": {"covered_lines": 12, "num_statements": 22, "percent_covered": 54.54545454545455, "percent_covered_display": "55", "missing_lines": 10, "excluded_lines": 0, "percent_statements_covered": 54.54545454545455, "percent_statements_covered_display": "55"}, "missing_lines": [315, 316, 317, 321, 322, 327, 328, 329, 331, 332], "excluded_lines": [], "start_line": 261}, "PostgreSQLActivityAnalyzer._identify_idle_in_transaction": {"executed_lines": [347, 348, 349, 350, 355, 357], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 336}, "PostgreSQLActivityAnalyzer._get_session_breakdown": {"executed_lines": [374, 375, 376, 377, 378], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 363}, "PostgreSQLActivityAnalyzer._get_database_breakdown": {"executed_lines": [391, 392, 393, 394, 395], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 380}, "PostgreSQLActivityAnalyzer._get_user_breakdown": {"executed_lines": [408, 409, 410, 411, 412], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 397}, "PostgreSQLActivityAnalyzer._generate_insights": {"executed_lines": [432, 435, 436, 456, 477, 478, 501, 504, 519], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "82", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 81.81818181818181, "percent_statements_covered_display": "82"}, "missing_lines": [457, 505], "excluded_lines": [], "start_line": 414}, "": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 39, 40, 41, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 67, 70, 89, 177, 240, 261, 336, 363, 380, 397, 414], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ActiveSessionMetrics": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 12}, "ActivityInsight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 33}, "ActivitySnapshot": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "PostgreSQLActivityAnalyzer": {"executed_lines": [85, 86, 87, 100, 101, 102, 104, 105, 108, 128, 131, 132, 133, 135, 136, 142, 143, 144, 145, 146, 147, 150, 154, 171, 186, 187, 205, 206, 207, 209, 210, 213, 214, 215, 217, 218, 220, 251, 252, 253, 257, 259, 272, 274, 275, 278, 307, 308, 309, 312, 313, 314, 320, 334, 347, 348, 349, 350, 355, 357, 374, 375, 376, 377, 378, 391, 392, 393, 394, 395, 408, 409, 410, 411, 412, 432, 435, 436, 456, 477, 478, 501, 504, 519], "summary": {"covered_lines": 84, "num_statements": 106, "percent_covered": 79.24528301886792, "percent_covered_display": "79", "missing_lines": 22, "excluded_lines": 0, "percent_statements_covered": 79.24528301886792, "percent_statements_covered_display": "79"}, "missing_lines": [129, 137, 138, 139, 173, 174, 175, 236, 237, 238, 315, 316, 317, 321, 322, 327, 328, 329, 331, 332, 457, 505], "excluded_lines": [], "start_line": 67}, "": {"executed_lines": [3, 4, 5, 6, 8, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 36, 39, 40, 41, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 67, 70, 89, 177, 240, 261, 336, 363, 380, 397, 414], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/postgresql/settings_capture.py": {"executed_lines": [3, 4, 5, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 34, 36, 37, 39, 41, 43, 45, 46, 48, 50, 51, 53, 54, 70, 72, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 88, 90, 91, 92, 93, 94, 95, 97, 99, 100, 102, 104, 107, 109, 111, 112, 114, 116, 117, 119, 121, 124, 126, 128, 138, 140, 142, 180, 194, 196, 198, 205, 207, 209, 221, 223, 225, 231, 233, 235, 241, 243, 245, 246, 248, 250, 252, 263, 273], "summary": {"covered_lines": 95, "num_statements": 98, "percent_covered": 96.93877551020408, "percent_covered_display": "97", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 96.93877551020408, "percent_statements_covered_display": "97"}, "missing_lines": [277, 278, 279], "excluded_lines": [], "functions": {"SettingsCapture.__init__": {"executed_lines": [36, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 34}, "SettingsCapture.connect": {"executed_lines": [41], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 39}, "SettingsCapture.disconnect": {"executed_lines": [45, 46], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 43}, "SettingsCapture.capture_all": {"executed_lines": [50, 51, 53, 54, 70], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "SettingsCapture._execute_query": {"executed_lines": [76, 77, 78, 79, 80, 82, 83, 84, 85, 86], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 72}, "SettingsCapture._execute_scalar": {"executed_lines": [90, 91, 92, 93, 94, 95], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 88}, "SettingsCapture._get_version": {"executed_lines": [99, 100], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 97}, "SettingsCapture._get_server_version_num": {"executed_lines": [104, 107], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 102}, "SettingsCapture._get_current_database": {"executed_lines": [111, 112], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 109}, "SettingsCapture._get_current_user": {"executed_lines": [116, 117], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 114}, "SettingsCapture._is_superuser": {"executed_lines": [121, 124], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 119}, "SettingsCapture._get_extensions": {"executed_lines": [128, 138], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 126}, "SettingsCapture._get_runtime_settings": {"executed_lines": [142, 180, 194], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 140}, "SettingsCapture._get_configuration_files": {"executed_lines": [198, 205], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 196}, "SettingsCapture._get_databases": {"executed_lines": [209, 221], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 207}, "SettingsCapture._get_tables_count": {"executed_lines": [225, 231], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 223}, "SettingsCapture._get_indexes_count": {"executed_lines": [235, 241], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 233}, "SettingsCapture._get_total_size": {"executed_lines": [245, 246], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 243}, "SettingsCapture._get_cache_info": {"executed_lines": [250, 252, 263, 273], "summary": {"covered_lines": 4, "num_statements": 7, "percent_covered": 57.142857142857146, "percent_covered_display": "57", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 57.142857142857146, "percent_statements_covered_display": "57"}, "missing_lines": [277, 278, 279], "excluded_lines": [], "start_line": 248}, "": {"executed_lines": [3, 4, 5, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 34, 39, 43, 48, 72, 88, 97, 102, 109, 114, 119, 126, 140, 196, 207, 223, 233, 243, 248], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"PostgreSQLSettings": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 13}, "SettingsCapture": {"executed_lines": [36, 37, 41, 45, 46, 50, 51, 53, 54, 70, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 90, 91, 92, 93, 94, 95, 99, 100, 104, 107, 111, 112, 116, 117, 121, 124, 128, 138, 142, 180, 194, 198, 205, 209, 221, 225, 231, 235, 241, 245, 246, 250, 252, 263, 273], "summary": {"covered_lines": 55, "num_statements": 58, "percent_covered": 94.82758620689656, "percent_covered_display": "95", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 94.82758620689656, "percent_statements_covered_display": "95"}, "missing_lines": [277, 278, 279], "excluded_lines": [], "start_line": 31}, "": {"executed_lines": [3, 4, 5, 7, 9, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 34, 39, 43, 48, 72, 88, 97, 102, 109, 114, 119, 126, 140, 196, 207, 223, 233, 243, 248], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/postgresql/settings_report.py": {"executed_lines": [3, 4, 5, 7, 9, 12, 15, 16, 20, 47, 48, 50, 277, 278, 280, 281, 292, 293, 295, 296, 300, 301, 333, 334, 336, 346, 347, 349, 350, 381, 382, 384, 385, 406, 407, 409, 412, 425, 443, 444, 446, 452, 465, 483, 484, 486, 487, 508, 509, 511, 512, 520, 521, 523, 524, 525, 526, 527, 528], "summary": {"covered_lines": 59, "num_statements": 67, "percent_covered": 88.05970149253731, "percent_covered_display": "88", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 88.05970149253731, "percent_statements_covered_display": "88"}, "missing_lines": [352, 364, 387, 399, 410, 447, 489, 501], "excluded_lines": [], "functions": {"SettingsReportGenerator.generate_html": {"executed_lines": [20], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 16}, "SettingsReportGenerator._get_css": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 48}, "SettingsReportGenerator._header_section": {"executed_lines": [280, 281], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 278}, "SettingsReportGenerator._summary_section": {"executed_lines": [295, 296, 300, 301], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 293}, "SettingsReportGenerator._system_info_section": {"executed_lines": [336], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 334}, "SettingsReportGenerator._runtime_settings_section": {"executed_lines": [349, 350], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [352, 364], "excluded_lines": [], "start_line": 347}, "SettingsReportGenerator._configuration_section": {"executed_lines": [384, 385], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [387, 399], "excluded_lines": [], "start_line": 382}, "SettingsReportGenerator._database_objects_section": {"executed_lines": [409, 412, 425], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [410], "excluded_lines": [], "start_line": 407}, "SettingsReportGenerator._extensions_section": {"executed_lines": [446, 452, 465], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0, "percent_statements_covered": 75.0, "percent_statements_covered_display": "75"}, "missing_lines": [447], "excluded_lines": [], "start_line": 444}, "SettingsReportGenerator._performance_section": {"executed_lines": [486, 487], "summary": {"covered_lines": 2, "num_statements": 4, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 50.0, "percent_statements_covered_display": "50"}, "missing_lines": [489, 501], "excluded_lines": [], "start_line": 484}, "SettingsReportGenerator._footer": {"executed_lines": [511, 512], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 509}, "SettingsReportGenerator.save_report": {"executed_lines": [523, 524, 525, 526, 527, 528], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 521}, "": {"executed_lines": [3, 4, 5, 7, 9, 12, 15, 16, 47, 48, 277, 278, 292, 293, 333, 334, 346, 347, 381, 382, 406, 407, 443, 444, 483, 484, 508, 509, 520, 521], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"SettingsReportGenerator": {"executed_lines": [20, 50, 280, 281, 295, 296, 300, 301, 336, 349, 350, 384, 385, 409, 412, 425, 446, 452, 465, 486, 487, 511, 512, 523, 524, 525, 526, 527, 528], "summary": {"covered_lines": 29, "num_statements": 37, "percent_covered": 78.37837837837837, "percent_covered_display": "78", "missing_lines": 8, "excluded_lines": 0, "percent_statements_covered": 78.37837837837837, "percent_statements_covered_display": "78"}, "missing_lines": [352, 364, 387, 399, 410, 447, 489, 501], "excluded_lines": [], "start_line": 12}, "": {"executed_lines": [3, 4, 5, 7, 9, 12, 15, 16, 47, 48, 277, 278, 292, 293, 333, 334, 346, 347, 381, 382, 406, 407, 443, 444, 483, 484, 508, 509, 520, 521], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}, "iqtoolkit_analyzer/report_generator.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 10, 12, 15, 19, 20, 21, 22, 23, 25, 42, 45, 46, 51, 52, 53, 54, 57, 58, 59, 60, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 82, 84, 86, 99, 102, 103, 106, 109, 110, 112, 113, 116, 119, 121, 123, 125, 126, 128, 129, 130, 131, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 147, 148, 149, 151, 152, 156, 157, 161, 162, 167, 168, 170, 172, 175, 176, 182, 185, 186, 187, 190, 191, 192, 195, 196, 198, 199, 200, 201, 202, 205, 206, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 219, 222, 223, 227, 228, 232, 239, 242, 243, 244, 245, 251, 257, 258, 259, 260, 261, 262, 264, 265, 267, 269, 270, 273, 274, 275, 277, 278, 279, 280, 281, 282, 285, 287, 288, 291, 292, 295, 296, 301, 305, 308, 309, 310, 313, 316, 318, 320, 322, 323, 326, 328, 329, 330, 331, 338, 341, 342, 345, 348, 352, 355, 357, 359, 361, 363, 365], "summary": {"covered_lines": 179, "num_statements": 179, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "functions": {"ReportGenerator.__init__": {"executed_lines": [20, 21, 22, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 19}, "ReportGenerator.generate_markdown_report": {"executed_lines": [42, 45, 46, 51, 52, 53, 54, 57, 58, 59, 60, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 82, 84], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 25}, "ReportGenerator.generate_report": {"executed_lines": [99, 102, 103, 106, 109, 110, 112, 113, 116, 119, 121], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 86}, "ReportGenerator._generate_summary": {"executed_lines": [125, 126, 128, 129, 130, 131, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 147, 148, 149, 151, 152, 156, 157, 161, 162, 167, 168], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 123}, "ReportGenerator._generate_query_analysis": {"executed_lines": [172, 175, 176, 182, 185, 186, 187, 190, 191, 192, 195, 196, 198, 199, 200, 201, 202, 205, 206, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 219, 222, 223, 227, 228, 232, 239, 242, 243, 244, 245, 251, 257, 258, 259, 260, 261, 262, 264, 265], "summary": {"covered_lines": 49, "num_statements": 49, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 170}, "ReportGenerator._generate_antipattern_summary": {"executed_lines": [269, 270, 273, 274, 275, 277, 278, 279, 280, 281, 282, 285, 287, 288, 291, 292, 295, 296, 301, 305, 308, 309, 310, 313, 316, 318], "summary": {"covered_lines": 26, "num_statements": 26, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 267}, "ReportGenerator._generate_recommendations_summary": {"executed_lines": [322, 323, 326, 328, 329, 330, 331, 338, 341, 342, 345, 348, 352, 355, 357], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 320}, "ReportGenerator._get_current_timestamp": {"executed_lines": [361], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 359}, "ReportGenerator._get_query_title": {"executed_lines": [365], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 363}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 10, 12, 15, 19, 25, 86, 123, 170, 267, 320, 359, 363], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"ReportGenerator": {"executed_lines": [20, 21, 22, 23, 42, 45, 46, 51, 52, 53, 54, 57, 58, 59, 60, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 82, 84, 99, 102, 103, 106, 109, 110, 112, 113, 116, 119, 121, 125, 126, 128, 129, 130, 131, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 147, 148, 149, 151, 152, 156, 157, 161, 162, 167, 168, 172, 175, 176, 182, 185, 186, 187, 190, 191, 192, 195, 196, 198, 199, 200, 201, 202, 205, 206, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 219, 222, 223, 227, 228, 232, 239, 242, 243, 244, 245, 251, 257, 258, 259, 260, 261, 262, 264, 265, 269, 270, 273, 274, 275, 277, 278, 279, 280, 281, 282, 285, 287, 288, 291, 292, 295, 296, 301, 305, 308, 309, 310, 313, 316, 318, 322, 323, 326, 328, 329, 330, 331, 338, 341, 342, 345, 348, 352, 355, 357, 361, 365], "summary": {"covered_lines": 160, "num_statements": 160, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 15}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 9, 10, 12, 15, 19, 25, 86, 123, 170, 267, 320, 359, 363], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}}}, "totals": {"covered_lines": 3339, "num_statements": 4155, "percent_covered": 80.36101083032491, "percent_covered_display": "80", "missing_lines": 816, "excluded_lines": 21, "percent_statements_covered": 80.36101083032491, "percent_statements_covered_display": "80"}}