30 lines
931 B
Python
30 lines
931 B
Python
import json
|
|
from pathlib import Path
|
|
|
|
from ttfrog.db import schema
|
|
from ttfrog.db.manager import db
|
|
|
|
DATA_PATH = Path(__file__).parent
|
|
|
|
|
|
def load(data: str = ""):
|
|
db.metadata.drop_all(bind=db.engine)
|
|
db.init()
|
|
with db.transaction():
|
|
if not data:
|
|
data = (DATA_PATH / "bootstrap.json").read_text()
|
|
db.load(json.loads(data))
|
|
tiefling = db.Ancestry.filter_by(name="tiefling").one()
|
|
human = db.Ancestry.filter_by(name="human").one()
|
|
fighter = db.CharacterClass.filter_by(name="fighter").one()
|
|
rogue = db.CharacterClass.filter_by(name="rogue").one()
|
|
|
|
sabetha = schema.Character("Sabetha", ancestry=tiefling, _intelligence=14)
|
|
sabetha.add_class(fighter, level=2)
|
|
sabetha.add_class(rogue, level=3)
|
|
|
|
bob = schema.Character("Bob", ancestry=human)
|
|
|
|
# persist all the records we've created
|
|
db.add_or_update([sabetha, bob])
|