import sys
import numpy as np
class Args:
    def __init__(self, filename, func, var=None, mval=None, oname=None, out=None, ndim = None, min_y = None, max_y = None, title=None, transpose = None):
        if out == "plotter_lib_pngs/":
            print("Output directory name can't be equal to " + out)
            sys.exit(-1)
    
        self.filename = filename
        self.var = var
        self.mval = mval
        self.oname = oname
        self.out = out
        self.func = func
        self.ndim = ndim
        self.title = title
        self.min_y = min_y
        self.max_y = max_y
        self.transpose = transpose

        self.CorrVals()

    def CorrVals(self):
        if type(self.oname) is not list:
            self.oname = [self.oname]
        if None in self.oname:
            self.oname = None

        if type(self.var) is not list:
            self.var = [self.var]
        if None in self.var:
            self.var = None

        if type(self.mval) is not list:
            self.mval = [self.mval]
        if None in self.mval:
            self.mval = None

        if type(self.min_y) is not list:
            self.min_y = [self.min_y]
        if None in self.min_y:
            self.min_y = None
        
        if type(self.max_y) is not list:
            self.max_y = [self.max_y]
        if None in self.max_y:
            self.max_y = None

        if type(self.transpose) is not list:
            self.transpose = [self.transpose]
        if None in self.transpose:
            self.transpose = None
        # param_lists = [self.oname, self.var, self.mval, self.min_y, self.max_y]
        # lens = []

        # for param in param_lists:
        #     if param == None:
        #         continue
        #     if type(param) is not list:
        #         lens.append(1)
        #     else:
        #         lens.append(len(param))

        # if len(lens) != 0:
        #     lens = np.array(lens, dtype = int)
        #     for i in range(1, len(lens)):
        #         if np.equal(lens[0], lens[i]).any() != True:
        #             print("Args fail")
        #             sys.exit(-1)