def read_file(self, filepath, **kwargs):
        """
        Reads a filepath into a DataFrameModel and registers
        it.
        Example use:
            dfmm = DataFrameModelManger()
            dfmm.read_file(path_to_file)
            dfm = dfmm.get_model(path_to_file)
            df = dfm.get_frame(path_to_file)

        :param filepath: (str)
            The filepath to read
        :param kwargs:
            .xlsx files: pandas.read_excel(**kwargs)
            .csv files: pandas.read_csv(**kwargs)
        :return: DataFrameModel
        """
        try:
            model = self._models[filepath]
        except KeyError:
            model = read_file(filepath, **kwargs)
            self._models[filepath] = model
            self.signalNewModelRead.emit(filepath)
        finally:
            self._paths_read.append(filepath)

        return self._models[filepath]
def read_file ( self , filepath , ** kwargs ) : try : model = self . _models [ filepath ] except KeyError : model = read_file ( filepath , ** kwargs ) self . _models [ filepath ] = model self . signalNewModelRead . emit ( filepath ) finally : self . _paths_read . append ( filepath ) return self . _models [ filepath ]
Reads a filepath into a DataFrameModel and registers
        it.
        Example use:
            dfmm = DataFrameModelManger()
            dfmm.read_file(path_to_file)
            dfm = dfmm.get_model(path_to_file)
            df = dfm.get_frame(path_to_file)

        :param filepath: (str)
            The filepath to read
        :param kwargs:
            .xlsx files: pandas.read_excel(**kwargs)
            .csv files: pandas.read_csv(**kwargs)
        :return: DataFrameModel