code: def _is_string(thing):
      
      if _util._py3k: return isinstance(thing, str)
      else: return isinstance(thing, basestring)
docs: Python character arrays are a mess.
  
      If Python2, check if **thing** is an :obj:`unicode` or a :obj:`str`.
      If Python3, check if **thing** is a :obj:`str`.
  
      :param thing: The thing to check.
      :returns: ``True`` if **thing** is a string according to whichever version
                of Python we're running in.