code: def to_text_string(obj, encoding=None):
      
      if PY2:
          # Python 2
          if encoding is None:
              return unicode(obj)
          else:
              return unicode(obj, encoding)
      else:
          # Python 3
          if encoding is None:
              return str(obj)
          elif isinstance(obj, str):
              # In case this function is not used properly, this could happen
              return obj
          else:
              return str(obj, encoding)
docs: Convert `obj` to (unicode) text string