Dynamo Dao
Project description
Dynamo Dao
Typed library for interacting with DynamoDb tables.
Installation
Available on PyPI
pip install dynamo-dao
Usage
The following example code shows some basic usage of this package. Note that the ExampleDao must define 4 abstract properties:
table_name- Name of the DynamoDb table resource (maps directly to what you'd see on the AWS console).unique_key- The list of keys that together uniquely define an entry in the table.convert_to_dynamo- A method which takes in the object and converts it to the entry in the DynamoDb tableconvert_from_dynamo- The opposite ofconvert_to_dynamo
from typing import NamedTuple
from dynamo_dao import Dao, DynamoObject
class Example(NamedTuple):
foo: str
bar: int
class ExampleDao(Dao[Example]):
table_name = "example"
unique_key = ["foo"]
def convert_to_dynamo(self, var: Example) -> DynamoObject:
return {"foo": var.foo, "bar": var.bar}
def convert_from_dynamo(self, var: DynamoObject) -> Example:
return Example(foo=str(var["foo"]), bar=int(var["bar"]))
example_dao = ExampleDao()
example = Example(foo="hi", bar=1)
example_dao.create(example)
result = example_dao.read_one("foo", "hi")
assert example == result
Why use?
The base dao is a generic object, which means child classes will benefit from type checking on functions like read and create.
In the example above, the type of result is Example.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dynamo-dao-0.0.7.tar.gz.
File metadata
- Download URL: dynamo-dao-0.0.7.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c3456472277acfb12ceef938ee513a023b8f08d737e9a1878e37dd094e99c4f
|
|
| MD5 |
27a8b763140b9c6a28d434c04f5a62bf
|
|
| BLAKE2b-256 |
1a57fb4c93e2b8a1bbc725ae2cc31b1338353c7033546f2282d9604455890821
|
File details
Details for the file dynamo_dao-0.0.7-py3-none-any.whl.
File metadata
- Download URL: dynamo_dao-0.0.7-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9390d4a6a9f8af3865d0a78b8169fbf6de3e47e18bb3bbd47143dc2b95007d54
|
|
| MD5 |
0fac59c8699b34efef9771a76cc8a2a9
|
|
| BLAKE2b-256 |
79180395e477f3786fe0224bfa78f42d1f512bbd53b5e937bc6a4f686233c923
|