<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def superReadCSV(filepath, first_codec='UTF_8', usecols=None, low_memory=False, dtype=None, parse_dates=True, sep=',', chunksize=None, verbose=False, **kwargs):
 """ A wrap to pandas read_csv with mods to accept a dataframe or filepath. returns dataframe untouched, reads filepath and returns dataframe based on arguments. """


        if isinstance(filepath, pd.DataFrame):
            return filepath

        assert isinstance(first_codec, str), "first_codec must be a string"

        codecs = ['UTF_8', 'ISO-8859-1', 'ASCII', 'UTF_16', 'UTF_32']
        try:
            codecs.remove(first_codec)
        except ValueError as not_in_list:
            pass
        codecs.insert(0, first_codec)
        errors = []
        for c in codecs:
            try:

                return pd.read_csv(filepath,
                                   usecols=usecols,
                                   low_memory=low_memory,
                                   encoding=c,
                                   dtype=dtype,
                                   parse_dates=parse_dates,
                                   sep=sep,
                                   chunksize=chunksize,
                                   **kwargs)
            # Need to catch `UnicodeError` here, not just `UnicodeDecodeError`,
            # because pandas 0.23.1 raises it when decoding with UTF_16 and the
            # file is not in that format:
            except (UnicodeError, UnboundLocalError) as e:
                errors.append(e)
            except Exception as e:
                errors.append(e)
                if 'tokenizing' in str(e):
                    pass
                else:
                    raise
        if verbose:
            [print(e) for e in errors]

        raise UnicodeDecodeError("Tried {} codecs and failed on all: \n CODECS: {} \n FILENAME: {}".format(
                        len(codecs), codecs, os.path.basename(filepath)))