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: Enable a plugin by name.
  
  This can be either called directly, or used as a context manager.
  
  Parameters
  ----------
  name : string (optional)
      The name of the plugin to enable. If not specified, then use the
      current active name.
  **options :
      Any additional parameters will be passed to the plugin as keyword
      arguments
  
  Returns
  -------
  PluginEnabler:
      An object that allows enable() to be used as a context manager
docstr_tok: ["Enable","a","plugin","by","name",".","This","can","be","either","called","directly",",","or","used","as","a","context","manager",".","Parameters","--","--","--","--","--","name",":","string","(","optional",")","The","name","of","the","plugin","to","enable",".","If","not","specified",",","then","use","the","current","active","name",".","*","*","options",":","Any","additional","parameters","will","be","passed","to","the","plugin","as","keyword","arguments","Returns","--","--","--","-","PluginEnabler",":","An","object","that","allows","enable","(",")","to","be","used","as","a","context","manager"]
code: def enable(
      self, name: Optional[str] = None, **options
  ) -> PluginEnabler:
      """Enable a plugin by name.
  
      This can be either called directly, or used as a context manager.
  
      Parameters
      ----------
      name : string (optional)
          The name of the plugin to enable. If not specified, then use the
          current active name.
      **options :
          Any additional parameters will be passed to the plugin as keyword
          arguments
  
      Returns
      -------
      PluginEnabler:
          An object that allows enable() to be used as a context manager
      """
      if name is None:
          name = self.active
      return PluginEnabler(self, name, **options)
  
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 7 for calling the PluginRegistry obj's underlying member method code with example usage: obj.enable(name) and returns: PluginEnabler