What is This#

[1]:
from acore_df.api import Lookup
from rich import print as rprint

lookup = Lookup.new()

Lookup by ID#

[2]:
rprint(lookup.item_template_class.get(0))
ItemTemplateClassData(id=0, name='Consumable', name_cn='消耗品')
[3]:
import dataclasses

item_template_class = lookup.item_template_class.get(0)
rprint(f"{item_template_class.id = }")
rprint(f"{item_template_class.name = }")
rprint(f"{item_template_class.name_cn = }")
rprint(dataclasses.asdict(item_template_class))
item_template_class.id = 0
item_template_class.name = 'Consumable'
item_template_class.name_cn = '消耗品'
{'id': 0, 'name': 'Consumable', 'name_cn': '消耗品'}
[4]:
rprint(lookup.item_template_class.get(999))
None

Lookup by Key Value#

[5]:
rprint(lookup.item_template_class.get_by_kv(dict(name="Trade Goods")))
[ItemTemplateClassData(id=7, name='Trade Goods', name_cn='商品')]

Access the polars DataFrame#

[6]:
lookup.item_template_class.df
[6]:
shape: (17, 3)
idnamename_cn
i64strstr
0"Consumable""消耗品"
1"Container""容器"
2"Weapon""武器"
3"Gem""珠宝"
4"Armor""护甲"
5"Reagent""材料"
6"Projectile""弹药"
7"Trade Goods""商品"
8"Generic(OBSOLE…"原子"
9"Recipe""配方"
10"Money(OBSOLETE…"货币"
11"Quiver""箭袋"
12"Quest""任务"
13"Key""钥匙"
14"Permanent(OBSO…"永久"
15"Miscellaneous""其它"
16"Glyph""雕文"

Query The Database#

[7]:
import sqlalchemy as sa

with lookup.engine.connect() as conn:
    Model = lookup.item_template_class.orm_model
    stmt = sa.select(Model).where(Model.id.between(5, 10))
    for row in conn.execute(stmt):
        print(row)
(5, 'Reagent', '材料')
(6, 'Projectile', '弹药')
(7, 'Trade Goods', '商品')
(8, 'Generic(OBSOLETE)', '原子')
(9, 'Recipe', '配方')
(10, 'Money(OBSOLETE)', '货币')

All Dataset#

[8]:
from acore_df.api import dataset_mapping

for k, v in dataset_mapping.items():
    print(f"------ {k} ------")
    for key, value in v.items():
        rprint(f"{key} = {value}")
------ item_template_class ------
orm_class = <class 'acore_df.model.ItemTemplateClass'>
data_class = <class 'acore_df.model.ItemTemplateClassData'>
id_col = id
------ item_template_subclass ------
orm_class = <class 'acore_df.model.ItemTemplateSubclass'>
data_class = <class 'acore_df.model.ItemTemplateSubclassData'>
id_col = id
------ item_template_quality ------
orm_class = <class 'acore_df.model.ItemTemplateQuality'>
data_class = <class 'acore_df.model.ItemTemplateQualityData'>
id_col = id
------ item_template_bonding ------
orm_class = <class 'acore_df.model.ItemTemplateBonding'>
data_class = <class 'acore_df.model.ItemTemplateBondingData'>
id_col = id
------ item_template_allowable_class ------
orm_class = <class 'acore_df.model.ItemTemplateAllowableClass'>
data_class = <class 'acore_df.model.ItemTemplateAllowableClassData'>
id_col = id
------ item_template_stat_type ------
orm_class = <class 'acore_df.model.ItemTemplateStatType'>
data_class = <class 'acore_df.model.ItemTemplateStatTypeData'>
id_col = id
------ item_template_damage_type ------
orm_class = <class 'acore_df.model.ItemTemplateDamageType'>
data_class = <class 'acore_df.model.ItemTemplateDamageTypeData'>
id_col = id
------ factions ------
orm_class = <class 'acore_df.model.Factions'>
data_class = <class 'acore_df.model.FactionsData'>
id_col = faction_id
[ ]: