def get_question_response(self, question):
     if not question:
         return ""
     DisplayEffects.scroll_text(self.display, question)
     SoundEffects.play_type_your_answer()
     DisplayEffects.display_text(self.display,
                                 '???',
                                 font=DisplayEffects.BigFont)
     answer_events = keyboard.record(until="enter")
     return next(keyboard.get_typed_strings(answer_events))
 def get_boundary_selection(self, categories):
     if not categories or len(categories) == 0:
         return ""
     for i, cat in categories.items():
         SoundEffects.categories[cat['name']].play()
         DisplayEffects.scroll_text(self.display,
                                    "{0}. {1} ".format(i, cat['display']))
     SoundEffects.play_type_your_boundary()
     DisplayEffects.display_text(self.display,
                                 '???',
                                 font=DisplayEffects.BigFont)
     cat_events = keyboard.record(until="enter")
     return next(keyboard.get_typed_strings(cat_events))