run.py
    F 86:0 run - C (18)
    F 60:0 _filter_collection - A (3)
    F 36:0 _log_results - A (1)
tests/test_config.py
    F 216:0 test_runtime_config_attribute_cvejob_use_nvd_toolkit - B (9)
    F 39:0 test_default_config_attribute_values_not_nil - B (8)
    F 27:0 test_default_config_attribute_values_nil - B (6)
    F 87:0 test_runtime_config_attribute_cve_age - A (5)
    F 72:0 test_runtime_config_attribute_ecosystem - A (4)
    F 106:0 test_runtime_config_attribute_cvejob_feed_dir - A (4)
    F 141:0 test_runtime_config_attribute_cvejob_date_range - A (4)
    F 156:0 test_runtime_config_attribute_cvejob_cve_id - A (4)
    F 171:0 test_runtime_config_attribute_cvejob_package_name - A (4)
    F 186:0 test_runtime_config_attribute_cvejob_cpe2pkg_path - A (4)
    F 201:0 test_runtime_config_attribute_cvejob_pkgfile_dir - A (4)
    F 251:0 test_runtime_config_attribute_cvejob_nvd_toolkit_export_dir - A (4)
    F 15:0 test_default_config_attributes - A (3)
    F 59:0 test_runtime_config_attributes - A (3)
    F 121:0 test_runtime_config_attribute_cvejob_feed_names - A (3)
    F 9:0 test_default_config_constructor - A (2)
    F 53:0 test_runtime_config - A (2)
    F 67:0 unset_environment_variable - A (1)
tests/test_utils.py
    M 55:4 TestUtils.test_parse_date_range - A (4)
    C 16:0 TestUtils - A (3)
    M 19:4 TestUtils.test_get_cpe - A (2)
    M 40:4 TestUtils.test_get_description_by_lang - A (2)
tests/test_version.py
    F 5:0 test_version_basic - C (13)
    F 22:0 test_version_trailing_zeros - B (7)
    F 32:0 test_version_complex - B (6)
    F 61:0 test_repr - A (3)
    F 41:0 test_version_exact - A (2)
    F 46:0 test_version_loose - A (2)
    F 51:0 test_hash - A (2)
tests/conftest.py
    F 11:0 javascript_cve - A (2)
    F 19:0 maven_cve - A (2)
    F 27:0 python_cve - A (2)
    F 35:0 maven_vertx_cve - A (2)
    F 43:0 rejected_cve - A (2)
    F 51:0 unsupported_cve - A (2)
    F 59:0 unsupported_cve_none_versions - A (2)
    F 70:0 cpe2pkg_tool - A (2)
    F 80:0 config - A (1)
tests/test_cpe2pkg.py
    F 10:0 test_package_name_candidate - B (9)
    F 28:0 test_package_name_candidate_bad - A (5)
    F 69:0 test_run_cpe2pkg - A (4)
    F 44:0 test_get_pkgfile_path - A (2)
    F 54:0 test_build_cpe2pkg_query - A (2)
tests/test_version_utils.py
    F 305:0 test_get_safe_ranges - C (12)
    F 11:0 test_get_ranges_from_cve - C (11)
    F 177:0 test_version_spec_cmp_misc - B (10)
    F 210:0 test_version_range - B (10)
    F 151:0 test_version_spec_cmp_ge_gt - B (9)
    F 164:0 test_version_spec_cmp_le_lt - B (9)
    F 259:0 test_get_affected_ranges - B (9)
    F 88:0 test_version_operator - B (8)
    F 191:0 test_version_spec_from_str - B (8)
    F 129:0 test_version_spec_lt - B (7)
    F 140:0 test_version_spec_gt - B (7)
    F 369:0 test_get_upstream_versions - B (7)
    F 101:0 test_version_spec_le - B (6)
    F 228:0 test_version_range_from_list - B (6)
    F 61:0 test_get_ranges_from_cve_invalid - A (5)
    F 111:0 test_version_spec_ge - A (5)
    F 120:0 test_version_spec_eq - A (5)
    F 248:0 test_classify_versions - A (4)
    F 73:0 test_get_configuration_nodes - A (3)
    F 81:0 test_get_version_ranges - A (2)
tests/selectors/test_basic.py
    F 8:0 test_basic_selector - A (3)
    F 20:0 test_basic_selector_none_versions - A (2)
tests/versions/test_version_identifier.py
    F 6:0 test_nvd_versions - B (7)
tests/identifiers/test_naive.py
    F 8:0 test_naive_basic - A (3)
    F 23:0 test_get_identifier_cls - A (3)
tests/filters/test_input.py
    F 26:0 test_not_older_than_check_evaluate - A (4)
    F 90:0 test_rejected_cve - A (3)
    F 18:0 test_not_older_than_check - A (2)
    F 34:0 test_not_unsupported_file_extension_check - A (2)
    F 40:0 test_not_under_analysis_check - A (2)
    F 46:0 test_is_supported_github_language_check - A (2)
    F 54:0 test_is_security_project - A (2)
    F 68:0 test_affects_application_check - A (2)
    F 74:0 test_not_unexpected_site_in_references_check - A (2)
    F 82:0 test_not_unexpected_site_in_references_check_fail - A (2)
    F 101:0 test_cve_id_cve_age - A (2)
    F 116:0 test_validate_cve_exclude - A (2)
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)
scripts/get_python_packages.py
    F 8:0 get_package_names - A (3)
cvejob/utils.py
    F 19:0 get_cpe - C (14)
    F 62:0 get_description_by_lang - A (3)
    F 76:0 parse_date_range - A (2)
cvejob/version_utils.py
    F 21:0 get_ranges_from_cve - B (10)
    M 218:4 VersionRange.from_list - B (8)
    F 75:0 get_configuration_nodes - B (6)
    F 257:0 classify_versions - B (6)
    F 360:0 get_upstream_versions - B (6)
    F 284:0 get_affected_ranges - A (3)
    F 322:0 get_safe_ranges - A (3)
    C 189:0 VersionRange - A (3)
    M 245:4 VersionRange.__str__ - A (3)
    F 99:0 get_version_ranges - A (2)
    M 132:4 VersionSpec.contains - A (2)
    M 174:4 VersionSpec.__gt__ - A (2)
    M 178:4 VersionSpec.__lt__ - A (2)
    M 182:4 VersionSpec.__ge__ - A (2)
    M 185:4 VersionSpec.__le__ - A (2)
    M 192:4 VersionRange.__init__ - A (2)
    M 199:4 VersionRange.contains - A (2)
    C 51:0 ClassifiedVersion - A (1)
    M 57:4 ClassifiedVersion.__init__ - A (1)
    M 66:4 ClassifiedVersion.__str__ - A (1)
    M 69:4 ClassifiedVersion.__repr__ - A (1)
    C 108:0 VersionOperator - A (1)
    C 121:0 VersionSpec - A (1)
    M 127:4 VersionSpec.__init__ - A (1)
    M 155:4 VersionSpec.from_str - A (1)
    M 164:4 VersionSpec.__str__ - A (1)
    M 167:4 VersionSpec.__eq__ - A (1)
    M 170:4 VersionSpec.__ne__ - A (1)
    M 210:4 VersionRange.from_range_list - A (1)
    M 253:4 VersionRange.__repr__ - A (1)
cvejob/config.py
    M 47:4 RuntimeConfig.__init__ - C (12)
    C 44:0 RuntimeConfig - B (7)
    C 6:0 DefaultConfig - A (1)
    M 95:4 RuntimeConfig.__getattr__ - A (1)
cvejob/version.py
    M 31:4 BenevolentVersion._parse - C (17)
    C 5:0 BenevolentVersion - A (2)
    M 98:4 BenevolentVersion.__str__ - A (2)
    M 16:4 BenevolentVersion.__init__ - A (1)
    M 21:4 BenevolentVersion.exact - A (1)
    M 26:4 BenevolentVersion.loose - A (1)
    M 77:4 BenevolentVersion.__eq__ - A (1)
    M 80:4 BenevolentVersion.__ne__ - A (1)
    M 83:4 BenevolentVersion.__lt__ - A (1)
    M 86:4 BenevolentVersion.__le__ - A (1)
    M 89:4 BenevolentVersion.__gt__ - A (1)
    M 92:4 BenevolentVersion.__ge__ - A (1)
    M 95:4 BenevolentVersion.__repr__ - A (1)
    M 101:4 BenevolentVersion.__hash__ - A (1)
cvejob/cpe2pkg.py
    M 16:4 PackageNameCandidate.__init__ - A (4)
    F 64:0 run_cpe2pkg - A (3)
    M 42:4 PackageNameCandidate.from_cpe2pkg_output - A (2)
    F 59:0 get_pkgfile_path - A (1)
    F 93:0 build_cpe2pkg_query - A (1)
    C 13:0 PackageNameCandidate - A (1)
    M 30:4 PackageNameCandidate.__repr__ - A (1)
    M 33:4 PackageNameCandidate.__eq__ - A (1)
    M 36:4 PackageNameCandidate.__lt__ - A (1)
    M 39:4 PackageNameCandidate.__le__ - A (1)
cvejob/selectors/basic.py
    M 30:4 VersionSelector.pick_winner - B (8)
    M 54:4 VersionSelector.get_versions_from_cve - A (5)
    C 14:0 VersionSelector - A (4)
    M 17:4 VersionSelector.__init__ - A (1)
    M 73:4 VersionSelector._evaluate_package - A (1)
cvejob/outputs/victims.py
    M 115:4 VictimsYamlOutput.format_list - A (5)
    M 76:4 VictimsYamlOutput.write - A (4)
    C 12:0 VictimsYamlOutput - A (2)
    M 20:4 VictimsYamlOutput.__init__ - A (2)
    M 51:4 VictimsYamlOutput.cve - A (1)
    M 56:4 VictimsYamlOutput.affected_versions - A (1)
    M 61:4 VictimsYamlOutput.safe_versions - A (1)
    M 66:4 VictimsYamlOutput.winner - A (1)
    M 71:4 VictimsYamlOutput.candidates - A (1)
cvejob/versions/version_identifier.py
    C 10:0 NVDVersions - A (1)
    M 13:4 NVDVersions.__init__ - A (1)
    M 24:4 NVDVersions.run - A (1)
cvejob/identifiers/nvdtoolkit.py
    C 12:0 NvdToolkitPackageNameIdentifier - A (3)
    M 15:4 NvdToolkitPackageNameIdentifier.identify - A (3)
cvejob/identifiers/naive.py
    M 62:4 NaivePackageNameIdentifier._guess_from_sentence - A (4)
    M 92:4 NaivePackageNameIdentifier.identify - A (3)
    M 110:4 NaivePackageNameIdentifier._run_cpe2pkg - A (3)
    C 17:0 NaivePackageNameIdentifier - A (2)
    M 31:4 NaivePackageNameIdentifier._get_vendor_product_pairs - A (2)
    M 46:4 NaivePackageNameIdentifier._get_candidates_from_description - A (2)
    M 24:4 NaivePackageNameIdentifier.__init__ - A (1)
cvejob/identifiers/__init__.py
    F 10:0 get_identifier_cls - A (2)
cvejob/filters/input.py
    F 24:0 validate_cve - B (9)
    C 236:0 NotUnexpectedSiteInReferencesCheck - B (9)
    M 257:4 NotUnexpectedSiteInReferencesCheck.check - B (9)
    M 166:4 IsSupportedGitHubLanguageCheck.check - B (7)
    M 148:4 IsSupportedGitHubLanguageCheck.is_security_project - B (6)
    C 107:0 NotUnsupportedFileExtensionCheck - A (5)
    M 110:4 NotUnsupportedFileExtensionCheck.check - A (5)
    C 130:0 IsSupportedGitHubLanguageCheck - A (5)
    C 76:0 NotOlderThanCheck - A (2)
    M 88:4 NotOlderThanCheck.check - A (2)
    M 97:4 NotOlderThanCheck.evaluate - A (2)
    M 139:4 IsSupportedGitHubLanguageCheck.__init__ - A (2)
    C 223:0 AffectsApplicationCheck - A (2)
    M 229:4 AffectsApplicationCheck.check - A (2)
    C 64:0 CveCheck - A (1)
    M 67:4 CveCheck.__init__ - A (1)
    M 71:4 CveCheck.check - A (1)
    C 122:0 NotUnderAnalysisCheck - A (1)
    M 125:4 NotUnderAnalysisCheck.check - A (1)

195 blocks (classes, functions, methods) analyzed.
Average complexity: A (3.5025641025641026)