docs: def input(self, prompt=None, default=None, validators=None, enable_quit=False, quit_string='q',
                quit_message='(enter q to Quit)'):
          """
          Prompt the user for input.
          :param prompt: the message to prompt the user.
          :param default: the default value to suggest as an answer.
          :param validators: list of validators to perform input validation.
          :param enable_quit: specifies whether the user can cancel out of the input prompt.
          :param quit_string: the string whcih the user must input in order to quit.
          :param quit_message: the message to explain how to quit.
          :return: an InputResult tuple.
          """
  
          prompt = self.__prompt_formatter.format_prompt(prompt=prompt, default=default, enable_quit=enable_quit,
                                                         quit_string=quit_string, quit_message=quit_message)
  
          input_string = self.__screen.input(prompt=prompt)
  
          if enable_quit and quit_string == input_string:
              raise UserQuit
  
          if default is not None and input_string.strip() == '':
              input_string = default
  
          validation_result = self.validate_input(input_string, validators)
  
          return InputResult(input_string=input_string, validation_result=validation_result)