A simple Object-Relation-Mapping for a serverless AWS Quantum Ledger Database backend, and a command line utility for querying tables on those ledgers.
NOTE: The user or process using this library must have an IAM policy that allows access to QLDB.
The idea behind the ORM is to map document fields to native Python object attributes, so that document values can be accessed by traversing the object property tree.
CRUD OPERATIONS
from qldb_orm.qldb import Document
# Create a document on `my_table` table.
document = Document('my_table')
document.field = {
'nested_data': {
'array': ['colllection', 'of', 'things']
}
}
document.save()
from qldb_orm.qldb import Document
# Load a document from `my_table` table.
document = Document('my_table', id="123456")
for val in document.field.nested_data.array:
print(val)
Queries
from qldb_orm.qldb import Query
query = Query('my-table').find_by(field_name='field value')
for document in query:
print(f'Document({document.id}).field_name = {document.field_name}')
CRUD Operations
qldb-orm --table your-table --insert col1=val1 col2=val2 ...
qldb-orm --table your-table --id 123 --update col1=newval1 col2=newval2
Queries
qldb-orm --table your-table --find column=this