code: def as_text(bytes_or_text, encoding="utf-8"):
      """Converts any string-like python input types to unicode.
  
      Returns the input as a unicode string. Uses utf-8 encoding for text
      by default.
  
      Args:
        bytes_or_text: A `bytes`, `str`, or `unicode` object.
        encoding: A string indicating the charset for decoding unicode.
  
      Returns:
        A `unicode` (Python 2) or `str` (Python 3) object.
  
      Raises:
        TypeError: If `bytes_or_text` is not a binary or unicode string.
      """
      # Validate encoding, a LookupError will be raised if invalid.
      encoding = codecs.lookup(encoding).name
      if isinstance(bytes_or_text, str):
          return bytes_or_text
      elif isinstance(bytes_or_text, bytes):
          return bytes_or_text.decode(encoding)
      else:
          raise TypeError(
              "Expected binary or unicode string, got %r"
              % bytes_or_text
          )
  
file_path: tensorflow/tensorflow/python/util/compat.py
imports: import codecs
  import collections.abc
  import numbers
  import numpy
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 2 for calling a global function with example usage: as_text(bytes_or_text, encoding) and returns: bytes_or_text, bytes_or_text