Sqlite backed dataclasses. It is a light weight persistent storage for dataclasses.
Project description
Welcome to dataclasses_sqlitedict Documentation
Sqlite backed dataclasses. It is a light weight persistent storage for dataclasses. If you are looking for a full featured ORM, please check out SQLAlchemy.
Features
Single Row Data Model
Each instance of class is a row in the table. And all the instances of the same class share the same database table.
import dataclasses
from sqlitedict import SqliteDict
from dataclasses_sqlitedict import SingleRowDataModel
@dataclasses.dataclass
class User(SingleRowDataModel):
username: str
password: str
db = SqliteDict("user.sqlite", autocommit=False)
@property
def primary_key(self) -> str:
return self.username
user = User(username="alice", password="pwd")
user.write()
user1 = User.read("alice")
print(user1)
Single Table Data Model
Each instance of class is a table. Each instance of class could be different tables in the same databases, or different table in different databases.
import dataclasses
from sqlitedict import SqliteDict
from dataclasses_sqlitedict import SingleTableDataModel
@dataclasses.dataclass
class User(SingleTableDataModel):
username: str
password: str
db = SqliteDict("user.sqlite", autocommit=False)
user = User(db=db, username="alice", password="pwd")
user.write()
user1 = User.read(db)
print(user1)
Install
dataclasses_sqlitedict is released on PyPI, so all you need is:
$ pip install dataclasses_sqlitedict
To upgrade to latest version:
$ pip install --upgrade dataclasses_sqlitedict
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for dataclasses_sqlitedict-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0f479b4c3508a30baa4d314d39bf1dda0f3c36763aba0917e05ee4a02a93557 |
|
MD5 | d503e7a21cfa5f9359b61f02df8fef36 |
|
BLAKE2b-256 | 56c03e9cddb11a874a2c8b3067cf8ce7ca1c8a172a36e38b9c8cd76cab6f3803 |
Close
Hashes for dataclasses_sqlitedict-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8241e171b0ed34130593afc43e8cefad52a3be8a86bfd932f0f1f3b941547b39 |
|
MD5 | f657c94cee118bd707ca017857047cdf |
|
BLAKE2b-256 | d2ad93e9c05bb43b496f87eaab5471a4a2d75f6a7fecec62bdd7ff6c10e369d7 |