Skip to content

MacHu-GWU/dataclasses_sqlitedict-project

Repository files navigation

image

image

image

image

image

image


image

image

image

image

image

image

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

About

Sqlite backed dataclasses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages