def main()

in scheme_adapters/multiD_polyfit_adapter/multiD_polyfit_adapter.py [0:0]


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-dp", "--damoos_path", required=True, help="DAMOOS path")
    parser.add_argument("-lb", "--lazybox_path", required=True, help="Lazybox path")
    parser.add_argument("-jp", "--json_path", required=True, help="JSON file path")
    parser.add_argument("-dm", "--damos_path", required=True, help="DAMOS path")

    args = vars(parser.parse_args())
    damoos_path = args["damoos_path"]
    lazybox_path = args["lazybox_path"]
    json_path = args["json_path"]
    damos_path = args["damos_path"]

    sys.path.append(damoos_path + '/scheme_adapters/polyfit_adapter')
    from polyfit_adapter import Polyfit
    
    name = json_path.split(".")[0]
    parameters = generate_json(json_path, damoos_path)

    best_points = dict()

    for i in range(len(parameters)):
        polyfit = Polyfit(damoos_path, lazybox_path, damos_path)
        best_fit = polyfit.find_best_scheme(name + "_" + str(parameters[i]) + ".json")
        print("Best ", parameters[i], ":", best_fit)
        best_points[parameters[i]] = best_fit
        if i == len(parameters) - 1:
            new_scheme = generate_best_scheme(json_path, damoos_path, best_points)
            res = polyfit.run_best_workload(new_scheme)
            print("Best score:", res[0], "Best metric:", res[1])

    subprocess.call(["sudo", "DAMOOS=" + damoos_path, "bash", damoos_path + "/frontend/cleanup.sh"])