class_docstr: Manages optional dependencies for data-describe.
  
  Examples:
      Optional modules can be accessed using dictionary-style attributes::
  
          _compat = _DependencyManager()
          engine = _compat["presidio_analyzer"].AnalyzerEngine()
  
  Attributes:
      imports (Dict[str, Callable]): A mapping of package names and associated
          import functions to download additional resources.
      installed_modules (Dict[str, bool]): A mapping of packages detected as being
          installed.
      modules (Dict[str, ModuleType]): A mapping of the imported modules. Typically
          accessed using dictionary-style access.
class_docstr_tok: ["Manages","optional","dependencies","for","data-describe",".","Examples",":","Optional","modules","can","be","accessed","using","dictionary-style","attributes",":",":","_compat","=","_DependencyManager","(",")","engine","=","_compat","[","``","presidio_analyzer","''","]",".AnalyzerEngine","(",")","Attributes",":","imports","(","Dict","[","str",",","Callable","]",")",":","A","mapping","of","package","names","and","associated","import","functions","to","download","additional","resources",".","installed_modules","(","Dict","[","str",",","bool","]",")",":","A","mapping","of","packages","detected","as","being","installed",".","modules","(","Dict","[","str",",","ModuleType","]",")",":","A","mapping","of","the","imported","modules",".","Typically","accessed","using","dictionary-style","access","."]
docstr: Allows dictionary-style access to optional modules.
  
  Args:
      key (str): The module.
  
  Returns:
      The module.
docstr_tok: ["Allows","dictionary-style","access","to","optional","modules",".","Args",":","key","(","str",")",":","The","module",".","Returns",":","The","module","."]
code: def __getitem__(self, key: str) -> ModuleType:
      """Allows dictionary-style access to optional modules.
  
      Args:
          key (str): The module.
  
      Returns:
          The module.
      """
      # Module already imported
      if key in self.modules.keys():
          return self.modules[key]
  
      return self.import_module(key)
  
file_path: data-describe/data_describe/compat/_dependency.py
imports: from importlib.util import find_spec
  from importlib import import_module
  import warnings
  from functools import wraps
  from types import ModuleType
  from typing import Dict, Callable, List
  from data_describe.misc.logging import OutputLogger
  from data_describe.compat._notebook import _check_plotly_extension
label_desc: Use image node_id 5 for calling the _DependencyManager obj's underlying member method code with example usage: obj.__getitem__(key) and returns: self, self