Storage based off of sqlalchemy_marshmallow
Project description
Quickstart
alchemical-storage is a library intended to bridge CRUD operations with SQLAlchemy query constructs
Install
pip install alchemical-storage
Basic Usage
alchemical-storage assumes that you have set up a session (or scoped_session) for your database. This is assumed to have been imported as session in the following example. The table for the defined model is also assumed to be in the database.
-
Set up the model.
"""package/models.py""" from sqlalchemy import orm class Model(orm.DeclarativeBase): """Model class""" __tablename__ = 'models' attr: orm.Mapped[int] = orm.mapped_column(primary_key=True) attr2: orm.Mapped[int] attr3: orm.Mapped[str]
-
Set up the storage schema. The Meta class in the schema should set load_instance to
True."""package/schema.py""" from marshmallow_sqlalchemy import SQLAlchemyAutoSchema from package import Model class ModelSchema(SQLAlchemyAutoSchema): """Model storage schema""" class Meta: model = Model load_instance = True
-
Create a DatabaseStorage instance. Set the
primary_keykeyword argument (defaults to 'slug') to the primary key of the model."""___main___.py""" from package import models from package.schema import ModelSchema storage = DatabaseStorage( session, models.Model, ModelSchema, primary_key="attr",)
-
Use the DatabaseStorage instance.
# __main__.py continued... storage.get(1) # Gets a record from the database storage.put(2, {'attr2': 1, 'attr3': 'test'}) # Puts a record to the database storage.patch(1, {'attr2': 42}) # Update a record in the database storage.delete(1) # Delete a record from the database storage.index() # Get an index of records from the database
-
Commit changes to the database.
session.commit()
License
MIT License. See LICENSE file for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file alchemical_storage-1.0.1.tar.gz.
File metadata
- Download URL: alchemical_storage-1.0.1.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54e69ce7bb8a66fc09bae7d794052d6caf89d333b23529f586a3d741de23baba
|
|
| MD5 |
b850e1fde41fbd8e6a10b960841db53d
|
|
| BLAKE2b-256 |
b933abebdca5908e75e551b2487ea3122b6ab9997fbf37b9f6bf2fd93afaf626
|
File details
Details for the file alchemical_storage-1.0.1-py3-none-any.whl.
File metadata
- Download URL: alchemical_storage-1.0.1-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83ccaeb29343a7073bfedeb2583fe23dd723db0fccbf523708fa2c38417d223f
|
|
| MD5 |
967babe037b99892707175ba1b415a49
|
|
| BLAKE2b-256 |
04229b15bc0ab25fcb9785ba5455212e0c1c77b5854e90bc45d9cae07e733da1
|