This commit is contained in:
2025-03-25 22:51:22 -03:00
parent e7094c8099
commit 98a945efbc

View File

@@ -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]