import os
from pathlib import Path
import subprocess

import pandas as pd
from transforms.api import Output, transform


@transform.using(
    my_output=Output("/training/containers/cobol-output")
).with_container(
    container_image="cobol-generator",
    container_tag="0.0.1",
)
def compile_cobol_data_generator(my_output):
    work_directory = Path(os.environ["USER_WORKING_DIR"])
    source = work_directory / "user_code" / "resources" / "data_generator.cbl"
    executable = work_directory / "data_generator"
    subprocess.run(
        ["cobc", "-x", "-free", "-o", str(executable), str(source)],
        cwd=work_directory,
        check=True,
    )
    subprocess.run([str(executable)], cwd=work_directory, check=True)
    my_output.write_table(pd.read_csv(work_directory / "data.csv"))
