def get_variable_types(data, meta):
    """ Returns a dict of variable types to lists of variable names.

    Parameters
    ----------
    data : Pandas.DataFrame

    meta : Quantipy meta object pared to data

    Returns
    ----------
    Dict in the form {type_name: [variable_names], ...}

    """
    types = {
        'int': [],
        'float': [],
        'single': [],
        'delimited set': [],
        'string': [],
        'date': [],
        'time': [],
        'array': []
    }

    not_found = []
    for col in data.columns[1:]:
        try:
            types[meta['columns'][col]['type']].append(col)
        except:
            not_found.append(col)

    for mask in list(meta['masks'].keys()):
        types[meta['masks'][mask]['type']].append(mask)

    if not_found:
        print('%s not found in meta file. Ignored.' %(not_found))

    return types