class_docstr: Enumerate all IdGenerators used so that they can be patched appropriately in testing.
  
  See: patch_id_generators()
docstr: Return an ID generator for the given class.
code: def for_class(cls, class_type: Type) -> IdGenerator:
      """Return an ID generator for the given class."""
      with cls._state_lock:
          class_name = ".".join(
              [class_type.__module__, class_type.__name__]
          )
          if class_name not in cls._class_name_to_id_generator:
              cls._class_name_to_id_generator[class_name] = IdGenerator(
                  start_value=IdGeneratorRegistry.DEFAULT_START_VALUE
              )
          return cls._class_name_to_id_generator[class_name]
  
file_path: metricflow/metricflow/dag/id_generation.py
imports: from __future__ import annotations
  import logging
  import threading
  from typing import Dict, Type
label_desc: Use image node_id 1 for calling the IdGeneratorRegistry obj's underlying member method code with example usage: obj.for_class(cls, class_type) and returns: cls