code: def _supports_colors(term, raise_err, colors):
          
          for color in colors:
              try:
                  if isinstance(color, str):
                      req_colors = 16 if "bright" in color else 8
                      ensure(term.number_of_colors >= req_colors,
                             ColorUnsupportedError,
                             "{} is unsupported by your terminal.".format(color))
                  elif isinstance(color, int):
                      ensure(term.number_of_colors >= color,
                             ColorUnsupportedError,
                             "{} is unsupported by your terminal.".format(color))
              except ColorUnsupportedError as e:
                  if raise_err:
                      raise e
                  else:
                      return False
          else:
              return True
docs: Check if ``term`` supports ``colors``
  
          :raises ColorUnsupportedError: This is raised if ``raise_err``
              is ``False`` and a color in ``colors`` is unsupported by ``term``
          :type raise_err: bool
          :param raise_err: Set to ``False`` to return a ``bool`` indicating
              color support rather than raising ColorUnsupportedError
          :type  colors: [str, ...]