Skip to main content

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.

  1. 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]
    
  2. 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
    
  3. Create a DatabaseStorage instance. Set the primary_key keyword 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",)
    
  4. 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
    
  5. Commit changes to the database.

    session.commit()
    

License

MIT License. See LICENSE file for more details.

Release files for alchemical-storage 1.0.1

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

Source distribution (sdist)

Source distribution for alchemical-storage 1.0.1
File Size Uploaded
alchemical_storage-1.0.1.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for alchemical-storage 1.0.1
File Interpreter ABI Platform
alchemical_storage-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 kB

Release files / alchemical_storage-1.0.1.tar.gz

Download URL alchemical_storage-1.0.1.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
54e69ce7bb8a66fc09bae7d794052d6caf89d333b23529f586a3d741de23baba
BLAKE2b-256 checksum
How to use checksums
b933abebdca5908e75e551b2487ea3122b6ab9997fbf37b9f6bf2fd93afaf626
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19

Release files / alchemical_storage-1.0.1-py3-none-any.whl

Download URL alchemical_storage-1.0.1-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
83ccaeb29343a7073bfedeb2583fe23dd723db0fccbf523708fa2c38417d223f
BLAKE2b-256 checksum
How to use checksums
04229b15bc0ab25fcb9785ba5455212e0c1c77b5854e90bc45d9cae07e733da1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19
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