docs: def get_input(prompt, check, *, redo_prompt=None, repeat_prompt=False):
      """
      Ask the user to input something on the terminal level, check their response
      and ask again if they didn't answer correctly
      """
      if isinstance(check, str):
          check = (check,)
  
      to_join = []
      for item in check:
          if item:
              to_join.append(str(item))
          else:
              to_join.append("''")
  
      prompt += " [{}]: ".format('/'.join(to_join))
  
      if repeat_prompt:
          redo_prompt = prompt
      elif not redo_prompt:
          redo_prompt = "Incorrect input, please choose from {}: " \
                        "".format(str(check))
  
      if callable(check):
          def _checker(r): return check(r)
      elif isinstance(check, tuple):
          def _checker(r): return r in check
      else:
          raise ValueError(RESPONSES_ERROR.format(type(check)))
  
      response = input(prompt)
      while not _checker(response):
          print(response, type(response))
          response = input(redo_prompt if redo_prompt else prompt)
      return response