appsync-tools
##Provides helpful tools for parsing database responses and handling routes inside of Lambda for AWS Appsync.
DB response parsing
Aurora results are returned as a list of dictionaries with the column names being the key. Nulls (returned by Aurora as isNull) are returned as None types. Any value that can be parsed as json is cast from a string to a list/dictionary. Responses are returned formated as:
[
{"columnOneName": "value", "columnTwoName": "value"},
{"columnOneName": "value", "columnTwoName": "value"}
]
Where each item in the top level array is a separate row.
Dynamodb results are returned as either a dictionary (for get_item operations) or a list of dictionaries (query).
Pretty parsing Aurora records
pretty_parse_aurora(records, type_attribute=None) -> list
Arguments:
- records -- The records from the API query (execute_statement()["records"])
Keyword Args:
- type_attribute -- If used will pass results to typify(results, type_attribute=type_attribute) before returning
from appsync_tools import pretty_parse_aurora
response = client.execute_statement(
secretArn=environ["PG_SECRET"],
database=environ["DB_NAME"],
parameters=parameters,
resourceArn=environ["DB_ARN"],
includeResultMetadata=True,
sql=sql
)
print(pretty_parse_aurora(response))
Parsing Dynamodb records
pretty_parse_dynamo(records, type_attribute=None) -> list | dict
Arguments:
- records -- The Item(s) from a call to query, get_item
Keyword Args:
- type_attribute -- If used will pass results to typify(results, type_attribute=type_attribute) before returning
from appsync_tools import pretty_parse_dynamo
response = client.get_item(
Key={"pk": "foo", "sk": "bar"}
)
print(response.get("Item"))
Adding __typename to all records based on an attribute
typify(records, type_attribute="type") -> list | dict Arguments:
- records -- The Item(s) from a call to query, get_item
Keyword Args:
- type_attribute -- Attribute name that contains the __typename value
Example
from appsync_tools import typify
response = client.get_item(
Key={"pk": "foo", "sk": "BarType"}
)
print(typify(response.get("Item"), type_attribute="sk"))
Metadata
Release files for appsync-tools 2.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| appsync-tools-2.0.5.tar.gz | 7.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| appsync_tools-2.0.5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 14.5 kB
Release files / appsync-tools-2.0.5.tar.gz
| Download URL | appsync-tools-2.0.5.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5e7198336f57b2bba640a40b9961887f926cc4c8c5dcd25606a972dcce8035f4
|
|
BLAKE2b-256 checksum How to use checksums |
faa0f1ff5d8a2ed311a7144edb80a3380b9280a7f4eb71be832fb84c77cd6a3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
|
Release files / appsync_tools-2.0.5-py2.py3-none-any.whl
| Download URL | appsync_tools-2.0.5-py2.py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
af1bf3fcec87a3c9c96da4fd8caa9a164899fdd5b236e50aa5bd358da85d6cd9
|
|
BLAKE2b-256 checksum How to use checksums |
919b34b6eb4eabce9ef221fa725a7cc27eb776cba399cfeba9aa24b020094f36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
|