def proc_data()

in vihds/config.py [0:0]


def proc_data(data_settings):
    # Group-level parameter assignments for each device
    groups_list = [[k, v] for k, v in data_settings.groups.items()]
    data_settings.component_maps = OrderedDict()
    for k, group in groups_list:
        data_settings.component_maps[k] = OrderedDict(zip(data_settings.devices, group))
    # Total number of group-level parameters
    data_settings.device_depth = sum([depth(cm.values()) for k, cm in data_settings.component_maps.items()])
    # Relevance vectors for decoding multi-hot vector into multiple one-hot vectors
    data_settings.relevance_vectors = OrderedDict()
    k1 = 0
    for k, group in groups_list:
        k2 = depth(group) + k1
        rv = np.zeros(data_settings.device_depth)
        rv[k1:k2] = 1.0
        # print("Relevance for %s: "%k + str(rv))
        if k in data_settings.default_devices:
            rv[k1 + data_settings.default_devices[k]] = 0.0
        data_settings.relevance_vectors[k] = rv.astype(np.float32)
        k1 = k2
    # Manually curated device list: map from device names to 0.0, 1.0, ...
    data_settings.device_map = dict(zip(data_settings.devices, (float(v) for v in range(len(data_settings.devices)))))
    # Map from device indices (as ints) to device names
    data_settings.device_idx_to_device_name = dict(enumerate(data_settings.devices))
    # Map from device indices (as floats) to device names
    data_settings.device_lookup = {v: k for k, v in data_settings.device_map.items()}
    return data_settings