def main()

in jcm/main.py [0:0]


def main(argv):
    if FLAGS.mode == "train":
        wandb.login()
        wandb.init(
            project=os.path.basename(FLAGS.workdir),
            name=os.path.basename(FLAGS.workdir),
            config=FLAGS.config.to_dict(),
        )

        # Create the working directory
        blobfile.makedirs(FLAGS.workdir)
        formatter = logging.Formatter(
            "%(levelname)s - %(filename)s - %(asctime)s - %(message)s"
        )
        logger = logging.getLogger()
        handler = logging.StreamHandler()
        handler.setFormatter(formatter)
        logger.addHandler(handler)
        logger.setLevel("INFO")
        # Run the training pipeline
        train.train(FLAGS.config, FLAGS.workdir)
    elif FLAGS.mode == "eval":
        # Run the evaluation pipeline
        evaluate.evaluate(
            FLAGS.config,
            FLAGS.workdir,
            FLAGS.eval_folder,
        )
    elif FLAGS.mode == "metrics":
        # Compute the metrics
        metrics.compute_metrics(
            FLAGS.config,
            FLAGS.workdir,
            FLAGS.eval_folder,
        )
    else:
        raise ValueError(f"Mode {FLAGS.mode} not recognized.")