What does this PR do?
Active Record [docs](https://docs.abstra.io/tables/row)
python
naruto = crud_table.select_one(
where="email = :email",
params=dict(email="uzumaki.narutokonoha.jp"))
naruto.delete()
sakura = crud_table.select_one(
where="email = :email",
params=dict(email="haruno.sakurakonoha.jp"))
sakura["name"] = "Sakura"
sakura.save()
Insert single or multiple [docs](https://docs.abstra.io/tables/insert)
python
nswitch = consoles.insert(dict(name="Nintendo Switch"))
games.insert([
dict(name="God of War", console_id=ps4["id"]),
dict(name="Elden Ring", console_id=ps4["id"]),
dict(name="Metroid Dread", console_id=nswitch["id"]),
dict(name="Zelda - Breath of the Wild", console_id=nswitch["id"])
])
Join [docs](https://docs.abstra.io/tables/join)
python
consoles\
.join(games, on="games.console_id = consoles.id")\
.select(columns=[
"consoles.name",
"games.name"
])
python
<SqliteRow {
"consoles.name": "Nintendo Switch",
"games.name": "Zelda - Breath of the Wild",
}>
Extra
- 🦾 Using the same class SqliteTable for managing database + handling data
- ✨ Allow passing `SqliteColumn` instances as `type` parameter to new columns as a simple way to add references
**Full Changelog**: https://github.com/abstra-app/abstra-lib/compare/v1.6.5...v1.7.0