class_docstr: Registry of artifact visualizations.
code: def register(self, visualization_class: Type[ArtifactVisualization]):
      artifact_type = visualization_class.ARTIFACT_TYPE
      if not (
          issubclass(artifact_type, types.Artifact)
          and artifact_type.TYPE_NAME is not None
      ):
          raise TypeError(
              "Visualization class must provide subclass of types.Artifact in its "
              "ARTIFACT_TYPE attribute. This subclass must have non-None TYPE_NAME "
              "attribute."
          )
      self.visualizations[
          artifact_type.TYPE_NAME
      ] = visualization_class()
  
file_path: tfx/tfx/orchestration/experimental/interactive/visualizations.py
imports: import abc
  from typing import Type
  from tfx import types
  from tfx.utils import abc_utils
label_desc: Use image node_id 2 for calling the ArtifactVisualizationRegistry obj's underlying member method code with example usage: obj.register(visualization_class) without return types