docs: def _format(val, valtype, floatfmt, missingval="", has_invisible=True):
      """Format a value accoding to its type.
  
      Unicode is supported:
  
      >>> hrow = ['\u0431\u0443\u043a\u0432\u0430', '\u0446\u0438\u0444\u0440\u0430'] ; \
          tbl = [['\u0430\u0437', 2], ['\u0431\u0443\u043a\u0438', 4]] ; \
          good_result = '\\u0431\\u0443\\u043a\\u0432\\u0430      \\u0446\\u0438\\u0444\\u0440\\u0430\\n-------  -------\\n\\u0430\\u0437             2\\n\\u0431\\u0443\\u043a\\u0438           4' ; \
          tabulate(tbl, headers=hrow) == good_result
      True
  
      """
      if val is None:
          return missingval
  
      if valtype in [int, _long_type, _text_type]:
          return "{0}".format(val)
      elif valtype is _binary_type:
          try:
              return _text_type(val, "ascii")
          except TypeError:
              return _text_type(val)
      elif valtype is float:
          is_a_colored_number = has_invisible and isinstance(val, (_text_type, _binary_type))
          if is_a_colored_number:
              raw_val = _strip_invisible(val)
              formatted_val = format(float(raw_val), floatfmt)
              return val.replace(raw_val, formatted_val)
          else:
              return format(float(val), floatfmt)
      else:
          return "{0}".format(val)