@staticmethod
def is_iterable(x):
    """ Checks if ``x`` is iterable.

        `hasattr <http://stackoverflow.com/questions/7197710/hasattrobj-iter-vs-collections>`_

        Parameters
        ----------
        x : object
            any object

        Returns
        -------
        bool
            ``True`` if ``x`` is iterable, ``False`` otherwise


        Exmaples
        --------

        >>> Util.is_iterable(1)
        False

        >>> Util.is_iterable((1,2,3))
        True

        >>> Util.is_iterable([1,'blah',3])
        True
        """
    if hasattr(x, '__iter__') and not isinstance(x, str):
        return True
    else:
        try:
            a = iter(x)
            return True
        except TypeError:
            return False
