Dynamore is extremely simple Python library for managing entities on DynamoDb.
Project description
DYNAMORE
Dynamore is extremely simple Python library for managing entities on DynamoDb. It’s designed to be used together with REST API and only supports single table design.
Installation
Install from Pypi:
$ pip install dynamore
Quick start
Dynamore doesn’t manage your tables so create DynamoDb table beforehand e.g. provisioning by CloudFormation.
Here’s the simple example on how to create Person schema and store it to DynamoDb:
from dynamore.dynamodb_proxy import DynamoDbProxy
from dynamore.entity import Entity
class Person(Entity):
SCHEMA = {
"title": "PERSON",
"type": "object",
"required": ["name", "age", "gender", "id_number"],
"properties": {
"name": {"type": "string"},
"age": {"type": "integer", "min": 0, "max": 123},
"gender": {"type": "string", "enum": ["male", "female"]},
"id_number": {"type": "string"},
},
"additionalProperties": False,
}
ID_ATTRIBUTE = "id_number"
db = DynamoDbProxy(table_name="MyTable")
data = {
"name": "Jeanne",
"age": 123,
"gender": "female",
"id_number": "123456"
}
_ = db.post(entity_class=Person, data=data)
# Get single item
item = db.get(
entity_class=Person, data={"id_number": data["id_number"]}
)
# Get all items of type "Person"
items = dynamodb_proxy.get(entity_class=Person)
First a new entity class Person defined. It’s schema is defined using jsonschema and id attribute defines the name of the attribute that is used for uniqueness.
Dynamore stores data to DynamoDb in the following format:
PK |
SK |
name |
age |
gender |
---|---|---|---|---|
PERSON |
123456 |
Jeanne |
123 |
female |
By default entity uses partition key “PK” and sort key “SK” value but you can define them otherwise by overriding pr_keys-method.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dynamore-0.1.1.tar.gz
.
File metadata
- Download URL: dynamore-0.1.1.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.1 Darwin/19.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e623eb00af7edffb9aad0826fb2125db1971d2aa183dbbc9261656bc30867ceb |
|
MD5 | e299b46140779b8d996ae0023345fca1 |
|
BLAKE2b-256 | 0110d58f0d1183ea003a78c08743bc6433daaa3bdfba93cdc4a766d5edd0b8f1 |
File details
Details for the file dynamore-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: dynamore-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.1 Darwin/19.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f522b97cbdd1e31fab96fa7f0d94ee89b691b735df473b7a38bf205b12b5b1a |
|
MD5 | 44b6381152cf05c5bea286788478b16c |
|
BLAKE2b-256 | 1261b1ee643109338902f205a3036603a3c55750676ba20ce77be89e18c2e2a6 |