code: def as_bytes(bytes_or_text, encoding="utf-8"):
      """Converts `bytearray`, `bytes`, or unicode python input types to `bytes`.
  
      Uses utf-8 encoding for text by default.
  
      Args:
        bytes_or_text: A `bytearray`, `bytes`, `str`, or `unicode` object.
        encoding: A string indicating the charset for encoding unicode.
  
      Returns:
        A `bytes` object.
  
      Raises:
        TypeError: If `bytes_or_text` is not a binary or unicode string.
      """
      if isinstance(bytes_or_text, bytearray):
          return bytes(bytes_or_text)
      elif isinstance(bytes_or_text, six.text_type):
          return bytes_or_text.encode(encoding)
      elif isinstance(bytes_or_text, bytes):
          return bytes_or_text
      else:
          raise TypeError(
              "Expected binary or unicode string, got %r"
              % (bytes_or_text,)
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import json
  import numbers
  import re
  from model_search.proto import hparam_pb2
  import six
label_desc: Use image node_id 2 for calling a global function with example usage: as_bytes(bytes_or_text, encoding) and returns: bytes, bytes_or_text, bytes_or_text