def __call__()

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"],
        }