

@classmethod
def parse(cls, filename, search_paths=None, skip_disabled_mappings=False):
    search_paths = (search_paths or [])
    data = load_json_from_search_path(filename, message_set)
    while (len(data.get('parents', [])) > 0):
        for parent_filename in data.get('parents', []):
            parent_data = load_json_from_search_path(parent_filename, search_paths)
            data = merge(parent_data, data)
            data['parents'].remove(parent_filename)
    message_set = cls(data.get('name', 'generic'))
    message_set.initializers = data.get('initializers', [])
    message_set.loopers = data.get('loopers', [])
    message_set.buses = cls._parse_buses(data)
    message_set.bit_numbering_inverted = data.get('bit_numbering_inverted', None)
    message_set.extra_sources = set(data.get('extra_sources', set()))
    mapping_config = message_set._parse_mappings(data, search_paths, skip_disabled_mappings)
    message_set.initializers.extend(mapping_config['initializers'])
    message_set.loopers.extend(mapping_config['loopers'])
    message_set.extra_sources.update(mapping_config['extra_sources'])
    for (message_id, message) in data.get('messages', {
        
    }).items():
        message['id'] = message_id
        mapping_config['messages'].append(message)
    mapping_config['diagnostic_messages'].extend(data.get('diagnostic_messages', []))
    message_set.diagnostic_messages = cls._parse_diagnostic_messages(message_set, mapping_config['diagnostic_messages'])
    mapping_config['commands'].extend(data.get('commands', []))
    message_set.commands = cls._parse_commands(mapping_config['commands'])
    message_set._parse_messages(mapping_config['messages'])
    return message_set

dataset/ETHPy150Open openxc/openxc-python/openxc/generator/message_sets.py JsonMessageSet.parse/VarMisuse@38/54 `search_paths`->`message_set`