{"added_deps_external":[],"added_deps_external_complete":[],"removed_deps":[{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/dedup_key","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/elem_as_bom_data","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_add_element_location","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_transitive_components_and_dependencies"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_add_vcs_reference","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_transitive_components_and_dependencies"}],"removed_deps_external":[],"removed_deps_external_complete":[],"added_deps":[{"used_role":"Production","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/deptype_base","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py","test_to_prod_coupling_impact":"0.6535889953374863"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/DECLARING_SCOPE_ATTRIBUTE","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py","test_to_prod_coupling_impact":"0.6535889953374863"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/DECLARING_SCOPE_SEPARATOR","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py","test_to_prod_coupling_impact":"0.6535889953374863"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_declared_within_reach","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_report_unrecognized_package_edges","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/deptype_base","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_package_identity_in_subtree","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_sbom_for_content_element"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_sbom_for_content_element"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_external_dependency_entries","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_sbom_for_content_element"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_externals_hanging_off_element","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_sbom_for_content_element"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_external_dependency_entries","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_transitive_components_and_dependencies"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_externals_hanging_off_element","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_transitive_components_and_dependencies"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_keep_the_shorter_depth","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_transitive_components_and_dependencies"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/bom_ref","type":"typeref_member","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_internal_element_component"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_add_vcs_reference","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_internal_element_component"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_add_element_location","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_internal_element_component"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_package_identity_in_subtree","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_internal_element_component"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_depth_property","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_keep_the_shorter_depth"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_has_incoming_from_outside","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_package_identity_in_subtree"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.0","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/extract_version","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_package_identity_in_subtree"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_third_party_components_are_untouched_by_internal_inlining"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_transitive_view_still_inlines_an_internal_element_without_identity"},{"used_role":"Production","imported_as":"SElementAssociation","upstream_impact":"0.0","user_role":"Test","test_to_prod_directed_unique_association":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py --> /sgraph/sgraph/src> sgraph/sgraph.py/SElementAssociation","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SElementAssociation","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/declare","test_to_prod_coupling_impact":"1.4769606404006481"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/dependency_entries"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/published_package_model","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_package_element","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/published_package_model"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_closure_that_followed_an_edge_reports_nothing"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_closure_that_followed_an_edge_reports_nothing"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_closure_that_followed_an_edge_reports_nothing"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_declaring_scope_changes_nothing_without_the_closure_flag"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_declaring_scope_changes_nothing_without_the_closure_flag"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_default_mode_document_reports_no_skipped_deptype"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_default_mode_document_reports_no_skipped_deptype"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_dev_prefixed_deptype_traverses_exactly_like_its_base"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_dev_prefixed_deptype_traverses_exactly_like_its_base"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_dev_prefixed_deptype_traverses_exactly_like_its_base"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_with_identity_is_a_component_and_keeps_its_link"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_with_identity_is_a_component_and_keeps_its_link"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_with_identity_is_a_component_and_keeps_its_link"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_with_identity_is_a_component_and_keeps_its_link"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_without_identity_is_only_a_bom_link"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_without_identity_is_only_a_bom_link"},{"used_role":"ExistingExternal","imported_as":"get_model_and_model_api","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_without_identity_is_only_a_bom_link"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_without_identity_is_only_a_bom_link"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directly_used_internal_dependency_without_identity_is_only_a_bom_link"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directory_level_export_still_excludes_a_sibling_repositorys_edges"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directory_level_export_still_excludes_a_sibling_repositorys_edges"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directory_level_export_still_follows_its_repositorys_edges"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_directory_level_export_still_follows_its_repositorys_edges"},{"used_role":"Production","imported_as":"SElement","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SElement","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_finding_under_a_versioned_external_is_never_a_component","test_to_prod_coupling_impact":"0.7269606404006481"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_finding_under_a_versioned_external_is_never_a_component"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_finding_under_a_versioned_external_is_never_a_component"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_finding_under_a_versioned_external_is_never_a_component"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/dependency_entries","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_hop_from_an_undescribed_package_still_leaves_its_target_in_the_graph"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_hop_from_an_undescribed_package_still_leaves_its_target_in_the_graph"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_hop_from_an_undescribed_package_still_leaves_its_target_in_the_graph","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_hop_from_an_undescribed_package_still_leaves_its_target_in_the_graph"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_hop_from_an_undescribed_package_still_leaves_its_target_in_the_graph"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_model_predating_the_identity_triple_is_untouched","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_model_predating_the_identity_triple_is_untouched"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_an_inlined_element_declares_reports_the_shorter_depth"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_an_inlined_element_declares_reports_the_shorter_depth"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_an_inlined_element_declares_reports_the_shorter_depth"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_an_inlined_element_declares_reports_the_shorter_depth","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_an_inlined_element_declares_reports_the_shorter_depth"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/dependency_entries","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_both_declared_and_pulled_in_hangs_off_both"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_both_declared_and_pulled_in_hangs_off_both"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_both_declared_and_pulled_in_hangs_off_both","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_both_declared_and_pulled_in_hangs_off_both"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_package_both_declared_and_pulled_in_hangs_off_both"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_repeated_internal_edge_produces_one_component_and_one_link","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_repeated_internal_edge_produces_one_component_and_one_link"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_package_element","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_repeated_internal_edge_produces_one_component_and_one_link"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_scope_below_the_subtree_is_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_scope_below_the_subtree_is_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/two_repository_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_scope_below_the_subtree_is_followed"},{"used_role":"ExistingExternal","imported_as":"generate_for_element_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_selected_directory_element_follows_its_repositorys_edges_too"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_selected_directory_element_follows_its_repositorys_edges_too"},{"used_role":"ExistingExternal","imported_as":"generate_for_element_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_selected_element_document_inlines_its_internal_dependencies_too"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_selected_element_document_inlines_its_internal_dependencies_too"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/published_package_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_selected_element_document_inlines_its_internal_dependencies_too"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_sibling_directory_scope_is_not_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_sibling_directory_scope_is_not_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/two_repository_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_a_sibling_directory_scope_is_not_followed"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_ambiguous_multi_package_repository_falls_back_to_the_element_name","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_package_element","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_ambiguous_multi_package_repository_falls_back_to_the_element_name"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_ambiguous_multi_package_repository_falls_back_to_the_element_name"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_audit_declared_edge_takes_the_same_rule"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_audit_declared_edge_takes_the_same_rule"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_declared_by_two_repositories_is_followed_from_both"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_declared_by_two_repositories_is_followed_from_both"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/two_repository_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_declared_by_two_repositories_is_followed_from_both"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_declared_only_by_another_repository_is_not_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_versions","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_declared_only_by_another_repository_is_not_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_that_is_not_a_package_relation_is_not_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_that_is_not_a_package_relation_is_not_followed"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_that_is_not_a_package_relation_is_not_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_with_no_declaring_scope_is_followed"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_with_no_declaring_scope_is_followed"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_edge_with_no_declaring_scope_is_followed"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_element_that_publishes_no_package_keeps_the_element_name","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_element_that_publishes_no_package_keeps_the_element_name"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_element_that_publishes_no_package_keeps_the_element_name"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_empty_closure_names_the_deptypes_it_skipped"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_empty_closure_names_the_deptypes_it_skipped"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_inlined_internal_component_carries_its_package_identity"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_inlined_internal_component_carries_its_package_identity"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_an_internal_package_is_not_claimed_to_be_a_public_registry_package"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_cli_supports_the_external_closure_flags"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_cli_supports_the_external_closure_flags"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_dependency_depth_is_absent_from_a_default_mode_bom"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_dependency_depth_is_absent_from_a_default_mode_bom"},{"used_role":"NewExternal","imported_as":"deptype_base","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/deptype_base","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_deptype_base_strips_only_the_reserved_development_prefix"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_every_dependency_ref_resolves_within_the_bom"},{"used_role":"ExistingExternal","imported_as":"get_model_and_model_api","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_every_dependency_ref_resolves_within_the_bom"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_every_dependency_ref_resolves_within_the_bom"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_external_to_external_edges_are_not_followed_by_default"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_external_to_external_edges_are_not_followed_by_default"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_external_to_external_edges_are_not_followed_by_default"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_max_depth_caps_the_closure_at_the_requested_level"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_max_depth_caps_the_closure_at_the_requested_level"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_max_depth_caps_the_closure_at_the_requested_level"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/published_package_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_no_component_of_any_document_has_an_empty_purl"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_no_component_of_any_document_has_an_empty_purl"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_publishing_an_identity_does_not_displace_what_the_component_already_said"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_publishing_an_identity_does_not_displace_what_the_component_already_said"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_publishing_an_identity_does_not_displace_what_the_component_already_said"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_composes_with_the_internal_transitive_mode"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_composes_with_the_internal_transitive_mode"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_composes_with_the_internal_transitive_mode"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_composes_with_the_internal_transitive_mode","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_composes_with_the_internal_transitive_mode"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_emits_a_dependency_graph_entry_per_package_hop"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/dependency_entries","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_emits_a_dependency_graph_entry_per_package_hop"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_emits_a_dependency_graph_entry_per_package_hop"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_emits_a_dependency_graph_entry_per_package_hop"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_lockfile_declared_edge"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_lockfile_declared_edge"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_lockfile_declared_edge"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_nuget_package_reference_edge"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_nuget_package_reference_edge"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/nuget_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_nuget_package_reference_edge"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_nuget_package_reference_edge","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_follows_a_nuget_package_reference_edge"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/dependency_entries","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_graph_survives_the_internal_transitive_merge"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_graph_survives_the_internal_transitive_merge"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_graph_survives_the_internal_transitive_merge","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_graph_survives_the_internal_transitive_merge"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_graph_survives_the_internal_transitive_merge"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_is_ecosystem_independent_and_follows_pip_edges","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_is_ecosystem_independent_and_follows_pip_edges"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_is_ecosystem_independent_and_follows_pip_edges"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_closure_is_ecosystem_independent_and_follows_pip_edges"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_default_document_gains_the_direct_internal_dependencies_and_no_more","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_default_document_gains_the_direct_internal_dependencies_and_no_more"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_default_document_gains_the_direct_internal_dependencies_and_no_more"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_default_mode_internal_component_is_the_one_transitive_mode_inlines"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/published_package_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_default_mode_internal_component_is_the_one_transitive_mode_inlines"},{"used_role":"ExistingExternal","imported_as":"slugify_bom_ref","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/Usual dependencies","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_dependency_graph_is_one_flat_entry_without_the_closure_flag"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_dependency_graph_is_one_flat_entry_without_the_closure_flag"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_dependency_graph_is_one_flat_entry_without_the_closure_flag"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_dependency_graph_is_one_flat_entry_without_the_closure_flag"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_identity_is_ecosystem_neutral"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_identity_is_ecosystem_neutral"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_package_actually_depended_upon_resolves_the_ambiguity","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_package_element","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_package_actually_depended_upon_resolves_the_ambiguity"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_package_actually_depended_upon_resolves_the_ambiguity"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_shortest_of_two_routes_is_the_depth_a_package_reports"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_shortest_of_two_routes_is_the_depth_a_package_reports"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_shortest_of_two_routes_is_the_depth_a_package_reports"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_shortest_of_two_routes_is_the_depth_a_package_reports","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_the_shortest_of_two_routes_is_the_depth_a_package_reports"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/component_names","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_pulls_an_indirectly_reachable_package"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_pulls_an_indirectly_reachable_package"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_pulls_an_indirectly_reachable_package"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_tags_every_component_with_its_dependency_depth"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_tags_every_component_with_its_dependency_depth"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_chain_model","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_tags_every_component_with_its_dependency_depth"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_tags_every_component_with_its_dependency_depth"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/sbom_of","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_terminates_on_an_external_dependency_cycle"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/find_property","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_terminates_on_an_external_dependency_cycle"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_terminates_on_an_external_dependency_cycle"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_terminates_on_an_external_dependency_cycle","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/test_transitive_externals_terminates_on_an_external_dependency_cycle"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/internal_components","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component"},{"used_role":"ExistingExternal","imported_as":"generate_multi_from_sgraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/External/Python/sgraph/converters> sbom_cyclonedx_generator/generate_multi_from_sgraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/the_internal_component"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/declare","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/two_repository_model"},{"used_role":"Test","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/npm_package","type":"func_ref","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/two_repository_model"},{"used_role":"Production","imported_as":"SGraph","upstream_impact":"0.0","user_role":"Test","used":"/sgraph/sgraph/src> sgraph/sgraph.py/SGraph","type":"import","user":"/sgraph/sgraph/tests/converters/sbom_cyclonedx_generator_test.py/two_repository_model","test_to_prod_coupling_impact":"0.5186273083090782"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.5","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/dedup_key","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree/emit"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.5","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/elem_as_bom_data","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_collect_3rdparty_for_subtree/emit"},{"used_role":"Production","upstream_impact":"0.0","user_role":"Production","coupling_impact":"0.5","used":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/dedup_key","type":"func_ref","user":"/sgraph/sgraph/src> sgraph/converters/sbom_cyclonedx_generator.py/_transitive_components_and_dependencies/surviving"}],"code_rank":{"code_rank_global_base":62.68960400146181,"code_rank_global_head":66.99123210594922,"code_rank_local_head":103.96010138750886,"code_rank_local_base":89.99430093034478}}