def METHOD_NAME(args):
  from libtbx.option_parser import option_parser
  command_line = (option_parser(
    usage="fable.python %s [options]" % __file__)
    .option(None, "--ifort",
      action="store_true",
      default=False)
    .option(None, "--verbose",
      action="store_true",
      default=False)
  ).process(args=args)
  keys = set(command_line.args)
  exercises = set()
  for key in globals().keys():
    if (key.startswith("exercise_")):
      exercises.add(key[9:])
  assert len(keys) == 0 or keys.issubset(exercises)
  co = command_line.options
  from libtbx.utils import show_times_at_exit
  show_times_at_exit()
  if (len(keys) == 0 or "open" in keys):
    exercise_open(opts=co)
  if (len(keys) == 0 or "mixed_read_write" in keys):
    exercise_mixed_read_write(opts=co)
  if (len(keys) == 0 or "read_from_non_existing_file" in keys):
    exercise_read_from_non_existing_file(opts=co)
  print("OK")