Skinny ORM
"Skinny ORM" - a lightweight Python package that simplifies data storage, manipulation, and retrieval from a SQLite (maybe others later) database using Python dataclasses.
It's not really a "Relational Mapper". It's just a simple way to persist data.
Installation:
pip install skinny_orm
or
poetry add skinny_orm
Example:
- Create your model:
from dataclasses import dataclass
from datetime import datetime
@dataclass
class User:
id: int
name: str
age: int
birth: datetime
percentage: float
- Create a connection et an "orm" object
import sqlite3
from skinny_orm.orm import Orm
connection = sqlite3.connect('database.db')
orm = Orm(connection)
- And Voila (no need to create tables. if they don't exist, it will create them automatically)
users = [
User(id=1, name='Naruto', age=15, birth=datetime.now(), percentage=9.99),
User(id=2, name='Sasuke', age=15, birth=datetime.now(), percentage=9.89),
User(id=3, name='Sakura', age=15, birth=datetime.now(), percentage=9.79),
]
# Bulk insertions (if the table "User" does not exist, it will create it)
orm.bulk_insert(users)
# Selections (always end with .first() or .all() )
naruto: User = orm.select(User).where(User.name == 'Naruto').first()
the_boys: list[User] = orm.select(User).where((User.name == 'Naruto') | (User.name == 'Sasuke')).all()
# Update data by setting specific fields
orm.update(User).set(User.age == 30).where(User.id == 1)
# Or you can simply update the object with all the fields
naruto.age = 30
orm.update(naruto).using(User.id)
# Bulk update objects
users_20_year_later = [
User(id=1, name='Naruto', age=35, birth=datetime.now(), percentage=9.99),
User(id=2, name='Sasuke', age=35, birth=datetime.now(), percentage=9.89),
User(id=3, name='Sakura', age=35, birth=datetime.now(), percentage=9.79),
]
orm.bulk_update(users_20_year_later).using(User.id)
Release files for skinny-orm 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skinny_orm-0.1.2.tar.gz | 4.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skinny_orm-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.7 kB
Release files / skinny_orm-0.1.2.tar.gz
| Download URL | skinny_orm-0.1.2.tar.gz |
|---|---|
| Size | 4.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48a97f66ace895f604a8708a524f50a7414950f4ec65a92216a41000c2d0476a
|
|
BLAKE2b-256 checksum How to use checksums |
90bbeab990dd24f4be731ab51de493ae696dd0de0055c97231b2b92be575e323
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.9.13 Windows/10
|
Release files / skinny_orm-0.1.2-py3-none-any.whl
| Download URL | skinny_orm-0.1.2-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb0e129b88ed7d2f8bf93b7d2f7d0c35d1f21267e765200e3e59f1ba40705e4b
|
|
BLAKE2b-256 checksum How to use checksums |
8e10ee1496f4088744d57d14462f4a0a88ab9dca370c3938c3d5765690412114
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.9.13 Windows/10
|