code: def yesno(question, default=None):
      
  
      if default is not None:
          if isinstance(default, bool):
              pass
          else:
              default_ = default.upper()
              if default_ not in ('Y', 'YES', 'N', 'NO'):
                  raise RuntimeError("Invalid default value: '{}'".format(default))
              default = default_ in ('Y', 'YES')
  
      while True:
          ans = input("{} ({}/{})? ".format(question, "Y" if default == True else "y",
                                           "N" if default == False else "n")).upper()
          if ans == "" and default is not None:
              ret = default
              break
          elif ans in ("N", "NO"):
              ret = False
              break
          elif ans in ("Y", "YES"):
              ret = True
              break
      return ret
docs: Asks a yes/no question
  
      Args:
          question: string **without** the question mark and without the options.
              Example: 'Create links'
          default: default option. Accepted values are 'Y', 'YES', 'N', 'NO' or lowercase versions of
              these valus (this argument is case-insensitive)
  
      Returns:
          bool: True if user answered Yes, False otherwise