Skip to main content

dataclasses-sql

GitHub Workflow Status PyPI

Using dataclasses with SQL databases.

Examples:

import dataclasses
import sqlalchemy
import dataclasses_sql

@dataclasses.dataclass
class Car:
    brand: str = dataclasses.field(metadata={"key": True})
    model: str = dataclasses.field(metadata={"key": True})
    milage: float

# Connect to database
engine = sqlalchemy.create_engine("sqlite:///:memory:")
metadata = sqlalchemy.MetaData(engine)
metadata.reflect()

# Insert
car = Car("Kia", "Ceed", 15678)
dataclasses_sql.insert(metadata, car, check_exists=True)

car = Car("Ford", "Mustang", 4032)
dataclasses_sql.insert(metadata, car, check_exists=True)

# Select
builder = dataclasses_sql.SelectStatementBuilder()
builder.add_column(Car, "mileage")
builder.add_clause(Car, "brand", "Kia")
statement = builder.build()

with metadata.bind.begin() as conn:
    row = conn.execute(statement).fetchone()
    print(row)

Installation

Easiest way to install using pip:

pip install dataclasses-sql

For development installation from the git repository::

git clone git@github.com/ppinard/dataclasses-sql.git
cd dataclasses-sql
pip install -e .

Release notes

0.3

  • Add delete function

0.2

  • Add update function

Contributors

License

The library is provided under the MIT license license.

Copyright (c) 2020, Philippe Pinard

Metadata

Release files for dataclasses-sql 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dataclasses-sql 0.3.0
File Size Uploaded
dataclasses-sql-0.3.0.tar.gz 24.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dataclasses-sql 0.3.0
File Interpreter ABI Platform
dataclasses_sql-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.3 kB

Release files / dataclasses-sql-0.3.0.tar.gz

Download URL dataclasses-sql-0.3.0.tar.gz
Size 24.0 kB
Tags Source
SHA-256 checksum
How to use checksums
15ea499f3b1a36c737b8faf4c543de0570dc10e595cbd865f08be4a0ce14e1e1
BLAKE2b-256 checksum
How to use checksums
13d18f5d6679572af2afb6b5e716bfb0c2285e74be7c3d2e23c34cb6b551f748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2.post20191203 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.4

Release files / dataclasses_sql-0.3.0-py3-none-any.whl

Download URL dataclasses_sql-0.3.0-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12741b947d7c43bcd6d0972fde7b4dcba3c99ea6e5e5103424d994307c82b2a7
BLAKE2b-256 checksum
How to use checksums
18b37577fc93a2bb67c9d24b0c1a24f68e38195077339dcfd1059456b8be807a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2.post20191203 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page