isA Common
Shared async Python client library for the isA platform.
Overview
isa-common provides async Python clients for interacting with isA Cloud infrastructure services. All clients use async with context managers and share a common base class (AsyncBaseClient).
Infrastructure Clients (require running services)
| Client | Service | Default Port | Protocol |
|---|---|---|---|
AsyncRedisClient |
Redis | 6379 | gRPC proxy |
AsyncPostgresClient |
PostgreSQL | 5432 | gRPC proxy |
AsyncNeo4jClient |
Neo4j | 7687 | gRPC proxy |
AsyncNATSClient |
NATS | 4222 | gRPC proxy |
AsyncMQTTClient |
MQTT | 1883 | gRPC proxy |
AsyncMinioClient |
MinIO | 9000 | gRPC proxy |
AsyncQdrantClient |
Qdrant | 6333 | gRPC proxy |
AsyncDuckDBClient |
DuckDB | embedded | native |
Local-Mode Clients (no external services needed)
Drop-in alternatives for desktop/offline use. Same API surface, backed by local storage:
| Local Client | Replaces | Backed By |
|---|---|---|
AsyncSQLiteClient |
AsyncPostgresClient |
SQLite file |
AsyncLocalStorageClient |
AsyncMinioClient |
Local filesystem |
AsyncChromaClient |
AsyncQdrantClient |
ChromaDB (embedded) |
AsyncMemoryClient |
AsyncRedisClient |
In-memory dict |
When to use local clients: Use local-mode clients when running on desktop/ICP without cloud infrastructure, for development/testing without Docker, or when you need offline-capable storage.
Installation
pip install isa-common
Quick Start
from isa_common import AsyncRedisClient
async with AsyncRedisClient(host="localhost", port=6379, user_id="my-user") as client:
health = await client.health_check()
await client.set("key", "value")
value = await client.get("key")
Using Local-Mode Clients
from isa_common import AsyncSQLiteClient, AsyncLocalStorageClient
# SQLite instead of PostgreSQL
async with AsyncSQLiteClient(database="app.db", user_id="my-user") as db:
await db.query("SELECT * FROM users")
# Local filesystem instead of MinIO
async with AsyncLocalStorageClient(base_path="./storage", user_id="my-user") as storage:
await storage.put_object("my-bucket", "file.txt", b"contents")
Development
Run tests (requires services or use local clients):
# Run individual service tests
python tests/redis/test_async_redis.py
python tests/duck/test_async_duckdb.py
# Run all tests via Makefile
make test
Contract Coverage
See tests/contract_coverage.md for the mapping between CDD contract IDs (BR/EC/ER) and test functions.
License
Copyright © 2024 isA Platform
Release files for isa-common 0.6.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| isa_common-0.6.10.tar.gz | 183.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| isa_common-0.6.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 397.2 kB
Release files / isa_common-0.6.10.tar.gz
| Download URL | isa_common-0.6.10.tar.gz |
|---|---|
| Size | 183.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c69c600b60638ea84f05a2c8f9da1aef2c96cba6a695093c8cefea28b1498bd
|
|
BLAKE2b-256 checksum How to use checksums |
32af4de2c8823f62f53ec5a83770a5f4fdc4631254b107d2300db9261319b7d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / isa_common-0.6.10-py3-none-any.whl
| Download URL | isa_common-0.6.10-py3-none-any.whl |
|---|---|
| Size | 213.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
58e921a54578ce4f9080f894b51e7901e52ecd27b997fbfddbc9eb1daaa14bdb
|
|
BLAKE2b-256 checksum How to use checksums |
8caa501a63b40fce88684d94d69e25995014722f18abe72abff3b3b407b4307e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|