Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamore-0.1.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

dynamore-0.1.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

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

Hashes for dynamore-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e623eb00af7edffb9aad0826fb2125db1971d2aa183dbbc9261656bc30867ceb
MD5 e299b46140779b8d996ae0023345fca1
BLAKE2b-256 0110d58f0d1183ea003a78c08743bc6433daaa3bdfba93cdc4a766d5edd0b8f1

See more details on using hashes here.

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

Hashes for dynamore-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f522b97cbdd1e31fab96fa7f0d94ee89b691b735df473b7a38bf205b12b5b1a
MD5 44b6381152cf05c5bea286788478b16c
BLAKE2b-256 1261b1ee643109338902f205a3036603a3c55750676ba20ce77be89e18c2e2a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page