setup.py
    F 25:0 get_requirements - A (4)
f8a_report/s3_helper.py
    M 16:4 S3Helper.__init__ - C (12)
    M 55:4 S3Helper.s3_client - B (6)
    M 109:4 S3Helper.list_objects - B (6)
    C 13:0 S3Helper - A (5)
    M 93:4 S3Helper.read_json_object - A (4)
    M 129:4 S3Helper.store_file_object - A (3)
    M 83:4 S3Helper.store_json_content - A (2)
f8a_report/unknown_deps_report_helper.py
    M 18:4 UnknownDepsReportHelper.get_unknown_list - A (5)
    C 11:0 UnknownDepsReportHelper - A (2)
    M 51:4 UnknownDepsReportHelper.get_current_ingestion_status - A (2)
    M 14:4 UnknownDepsReportHelper.__init__ - A (1)
    M 37:4 UnknownDepsReportHelper.get_past_unknown_deps - A (1)
f8a_report/sentry_report_helper.py
    M 92:4 SentryReportHelper.retrieve_events - C (14)
    M 49:4 SentryReportHelper.normalize_sentry_data - B (7)
    C 12:0 SentryReportHelper - B (6)
    M 27:4 SentryReportHelper.retrieve_sentry_logs - A (4)
    M 15:4 SentryReportHelper.__init__ - A (1)
f8a_report/graph_report_generator.py
    F 58:0 generate_report_for_cves - B (10)
    F 253:0 batch_query_executor - B (9)
    F 159:0 generate_report_for_latest_version - B (6)
    F 127:0 find_ingested_epv - A (5)
    F 29:0 rectify_latest_version - A (4)
    F 95:0 generate_report_for_unknown_epvs - A (4)
    F 210:0 execute_gremlin_dsl - A (3)
    F 227:0 get_session_retry - A (2)
    F 246:0 get_value - A (2)
    F 238:0 get_response_data - A (1)
f8a_report/manifest_helper.py
    M 65:4 FilterStacks.filter_stacks_on_ecosystem - B (8)
    C 62:0 FilterStacks - A (4)
    M 101:4 FilterStacks.clean_stacks - A (4)
    M 44:4 GetReport.generate_manifest_for_maven - A (3)
    C 15:0 GetReport - A (2)
    M 18:4 GetReport.__init__ - A (2)
    M 26:4 GetReport.generate_manifest_for_pypi - A (2)
    M 35:4 GetReport.generate_manifest_for_npm - A (2)
    F 112:0 manifest_interface - A (1)
    M 54:4 GetReport.save_manifest_to_s3 - A (1)
    M 95:4 FilterStacks.filter_stacks_on_size - A (1)
f8a_report/main.py
    F 20:0 main - A (4)
    F 14:0 time_to_generate_monthly_report - A (1)
f8a_report/report_helper.py
    M 605:4 ReportHelper.generate_results - C (16)
    M 392:4 ReportHelper.normalize_worker_data - C (15)
    M 288:4 ReportHelper.store_training_data - B (8)
    M 804:4 ReportHelper.get_report - B (7)
    M 205:4 ReportHelper.collate_raw_data - B (6)
    M 169:4 ReportHelper.populate_key_count - A (5)
    M 265:4 ReportHelper.get_training_data_for_ecosystem - A (5)
    M 724:4 ReportHelper.populate_default_information - A (5)
    M 105:4 ReportHelper.retrieve_stack_analyses_ids - A (4)
    M 701:4 ReportHelper.check_latest_node - A (4)
    C 41:0 ReportHelper - A (3)
    M 187:4 ReportHelper.set_unique_stack_deps_count - A (3)
    M 237:4 ReportHelper.invoke_emr_api - A (3)
    M 558:4 ReportHelper.retrieve_worker_results - A (3)
    M 755:4 ReportHelper.normalize_ingestion_data - A (3)
    M 68:4 ReportHelper.cleanup_db_tables - A (2)
    M 97:4 ReportHelper.validate_and_process_date - A (2)
    M 138:4 ReportHelper.retrieve_stack_analyses_content - A (2)
    M 197:4 ReportHelper.normalize_deps_list - A (2)
    M 357:4 ReportHelper.save_result - A (2)
    M 368:4 ReportHelper.get_report_name - A (2)
    M 844:4 ReportHelper.re_train - A (2)
    C 27:0 Postgres - A (1)
    M 30:4 Postgres.__init__ - A (1)
    M 44:4 ReportHelper.__init__ - A (1)
    M 133:4 ReportHelper.get_time_delta - A (1)
    M 159:4 ReportHelper.flatten_list - A (1)
    M 163:4 ReportHelper.datediff_in_millisecs - A (1)
    M 330:4 ReportHelper.get_trending - A (1)
    M 334:4 ReportHelper.get_ecosystem_summary - A (1)
    M 375:4 ReportHelper.collate_and_retrain - A (1)
    M 382:4 ReportHelper.create_venus_report - A (1)
    M 587:4 ReportHelper.retrieve_ingestion_results - A (1)
f8a_report/cve_helper.py
    M 50:4 CVE.validate_cveids_in_graph - B (7)
    M 25:4 CVE.get_cveids_from_cvedb_prs - A (5)
    M 93:4 CVE.call_github_api - A (5)
    M 114:4 CVE.get_open_cves_count - A (5)
    C 13:0 CVE - A (4)
    M 135:4 CVE.generate_cve_report - A (3)
    M 82:4 CVE.get_fp_cves_count - A (2)
    M 16:4 CVE.__init__ - A (1)
tests/test_stack_report_helper.py
    F 158:0 test_retrieve_stack_analyses_ids_wrong_dates - C (13)
    F 204:0 test_flatten_list_already_flat_list - B (7)
    F 117:0 test_validate_and_process_date_no_real_dates - A (5)
    F 128:0 test_validate_and_process_date_failure - A (5)
    F 367:0 test_normalize_worker_data - A (5)
    F 197:0 test_flatten_list - A (4)
    F 108:0 test_validate_and_process_date_success - A (3)
    F 191:0 test_flatten_list_empty_input - A (3)
    F 225:0 test_datediff_in_millisecs - A (3)
    F 243:0 test_datediff_in_millisecs_one_sec_change - A (3)
    F 250:0 test_datediff_in_millisecs_one_day_change - A (3)
    F 269:0 test_normalize_deps_list_sorted - A (3)
    F 286:0 test_populate_key_count_failure - A (3)
    F 151:0 test_retrieve_stack_analyses_ids - A (2)
    F 219:0 test_datediff_in_millisecs_same_dates - A (2)
    F 236:0 test_datediff_in_millisecs_no_negative_result - A (2)
    F 257:0 test_normalize_deps_list - A (2)
    F 263:0 test_normalize_deps_list_empty_input - A (2)
    F 280:0 test_populate_key_count_success - A (2)
    F 293:0 test_store_training_data - A (2)
    F 301:0 test_get_training_data_for_eco - A (2)
    F 308:0 test_collate_raw_data - A (2)
    F 351:0 test_invoke_emr_api_success - A (2)
    F 359:0 test_invoke_emr_api_failure - A (2)
    F 387:0 test_normalize_worker_data_no_stack_aggregator - A (2)
    F 399:0 test_get_report - A (2)
    F 414:0 test_get_report_negative_results - A (2)
    F 427:0 test_retrieve_worker_results - A (2)
    F 433:0 test_normalize_ingestion_data - A (2)
    F 442:0 test_get_trending - A (2)
    F 450:0 test_re_train - A (2)
    F 459:0 test_create_venus_report - A (2)
    F 466:0 test_collate_and_retrain - A (2)
    F 317:0 mock_emr_api - A (1)
    F 334:0 mock_emr_api_fail - A (1)
    C 139:0 MockPostgres - A (1)
    M 142:4 MockPostgres.execute - A (1)
    M 146:4 MockPostgres.fetchall - A (1)
tests/test_sentry_report_helper.py
    F 95:0 test_retrieve_sentry_logs_success - A (2)
    F 117:0 test_retrieve_sentry_logs_failure - A (2)
    F 123:0 test_retrieve_sentry_logs_nostacktrace - A (2)
tests/test_main.py
    F 62:0 test_environment - A (5)
    F 43:0 test_time_to_generate_monthly_report - A (3)
    F 52:0 test_main - A (2)
    C 11:0 TodayMockClass - A (1)
    M 14:4 TodayMockClass.__init__ - A (1)
    C 19:0 MockReportHelper - A (1)
    M 22:4 MockReportHelper.get_report - A (1)
    M 27:4 MockReportHelper.re_train - A (1)
    M 32:4 MockReportHelper.cleanup_db_tables - A (1)
    M 37:4 MockReportHelper.retrieve_stack_analyses_content - A (1)
tests/test_manifest_helper.py
    F 19:0 test_manifests_helper - A (2)
    F 24:0 test_generate_manifest_for_pypi - A (2)
    F 32:0 test_generate_manifest_for_npm - A (2)
    F 40:0 test_generate_manifest_for_maven - A (2)
    F 48:0 test_save_manifest_to_s3 - A (2)
    F 60:0 test_clean_stacks - A (2)
    F 68:0 test_filter_stack_on_size - A (2)
    F 75:0 test_manifests_interface - A (2)
    F 82:0 test_filter_stacks_on_ecosystem - A (2)
tests/test_cve_helper.py
    F 88:0 test_validate_cveids_in_graph - B (8)
    F 75:0 test_get_cveids_from_cvedb_prs - A (5)
    F 111:0 test_get_fp_cves_count - A (4)
    F 124:0 test_call_github_api - A (3)
    F 35:0 mock_graph_post_error - A (2)
    F 55:0 mock_graph_post - A (2)
    F 138:0 test_get_open_cves_count - A (2)
    F 147:0 test_generate_cve_report - A (2)
    F 17:0 mock_github_get - A (1)
tests/test_s3_helper.py
    F 34:0 test_read_json_object - A (3)
    F 47:0 test_list_objects - A (3)
    F 13:0 test_s3_helper - A (2)
    F 18:0 test_s3_client - A (2)
    F 60:0 test_store_file_object - A (2)
    F 25:0 test_store_json_content - A (1)
tests/test_unknown_deps_report_helper.py
    F 36:0 test_get_current_ingestion_status - A (5)
    F 31:0 test_get_unknown_list - A (2)
tests/test_graph_report_generator.py
    F 152:0 test_generate_report_for_latest_version - B (7)
    F 217:0 test_find_ingested_epv - A (5)
    F 177:0 test_generate_report_for_cves - A (4)
    F 133:0 test_generate_report_for_unknown_epvs - A (3)
    F 201:0 test_execute_gremlin_dsl - A (2)
    F 237:0 test_rectify_latest_version - A (2)
    F 251:0 test_rectify_latest_version2 - A (2)
    F 10:0 mock_post_with_payload_check - A (1)
    F 28:0 mock_response - A (1)
    F 45:0 mock_response1 - A (1)
    F 74:0 mock_response2 - A (1)
    F 116:0 mock_response3 - A (1)
tools/check_python_version.py
    F 19:0 get_expected_version - A (4)
    F 48:0 compare_versions - A (2)
    F 59:0 main - A (2)
    F 43:0 get_actual_version - A (1)

175 blocks (classes, functions, methods) analyzed.
Average complexity: A (3.125714285714286)