class_docstr: Class holding logic for tracking the DSModule implementations of a given interface.
class_docstr_tok: ["Class","holding","logic","for","tracking","the","DSModule","implementations","of","a","given","interface","."]
docstr: Register a module with this registry.
docstr_tok: ["Register","a","module","with","this","registry","."]
code: def register_module(cls, child_class: DSModuleBase) -> None:
      """
      Register a module with this registry.
      """
      if not issubclass(child_class, cls.associated_class()):
          raise TypeError(
              f"Can only register subclasses of {cls.associated_class()}, {child_class} does not inherit from {cls.associated_class()}"
          )
      cls.registry[child_class.name()] = child_class
      return child_class
  
file_path: deepspeed/deepspeed/inference/v2/modules/module_registry.py
imports: from abc import ABC, abstractstaticmethod
  from typing import Any, Dict, Type
  from deepspeed.runtime.config_utils import DeepSpeedConfigModel
  from .ds_module import DSModuleBase
label_desc: Use image node_id 3 for calling the DSModuleRegistryBase obj's underlying member method code with example usage: obj.register_module(cls, child_class) and returns: child_class