def METHOD_NAME(filepath):
    columns = []
    entries = []
    with open(filepath) as fh:
        try:
            # fast-forward to the header
            line = next(fh)
            while not line.startswith('----'):
                line = next(fh)
            header_line = next(fh)
            haader_sep = re.compile(r'(?<=[) ]) ')
            # Since headers can contain spaces, use two spaces as column separator
            parts = [p.strip() for p in haader_sep.split(header_line)]
            columns = [p for p in parts if p]
            line = next(fh)
            while line.strip():
                if line.startswith('----'):
                    line = next(fh)
                row = [numeric_best_effort(i) for i in line.strip().split()]
                entries.append(row)
                line = next(fh)
        except StopIteration:
            pass
    return pd.DataFrame(entries, columns=columns)