コード例 #1
0
def repair_armor_data():
    data = load_data()

    armor_map = data.armor_map
    armorset_map = data.armorset_map

    new_armor_map = DataMap()

    # Copy all items in armorset order
    for set_entry in armorset_map.values():
        # All armor pieces in the set
        armor_names = [set_entry[part] for part in cfg.armor_parts]
        armor_names = list(filter(None, armor_names))

        armor_lang = set_entry['armor_lang']
        for armor_name in armor_names:
            armor_id = armor_map.id_of(armor_lang, armor_name)
            armor = armor_map.pop(armor_id)
            new_armor_map.insert(armor)

    # Copy over remaining items
    for remaining_item in armor_map:
        new_armor_map.insert(remaining_item)

    # Save results (todo: refactor, move to writer)
    armor_schema = schema.ArmorBaseSchema()
    result_list = new_armor_map.to_list()
    result, errors = armor_schema.dump(result_list, many=True)
    writer.save_csv("armors/armor_base.csv", result)
コード例 #2
0
def test_save_base_csv_symmetric(writer: DataReaderWriter):
    data = DataMap()
    data.insert(create_entry_en('test1'))
    data.insert(create_entry_en('test2'))

    groups = ['name', 'description']
    writer.save_base_map_csv('testbase.csv', data, groups=groups)
    new_data = writer.load_base_csv('testbase.csv', groups=groups)

    assert data.to_list() == new_data.to_list(), "saved data didn't match"
コード例 #3
0
def test_save_base_csv_symmetric(writer: DataReaderWriter):
    # Note: CSVs do not save typing info, so everything is strings
    data = DataMap()
    data.insert(create_entry_en('test1', {'id': '1'}))
    data.insert(create_entry_en('test2', {'id': '2'}))

    groups = ['name', 'description']
    writer.save_base_map_csv('testbase.csv', data, groups=groups)
    new_data = writer.load_base_csv('testbase.csv', languages, groups=groups)

    assert data.to_list() == new_data.to_list(), "saved data didn't match"