letsencrypt.display
¶
Let’s Encrypt display utilities.
letsencrypt.display.util
¶
Let’s Encrypt display.
-
letsencrypt.display.util.
OK
= 'ok'¶ Display exit code indicating user acceptance.
-
letsencrypt.display.util.
CANCEL
= 'cancel'¶ Display exit code for a user canceling the display.
-
letsencrypt.display.util.
HELP
= 'help'¶ Display exit code when for when the user requests more help.
-
letsencrypt.display.util.
_wrap_lines
(msg)[source]¶ Format lines nicely to 80 chars.
Parameters: msg (str) – Original message Returns: Formatted message respecting newlines in message Return type: str
-
class
letsencrypt.display.util.
NcursesDisplay
(width=72, height=20)[source]¶ Bases:
object
Ncurses-based display.
-
notification
(message, height=10, pause=False)[source]¶ Display a notification to the user and wait for user acceptance.
Todo
It probably makes sense to use one of the transient message types for pause. It isn’t straightforward how best to approach the matter though given the context of our messages. http://pythondialog.sourceforge.net/doc/widgets.html#displaying-transient-messages
Parameters:
Display a menu.
Parameters: Returns: tuple of the form (
code
,index
) wherecode
- int display exit codeint
- index of the selected itemReturn type:
-
input
(message, **unused_kwargs)[source]¶ Display an input box to the user.
Parameters: Returns: tuple of the form (
code
,string
) wherecode
- int display exit codestring
- input entered by the user
-
yesno
(message, yes_label='Yes', no_label='No', **unused_kwargs)[source]¶ Display a Yes/No dialog box.
Yes and No label must begin with different letters.
Parameters: Returns: if yes_label was selected
Return type:
-
-
class
letsencrypt.display.util.
FileDisplay
(outfile)[source]¶ Bases:
object
File-based display.
-
notification
(message, height=10, pause=True)[source]¶ Displays a notification and waits for user acceptance.
Parameters:
Display a menu.
Todo
This doesn’t enable the help label/button (I wasn’t sold on any interface I came up with for this). It would be a nice feature
Parameters: Returns: tuple of (
code
,index
) wherecode
- str display exit codeindex
- int index of the user’s selectionReturn type:
-
input
(message, **unused_kwargs)[source]¶ Accept input from the user.
Parameters: Returns: tuple of (
code
,input
) wherecode
- str display exit codeinput
- str of the user’s inputReturn type:
-
yesno
(message, yes_label='Yes', no_label='No', **unused_kwargs)[source]¶ Query the user with a yes/no question.
Yes and No label must begin with different letters, and must contain at least one letter each.
Parameters: Returns: True for “Yes”, False for “No”
Return type:
-
checklist
(message, tags, default_status=True, **unused_kwargs)[source]¶ Display a checklist.
Parameters: Returns: tuple of (
code
,tags
) wherecode
- str display exit codetags
- list of selected tagsReturn type:
-
_scrub_checklist_input
(indices, tags)[source]¶ Validate input and transform indices to appropriate tags.
Parameters: Returns: valid tags the user selected
Return type:
Print a menu on the screen.
Parameters: - message (str) – title of menu
- choices (list of tuples (tag, item) or list of descriptions (tags will be enumerated)) – Menu lines
-
-
class
letsencrypt.display.util.
NoninteractiveDisplay
(outfile)[source]¶ Bases:
object
An iDisplay implementation that never asks for interactive user input
-
_interaction_fail
(message, cli_flag, extra='')[source]¶ Error out in case of an attempt to interact in noninteractive mode
-
notification
(message, height=10, pause=False)[source]¶ Displays a notification without waiting for user acceptance.
Parameters:
Avoid displaying a menu.
Parameters: Returns: tuple of (
code
,index
) wherecode
- str display exit codeindex
- int index of the user’s selectionReturn type: Raises: errors.MissingCommandlineFlag – if there was no default
-
input
(message, default=None, cli_flag=None)[source]¶ Accept input from the user.
Parameters: message (str) – message to display to the user Returns: tuple of ( code
,input
) wherecode
- str display exit codeinput
- str of the user’s inputReturn type: tuple Raises: errors.MissingCommandlineFlag – if there was no default
-
yesno
(message, yes_label=None, no_label=None, default=None, cli_flag=None)[source]¶ Decide Yes or No, without asking anybody
Parameters: Raises: errors.MissingCommandlineFlag – if there was no default
Returns: True for “Yes”, False for “No”
Return type:
-
letsencrypt.display.ops
¶
Contains UI methods for LE user operations.
-
letsencrypt.display.ops.
choose_plugin
(prepared, question)[source]¶ 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: - prepared (list) – List of
-
letsencrypt.display.ops.
pick_plugin
(config, default, plugins, question, ifaces)[source]¶ Pick plugin.
Parameters: - letsencrypt.interfaces.IConfig – Configuration
- default (str) – Plugin name supplied by user or
None
. - plugins (letsencrypt.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
-
letsencrypt.display.ops.
pick_authenticator
(config, default, plugins, question="How would you like to authenticate with the Let's Encrypt CA?")[source]¶ Pick authentication plugin.
-
letsencrypt.display.ops.
pick_installer
(config, default, plugins, question='How would you like to install certificates?')[source]¶ Pick installer plugin.
-
letsencrypt.display.ops.
pick_configurator
(config, default, plugins, question='How would you like to authenticate and install certificates?')[source]¶ Pick configurator plugin.
-
letsencrypt.display.ops.
get_email
(more=False, invalid=False)[source]¶ Prompt for valid email address.
Parameters: Returns: Email or
None
if cancelled by user.Return type:
-
letsencrypt.display.ops.
choose_account
(accounts)[source]¶ Choose an account.
Parameters: accounts (list) – Containing at least one Account
-
letsencrypt.display.ops.
choose_names
(installer)[source]¶ Display screen to select domains to validate.
Parameters: installer ( letsencrypt.interfaces.IInstaller
) – An installer objectReturns: List of selected names Return type: list
ofstr
-
letsencrypt.display.ops.
get_valid_domains
(domains)[source]¶ - Helper method for choose_names that implements basic checks
- on domain names
Parameters: domains (list) – Domain names to validate Returns: List of valid domains Return type: list
-
letsencrypt.display.ops.
_filter_names
(names)[source]¶ Determine which names the user would like to select from a list.
Parameters: names (list) – domain names Returns: tuple of the form ( code
,names
) wherecode
- str display exit codenames
- list of names selectedReturn type: tuple
-
letsencrypt.display.ops.
_choose_names_manually
()[source]¶ Manually input names for those without an installer.
-
letsencrypt.display.ops.
success_installation
(domains)[source]¶ Display a box confirming the installation of HTTPS.
Todo
This should be centered on the screen
Parameters: domains (list) – domain names which were enabled
-
letsencrypt.display.ops.
success_renewal
(domains, action)[source]¶ Display a box confirming the renewal of an existing certificate.
Todo
This should be centered on the screen
Parameters:
letsencrypt.display.enhancements
¶
Let’s Encrypt Enhancement Display
-
letsencrypt.display.enhancements.
ask
(enhancement)[source]¶ Display the enhancement to the user.
Parameters: enhancement (str) – One of the letsencrypt.CONFIG.ENHANCEMENTS
enhancementsReturns: True if feature is desired, False otherwise Return type: bool Raises: .errors.Error – if the enhancement provided is not supported