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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file dataclasses_sqlitedict-0.1.1.tar.gz.

File metadata

File hashes

Hashes for dataclasses_sqlitedict-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a0f479b4c3508a30baa4d314d39bf1dda0f3c36763aba0917e05ee4a02a93557
MD5 d503e7a21cfa5f9359b61f02df8fef36
BLAKE2b-256 56c03e9cddb11a874a2c8b3067cf8ce7ca1c8a172a36e38b9c8cd76cab6f3803

See more details on using hashes here.

File details

Details for the file dataclasses_sqlitedict-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dataclasses_sqlitedict-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8241e171b0ed34130593afc43e8cefad52a3be8a86bfd932f0f1f3b941547b39
MD5 f657c94cee118bd707ca017857047cdf
BLAKE2b-256 d2ad93e9c05bb43b496f87eaab5471a4a2d75f6a7fecec62bdd7ff6c10e369d7

See more details on using hashes here.

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