class_docstr: A registry for plugins.
  
  This is a plugin registry that allows plugins to be loaded/registered
  in two ways:
  
  1. Through an explicit call to ``.register(name, value)``.
  2. By looking for other Python packages that are installed and provide
     a setuptools entry point group.
  
  When you create an instance of this class, provide the name of the
  entry point group to use::
  
      reg = PluginRegister('my_entrypoint_group')
class_docstr_tok: ["A","registry","for","plugins",".","This","is","a","plugin","registry","that","allows","plugins","to","be","loaded\/registered","in","two","ways",":","1",".","Through","an","explicit","call","to","``",".register","(","name",",","value",")","``",".","2",".","By","looking","for","other","Python","packages","that","are","installed","and","provide","a","setuptools","entry","point","group",".","When","you","create","an","instance","of","this","class",",","provide","the","name","of","the","entry","point","group","to","use",":",":","reg","=","PluginRegister","(","'my_entrypoint_group","'",")"]
docstr: Create a PluginRegistry for a named entry point group.
  
  Parameters
  ==========
  entry_point_group: str
      The name of the entry point group.
  plugin_type: object
      A type that will optionally be used for runtime type checking of
      loaded plugins using isinstance.
docstr_tok: ["Create","a","PluginRegistry","for","a","named","entry","point","group",".","Parameters","==========","entry_point_group",":","str","The","name","of","the","entry","point","group",".","plugin_type",":","object","A","type","that","will","optionally","be","used","for","runtime","type","checking","of","loaded","plugins","using","isinstance","."]
code: def __init__(
      self, entry_point_group: str = "", plugin_type: type = object
  ):
      """Create a PluginRegistry for a named entry point group.
  
      Parameters
      ==========
      entry_point_group: str
          The name of the entry point group.
      plugin_type: object
          A type that will optionally be used for runtime type checking of
          loaded plugins using isinstance.
      """
      self.entry_point_group = entry_point_group  # type: str
      self.plugin_type = plugin_type  # type: Optional[type]
      self._active = None  # type: Optional[PluginType]
      self._active_name = ""  # type: str
      self._plugins = {}  # type: Dict[str, PluginType]
      self._options = {}  # type: Dict[str, Any]
      self._global_settings = self.__class__._global_settings.copy()
  
imports: from typing import Any, Dict, List, Optional, Generic, TypeVar, cast
  from types import TracebackType
  from importlib.metadata import entry_points
  from toolz import curry
label_desc: Use image node_id 1 to create a new PluginRegistry object from inherited base classes: Generic with example: obj = PluginRegistry(entry_point_group, plugin_type)