def main()

in pageload-summary/summarize.py [0:0]


def main():
    args = summary_parser().parse_args()

    # Check data path and setup output
    data_path = pathlib.Path(args.data)
    if not data_path.exists():
        raise Exception(f"The given data file doesn't exist: {args.data}")

    output_folder = pathlib.Path(args.output)
    output_file = "summary.json"

    if output_folder.exists() and output_folder.is_file():
        print(f"Deleting existing JSON file at: {output_folder}")
        output_folder.unlink()

    if not output_folder.exists():
        if pathlib.Path(output_folder.parts[-1]).suffixes:
            # A JSON file name was given
            output_file = output_folder.parts[-1]
            output_folder = pathlib.Path(*output_folder.parts[:-1])
        output_folder.mkdir(parents=True, exist_ok=True)

    # Process the data and visualize the results (after saving)
    data = open_csv_data(data_path)

    results = summarize(
        data,
        args.platforms,
        args.platform_pattern,
        args.timespan,
        args.moving_average_window,
        args.start_date,
        args.end_date,
        args.by_site,
        args.apps,
    )

    with pathlib.Path(output_folder, output_file).open("w") as f:
        json.dump(results, f)

    csv_lines = text_summary(results)

    csv_file = pathlib.Path(output_folder, "newest-points.csv")
    if csv_file.exists():
        print(f"Deleting existing CSV summary file at: {csv_file}")
        csv_file.unlink()
    with csv_file.open("w") as f:
        writer = csv.writer(f, delimiter=",")
        for line in csv_lines:
            writer.writerow(line)

    if args.visualize:
        visual_summary(results, args.save_plots, args.save_directory)