v1.0.0
[1.0.0] — 2026-03-28
Initial public release of the alt-python-pynosqlc package family.
Added
Core (alt-python-pynosqlc-core)
DriverManager— class-level registry withget_client(url, properties),
register_driver,deregister_driver,clear, andget_driversDriverABC —accepts_url(url)andasync connect(url, properties)ClientABC — async context manager,get_collection(name),async close()CollectionABC — six hook methods:_get,_store,_delete,_insert,
_update,_find; public dispatch methods with identical namesCursor— async iterator (async for),next(),get_document(),
get_documents()Filter/FieldCondition— chainable filter builder with ten operators:
eq,ne,gt,gte,lt,lte,contains,in_,nin,exists;
combinatorsand_,or_,not_; produces a plain-dict AST via.build()ClientDataSource— JDBC-styleDataSourcewrapper; holds a URL and
optional properties; vends clients viaget_client()UnsupportedOperationError— raised by unimplemented hook methodsrun_compliance(factory)— portable pytest fixture set; 24 tests covering
KV, document, lifecycle, and find operations; any driver runs it unmodifiedpy.typedmarker — full PEP 561 type-hint support
Memory driver (alt-python-pynosqlc-memory)
MemoryDriver/MemoryClient/MemoryCollection— zero-dependency
in-process dict-backed driver; URL schemepynosqlc:memory:MemoryFilterEvaluator— pure-Python AST evaluator; reused by the Redis and
Cassandra drivers for in-process filtering- Auto-registers on
import pynosqlc.memory
MongoDB driver (alt-python-pynosqlc-mongodb)
MongoDriver/MongoClient/MongoCollection— pymongo
AsyncMongoClientbackend; URL scheme
pynosqlc:mongodb://<host>:<port>/<db>MongoFilterTranslator— converts the pynosqlc Filter AST to a pymongo
query dict; all ten operators supported- Auto-registers on
import pynosqlc.mongodb
DynamoDB driver (alt-python-pynosqlc-dynamodb)
DynamoDriver/DynamoClient/DynamoCollection— aioboto3 resource
API backend; URL schemepynosqlc:dynamodb:<region>DynamoFilterTranslator— converts the Filter AST to a DynamoDB
FilterExpressionusingboto3.dynamodb.conditions; all ten operators
supported- Auto-registers on
import pynosqlc.dynamodb
Cosmos DB driver (alt-python-pynosqlc-cosmosdb)
CosmosDriver/CosmosClient/CosmosCollection— azure-cosmos aio
client backend; URL schemepynosqlc:cosmosdb:<endpoint>; supports the
Cosmos DB emulator viapynosqlc:cosmosdb:localCosmosFilterTranslator— converts the Filter AST to a Cosmos DB SQL
WHERE clause; all ten operators supported- Auto-registers on
import pynosqlc.cosmosdb
Redis driver (alt-python-pynosqlc-redis)
RedisDriver/RedisClient/RedisCollection— redis-py async client
backend; URL schemepynosqlc:redis://<host>:<port>- Documents stored as JSON strings under namespaced keys
(pynosqlc:<collection>:<key>); collection membership tracked in a Redis Set
index (pynosqlc:<collection>:_keys) find()uses a pipeline batch GET (single round trip) then applies
MemoryFilterEvaluatorin-process — no server-side filter translation- Auto-registers on
import pynosqlc.redis
Cassandra driver (alt-python-pynosqlc-cassandra)
CassandraDriver/CassandraClient/CassandraCollection—
cassandra-driver backend bridged into asyncio viarun_in_executor; URL
schemepynosqlc:cassandra:<host>:<port>/<keyspace>- Each collection maps to a CQL table
(pk TEXT PRIMARY KEY, data TEXT);
keyspace and tables created automatically on first use find()performs a full table scan then appliesMemoryFilterEvaluator
in-process — no CQL filter translation- Auto-registers on
import pynosqlc.cassandra
Documentation
docs/getting-started.md— nine-section Diátaxis tutorial; all examples
verified against the memory driverdocs/api-reference.md— complete reference for all public symbols,
operators, URL schemes, and error typesdocs/driver-guide.md— five-step how-to guide for implementing a custom
driver; packaging conventions; reference implementations table for all six
driversdocs/jdbc-migration.md— explanation mapping every JDBC concept to its
pynosqlc equivalent; side-by-side Java/Python code blocks- Per-package
README.mdfor all seven packages
CI
- GitHub Actions workflow — runs the offline test suite (memory, core, filter
unit tests) on push and pull request; publishes packages to PyPI on version
tags