tests/test_utils.py
    F 103:0 test_version_info_tuple - C (11)
    F 68:0 test_semantic_versioning - B (10)
tests/test_recommender.py
    F 149:0 test_execute_empty_resolved - B (8)
    F 171:0 test_execute_both_resolved_type - B (8)
src/utils.py
    F 231:0 select_latest_version - B (9)
    F 96:0 create_package_dict - B (8)
src/rest_api.py
    F 88:0 stack_aggregator - B (9)
    F 50:0 recommender - B (6)
src/stack_aggregator.py
    F 178:0 _extract_unknown_licenses - C (11)
    F 528:0 find_unknown_deps - B (10)
    F 269:0 perform_license_analysis - B (9)
    C 604:0 StackAggregator - B (9)
    M 607:4 StackAggregator.execute - B (9)
    F 342:0 aggregate_stack_data - B (8)
    F 47:0 extract_component_details - B (7)
    F 420:0 remove_duplicate_cve_data - B (7)
    F 449:0 add_transitive_details - B (7)
    F 486:0 get_tr_dependency_data - B (7)
    F 545:0 get_dependency_data - B (7)
src/recommender.py
    M 489:4 RecommendationTask.execute - C (15)
    M 182:4 GraphDB.filter_versions - C (12)
    M 315:4 License.apply_license_filter - B (9)
    C 418:0 RecommendationTask - B (9)
    M 429:4 RecommendationTask.get_insights_url - B (9)
    M 258:4 GraphDB.get_topics_for_alt - B (6)

25 blocks (classes, functions, methods) analyzed.
Average complexity: B (8.8)