class_docstr: Provides a custom type, color, etc.. for a column.
  
  :ivar type: See :attr:`hiplot.ValueType` for possible values
  :ivar colors: Categorical scales only: mapping from value to HTML color (either :code:`rgb(R, G, B)` or :code:`#RRGGBB`)
  :ivar colormap: Numerical scales only: `D3 scale <https://github.com/d3/d3-scale-chromatic>`_ to use
      (default scale is `interpolateTurbo <https://github.com/d3/d3-scale-chromatic#interpolateTurbo>`_).
      For example :code:`"interpolateSinebow"`.
      To inverse the colormap, append `#inverse` to the name (eg :code:`"interpolateSinebow#inverse"`)
  :ivar label_css: Space-separated bootstrap CSS classes to apply on the label when supported
  :ivar label_html: HTML code used to render the column name
  
  See :attr:`hiplot.Experiment.parameters_definition`
code: def validate(self) -> None:
      if self.colors is not None:
          for k, v in self.colors.items():
              if (
                  not v.startswith("rgb(")
                  and not v.startswith("hsl(")
                  and not v.startswith("#")
              ):
                  raise ExperimentValidationError(
                      f'Invalid color {v} for value {k}. Expected color to start with "rgb(", "hsl(", or "#"'
                  )
      validate_colormap(self.colormap)
  
imports: import csv
  import uuid
  import json
  import codecs
  import warnings
  from abc import ABCMeta, abstractmethod
  from enum import Enum
  from collections import defaultdict
  from pathlib import Path
  import typing
label_desc: Use image node_id 3 for calling the ValueDef obj's underlying member method code with example usage: obj.validate() without return types