class_docstr: Keep track of and clean up after modules created while building Bokeh
  Documents.
docstr: Add a module associated with a Document.
  
  .. note::
      This method will install the module in ``sys.modules``
  
  Args:
      module (Module) : a module to install for the configured Document
  
  Returns:
      None
docstr_tok: ["Add","a","module","associated","with","a","Document",".","..","note",":",":","This","method","will","install","the","module","in","``","sys.modules","``","Args",":","module","(","Module",")",":","a","module","to","install","for","the","configured","Document","Returns",":","None"]
code: def add(self, module: ModuleType) -> None:
      """Add a module associated with a Document.
  
      .. note::
          This method will install the module in ``sys.modules``
  
      Args:
          module (Module) : a module to install for the configured Document
  
      Returns:
          None
  
      """
      if module.__name__ in sys.modules:
          raise RuntimeError(
              f"Add called already-added module {module.__name__!r} for {self._document()!r}"
          )
      sys.modules[module.__name__] = module
      self._modules.append(module)
  
file_path: bokeh/src/bokeh/document/modules.py
imports: from __future__ import annotations
  import logging
  import sys
  import weakref
  from types import ModuleType
  from typing import TYPE_CHECKING
label_desc: Use image node_id 3 for calling the DocumentModuleManager obj's underlying member method code with example usage: obj.add(module) without return types