in bugbug/commit_features.py [0:0]
def __call__(self, commit, **kwargs):
merged_metrics = merge_function_metrics(
[func for funcs in commit["functions"].values() for func in funcs]
)
return {
"Average function cyclomatic": merged_metrics["cyclomatic_avg"],
"Average function number of unique operands": merged_metrics[
"halstead_n2_avg"
],
"Average function number of operands": merged_metrics["halstead_N2_avg"],
"Average function number of unique operators": merged_metrics[
"halstead_n1_avg"
],
"Average function number of operators": merged_metrics["halstead_N1_avg"],
"Average function length": merged_metrics["halstead_length_avg"],
"Average calculated estimated function length": merged_metrics[
"halstead_estimated_program_length_avg"
],
"Average function purity ratio": merged_metrics[
"halstead_purity_ratio_avg"
],
"Average function vocabulary": merged_metrics["halstead_vocabulary_avg"],
"Average function volume": merged_metrics["halstead_volume_avg"],
"Average function estimated difficulty": merged_metrics[
"halstead_difficulty_avg"
],
"Average function estimated level of difficulty": merged_metrics[
"halstead_level_avg"
],
"Average function estimated effort": merged_metrics["halstead_effort_avg"],
"Average function estimated time": merged_metrics["halstead_time_avg"],
"Average function estimated number of delivered bugs": merged_metrics[
"halstead_bugs_avg"
],
"Average function number of functions": merged_metrics["functions_avg"],
"Average function number of closures": merged_metrics["closures_avg"],
"Average function number of source loc": merged_metrics["sloc_avg"],
"Average function number of instruction loc": merged_metrics["ploc_avg"],
"Average function number of logical loc": merged_metrics["lloc_avg"],
"Average function number of comment loc": merged_metrics["cloc_avg"],
"Average function blank": merged_metrics["blank_avg"],
"Average function number of function arguments": merged_metrics[
"nargs_avg"
],
"Average function number of function exit points": merged_metrics[
"nexits_avg"
],
"Average function cognitive": merged_metrics["cognitive_avg"],
"Average function mi_original": merged_metrics["mi_original_avg"],
"Average function mi_sei": merged_metrics["mi_sei_avg"],
"Average function mi_visual_studio": merged_metrics["mi_visual_studio_avg"],
"Maximum function cyclomatic": merged_metrics["cyclomatic_max"],
"Maximum function number of unique operands": merged_metrics[
"halstead_n2_max"
],
"Maximum function number of operands": merged_metrics["halstead_N2_max"],
"Maximum function number of unique operators": merged_metrics[
"halstead_n1_max"
],
"Maximum function number of operators": merged_metrics["halstead_N1_max"],
"Maximum function length": merged_metrics["halstead_length_max"],
"Maximum calculated estimated function length": merged_metrics[
"halstead_estimated_program_length_max"
],
"Maximum function purity ratio": merged_metrics[
"halstead_purity_ratio_max"
],
"Maximum function vocabulary": merged_metrics["halstead_vocabulary_max"],
"Maximum function volume": merged_metrics["halstead_volume_max"],
"Maximum function estimated difficulty": merged_metrics[
"halstead_difficulty_max"
],
"Maximum function estimated level of difficulty": merged_metrics[
"halstead_level_max"
],
"Maximum function estimated effort": merged_metrics["halstead_effort_max"],
"Maximum function estimated time": merged_metrics["halstead_time_max"],
"Maximum function estimated number of delivered bugs": merged_metrics[
"halstead_bugs_max"
],
"Maximum function number of functions": merged_metrics["functions_max"],
"Maximum function number of closures": merged_metrics["closures_max"],
"Maximum function number of source loc": merged_metrics["sloc_max"],
"Maximum function number of instruction loc": merged_metrics["ploc_max"],
"Maximum function number of logical loc": merged_metrics["lloc_max"],
"Maximum function number of comment loc": merged_metrics["cloc_max"],
"Maximum function blank": merged_metrics["blank_max"],
"Maximum function number of function arguments": merged_metrics[
"nargs_max"
],
"Maximum function number of function exit points": merged_metrics[
"nexits_max"
],
"Maximum function cognitive": merged_metrics["cognitive_max"],
"Maximum function mi_original": merged_metrics["mi_original_max"],
"Maximum function mi_sei": merged_metrics["mi_sei_max"],
"Maximum function mi_visual_studio": merged_metrics["mi_visual_studio_max"],
"Minimum function cyclomatic": merged_metrics["cyclomatic_min"],
"Minimum function number of unique operands": merged_metrics[
"halstead_n2_min"
],
"Minimum function number of operands": merged_metrics["halstead_N2_min"],
"Minimum function number of unique operators": merged_metrics[
"halstead_n1_min"
],
"Minimum function number of operators": merged_metrics["halstead_N1_min"],
"Minimum function length": merged_metrics["halstead_length_min"],
"Minimum calculated estimated function length": merged_metrics[
"halstead_estimated_program_length_min"
],
"Minimum function purity ratio": merged_metrics[
"halstead_purity_ratio_min"
],
"Minimum function vocabulary": merged_metrics["halstead_vocabulary_min"],
"Minimum function volume": merged_metrics["halstead_volume_min"],
"Minimum function estimated difficulty": merged_metrics[
"halstead_difficulty_min"
],
"Minimum function estimated level of difficulty": merged_metrics[
"halstead_level_min"
],
"Minimum function estimated effort": merged_metrics["halstead_effort_min"],
"Minimum function estimated time": merged_metrics["halstead_time_min"],
"Minimum function estimated number of delivered bugs": merged_metrics[
"halstead_bugs_min"
],
"Minimum function number of functions": merged_metrics["functions_min"],
"Minimum function number of closures": merged_metrics["closures_min"],
"Minimum function number of source loc": merged_metrics["sloc_min"],
"Minimum function number of instruction loc": merged_metrics["ploc_min"],
"Minimum function number of logical loc": merged_metrics["lloc_min"],
"Minimum function number of comment loc": merged_metrics["cloc_min"],
"Minimum function blank": merged_metrics["blank_min"],
"Minimum function number of function arguments": merged_metrics[
"nargs_min"
],
"Minimum function number of function exit points": merged_metrics[
"nexits_min"
],
"Minimum function cognitive": merged_metrics["cognitive_min"],
"Minimum function mi_original": merged_metrics["mi_original_min"],
"Minimum function mi_sei": merged_metrics["mi_sei_min"],
"Minimum function mi_visual_studio": merged_metrics["mi_visual_studio_min"],
"Total function cyclomatic": merged_metrics["cyclomatic_total"],
"Total function number of unique operands": merged_metrics[
"halstead_n2_total"
],
"Total function number of operands": merged_metrics["halstead_N2_total"],
"Total function number of unique operators": merged_metrics[
"halstead_n1_total"
],
"Total function number of operators": merged_metrics["halstead_N1_total"],
"Total function length": merged_metrics["halstead_length_total"],
"Total calculated estimated function length": merged_metrics[
"halstead_estimated_program_length_total"
],
"Total function purity ratio": merged_metrics[
"halstead_purity_ratio_total"
],
"Total function vocabulary": merged_metrics["halstead_vocabulary_total"],
"Total function volume": merged_metrics["halstead_volume_total"],
"Total function estimated difficulty": merged_metrics[
"halstead_difficulty_total"
],
"Total function estimated level of difficulty": merged_metrics[
"halstead_level_total"
],
"Total function estimated effort": merged_metrics["halstead_effort_total"],
"Total function estimated time": merged_metrics["halstead_time_total"],
"Total function estimated number of delivered bugs": merged_metrics[
"halstead_bugs_total"
],
"Total function number of functions": merged_metrics["functions_total"],
"Total function number of closures": merged_metrics["closures_total"],
"Total function number of source loc": merged_metrics["sloc_total"],
"Total function number of instruction loc": merged_metrics["ploc_total"],
"Total function number of logical loc": merged_metrics["lloc_total"],
"Total function number of comment loc": merged_metrics["cloc_total"],
"Total function blank": merged_metrics["blank_total"],
"Total function number of function arguments": merged_metrics[
"nargs_total"
],
"Total function number of function exit points": merged_metrics[
"nexits_total"
],
"Total function cognitive": merged_metrics["cognitive_total"],
"Total function mi_original": merged_metrics["mi_original_total"],
"Total function mi_sei": merged_metrics["mi_sei_total"],
"Total function mi_visual_studio": merged_metrics["mi_visual_studio_total"],
}