penguin-dal
PyDAL-style database abstraction layer built on SQLAlchemy. One schema (reflected automatically), one query interface — no more defining tables twice.
Installation
pip install penguin-dal
# With database drivers:
pip install penguin-dal[postgresql] # psycopg2
pip install penguin-dal[asyncpg] # asyncpg for async
pip install penguin-dal[mysql] # PyMySQL
pip install penguin-dal[all] # all drivers
Quick Start
from penguin_dal import DB
db = DB("postgresql://user:pass@localhost/mydb")
users = db(db.users.active == True).select()
pk = db.users.insert(email="new@example.com", name="New User", active=True)
db(db.users.id == pk).update(name="Updated")
db(db.users.id == pk).delete()
Read/Write Splitting
from penguin_dal import DatabaseManager
manager = DatabaseManager(
write_url="postgresql://primary/myapp",
read_url="postgresql://replica/myapp",
)
rows = manager.read(manager.read.users).select()
manager.write.users.insert(name="Alice")
manager.close()
📚 Full documentation: docs/penguin-dal/
- README — complete feature overview
- API Reference — all classes and methods
- Changelog
- Migration Guide — migrating from PyDAL or upgrading to 0.2.x
License
MIT — Penguin Tech Inc
Metadata
Release files for penguin-dal 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| penguin_dal-0.4.1.tar.gz | 64.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| penguin_dal-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 115.0 kB
Release files / penguin_dal-0.4.1.tar.gz
| Download URL | penguin_dal-0.4.1.tar.gz |
|---|---|
| Size | 64.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0777d5c3af484ccdfa4bbc7f8ba1fef1b14d57af86d2ef88f67d73ec139920d4
|
|
BLAKE2b-256 checksum How to use checksums |
7b910b6753177b368351ac052761be03add74ee8fb401ab1c2ae5e66e0972120
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / penguin_dal-0.4.1-py3-none-any.whl
| Download URL | penguin_dal-0.4.1-py3-none-any.whl |
|---|---|
| Size | 50.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef72e513c47d74868e2f99fa69009d529eeea8172d4d4459b0b6b14b0c3a6188
|
|
BLAKE2b-256 checksum How to use checksums |
ff55ea116a53a06ebbbf93786f850e5b1890c3df793219352658930d3c3d9351
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency log