populate_schema.py
    F 13:0 run - A (2)
setup.py
    F 25:0 get_requirements - A (4)
sanitycheck.py
    F 36:0 main - A (4)
    F 17:0 test_http_connection - A (3)
    F 31:0 time_remaining - A (1)
src/graph_populator.py
    M 112:4 GraphPopulator.construct_version_query - E (34)
    M 272:4 GraphPopulator.construct_package_query - D (27)
    C 16:0 GraphPopulator - C (13)
    M 19:4 GraphPopulator.construct_graph_nodes - B (6)
    M 77:4 GraphPopulator.sanitize_text_for_query - B (6)
    M 465:4 GraphPopulator.create_query_string - B (6)
    M 100:4 GraphPopulator.correct_license_splitting - A (3)
src/utils.py
    F 369:0 batch_query_executor - B (9)
    F 333:0 rectify_latest_version - B (7)
    F 150:0 get_all_versions - A (5)
    F 204:0 fetch_pkg_details_via_cve - A (5)
    F 78:0 get_latest_version_non_cve - A (4)
    F 107:0 update_non_cve_version - A (4)
    F 309:0 sync_all_latest_version - A (4)
    F 39:0 execute_gremlin_dsl - A (3)
    F 235:0 sync_all_non_cve_version - A (3)
    F 20:0 get_session_retry - A (2)
    F 57:0 get_current_version - A (2)
    F 125:0 update_non_cve_on_pkg - A (2)
    F 186:0 call_gremlin - A (2)
    F 265:0 sync_all_cve_source - A (2)
    F 289:0 rectify_cve_source - A (2)
    F 31:0 get_response_data - A (1)
    F 181:0 get_timestamp - A (1)
src/rest_api.py
    F 208:0 handle_properties - C (13)
    F 177:0 selective_ingest - B (6)
    F 153:0 create_nodes - A (5)
    F 287:0 cves_put_delete - A (5)
    F 313:0 snyk_cves_put_delete - A (5)
    F 36:0 sync_latest_version - A (4)
    F 130:0 ingest_to_graph - A (4)
    F 362:0 cvedb_version_put - A (4)
    F 99:0 sync_all - A (3)
    F 52:0 sync_latest_non_cve_version - A (2)
    F 66:0 sync_cve_source - A (2)
    F 339:0 cves_get - A (2)
    F 352:0 cvedb_version_get - A (2)
    F 385:0 setup_logging - A (2)
    F 23:0 readiness - A (1)
    F 29:0 liveness - A (1)
    F 80:0 pending - A (1)
    F 376:0 create_app - A (1)
src/graph_manager.py
    M 32:4 BayesianGraph.return_json_response_data - A (3)
    C 12:0 BayesianGraph - A (2)
    M 15:4 BayesianGraph.execute - A (2)
    M 41:4 BayesianGraph.is_index_created - A (2)
    M 54:4 BayesianGraph.is_schema_defined - A (2)
    M 70:4 BayesianGraph.populate_schema - A (2)
src/data_importer.py
    F 64:0 _import_keys_from_s3_http - C (20)
    F 205:0 import_epv_http - C (11)
    M 384:4 PostgresHandler._generate_fetch_query - B (8)
    F 282:0 create_graph_nodes - B (6)
    M 332:4 PostgresHandler.fetch_pending_epvs - B (6)
    C 322:0 PostgresHandler - A (4)
    M 422:4 PostgresHandler._generate_count_query - A (4)
    F 19:0 parse_int_or_none - A (3)
    F 46:0 _other_key_info - A (3)
    F 268:0 import_epv_from_s3_http - A (3)
    F 34:0 _first_key_info - A (2)
    F 186:0 _log_report_msg - A (2)
    F 56:0 _get_exception_msg - A (1)
    M 325:4 PostgresHandler.__init__ - A (1)
    M 367:4 PostgresHandler.mark_epv_synced - A (1)
src/cve.py
    M 21:4 SnykCVEPut.validate_input - C (12)
    M 238:4 CVEPut.validate_input - C (12)
    M 106:4 SnykCVEPut.get_qstring_for_cve_node - B (9)
    M 39:4 SnykCVEPut.create_pv_nodes - B (8)
    M 423:4 CVEGet.get - B (7)
    M 158:4 SnykCVEPut.process - B (6)
    M 265:4 CVEPut.process - B (6)
    M 201:4 SnykCVEDelete.validate_input - A (5)
    M 298:4 CVEPut.create_pv_nodes - A (5)
    M 344:4 CVEPut.get_qstring_for_cve_node - A (5)
    M 385:4 CVEDelete.validate_input - A (5)
    C 12:0 SnykCVEPut - A (4)
    C 230:0 CVEPut - A (4)
    M 82:4 SnykCVEPut._get_bindings - A (2)
    M 145:4 SnykCVEPut.get_qstrings_for_edges - A (2)
    C 193:0 SnykCVEDelete - A (2)
    M 256:4 CVEPut._get_default_bindings - A (2)
    M 331:4 CVEPut.get_qstrings_for_edges - A (2)
    C 377:0 CVEDelete - A (2)
    C 414:0 CVEGet - A (2)
    C 467:0 CVEDBVersion - A (2)
    M 470:4 CVEDBVersion.get - A (2)
    M 15:4 SnykCVEPut.__init__ - A (1)
    M 100:4 SnykCVEPut._get_default_bindings - A (1)
    M 135:4 SnykCVEPut.prepare_payload - A (1)
    M 196:4 SnykCVEDelete.__init__ - A (1)
    M 211:4 SnykCVEDelete.process - A (1)
    M 216:4 SnykCVEDelete.prepare_payload - A (1)
    M 233:4 CVEPut.__init__ - A (1)
    M 367:4 CVEPut.prepare_payload - A (1)
    M 380:4 CVEDelete.__init__ - A (1)
    M 395:4 CVEDelete.process - A (1)
    M 400:4 CVEDelete.prepare_payload - A (1)
    M 417:4 CVEGet.__init__ - A (1)
    M 432:4 CVEGet.get_cves_for_ecosystem - A (1)
    M 438:4 CVEGet.get_cves_for_ecosystem_name - A (1)
    M 444:4 CVEGet.get_cves_for_ecosystem_name_version - A (1)
    M 450:4 CVEGet.get_cves - A (1)
    M 457:4 CVEGet.prepare_payload - A (1)
    M 480:4 CVEDBVersion.put - A (1)
src/data_source/abstract_data_source.py
    C 6:0 AbstractDataSource - A (1)
    M 9:4 AbstractDataSource.get_source_name - A (1)
    M 13:4 AbstractDataSource.list_files - A (1)
    M 17:4 AbstractDataSource.read_json_file - A (1)
src/data_source/s3_data_source.py
    M 49:4 S3DataSource.list_files - B (7)
    C 10:0 S3DataSource - A (3)
    M 15:4 S3DataSource.__init__ - A (2)
    M 40:4 S3DataSource.read_json_file - A (2)
    M 36:4 S3DataSource.get_source_name - 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)
test/test_rest_api.py
    F 146:0 test_selective_ingest_empty - B (7)
    F 48:0 test_sync_all - B (6)
    F 63:0 test_ingest_to_graph - B (6)
    F 84:0 test_ingest_to_graph_source - B (6)
    F 551:0 test_sync_latest_version - B (6)
    F 502:0 test_cvedb_version_get - A (5)
    F 518:0 test_cvedb_version_put - A (5)
    F 604:0 test_sync_latest_non_cve_version - A (5)
    F 638:0 test_sync_cve_source - A (5)
    F 35:0 test_pending - A (4)
    F 536:0 test_cvedb_version_put_invalid_input - A (4)
    F 107:0 test_ingest_to_graph_valid - A (3)
    F 180:0 test_selective_ingest_nonempty - A (3)
    F 196:0 test_selective_ingest_valid - A (3)
    F 216:0 test_selective_ingest_valid_source - A (3)
    F 287:0 test_create_blank_nodes_invalid - A (3)
    F 305:0 test_create_blank_nodes_empty - A (3)
    F 319:0 test_create_blank_nodes_valid - A (3)
    F 358:0 test_snyk_cves_put - A (3)
    F 373:0 test_snyk_cves_put_invalid_input - A (3)
    F 388:0 test_snyk_cves_delete - A (3)
    F 403:0 test_snyk_cves_delete_invalid_input - A (3)
    F 418:0 test_cves_put - A (3)
    F 433:0 test_cves_put_invalid_input - A (3)
    F 448:0 test_cves_delete - A (3)
    F 463:0 test_cves_delete_invalid_input - A (3)
    F 17:0 test_readiness - A (2)
    F 26:0 test_liveness - A (2)
    F 127:0 test_ingest_to_graph_report - A (2)
    F 238:0 test_handle_properties_put - A (2)
    F 265:0 test_handle_properties_delete - A (2)
    F 339:0 test_create_blank_nodes_report_status - A (2)
    F 478:0 test_cves_get_e - A (2)
    F 490:0 test_cves_get_ep - A (2)
test/test_postgres_handler.py
    F 14:0 test_fetch_pending_list - A (2)
test/test_insertion_from_minio.py
    F 35:0 test_create_minio_bucket - B (6)
    F 78:0 test_insertion - A (4)
    F 101:0 test_insertion_not_exists - A (4)
test/test_init.py
    F 6:0 test_logger - A (2)
test/test_cve.py
    F 91:0 test_snyk_cve_put_get_qstring_for_cve_node - C (12)
    F 183:0 test_cve_put_get_qstring_for_cve_node - C (11)
    F 121:0 test_snyk_create_pv_nodes - B (8)
    F 313:0 test_cve_get_ep - B (8)
    F 212:0 test_create_pv_nodes - B (7)
    F 297:0 test_cve_get_e - B (7)
    F 282:0 test_cve_delete_prepare_payload - B (6)
    F 330:0 test_cve_get_epv - B (6)
    F 362:0 test_snyk_cve_delete_prepare_payload - A (5)
    F 83:0 test_snyk_cve_put_creation - A (3)
    F 139:0 test_snyk_create_pv_nodes_fail - A (3)
    F 175:0 test_cve_put_creation - A (3)
    F 229:0 test_create_pv_nodes_fail - A (3)
    F 274:0 test_cve_delete_creation - A (3)
    F 354:0 test_snyk_cve_delete_creation - A (3)
    F 113:0 test_snyk_cve_put_get_qstrings_for_edges - A (2)
    F 204:0 test_cve_put_get_qstrings_for_edges - A (2)
    F 152:0 test_snyk_put_process_epv_fail - A (1)
    F 161:0 test_snyk_put_process_cve_fail - A (1)
    F 242:0 test_put_process_epv_fail - A (1)
    F 251:0 test_put_process_cve_fail - A (1)
test/test_data_importer.py
    F 13:0 test_parse_int_or_none_for_integer_input_overflows - B (9)
    F 36:0 test_parse_int_or_none_for_string_input - B (7)
    F 46:0 test_parse_int_or_none_for_unicode_string_input - B (7)
    F 27:0 test_parse_int_or_none_for_float_input - B (6)
    F 56:0 test_parse_int_or_none_for_invalid_input - B (6)
    F 6:0 test_parse_int_or_none_for_integer_input - A (4)
    F 65:0 test_get_exception_msg - A (3)
test/test_s3_data_source.py
    F 23:0 test_list_files - B (7)
    F 45:0 test_read_json_file - A (5)
    F 10:0 test_get_source_name - A (4)
test/test_utils.py
    F 227:0 test_get_all_versions - A (5)
    F 115:0 test_rectify_latest_version - A (4)
    F 18:0 test_get_current_version - A (3)
    F 149:0 test_rectify_latest_version2 - A (3)
    F 180:0 test_get_latest_version_non_cve - A (3)
    F 197:0 test_update_non_cve_version - A (3)
    F 245:0 test_fetch_pkg_details_via_cve - A (3)
    F 291:0 test_sync_all_cve_source - A (3)
    F 310:0 test_rectify_cve_source - A (3)
    F 25:0 test_execute_gremlin_dsl - A (2)
    F 68:0 test_execute_gremlin_dsl2 - A (2)
    F 85:0 test_get_timestamp - A (2)
    F 92:0 test_gremlin_call - A (2)
    F 99:0 test_bad_gremlin_call - A (2)
    F 107:0 test_sync_all_latest_version - A (2)
    F 265:0 test_sync_all_non_cve_version - A (2)
    C 41:0 MockedSession - A (2)
    M 48:4 MockedSession.post - A (2)
    M 44:4 MockedSession.__init__ - A (1)
    C 56:0 MockedResponse - A (1)
    M 59:4 MockedResponse.__init__ - A (1)
    M 63:4 MockedResponse.status_code - A (1)
test/test_graph_manager.py
    F 11:0 test_execute_invalid_query - A (3)
    F 21:0 test_return_json_response_data - A (3)
    F 32:0 test_is_index_created - A (2)
    F 39:0 test_is_schema_defined - A (2)
test/conftest.py
    F 8:0 app - A (1)
    C 14:0 RequestsMockResponse - A (1)
    M 17:4 RequestsMockResponse.__init__ - A (1)
    M 23:4 RequestsMockResponse.json - A (1)
test/test_graph_populator.py
    F 11:0 test_sanitize_text_for_query - B (10)
    F 49:0 test_sanitize_text_for_query_for_unicode_input - B (10)
    F 25:0 test_sanitize_text_for_query_whitespace_characters - B (9)
    F 63:0 test_sanitize_text_for_query_whitespace_characters_in_unicode - B (8)
    F 175:0 test_construct_version_query_4 - B (7)
    F 231:0 test_construct_package_query - B (7)
    F 92:0 test_construct_version_query_1 - B (6)
    F 38:0 test_sanitize_text_for_query_exception_handling - A (4)
    F 112:0 test_construct_version_query_2 - A (4)
    F 154:0 test_construct_version_query_3 - A (4)
    F 75:0 test_correct_license_splitting - A (3)
    F 305:0 test_create_query_string - A (1)

233 blocks (classes, functions, methods) analyzed.
Average complexity: A (3.866952789699571)