From 98a945efbc963a5187bbb2d2a1625c25ab305a56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Tue, 25 Mar 2025 22:51:22 -0300 Subject: [PATCH] fix sk --- layercake/layercake/dynamodb.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/layercake/layercake/dynamodb.py b/layercake/layercake/dynamodb.py index 319c77a..4fb2dd9 100644 --- a/layercake/layercake/dynamodb.py +++ b/layercake/layercake/dynamodb.py @@ -23,6 +23,8 @@ DELIMITER = os.getenv('DYNAMODB_DELIMITER', '#') logger = Logger(__name__) +serializer = TypeSerializer() +deserializer = TypeDeserializer() def _serialize_python_type(value: Any) -> str | dict | list: @@ -42,14 +44,12 @@ def _serialize_python_type(value: Any) -> str | dict | list: def serialize(value: dict) -> dict: - serializer = TypeSerializer() return { k: serializer.serialize(_serialize_python_type(v)) for k, v in value.items() } def deserialize(value: dict) -> dict: - deserializer = TypeDeserializer() return {k: deserializer.deserialize(v) for k, v in value.items()} @@ -128,7 +128,7 @@ class PartitionKey(Key): """Represents a partition key for DynamoDB queries""" def __init__(self, pk: str) -> None: - super().__init__(**{PK: pk, SK: None}) + super().__init__(**{PK: pk}) def expr_attr_name(self) -> dict: return {'#pk': PK} @@ -670,7 +670,7 @@ class DynamoDBCollection: last_key = _startkey_b64encode(res['last_key']) if res['last_key'] else None # Remove prefix from Sort Key if `key[SK]` is a PrefixKey - if isinstance(key[SK], PrefixKey): + if isinstance(key.get(SK), PrefixKey): prefix = key[SK].prefix items = [item | {SK: item[SK].removeprefix(prefix)} for item in items]