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.11
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.11.tar.gz | 183.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| isa_common-0.6.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 397.6 kB
Release files / isa_common-0.6.11.tar.gz
| Download URL | isa_common-0.6.11.tar.gz |
|---|---|
| Size | 183.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8d9665f57e8417b7ccdf41b841c8d55c9b401bde30c1f4703dbf853a4d716be
|
|
BLAKE2b-256 checksum How to use checksums |
e929c6a4ccfcf20be6dde51dd1852bab59a717bfc7c3231ee7923b34a4958089
|
| 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.11-py3-none-any.whl
| Download URL | isa_common-0.6.11-py3-none-any.whl |
|---|---|
| Size | 213.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3fb1d94ee71072fc34dce34190a30d273367b2cb830459cf31aa2ca8ad03b7cb
|
|
BLAKE2b-256 checksum How to use checksums |
66c627ea8b967dcf9841bd31840b868c13735eee3a47e26635082e59d9640e06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|