def is_autoclassifiable()

in mozci/task.py [0:0]


def is_autoclassifiable(task: TestTask) -> bool:
    """Check a task is enabled for auto-classification
    by applying glob patterns from configuration
    """
    assert task.label, "Missing task label"

    if not config["autoclassification"]["enabled"]:
        return False

    allowed_values = set(failure_type.value for failure_type in FailureType)
    filtered_failure_types = config["autoclassification"]["failure-types"]
    assert isinstance(filtered_failure_types, list) and set(
        filtered_failure_types
    ).issubset(allowed_values), "Unsupported failure types in configuration"

    flat_failure_types = list(
        set(
            test_and_type
            for group in task.failure_types.values()
            for test_and_type in group
        )
    )

    return (
        any(
            fnmatch.fnmatch(task.label, pattern)
            for pattern in config["autoclassification"]["test-suite-names"]
        )
        and len(flat_failure_types) == 1
        and flat_failure_types[0][1].value in filtered_failure_types
    )