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 innoldb.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 innoldb.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 innoldb.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
innoldb --table your-table --insert col1=val1 col2=val2 ...
innoldb --table your-table --id 123 --update col1=newval1 col2=newval2
Queries
innoldb --table your-table --find column=this