def METHOD_NAME(self, data):
    base_config = data.pop('base_config', None)
    if self.base_config is None:
        self.base_config = base_config
    if base_config is not None:
        self.load(base_config)
    self.parse_options(data.pop('options', []))
    # We'll process partitions after other settings
    partitions = data.pop('partitions', None)
    for k, v in data.items():
        if k == 'arch':
            self.arch = v
        elif k == 'bootloader_size':
            self.bootloader_size = parse_int(v)
        elif k == 'partition_table_offset':
            self.partition_table_offset = v
        elif k == 'devices':
            self.devices.METHOD_NAME(v)
        elif k != 'name' and k != 'comment':
            raise InputError("Unknown config key '%s'" % k)
    self.name = data.get('name', '')
    self.comment = data.get('comment', '')
    if not partitions is None:
        self.partitions.METHOD_NAME(partitions, self.devices)