def load_data(): result = SimpleNamespace() item_map = reader.load_base_csv("items/item_base.csv", groups=['description']) result.item_map = transform_dmap(item_map, schema.ItemSchema()) location_map = (DataStitcher( reader, dir="locations/").base_csv('location_base.csv').add_csv( "location_items.csv", key="items").get()) result.location_map = transform_dmap(location_map, schema.LocationSchema()) result.skill_map = reader.load_base_json("skills/skill_base.json") result.charm_map = reader.load_base_json('charms/charm_base.json') result.monster_reward_conditions_map = reader.load_base_csv( "monsters/reward_conditions_base.csv") result.monster_map = (DataStitcher(reader, dir="monsters/").base_csv( "monster_base.csv", groups=['description']).add_json("monster_weaknesses.json", key="weaknesses").add_csv( "monster_hitzones.csv", key="hitzones", groups=["hitzone"]).add_csv( "monster_breaks.csv", key="breaks", groups=["part"]).add_json( "monster_habitats.json", key="habitats").add_csv( "monster_rewards.csv", key="rewards").get()) armor_map = (DataStitcher(reader, dir="armors/").base_csv( "armor_base.csv").add_json("armor_ext.json").get()) result.armor_map = transform_dmap(armor_map, schema.ArmorSchema()) result.armorset_map = transform_dmap( reader.load_base_csv("armors/armorset_base.csv"), schema.ArmorSetSchema()) armorset_bonus_map = (DataStitcher( reader, dir="armors/").base_csv("armorset_bonus_base.csv").add_csv( "armorset_bonus_skills.csv", key="skills").get()) result.armorset_bonus_map = transform_dmap(armorset_bonus_map, schema.ArmorSetBonus()) # todo: stitch result.weapon_map = reader.load_base_json("weapons/weapon_base.json") result.weapon_data = reader.load_split_data_map(result.weapon_map, "weapons/weapon_data") result.decoration_map = (DataStitcher( reader, dir="decorations/").base_json("decoration_base.json").add_json( "decoration_chances.json", key="chances").get()) return result
def test_save_data_csv_symmetric_listmode(writer: DataReaderWriter): basedata = DataMap() basedata.add_entry(1, create_entry_en('test1')) basedata.add_entry(2, create_entry_en('test2')) extdata = DataMap() extdata.add_entry(1, {**basedata[1], 'data': [{'a': 'test1'}]}) extdata.add_entry(2, { **basedata[2], 'data': [{ 'a': 'test2' }, { 'a': 'test2ext' }] }) writer.save_data_csv('testdatasym.csv', extdata, key='data') new_data = (DataStitcher(writer).use_base(basedata.copy()).add_csv( 'testdatasym.csv', key='data').get()) old_data = extdata.to_dict() abc = new_data.to_dict() assert extdata.to_dict() == new_data.to_dict(), "expected data to match"
def load_data(): result = SimpleNamespace() item_map = reader.load_base_csv("items/item_base.csv", groups=['description']) result.item_map = transform_dmap(item_map, schema.ItemSchema()) result.item_combinations = reader.load_list_csv( 'items/item_combination_list.csv', schema=schema.ItemCombinationSchema()) result.location_map = (DataStitcher(reader, dir="locations/") .base_csv('location_base.csv') .add_csv("location_items.csv", key="items") .get(schema=schema.LocationSchema())) result.skill_map = (DataStitcher(reader, dir="skills/") .base_csv("skill_base.csv") .add_csv("skill_levels.csv", key="levels") .get(schema=schema.SkillSchema())) result.charm_map = (DataStitcher(reader, dir="charms/") .base_csv("charm_base.csv") .add_json("charm_ext.json") .get(schema=schema.CharmSchema())) result.monster_reward_conditions_map = reader.load_base_csv("monsters/reward_conditions_base.csv") result.monster_map = (DataStitcher(reader, dir="monsters/") .base_csv("monster_base.csv", groups=['description', 'ecology']) .add_json("monster_weaknesses.json", key="weaknesses") .add_csv("monster_hitzones.csv", key="hitzones", groups=["hitzone"]) .add_csv("monster_breaks.csv", key="breaks", groups=["part"]) .add_json("monster_habitats.json", key="habitats") .add_csv("monster_rewards.csv", key="rewards") .get()) result.armor_map = (DataStitcher(reader, dir="armors/") .base_csv("armor_base.csv") .add_csv_ext("armor_craft_ext.csv", key="craft") .add_csv_ext("armor_skills_ext.csv", key="skills") .get(schema=schema.ArmorSchema())) result.armorset_map = transform_dmap( reader.load_base_csv("armors/armorset_base.csv"), schema.ArmorSetSchema() ) result.armorset_bonus_map = (DataStitcher(reader, dir="armors/") .base_csv("armorset_bonus_base.csv") .get(schema=schema.ArmorSetBonus())) # todo: stitch result.weapon_map = (DataStitcher(reader, dir="weapons/") .base_csv("weapon_base.csv") .add_csv_ext("weapon_bow_ext.csv", key="bow") .add_csv_ext("weapon_gun_ext.csv", key="gun") .add_csv("weapon_craft_ext.csv", key="craft") .get(schema=schema.WeaponSchema())) result.decoration_map = (DataStitcher(reader, dir="decorations/") .base_csv("decoration_base.csv") .add_json("decoration_chances.json", key="chances") .get(schema=schema.DecorationSchema())) return result
def load_data(): """Loads all data from the source_data/ directory All data is merged together using data stitchers and run through a schema. The schemas perform additional type transformations, column merging into dicts (groups), and minor validations. """ result = SimpleNamespace() result.item_map = (DataStitcher( reader, dir="items").base_csv("item_base.csv").translate( "item_base_translations.csv").get(schema=schema.ItemSchema())) result.item_combinations = reader.load_list_csv( 'items/item_combination_list.csv', schema=schema.ItemCombinationSchema()) result.location_map = (DataStitcher( reader, dir="locations/").base_csv('location_base.csv').add_csv( "location_items.csv", key="items").add_csv( "location_camps.csv", key="camps").get(schema=schema.LocationSchema())) result.skill_map = (DataStitcher(reader, dir="skills/").base_csv( "skill_base.csv").translate('skill_base_translations.csv').add_csv( "skill_levels.csv", key="levels").get(schema=schema.SkillSchema())) result.charm_map = (DataStitcher( reader, dir="charms/").base_csv("charm_base.csv").translate( 'charm_base_translations.csv').add_json("charm_ext.json").get( schema=schema.CharmSchema())) result.monster_reward_conditions_map = reader.load_base_csv( "monsters/reward_conditions_base.csv", ['en']) result.monster_map = (DataStitcher(reader, dir="monsters/").base_csv( "monster_base.csv").translate("monster_base_translations.csv").add_csv( "monster_weaknesses.csv", key="weaknesses").add_csv( "monster_hitzones.csv", key="hitzones", groups=[ "hitzone" ]).add_csv("monster_breaks.csv", key="breaks", groups=[ "part" ]).add_csv_ext("monster_ailments.csv", key="ailments").add_csv( "monster_habitats.csv", key="habitats").add_csv( "monster_rewards.csv", key="rewards").get(schema=schema.MonsterSchema())) result.armor_map = (DataStitcher(reader, dir="armors/").base_csv( "armor_base.csv").translate("armor_base_translations.csv").add_csv_ext( "armor_craft_ext.csv", key="craft").add_csv_ext( "armor_skills_ext.csv", key="skills").get(schema=schema.ArmorSchema())) result.armorset_map = (DataStitcher(reader, dir="armors/").base_csv( "armorset_base.csv").translate("armorset_base_translations.csv").get( schema=schema.ArmorSetSchema())) result.armorset_bonus_map = (DataStitcher( reader, dir="armors/").base_csv("armorset_bonus_base.csv").translate( "armorset_bonus_base_translations.csv").get( schema=schema.ArmorSetBonus())) # Load Ammo config. result.weapon_ammo_map = reader.load_keymap_csv("weapons/weapon_ammo.csv", schema.WeaponAmmoSchema()) # Load weapon data result.weapon_map = (DataStitcher( reader, dir="weapons/").base_csv("weapon_base.csv").translate( 'weapon_base_translations.csv').add_csv_ext( "weapon_sharpness.csv", key="sharpness").add_csv_ext( "weapon_bow_ext.csv", key="bow").add_csv( "weapon_craft.csv", key="craft").get(schema=schema.WeaponSchema())) # Load weapon hunting horn songs result.weapon_melodies = (DataStitcher( reader, dir="weapons").base_csv("weapon_melody_base.csv").add_csv( "weapon_melody_notes.csv", key='notes').get(schema=schema.WeaponMelodySchema())) # Load Kinsects result.kinsect_map = (DataStitcher( reader, dir='weapons/').base_csv('kinsect_base.csv').translate( 'kinsect_base_translations.csv').add_csv_ext( 'kinsect_craft_ext.csv', key='craft').get(schema=schema.KinsectSchema())) # Load decoration data result.decoration_map = (DataStitcher( reader, dir="decorations/").base_csv("decoration_base.csv").translate( 'decoration_base_translations.csv').get( schema=schema.DecorationSchema())) # Load Quest data result.quest_map = (DataStitcher( reader, dir="quests/", key_join='id').base_csv( "quest_base.csv").translate('quest_base_translations.csv').add_csv( 'quest_monsters.csv', key='monsters').add_csv( 'quest_rewards.csv', key='rewards').get(schema=schema.QuestSchema())) return result
def load_data(): """Loads all data from the source_data/ directory All data is merged together using data stitchers and run through a schema. The schemas perform additional type transformations, column merging into dicts (groups), and minor validations. """ result = SimpleNamespace() item_map = reader.load_base_csv("items/item_base.csv", groups=['description']) result.item_map = transform_dmap(item_map, schema.ItemSchema()) result.item_combinations = reader.load_list_csv( 'items/item_combination_list.csv', schema=schema.ItemCombinationSchema()) result.location_map = (DataStitcher( reader, dir="locations/").base_csv('location_base.csv').add_csv( "location_items.csv", key="items").add_csv( "location_camps.csv", key="camps").get(schema=schema.LocationSchema())) result.skill_map = (DataStitcher( reader, dir="skills/").base_csv("skill_base.csv").add_csv( "skill_levels.csv", key="levels").get(schema=schema.SkillSchema())) result.charm_map = (DataStitcher( reader, dir="charms/").base_csv("charm_base.csv").add_json( "charm_ext.json").get(schema=schema.CharmSchema())) result.monster_reward_conditions_map = reader.load_base_csv( "monsters/reward_conditions_base.csv") result.monster_map = (DataStitcher( reader, dir="monsters/").base_csv("monster_base.csv").add_json( "monster_weaknesses.json", key="weaknesses").add_csv( "monster_hitzones.csv", key="hitzones", groups=[ "hitzone" ]).add_csv("monster_breaks.csv", key="breaks", groups=[ "part" ]).add_csv_ext("monster_ailments.csv", key="ailments").add_csv( "monster_habitats.csv", key="habitats").add_csv( "monster_rewards.csv", key="rewards").get(schema=schema.MonsterSchema())) result.armor_map = (DataStitcher( reader, dir="armors/").base_csv("armor_base.csv").add_csv_ext( "armor_craft_ext.csv", key="craft").add_csv_ext( "armor_skills_ext.csv", key="skills").get(schema=schema.ArmorSchema())) result.armorset_map = transform_dmap( reader.load_base_csv("armors/armorset_base.csv"), schema.ArmorSetSchema()) result.armorset_bonus_map = (DataStitcher( reader, dir="armors/").base_csv("armorset_bonus_base.csv").get( schema=schema.ArmorSetBonus())) # Load Ammo config. result.weapon_ammo_map = reader.load_keymap_csv("weapons/weapon_ammo.csv", schema.WeaponAmmoSchema()) # Load weapon data result.weapon_map = (DataStitcher( reader, dir="weapons/").base_csv("weapon_base.csv").add_csv_ext( "weapon_sharpness.csv", key="sharpness").add_csv_ext( "weapon_bow_ext.csv", key="bow").add_csv( "weapon_craft_ext.csv", key="craft").get(schema=schema.WeaponSchema())) # Load decoration data result.decoration_map = (DataStitcher( reader, dir="decorations/").base_csv("decoration_base.csv").add_json( "decoration_chances.json", key="chances").get(schema=schema.DecorationSchema())) return result