fix sk
This commit is contained in:
@@ -23,6 +23,8 @@ DELIMITER = os.getenv('DYNAMODB_DELIMITER', '#')
|
|||||||
|
|
||||||
|
|
||||||
logger = Logger(__name__)
|
logger = Logger(__name__)
|
||||||
|
serializer = TypeSerializer()
|
||||||
|
deserializer = TypeDeserializer()
|
||||||
|
|
||||||
|
|
||||||
def _serialize_python_type(value: Any) -> str | dict | list:
|
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:
|
def serialize(value: dict) -> dict:
|
||||||
serializer = TypeSerializer()
|
|
||||||
return {
|
return {
|
||||||
k: serializer.serialize(_serialize_python_type(v)) for k, v in value.items()
|
k: serializer.serialize(_serialize_python_type(v)) for k, v in value.items()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def deserialize(value: dict) -> dict:
|
def deserialize(value: dict) -> dict:
|
||||||
deserializer = TypeDeserializer()
|
|
||||||
return {k: deserializer.deserialize(v) for k, v in value.items()}
|
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"""
|
"""Represents a partition key for DynamoDB queries"""
|
||||||
|
|
||||||
def __init__(self, pk: str) -> None:
|
def __init__(self, pk: str) -> None:
|
||||||
super().__init__(**{PK: pk, SK: None})
|
super().__init__(**{PK: pk})
|
||||||
|
|
||||||
def expr_attr_name(self) -> dict:
|
def expr_attr_name(self) -> dict:
|
||||||
return {'#pk': PK}
|
return {'#pk': PK}
|
||||||
@@ -670,7 +670,7 @@ class DynamoDBCollection:
|
|||||||
last_key = _startkey_b64encode(res['last_key']) if res['last_key'] else None
|
last_key = _startkey_b64encode(res['last_key']) if res['last_key'] else None
|
||||||
|
|
||||||
# Remove prefix from Sort Key if `key[SK]` is a PrefixKey
|
# 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
|
prefix = key[SK].prefix
|
||||||
items = [item | {SK: item[SK].removeprefix(prefix)} for item in items]
|
items = [item | {SK: item[SK].removeprefix(prefix)} for item in items]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user