Exemplo n.º 1
0
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
Exemplo n.º 2
0
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"
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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