Skip to content

metric_policy

Metric policy for rolling performance baseline comparisons.

Functions:

fastvideo.performance.metric_policy.resolve_metric_policies

resolve_metric_policies(threshold_overrides: Mapping[str, Any] | None) -> tuple[MetricPolicy, ...]

Return default metric policies with optional per-metric overrides.

Source code in fastvideo/performance/metric_policy.py
def resolve_metric_policies(threshold_overrides: Mapping[str, Any] | None, ) -> tuple[MetricPolicy, ...]:
    """Return default metric policies with optional per-metric overrides."""

    if not isinstance(threshold_overrides, Mapping):
        threshold_overrides = {}
    policies: list[MetricPolicy] = []
    for base_policy in DEFAULT_METRIC_POLICIES:
        raw_override = threshold_overrides.get(base_policy.key, {})
        if not isinstance(raw_override, Mapping):
            raw_override = {}

        threshold_percent = _optional_float(raw_override.get("threshold_percent"))
        threshold_absolute = _optional_float(raw_override.get("threshold_absolute"))
        gated = _optional_bool(raw_override.get("gated"))

        policies.append(
            MetricPolicy(
                key=base_policy.key,
                label=base_policy.label,
                precision=base_policy.precision,
                lower_is_better=base_policy.lower_is_better,
                threshold_percent=(base_policy.threshold_percent if threshold_percent is None else threshold_percent),
                threshold_absolute=(base_policy.threshold_absolute
                                    if threshold_absolute is None else threshold_absolute),
                gated=base_policy.gated if gated is None else gated,
            ))
    return tuple(policies)