class_docstr: Color palette for palette mapped images
  
  :param mode: The mode to use for the palette. See:
      :ref:`concept-modes`. Defaults to "RGB"
  :param palette: An optional palette. If given, it must be a bytearray,
      an array or a list of ints between 0-255. The list must consist of
      all channels for one color followed by the next color (e.g. RGBRGBRGB).
      Defaults to an empty palette.
code: def colors(self):
      if self._colors is None:
          mode_len = len(self.mode)
          self._colors = {}
          for i in range(0, len(self.palette), mode_len):
              color = tuple(self.palette[i : i + mode_len])
              if color in self._colors:
                  continue
              self._colors[color] = i // mode_len
      return self._colors
  
imports: from __future__ import annotations
  import array
  from .None import GimpGradientFile, GimpPaletteFile, ImageColor, PaletteFile
label_desc: Use image node_id 4 for calling the ImagePalette obj's underlying member method code with example usage: obj.colors() and returns: self