code: def is_iterable(val):
      
      if isinstance(val, list):
          return False
      return isinstance(val, collections.Iterable)
docs: Check if val is not a list, but is a collections.Iterable type. This is used to determine
      when list() should be called on val
  
      >>> l = [1, 2]
      >>> is_iterable(l)
      False
      >>> is_iterable(iter(l))
      True
  
      :param val: value to check
      :return: True if it is not a list, but is a collections.Iterable