Per-module SQLModel Base, async session, standard mixins (Audit, SoftDelete, MultiTenant, Versioned) for simple_module
Project description
simple_module_db
Database layer for the simple_module framework. Provides a per-module Base, an async SQLAlchemy/SQLModel session, standard mixins, and an auto-commit-on-flush listener that removes manual session.commit() calls from service code.
Install
pip install simple_module_db
What it provides
create_module_base("<module_name>")— a module-scoped declarativeBase. PostgreSQL maps it to its own schema; SQLite namespaces via table-name prefix.- Per-request async session (
get_db) with an auto-commit-on-flush hook —after_flushcommits if there are pending writes, rolls back otherwise. - Mixins in
simple_module_db.mixins:AuditMixin(created_at/updated_at),SoftDeleteMixin(auto-filtered unlessstmt.execution_options(include_deleted=True)),MultiTenantMixin,VersionedMixin. DatabaseStatecontainer used by the framework to avoid global mutable state.
Usage
# modules/orders/orders/models.py
from simple_module_db import AuditMixin, SoftDeleteMixin, create_module_base
from sqlmodel import Field
Base = create_module_base("orders")
class Order(Base, AuditMixin, SoftDeleteMixin, table=True):
id: int | None = Field(default=None, primary_key=True)
customer_id: int = Field(index=True, foreign_key="users_user.id")
total_cents: int
In a service:
from simple_module_db import get_db
async def create_order(session = Depends(get_db), ...):
order = Order(customer_id=..., total_cents=...)
session.add(order)
await session.flush() # assigns order.id; auto-commit happens after the request
return order
Never call session.commit() — the framework handles it.
Depends on
simple_module_core,sqlalchemy[asyncio],sqlmodel,alembic,asyncpg,aiosqlite
License
MIT — see LICENSE.
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 simple_module_db-0.0.1.tar.gz.
File metadata
- Download URL: simple_module_db-0.0.1.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aed0bfa7992fd236cb9c083f46a45fdedf07b8f92c153333e4b7b1eb0382bf1
|
|
| MD5 |
b05a2d03be3904fd5e73b0a913cd0fd8
|
|
| BLAKE2b-256 |
fde9d963f53542e1ccecefc2b84ed791696bf8434d8b4a380f58f962e8c03097
|
Provenance
The following attestation bundles were made for simple_module_db-0.0.1.tar.gz:
Publisher:
release.yml on antosubash/simple_module_python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simple_module_db-0.0.1.tar.gz -
Subject digest:
1aed0bfa7992fd236cb9c083f46a45fdedf07b8f92c153333e4b7b1eb0382bf1 - Sigstore transparency entry: 1357499390
- Sigstore integration time:
-
Permalink:
antosubash/simple_module_python@b4009cc872e81d3348b928230d13383d6b0fdd34 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/antosubash
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b4009cc872e81d3348b928230d13383d6b0fdd34 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file simple_module_db-0.0.1-py3-none-any.whl.
File metadata
- Download URL: simple_module_db-0.0.1-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b600a287735d4132fcdc47609f364191f7c823cf37a2b4ac6dc3ffc9446a1809
|
|
| MD5 |
fd55a11a43cb9000fe74293e81da85a8
|
|
| BLAKE2b-256 |
0bd30881b017616f5c95a71a74622805f9c409f90678b1e7af9c627fbd2d0a78
|
Provenance
The following attestation bundles were made for simple_module_db-0.0.1-py3-none-any.whl:
Publisher:
release.yml on antosubash/simple_module_python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
simple_module_db-0.0.1-py3-none-any.whl -
Subject digest:
b600a287735d4132fcdc47609f364191f7c823cf37a2b4ac6dc3ffc9446a1809 - Sigstore transparency entry: 1357499454
- Sigstore integration time:
-
Permalink:
antosubash/simple_module_python@b4009cc872e81d3348b928230d13383d6b0fdd34 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/antosubash
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b4009cc872e81d3348b928230d13383d6b0fdd34 -
Trigger Event:
workflow_dispatch
-
Statement type: