evoid-postgresql
PostgreSQL storage engine — Intent Handler system
Quick Start • Intent Handler • Config • API
Quick Start
uv add evoid-postgresql
Method 1: Intent Handler (Recommended)
from evoid_postgresql import register_handlers
from evoid.core.storage import storage_read, storage_write, storage_delete
# Register PostgreSQL as storage handler
register_handlers(url="postgresql+asyncpg://user:pass@localhost/evoid")
# Use high-level API
await storage_write("user:1", {"name": "Alice"})
user = await storage_read("user:1")
await storage_delete("user:1")
Method 2: Direct API
from evoid_postgresql import create_storage
storage = create_storage("postgresql+asyncpg://user:pass@localhost/evoid")
await storage.write("user:1", {"name": "Alice"})
user = await storage.read("user:1")
Intent Handler
evoid-postgresql registers these Intent handlers:
| Intent | Handler | Description |
|---|---|---|
storage.read |
handle_read |
Read from PostgreSQL |
storage.write |
handle_write |
Write to PostgreSQL |
storage.delete |
handle_delete |
Delete from PostgreSQL |
storage.health |
handle_health |
Check connection |
Configuration
TOML
[engines]
storage = "postgresql"
[engines.options.postgresql]
url = "postgresql+asyncpg://user:pass@localhost/evoid"
Python
from evoid.config import config
app = config(
engines={
"storage": "postgresql",
"options": {
"postgresql": {
"url": "postgresql+asyncpg://prod:secret@db/evoid",
},
},
},
)
API
register_handlers(url: str)
Register PostgreSQL as Intent handlers.
| Parameter | Type | Default | Description |
|---|---|---|---|
url |
str |
postgresql+asyncpg://localhost/evoid |
SQLAlchemy async connection URL |
create_storage(url: str) -> PostgresStorage
Factory function for direct API access.
Methods
| Method | Signature | Returns | Description |
|---|---|---|---|
write |
async write(key: str, data: dict) |
bool |
Upsert data (JSONB) |
read |
async read(key: str) |
Any | None |
Read data by key |
delete |
async delete(key: str) |
bool |
Delete by key |
health |
async health() |
bool |
Check connection |
Dependencies
evoid>=0.4.3evoid-di>=0.1.0sqlalchemy[asyncio]>=2.0.0asyncpg>=0.29.0
DI Integration
Registers as storage.postgresql in evoid-di:
from evoid_di import di
# Primary storage for critical data
di.set_fallback("storage.postgresql", ["storage.sqlite", "cache.redis"])
# Auto-fallback on failure
storage = di.resolve_with_fallback("storage.postgresql")
Links
License
MIT
Release files for evoid-postgresql 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| evoid_postgresql-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / evoid_postgresql-0.1.2-py3-none-any.whl
| Download URL | evoid_postgresql-0.1.2-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e4cdd528e42a3ea9171e2a21983d4d5d2443b91214027de2bc6e0d218290323
|
|
BLAKE2b-256 checksum How to use checksums |
539796b937da5691d5fd3dcf62ebec25a26f4839e4d847bda7579c1b7dd9c4c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|