import six


def check_iterable(value):
    """Check if a value is iterable (list), but not a string.

    The checking process is done by trying the `iter` method of Python and
    matching if the value is a string or not.

    Parametes
    ---------
    value: any
        Value to be checked if it is iterable.

    Returns
    -------
    bool:
        `True` if the value is iterable and not a string. `False` otherwise.
    """
    try:
        iter(value)
        if not isinstance(value, six.string_types):
            return True
        return False
    except TypeError:
        pass

    return False