from typing import Any


def is_iterable_but_no_str(candidate: Any) -> bool:
    """Tests if the given candidate is an iterable (list, tuple, ...)
    but not a string."""
    return (
        hasattr(candidate, '__iter__')
        and not isinstance(candidate, (str, bytes))
    )