def METHOD_NAME(self, digest: str, blob: bytes, mime_type: str) -> str:
    """Convert a file to plain text.
    Useful for full-text indexing. Returns a Unicode string.
    """
    # Special case, for now (XXX).
    if mime_type.startswith("image/"):
        return ""
    cache_key = ("txt", digest)
    text = self.cache.get_text(cache_key)
    if text:
        return text
    # Direct conversion possible
    for handler in self.handlers:
        if handler.accept(mime_type, "text/plain"):
            text = handler.convert(blob)
            self.cache[cache_key] = text
            return text
    # Use PDF as a pivot format
    pdf = self.to_pdf(digest, blob, mime_type)
    for handler in self.handlers:
        if handler.accept("application/pdf", "text/plain"):
            text = handler.convert(pdf)
            self.cache[cache_key] = text
            return text
    raise HandlerNotFound(f"No handler found to convert from {mime_type} to text")