code: def ask(self, answers=None):
          
          if answers is None:
              answers = {}
          _answers = {}
          if self.multiple:
              print((bold('Multiple answers are supported for this question.  ' +
                          'Please enter a "."  character to finish.')))
              _answers[self.value] = []
              answer = self._ask(answers)
              while answer is not None:
                  _answers[self.value].append(answer)
                  answer = self._ask(answers)
          else:
              _answers[self.value] = self._ask(answers)
          if isinstance(self.validator, list):
              for v in self.validator:
                  _answers = dict(_answers, **v.hints())
          else:
              _answers = dict(_answers, **self.validator.hints())
          for q in self._questions:
              answers = dict(answers, **_answers)
              _answers = dict(_answers, **q.ask(answers))
          return _answers
docs: Ask the question, then ask any sub-questions.
  
              This returns a dict with the {value: answer} pairs for the current
              question plus all descendant questions.