Read lines of *filename* and cache the results. However, if
    *filename* was previously cached use the results from the
    cache. Return *None* if we can not get lines

def getlines(filename, opts=default_opts):
    """Read lines of *filename* and cache the results. However, if
    *filename* was previously cached use the results from the
    cache. Return *None* if we can not get lines
    """
    if get_option('reload_on_change', opts): checkcache(filename)
    fmt = get_option('output', opts)
    highlight_opts = {'bg': fmt}
    cs = opts.get('style')

    # Colorstyle of Terminal255Formatter takes precidence over
    # light/dark colorthemes of TerminalFormatter
    if cs:
        highlight_opts['style'] = cs
        fmt = cs

    if filename not in file_cache:
        update_cache(filename, opts)
        filename = pyc2py(filename)
        if filename not in file_cache: return None
        pass
    lines = file_cache[filename].lines
    if fmt not in lines.keys():
        lines[fmt] = highlight_array(lines['plain'], **highlight_opts)
        pass
    return lines[fmt]