def get_ctmpack(subject, types=("inflated",), method="raw", level=0, recache=False,
                decimate=False, disp_layers=['rois'],extra_disp=None):
    """Creates ctm file for the specified input arguments.

    This is a cached file that specifies (1) the surfaces between which
    to interpolate (`types` argument), (2) the `method` to interpolate 
    between surfaces, (3) the display layers to include (rois, sulci, etc)
    """   
    lvlstr = level%("%dd" if decimate else "%d")
    # Generates different cache files for each combination of disp_layers
    ctmcache = "%s_[{types}]_{method}_{level}_{layers}{extra}.json"%subject
    # Mark any ctm file containing extra_disp as unique (will be over-written every time)
    ctmcache = ctmcache.format(types=','.join(types),
                               method=method,
                               level=lvlstr,
                               layers=repr(sorted(disp_layers)),
                               extra='' if extra_disp is None else '_xx')
    ctmfile = os.path.join(db.get_cache(subject), ctmcache)

    if os.path.exists(ctmfile) and not recache: # and extra_disp is None:
        # (never load cache with extra_disp, which is based on files outside pycortex)
        return ctmfile

    print("Generating new ctm file...")
    from . import brainctm
    ptmap = brainctm.make_pack(ctmfile,
                               subject,
                               types=types,
                               method=method, 
                               level=level,
                               decimate=decimate,
                               disp_layers=disp_layers,
                               extra_disp=extra_disp)
    return ctmfile
dataset/ETHPy150Open gallantlab/pycortex/cortex/utils.py/get_ctmpack/swapped operands of `%`