"""Transparency audit: matches images whose transparent-pixel fraction
exceeds the threshold. Animated images short-circuit (skipped) to avoid
the multi-frame PIL decode that hits Celery's hard time limit."""


def evaluate(pil_image, *, threshold: float) -> bool:
    """True iff the image's transparent-pixel fraction exceeds threshold.

    False for non-alpha modes and animated images. Mirrors the import-side
    Importer._transparency_pct logic so retroactive enforcement matches
    prospective filtering.
    """
    if getattr(pil_image, "is_animated", False):
        return False
    if pil_image.mode not in ("RGBA", "LA") and not (
        pil_image.mode == "P" and "transparency" in pil_image.info
    ):
        return False
    im = pil_image
    if im.mode != "RGBA":
        im = im.convert("RGBA")
    alpha = im.getchannel("A")
    histogram = alpha.histogram()
    transparent = histogram[0]
    total = sum(histogram)
    pct = transparent / total if total else 0.0
    return pct > threshold
