Skip to main content

Sqlite backed dataclasses. It is a light weight persistent storage for dataclasses.

Project description

https://github.com/MacHu-GWU/dataclasses_sqlitedict-project/workflows/CI/badge.svg https://codecov.io/gh/MacHu-GWU/dataclasses_sqlitedict-project/branch/main/graph/badge.svg https://img.shields.io/pypi/v/dataclasses_sqlitedict.svg https://img.shields.io/pypi/l/dataclasses_sqlitedict.svg https://img.shields.io/pypi/pyversions/dataclasses_sqlitedict.svg https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Source_Code-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dataclasses_sqlitedict-0.1.1.tar.gz (7.9 kB view hashes)

Uploaded Source

Built Distribution

dataclasses_sqlitedict-0.1.1-py2.py3-none-any.whl (7.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page