in treeherder/perf/auto_perf_sheriffing/backfill_reports.py [0:0]
def _ensure_alerts_variety(self, sorted_alerts: list[PerformanceAlert]):
"""
The alerts container must be sorted before being passed to this function.
The returned list must contain regressions and (if present) improvements.
"""
regressions_only = all(alert.is_regression for alert in sorted_alerts)
improvements_only = all(not alert.is_regression for alert in sorted_alerts)
if regressions_only or improvements_only:
resulted_alerts_list = self._ensure_platform_variety(sorted_alerts)
else: # mixed alert types
regressions = [alert for alert in sorted_alerts if alert.is_regression]
improvements = [alert for alert in sorted_alerts if not alert.is_regression]
if len(regressions) > 1:
regressions = self._ensure_platform_variety(regressions)
regressions[-1] = improvements[0]
regressions.append(improvements[0])
resulted_alerts_list = regressions
return resulted_alerts_list[
: self.max_improvements if improvements_only else self.max_alerts
]