Skip to main content

Suave Deletes

Suave Deletes is a Python library that provides a soft delete functionality for SQLAlchemy models.

Soft deletes allow you to mark records as deleted without actually removing them from the database, making it easy to recover or audit data as needed.

Features

  • Soft delete: Mark records as deleted without permanently removing them from the database.
  • Automatic Query Filtering: Automatically filter out soft-deleted records from your queries.
  • Customizable: Configure which models and fields use soft delete functionality.
  • Simple Integration: Easily integrate with your existing SQLAlchemy models.

Installation

You can install Suave Deletes using pip:
pip install suave-deletes

Usage

To use Suave Deletes, simply import and apply it to your SQLAlchemy models.
Here is a basic example:

Configuration

from sqlalchemy import create_engine
from suave_deletes.session import create_suave_delete_session

def create_session():
    engine = create_engine(
        "Your database URI"
    )

    current_session = create_suave_delete_session(engine)

    with current_session() as session:
        yield session

Implementation

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from suave_deletes.mixins import SuaveDeleteMixin
from suave_deletes.sessions import create_suave_delete_session

DeclarativeBase = declarative_base()
session = create_suave_delete_session()

class Base(DeclarativeBase, SuaveDeleteMixin):
    deleted_at = mapped_column(DateTime, default=None)


class MyModel(Base):
    __tablename__ = 'my_model'
    id = Column(Integer, primary_key=True)
    name = Column(String)

# Creates instance 
obj = MyModel(name="example")
session.add(obj)
session.commit()

# Soft delete the instance
session.delete(obj)
session.commit()

# Query only non-deleted records
non_deleted_records = session.query(MyModel).all()

# Query all records, including soft deleted ones 
all_records = session.query(MyModel).with_deleted_at().all()

Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue on GitHub. If you would like to contribute code, please fork the repository and submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

Thanks to the SQLAlchemy community for their excellent library and documentation.

Metadata

Release files for suave-deletes 0.1.5

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

Source distribution (sdist)

Source distribution for suave-deletes 0.1.5
File Size Uploaded
suave_deletes-0.1.5.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for suave-deletes 0.1.5
File Interpreter ABI Platform
suave_deletes-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 11.9 kB

Release files / suave_deletes-0.1.5.tar.gz

Download URL suave_deletes-0.1.5.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
17c94b7c834b88180bd698685383d3ffdc804247d54fab3a34d04a943bbc31b1
BLAKE2b-256 checksum
How to use checksums
331b4e4f95af319df3e0cfeb2263ca3a567ee6655cb0c77c424555568ca0ccd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / suave_deletes-0.1.5-py3-none-any.whl

Download URL suave_deletes-0.1.5-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c49335cb2ae42ac022b9442c058ecb3bfa583d75f7ea4bb2560c5e21931ad2c9
BLAKE2b-256 checksum
How to use checksums
35da1c1305d7765d0089914e892ef35148781017ec75b8bb91ad1ada37d7a301
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

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