"certbot.plugins.selection"
***************************

Decide which plugins to use for authentication & installation

certbot.plugins.selection.pick_configurator(config, default, plugins, question='How would you like to authenticate and install certificates?')

   Pick configurator plugin.

certbot.plugins.selection.pick_installer(config, default, plugins, question='How would you like to install certificates?')

   Pick installer plugin.

certbot.plugins.selection.pick_authenticator(config, default, plugins, question='How would you like to authenticate with the ACME CA?')

   Pick authentication plugin.

certbot.plugins.selection.get_unprepared_installer(config, plugins)

   Get an unprepared interfaces.IInstaller object.

   Parameters:
      * **config** (*certbot.interfaces.IConfig*) – Configuration

      * **plugins** (*certbot.plugins.disco.PluginsRegistry*) – All
        plugins registered as entry points.

   Returns:
      Unprepared installer plugin or None

   Return type:
      IPlugin or None

certbot.plugins.selection.pick_plugin(config, default, plugins, question, ifaces)

   Pick plugin.

   Parameters:
      * **certbot.interfaces.IConfig** – Configuration

      * **default** (*str*) – Plugin name supplied by user or
        "None".

      * **plugins** (*certbot.plugins.disco.PluginsRegistry*) – All
        plugins registered as entry points.

      * **question** (*str*) – Question to be presented to the user
        in case multiple candidates are found.

      * **ifaces** (*list*) – Interfaces that plugins must provide.

   Returns:
      Initialized plugin.

   Return type:
      IPlugin

certbot.plugins.selection.choose_plugin(prepared, question)

   Allow the user to choose their plugin.

   Parameters:
      * **prepared** (*list*) – List of "PluginEntryPoint".

      * **question** (*str*) – Question to be presented to the user.

   Returns:
      Plugin entry point chosen by the user.

   Return type:
      "PluginEntryPoint"

certbot.plugins.selection.record_chosen_plugins(config, plugins, auth, inst)

   Update the config entries to reflect the plugins we actually
   selected.

certbot.plugins.selection.choose_configurator_plugins(config, plugins, verb)

   Figure out which configurator we’re going to use, modifies
   config.authenticator and config.installer strings to reflect that
   choice if necessary.

   :raises errors.PluginSelectionError if there was a problem

   Returns:
      (an "IAuthenticator" or None, an "IInstaller" or None)

   Return type:
      tuple

certbot.plugins.selection.set_configurator(previously, now)

   Setting configurators multiple ways is okay, as long as they all
   agree :param str previously: previously identified request for the
   installer/authenticator :param str requested: the request currently
   being processed

certbot.plugins.selection.cli_plugin_requests(config)

   Figure out which plugins the user requested with CLI and config
   options

   Returns:
      (requested authenticator string or None, requested installer
      string or None)

   Return type:
      tuple

certbot.plugins.selection.diagnose_configurator_problem(cfg_type, requested, plugins)

   Raise the most helpful error message about a plugin being
   unavailable

   Parameters:
      * **cfg_type** (*str*) – either “installer” or “authenticator”

      * **requested** (*str*) – the plugin that was requested

      * **plugins** (*PluginsRegistry*) – available plugins

   Raises:
      **error.PluginSelectionError** – if there was a problem
