示例#1
0
文件: cli.py 项目: wking/quizzer
 def _answer(self):
     if self.question.multiline:
         answer = self.answers
     elif self.answers:
         answer = self.answers[0]
     else:
         answer = ''
     if answer == 'EOF':
         return True  # quit
     if answer == '':
         return
     kwargs = {}
     if self._tempdir:
         kwargs['tempdir'] = self._tempdir
     answer = self._process_answer(answer=answer)
     correct,details = self.ui.process_answer(
         question=self.question, answer=answer, **kwargs)
     if correct:
         print(_colorize(self.ui.colors['correct'], 'correct\n'))
     else:
         print(_colorize(self.ui.colors['incorrect'], 'incorrect'))
         if details:
             print(_colorize(
                     self.ui.colors['incorrect'], '{}\n'.format(details)))
         else:
             print('')
     return self.get_question()
示例#2
0
文件: cli.py 项目: wking/quizzer
 def _set_ps1(self):
     "Pose a question and prompt"
     if self.question:
         lines = [
             '',
             _colorize(
                 self.ui.colors['question'], self.question.format_prompt()),
             ]
         lines.extend(
             _colorize(self.ui.colors['prompt'], line)
             for line in self._extra_ps1_lines())
         lines.append(_colorize(self.ui.colors['prompt'], self._prompt))
         self.prompt = '\n'.join(lines)
     else:
         self.prompt = _colorize(self.ui.colors['prompt'], self._prompt)
示例#3
0
 def _color_string(string, color=None):
     color = {
         'magenta': 'fuchsia',
         'cyan': 'turquoise',
         None: 'reset',
         }.get(color, color)
     return _colorize(color_key=color, text=string)
示例#4
0
文件: cli.py 项目: wking/quizzer
 def _display_results(self):
     print(_colorize(self.colors['result'], 'results:'))
     answers = self.answers.get_answers(user=self.user)
     for question in self.quiz:
         if question.id in answers:
             self._display_result(question=question)
             print()
     self._display_totals()
示例#5
0
文件: cli.py 项目: wking/quizzer
 def _display_result(self, question):
     answers = self.answers.get_answers(user=self.user).get(question.id, [])
     print('question:')
     print('  {}'.format(
         _colorize(
             self.colors['question'],
             question.format_prompt(newline='\n  '))))
     la = len(answers)
     lc = len([a for a in answers if a['correct']])
     if la:
         print('answers: {}/{} ({:.2f})'.format(lc, la, float(lc)/la))
     for answer in answers:
         if answer['correct']:
             correct = 'correct'
         else:
             correct = 'incorrect'
         correct = _colorize(self.colors[correct], correct)
         ans = answer['answer']
         if question.multiline:
             ans = '\n                '.join(ans)
         print('  you answered: {}'.format(ans))
         print('     which was: {}'.format(correct))
示例#6
0
文件: cli.py 项目: wking/quizzer
 def _set_ps2(self):
     "Just prompt (without the question, e.g. for multi-line answers)"
     self.prompt = _colorize(self.ui.colors['prompt'], self._prompt)