docs: def actually_flatten(iterable):
      """Flatten iterables
      This is super ugly. There must be a cleaner py2/3 way
      of handling this."""
      remainder = iter(iterable)
      while True:
          first = next(remainder)  # pylint: disable=R1708
          # Python 2/3 compat
          is_iter = isinstance(first, collections.Iterable)
          try:
              basestring
          except NameError:
              basestring = str  # pylint: disable=W0622
  
          if is_py3() and is_iter and not_a_string(first):
              remainder = IT.chain(first, remainder)
          elif (not is_py3()) and is_iter and not isinstance(first, basestring):
              remainder = IT.chain(first, remainder)
          else:
              yield polite_string(first)