@@ -182,8 +182,10 @@ def filter_entries_below_percentage_threshold(
182182 threshold_percent : float ,
183183) -> pd .DataFrame :
184184 """
185- Returns only rows whose percentage share of the *original* total is strictly
186- below threshold_percent. Used to drill down into the 'others' slice.
185+ Returns only rows whose percentage share of the *original* total is below
186+ threshold_percent. Used to drill down into the 'others' slice.
187+ Matches the grouping logic of group_small_values_into_others (< not <=)
188+ to avoid double-counting at the threshold boundary.
187189 """
188190 result = add_percentage_column (data_frame , value_column )
189191 percent_column = value_column + "Percent"
@@ -452,9 +454,8 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
452454
453455 # ── Top external packages (Table 1 equivalent) ────────────────────────────
454456 if not overall_data .empty :
455- top20 = overall_data .head (20 )
456457 save_pie_chart_pair (
457- source_data = top20 ,
458+ source_data = overall_data ,
458459 value_column = "numberOfExternalCallerTypes" ,
459460 name_column = "externalPackageName" ,
460461 chart_name_prefix = "Java_Top_external_packages_by_types" ,
@@ -463,7 +464,7 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
463464 verbose = verbose ,
464465 )
465466 save_pie_chart_pair (
466- source_data = top20 ,
467+ source_data = overall_data ,
467468 value_column = "numberOfExternalCallerPackages" ,
468469 name_column = "externalPackageName" ,
469470 chart_name_prefix = "Java_Top_external_packages_by_packages" ,
@@ -474,9 +475,8 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
474475
475476 # ── Second-level package grouping (Table 2 equivalent) ────────────────────
476477 if not second_level_overall_data .empty :
477- top20_second_level = second_level_overall_data .head (20 )
478478 save_pie_chart_pair (
479- source_data = top20_second_level ,
479+ source_data = second_level_overall_data ,
480480 value_column = "numberOfExternalCallerTypes" ,
481481 name_column = "externalSecondLevelPackageName" ,
482482 chart_name_prefix = "Java_Top_second_level_packages_by_types" ,
@@ -485,7 +485,7 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
485485 verbose = verbose ,
486486 )
487487 save_pie_chart_pair (
488- source_data = top20_second_level ,
488+ source_data = second_level_overall_data ,
489489 value_column = "numberOfExternalCallerPackages" ,
490490 name_column = "externalSecondLevelPackageName" ,
491491 chart_name_prefix = "Java_Top_second_level_packages_by_packages" ,
@@ -496,9 +496,8 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
496496
497497 # ── Most spread external packages (Table 3 equivalent) ────────────────────
498498 if not spread_data .empty :
499- top20_spread = spread_data .head (20 )
500499 save_pie_chart_pair (
501- source_data = top20_spread ,
500+ source_data = spread_data ,
502501 value_column = "sumNumberOfTypes" ,
503502 name_column = "externalPackageName" ,
504503 chart_name_prefix = "Java_Most_spread_packages_by_types" ,
@@ -507,7 +506,7 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
507506 verbose = verbose ,
508507 )
509508 save_pie_chart_pair (
510- source_data = top20_spread ,
509+ source_data = spread_data ,
511510 value_column = "sumNumberOfPackages" ,
512511 name_column = "externalPackageName" ,
513512 chart_name_prefix = "Java_Most_spread_packages_by_packages" ,
@@ -518,9 +517,8 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
518517
519518 # ── Most spread second-level packages (Table 4 equivalent) ────────────────
520519 if not second_level_spread_data .empty :
521- top20_second_level_spread = second_level_spread_data .head (20 )
522520 save_pie_chart_pair (
523- source_data = top20_second_level_spread ,
521+ source_data = second_level_spread_data ,
524522 value_column = "sumNumberOfTypes" ,
525523 name_column = "externalSecondLevelPackageName" ,
526524 chart_name_prefix = "Java_Most_spread_second_level_packages_by_types" ,
@@ -529,7 +527,7 @@ def generate_java_charts(queries_directory: str, report_directory: str, verbose:
529527 verbose = verbose ,
530528 )
531529 save_pie_chart_pair (
532- source_data = top20_second_level_spread ,
530+ source_data = second_level_spread_data ,
533531 value_column = "sumNumberOfPackages" ,
534532 name_column = "externalSecondLevelPackageName" ,
535533 chart_name_prefix = "Java_Most_spread_second_level_packages_by_packages" ,
@@ -633,9 +631,8 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
633631
634632 # ── Module usage overall ───────────────────────────────────────────────────
635633 if not module_overall_data .empty :
636- top20_modules = module_overall_data .head (20 )
637634 save_pie_chart_pair (
638- source_data = top20_modules ,
635+ source_data = module_overall_data ,
639636 value_column = "numberOfExternalCallerElements" ,
640637 name_column = "externalModuleName" ,
641638 chart_name_prefix = "Typescript_Top_external_modules_by_elements" ,
@@ -644,7 +641,7 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
644641 verbose = verbose ,
645642 )
646643 save_pie_chart_pair (
647- source_data = top20_modules ,
644+ source_data = module_overall_data ,
648645 value_column = "numberOfExternalCallerModules" ,
649646 name_column = "externalModuleName" ,
650647 chart_name_prefix = "Typescript_Top_external_modules_by_modules" ,
@@ -655,9 +652,8 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
655652
656653 # ── Namespace usage overall ────────────────────────────────────────────────
657654 if not namespace_overall_data .empty :
658- top20_namespaces = namespace_overall_data .head (20 )
659655 save_pie_chart_pair (
660- source_data = top20_namespaces ,
656+ source_data = namespace_overall_data ,
661657 value_column = "numberOfExternalCallerElements" ,
662658 name_column = "externalNamespaceName" ,
663659 chart_name_prefix = "Typescript_Top_external_namespaces_by_elements" ,
@@ -666,7 +662,7 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
666662 verbose = verbose ,
667663 )
668664 save_pie_chart_pair (
669- source_data = top20_namespaces ,
665+ source_data = namespace_overall_data ,
670666 value_column = "numberOfExternalCallerModules" ,
671667 name_column = "externalNamespaceName" ,
672668 chart_name_prefix = "Typescript_Top_external_namespaces_by_modules" ,
@@ -677,9 +673,8 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
677673
678674 # ── Module spread ──────────────────────────────────────────────────────────
679675 if not module_spread_data .empty :
680- top20_module_spread = module_spread_data .head (20 )
681676 save_pie_chart_pair (
682- source_data = top20_module_spread ,
677+ source_data = module_spread_data ,
683678 value_column = "sumNumberOfUsedExternalDeclarations" ,
684679 name_column = "externalModuleName" ,
685680 chart_name_prefix = "Typescript_Most_spread_modules_by_declarations" ,
@@ -688,7 +683,7 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
688683 verbose = verbose ,
689684 )
690685 save_pie_chart_pair (
691- source_data = top20_module_spread ,
686+ source_data = module_spread_data ,
692687 value_column = "numberOfInternalModules" ,
693688 name_column = "externalModuleName" ,
694689 chart_name_prefix = "Typescript_Most_spread_modules_by_modules" ,
@@ -699,9 +694,8 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
699694
700695 # ── Namespace spread ───────────────────────────────────────────────────────
701696 if not namespace_spread_data .empty :
702- top20_namespace_spread = namespace_spread_data .head (20 )
703697 save_pie_chart_pair (
704- source_data = top20_namespace_spread ,
698+ source_data = namespace_spread_data ,
705699 value_column = "sumNumberOfUsedExternalDeclarations" ,
706700 name_column = "externalModuleNamespace" ,
707701 chart_name_prefix = "Typescript_Most_spread_namespaces_by_declarations" ,
@@ -710,7 +704,7 @@ def generate_typescript_charts(queries_directory: str, report_directory: str, ve
710704 verbose = verbose ,
711705 )
712706 save_pie_chart_pair (
713- source_data = top20_namespace_spread ,
707+ source_data = namespace_spread_data ,
714708 value_column = "numberOfInternalModules" ,
715709 name_column = "externalModuleNamespace" ,
716710 chart_name_prefix = "Typescript_Most_spread_namespaces_by_modules" ,
0 commit comments