code: def main(*args):
      
      parser = argparse.ArgumentParser()
      parser.add_argument("action",
                          help="create, check, run, make-nb, or run-nb")
      parser.add_argument("--directory", "-dir", default=os.getcwd(),
                          help="path to directory with a .sciunit file")
      parser.add_argument("--stop", "-s", default=True,
                          help="stop and raise errors, halting the program")
      parser.add_argument("--tests", "-t", default=False,
                          help="runs tests instead of suites")
      if args:
          args = parser.parse_args(args)
      else:
          args = parser.parse_args()
      file_path = os.path.join(args.directory, '.sciunit')
      config = None
      if args.action == 'create':
          create(file_path)
      elif args.action == 'check':
          config = parse(file_path, show=True)
          print("\nNo configuration errors reported.")
      elif args.action == 'run':
          config = parse(file_path)
          run(config, path=args.directory,
              stop_on_error=args.stop, just_tests=args.tests)
      elif args.action == 'make-nb':
          config = parse(file_path)
          make_nb(config, path=args.directory,
                  stop_on_error=args.stop, just_tests=args.tests)
      elif args.action == 'run-nb':
          config = parse(file_path)
          run_nb(config, path=args.directory)
      else:
          raise NameError('No such action %s' % args.action)
      if config:
          cleanup(config, path=args.directory)
docs: Launch the main routine.