def _is_non_string_iterable(value):
    """Whether a value is iterable."""
    if isinstance(value, str):
        return False
    if hasattr(value, '__iter__'):
        return True
    if isinstance(value, collections.abc.Sequence):
        return True
    return False
def _is_non_string_iterable ( value ) : if isinstance ( value , str ) : return False if hasattr ( value , '__iter__' ) : return True if isinstance ( value , collections . abc . Sequence ) : return True return False
Whether a value is iterable.