<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_eff(filename):
 """ Parse through Jean-Marcs OSSSO .eff files. The efficiency files comes in 'chunks' meant to be used at different 'rates' of motion. """

    blocks = []
    block = {}

    with open(filename) as efile:
        for line in efile.readlines():
            if line.lstrip().startswith("#"):
                continue
            keyword = line.lstrip().split("=")[0]
            funcs = {'square_param': parse_square_param, 
                     'rates': rates}
            block[keyword] = funcs.get(keyword, dummy)(line)
            if keyword == 'mag_lim':
                blocks.append(block)
                block = {}

    return blocks