Using dataclasses with SQL databases.
Project description
dataclasses-sql
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
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-sql-0.3.0.tar.gz
(24.0 kB
view hashes)
Built Distribution
Close
Hashes for dataclasses_sql-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12741b947d7c43bcd6d0972fde7b4dcba3c99ea6e5e5103424d994307c82b2a7 |
|
MD5 | 99cbfd273373ffe2ca4986e47903ee3d |
|
BLAKE2b-256 | 18b37577fc93a2bb67c9d24b0c1a24f68e38195077339dcfd1059456b8be807a |