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.13
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.13.tar.gz | 184.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| isa_common-0.6.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 399.9 kB
Release files / isa_common-0.6.13.tar.gz
| Download URL | isa_common-0.6.13.tar.gz |
|---|---|
| Size | 184.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e42f395417e6374227c0094b01fd41890d8f3a8b41cbad8f75d4cb9df126377
|
|
BLAKE2b-256 checksum How to use checksums |
ef04c3865afa66e7bec98792e036f5940f1fc9edcf55f7d2fd472eee91b08765
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.8
|
Release files / isa_common-0.6.13-py3-none-any.whl
| Download URL | isa_common-0.6.13-py3-none-any.whl |
|---|---|
| Size | 215.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
90dbf8198f3484787d5e585ea0053fceb6fc21d8387f6c88025e0571daf9e599
|
|
BLAKE2b-256 checksum How to use checksums |
454699d087740a421f0ba95e61b9edd755af4ad869a46cc4b7e9a3d8274031c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.8
|