def main()

in tutorials/mnist_utils.py [0:0]


def main():
    parser = argparse.ArgumentParser("Split data for use in Tutorials")
    parser.add_argument(
        "--option",
        type=str,
        choices={"features", "data", "features_v_labels", "train_v_test"},
    )
    parser.add_argument("--ratio", type=float, default=0.72)
    parser.add_argument("--name_party1", type=str, default="alice")
    parser.add_argument("--name_party2", type=str, default="bob")
    parser.add_argument("--dest", type=str, default="/tmp")
    parser.add_argument("--reduced", type=int, default=None)
    parser.add_argument("--binary", action="store_true")
    args = parser.parse_args()

    if args.option == "features":
        split_features(
            split=args.ratio,
            dir=args.dest,
            party1=args.name_party1,
            party2=args.name_party2,
            reduced=args.reduced,
            binary=args.binary,
        )
    elif args.option == "data":
        split_observations(
            split=args.ratio,
            dir=args.dest,
            party1=args.name_party1,
            party2=args.name_party2,
            reduced=args.reduced,
            binary=args.binary,
        )
    elif args.option == "features_v_labels":
        split_features_v_labels(
            dir=args.dest,
            party1=args.name_party1,
            party2=args.name_party2,
            reduced=args.reduced,
            binary=args.binary,
        )
    elif args.option == "train_v_test":
        split_train_v_test(
            dir=args.dest,
            party1=args.name_party1,
            party2=args.name_party2,
            reduced=args.reduced,
            binary=args.binary,
        )
    else:
        raise ValueError("Invalid split option")