code: def file_object_supports_binary(fp):
      # type: (BinaryIO) -> bool
      '''
      A function to check whether a file-like object supports binary mode.
  
      Parameters:
       fp - The file-like object to check for binary mode support.
      Returns:
       True if the file-like object supports binary mode, False otherwise.
      '''
      if hasattr(fp, 'mode'):
          return 'b' in fp.mode
  
      # Python 3
      if sys.version_info >= (3, 0):
          return isinstance(fp, (io.RawIOBase, io.BufferedIOBase))
  
      # Python 2
      return isinstance(fp, (cStringIO.OutputType, cStringIO.InputType, io.RawIOBase, io.BufferedIOBase)f file_object_supports_binary(fp):
      # type: (BinaryIO) -> bool
      '''
      A function to check whether a file-like object supports binary mode.
  
      Parameters:
       fp - The file-like object to check for binary mode support.
      Returns:
       True if the file-like object supports binary mode, False otherwise.
      '''
      if hasattr(fp, 'mode'):
          return 'b' in fp.mode
  
      # Python 3
      if sys.version_info >= (3, 0):
          return isinstance(fp, (io.RawIOBase, io.BufferedIOBase))
  
      # Python 2
      return isinstance(fp, (cStringIO.OutputType, cStringIO.InputType, io.RawIOBase, io.BufferedIOBase))
docs: A function to check whether a file-like object supports binary mode.
  
      Parameters:
       fp - The file-like object to check for binary mode support.
      Returns:
       True if the file-like object supports binary mode, False otherwise.