code: def option_chooser(options, attr=None):
      
      for num, option in enumerate(options):
          if attr:
              print("%s: %s" % (num, getattr(option, attr)))
          else:
              print("%s: %s" % (num, option))
      # Add an escape option
      escape_opt = num + 1
      print("%s: I want to exit!" % escape_opt)
      choice = six.moves.input("Selection: ")
      try:
          ichoice = int(choice)
          if ichoice > escape_opt:
              raise ValueError
      except ValueError:
          print("Valid entries are the numbers 0-%s. Received '%s'." % (escape_opt,
                  choice))
          sys.exit()
  
      if ichoice == escape_opt:
          print("Bye!")
          sys.exit()
  
      return ichoice
docs: Given an iterable, enumerate its contents for a user to choose from.
      If the optional `attr` is not None, that attribute in each iterated
      object will be printed.
  
      This function will exit the program if the user chooses the escape option.