import csv
import pandas as pd
import os

class CsvLogger:
    def __init__(self, outfile="log.csv"):
        self.outfile = outfile
        # self.init_logfile()
    
    # def init_logfile(self):
    #     if not os.path.isfile(self.outfile.replace(".csv", ".avg.csv")):
    #         os.makedirs(self.outfile.replace(".csv", ".avg.csv"), exist_ok=True)
    #     if not os.path.isfile(self.outfile.replace(".csv", ".lang.avg.csv")):
    #         os.makedirs(self.outfile.replace(".csv", ".lang.csv"), exist_ok=True)
    #     return
    
    def log_lang_results(self, results: dict, config="gfun-default", notes=None):
        df = pd.DataFrame.from_dict(results, orient="columns")
        df["config"] = config["gFun"]["simple_id"]
        df["aggfunc"] = config["gFun"]["aggfunc"]
        df["dataset"] = config["gFun"]["dataset"]
        df["id"] = config["gFun"]["id"]
        df["optimc"] = config["gFun"]["optimc"]
        df["timing"] = config["gFun"]["timing"]
        df["notes"] = notes
        with open(self.outfile, 'a') as f:
            df.to_csv(f, mode='a', header=f.tell()==0)