docs: def handle_ans(iiter, ans_):
          """
          preforms an actionm based on a user answer
          """
          ans = ans_.strip(' ')
          def parse_str_value(ans):
              return ' '.join(ans.split(' ')[1:])
          def chack_if_answer_was(valid_keys):
              return any([ans == key or ans.startswith(key + ' ') for key in valid_keys])
          # Handle standard actions
          if ans in iiter.action_keys['quit']:
              raise StopIteration()
          elif ans in iiter.action_keys['prev']:
              iiter.index -= 1
          elif ans in iiter.action_keys['next']:
              iiter.index += 1
          elif ans in iiter.action_keys['reload']:
              iiter.index += 0
          elif chack_if_answer_was(iiter.action_keys['index']):
              try:
                  iiter.index = int(parse_str_value(ans))
              except ValueError:
                  print('Unknown ans=%r' % (ans,))
          elif chack_if_answer_was(iiter.action_keys['set']):
              try:
                  iiter.iterable[iiter.index] = eval(parse_str_value(ans))
              except ValueError:
                  print('Unknown ans=%r' % (ans,))
          elif ans in iiter.action_keys['ipy']:
              return 'IPython'
          else:
              # Custom interactions
              for func, tup in zip(iiter.custom_funcs, iiter.custom_actions):
                  key = tup[0]
                  if chack_if_answer_was(iiter.action_keys[key]):
                      value  = parse_str_value(ans)
                      # cal custom function
                      print('Calling custom action func')
                      import utool as ut
                      argspec = ut.get_func_argspec(func)
                      if len(argspec.args) == 3:
                          # Forgot why I had custom functions take args in the first place
                          func(iiter, key, value)
                      else:
                          func()
                      # Custom funcs dont cause iteration
                      return False
              print('Unknown ans=%r' % (ans,))
              return False
          return True