/qldb-orm

A Object-Relational-Mapping wrapper library around AWS QLDB

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

makpar-innolab

qldb-orm

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.

ORM

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}')

CLI

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

Read The Docs

Code Quality

DeepSource DeepSource