def main()

in doc/generate_docs/pct_to_ipynb.py [0:0]


def main():
    parser = argparse.ArgumentParser(description="Converts .py files in docs to .ipynb")
    parser.add_argument("-id", "--run_id", type=str, help="id used to cache processed files")
    parser.add_argument(
        "-kn",
        "--kernel_name",
        default=kernel_name,
        type=str,
        help=f"name of kernel to run notebooks. (default: {kernel_name})",
    )
    args = parser.parse_args()

    cache_file = os.path.join(cache_path, args.run_id)
    processed_files = set()
    if os.path.isfile(cache_file):
        with open(cache_file, "r") as f:
            for file_path in f:
                processed_files.add(file_path)

    found_files = find_files(exec_dir, file_type)

    for file in found_files:
        if file in processed_files:
            print(f"Skipping already processed file: {file}")
            continue
        if any([skip_file in file for skip_file in skip_files]):
            print(f"Skipping configured skipped file: {file}")
            continue
        print(f"Processing {file}")
        result = subprocess.run(
            ["jupytext", "--execute", "--set-kernel", args.kernel_name, "--to", "notebook", file],
            stdout=subprocess.DEVNULL,
        )
        if result.returncode != 0:
            print(f"Error processing {file}")
            continue
        print(f"Successfully processed {file}")
        # Log to cache file
        f = open(cache_file, "a")
        f.write(os.path.join(file))
        f.close()
    return