COT.ui_shared module

Abstract user interface superclass.

class UI(force=False)[source]

Bases: object

Abstract user interface functionality.

Can also be used in test code as a stub that autoconfirms everything.

confirm(prompt)[source]

Prompt user to confirm the requested operation.

Auto-accepts if force is set to True.

Warning

This stub implementation does not actually interact with the user, but instead returns default_confirm_response. Subclasses should override this method.

Parameters:prompt (str) – Message to prompt the user with
Returns:True (user confirms acceptance) or False (user declines)
confirm_or_die(prompt)[source]

If the user doesn’t agree, abort the program.

A simple wrapper for confirm() that calls sys.exit() if confirm() returns False.

fill_examples(example_list)[source]

Pretty-print a set of usage examples.

Parameters:example_list (list) – List of (example, description) tuples.
Raises NotImplementedError:
 Must be implemented by a subclass.
fill_usage(subcommand, usage_list)[source]

Pretty-print a list of usage strings.

Parameters:
  • subcommand (str) – Subcommand name/keyword
  • usage_list (list) – List of usage strings for this subcommand.
Returns:

String containing all usage strings, each appropriately wrapped to the terminal_width() value.

get_input(prompt, default_value)[source]

Prompt the user to enter a string.

Auto-inputs the default_value if force is set to True.

Warning

This stub implementation does not actually interact with the user, but instead always returns default_value. Subclasses should override this method.

Parameters:
  • prompt (str) – Message to prompt the user with
  • default_value (str) – Default value to input if the user simply hits Enter without entering a value, or if force.
Returns:

Input value

Return type:

str

get_password(username, host)[source]

Get password string from the user.

Warning

This stub implementation does not actually interact with the user, but instead always returns "passwd". Subclasses should override this method.

Parameters:
  • username (str) – Username the password is associated with
  • host (str) – Host the password is associated with
terminal_width()[source]

Get the width of the terminal in columns.

default_confirm_response = None

Knob for API testing, sets the default response to confirm().

force = None

Whether to automatically select the default value in all cases.

(As opposed to interactively prompting the user.)