def METHOD_NAME(args, path, client_number, uniform=True, compact=True):
    graphs_train, graphs_val, graphs_test = create_random_split(path, args.dataset)
    num_train_samples = len(graphs_train)
    num_val_samples = len(graphs_val)
    num_test_samples = len(graphs_test)
    train_idxs = list(range(num_train_samples))
    val_idxs = list(range(num_val_samples))
    test_idxs = list(range(num_test_samples))
    random.shuffle(train_idxs)
    random.shuffle(val_idxs)
    random.shuffle(test_idxs)
    partition_dicts = [None] * client_number
    if uniform:
        clients_idxs_train = np.array_split(train_idxs, client_number)
        clients_idxs_val = np.array_split(val_idxs, client_number)
        clients_idxs_test = np.array_split(test_idxs, client_number)
    else:
        clients_idxs_train = create_non_uniform_split(args, train_idxs, client_number, data_type="train")
        clients_idxs_val = create_non_uniform_split(args, val_idxs, client_number, data_type="val")
        clients_idxs_test = create_non_uniform_split(args, test_idxs, client_number, data_type="test")
    labels_of_all_clients = []
    for client in range(client_number):
        client_train_idxs = clients_idxs_train[client]
        client_val_idxs = clients_idxs_val[client]
        client_test_idxs = clients_idxs_test[client]
        train_graphs_client = [graphs_train[idx] for idx in client_train_idxs]
        train_labels_client = [graphs_train[idx].y for idx in client_train_idxs]
        labels_of_all_clients.append(train_labels_client)
        val_graphs_client = [graphs_val[idx] for idx in client_val_idxs]
        val_labels_client = [graphs_val[idx].y for idx in client_val_idxs]
        labels_of_all_clients.append(val_labels_client)
        test_graphs_client = [graphs_test[idx] for idx in client_test_idxs]
        test_labels_client = [graphs_test[idx].y for idx in client_test_idxs]
        labels_of_all_clients.append(test_labels_client)
        partition_dict = {
            "train": train_graphs_client,
            "val": val_graphs_client,
            "test": test_graphs_client,
        }
        partition_dicts[client] = partition_dict
    # plot the label distribution similarity score
    # visualize_label_distribution_similarity_score(labels_of_all_clients)
    global_data_dict = {"train": graphs_train, "val": graphs_val, "test": graphs_test}
    return global_data_dict, partition_dicts