code: def uniiterable(arg, level):
      
  
      if not isinstance(arg, collections.Iterable):
          raise TypeError(
              'expected collections.Iterable, {} received'.format(type(arg).__name__)
          )
  
      templates = {
          list: u'[{}]',
          tuple: u'({})'
      }
  
      result = []
      for i in arg:
          result.append(pretty_spaces(level) + convert(i, level=level))
  
      string = join_strings(result, level)
      if level is not None:
          string += pretty_spaces(level - 1)
  
      return templates.get(type(arg), templates[tuple]).format(string)
docs: Iterable object to unicode string.
  
      :type arg: collections.Iterable
      :param arg: iterable object
      :type level: int
      :param level: deep level
  
      :rtype: unicode
      :return: iterable object as unicode string