add fix
This commit is contained in:
@@ -14,7 +14,7 @@ from boto3.dynamodb.types import TypeDeserializer, TypeSerializer
|
||||
from botocore.exceptions import ClientError
|
||||
|
||||
from .dateutils import now, timestamp
|
||||
from .funcs import omit
|
||||
from .funcs import omit, pick
|
||||
|
||||
TZ = os.getenv('TZ', 'UTC')
|
||||
PK = os.getenv('DYNAMODB_PARTITION_KEY', 'pk')
|
||||
@@ -75,8 +75,9 @@ else:
|
||||
def __new__(
|
||||
cls,
|
||||
keyparts: str | tuple[str, ...],
|
||||
*,
|
||||
/,
|
||||
prefix: str | None = None,
|
||||
*,
|
||||
delimiter: str = '#',
|
||||
) -> str:
|
||||
if isinstance(keyparts, str):
|
||||
@@ -90,8 +91,9 @@ else:
|
||||
def __init__(
|
||||
self,
|
||||
keyparts: str | tuple[str, ...],
|
||||
*,
|
||||
/,
|
||||
prefix: str | None = None,
|
||||
*,
|
||||
delimiter: str = '#',
|
||||
) -> None:
|
||||
# __init__ is used to store the parameters for later reference.
|
||||
@@ -258,7 +260,7 @@ class KeyPair(Key):
|
||||
|
||||
match obj:
|
||||
case dict():
|
||||
pair = obj.values()
|
||||
pair = pick((PK, SK), obj).values() # Gotta keep them in order
|
||||
case _:
|
||||
pair = obj
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "layercake"
|
||||
version = "0.2.5"
|
||||
version = "0.2.9"
|
||||
description = "Packages shared dependencies to optimize deployment and ensure consistency across functions."
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
|
||||
@@ -76,6 +76,7 @@ def test_keypair():
|
||||
assert KeyPair('123', 'abc').expr_attr_values() == {':pk': '123', ':sk': 'abc'}
|
||||
|
||||
assert KeyPair.parse_obj({'id': '123', 'sk': 'abc'}) == {'id': '123', 'sk': 'abc'}
|
||||
assert KeyPair.parse_obj({'sk': 'abc', 'id': '123'}) == {'id': '123', 'sk': 'abc'}
|
||||
assert KeyPair.parse_obj(['123', 'abc']) == {'id': '123', 'sk': 'abc'}
|
||||
assert KeyPair.parse_obj([]) is None
|
||||
|
||||
@@ -103,7 +104,7 @@ def test_transact_write_items(
|
||||
transact.put(
|
||||
item=KeyPair(
|
||||
'5OxmMjL-ujoR5IMGegQz',
|
||||
ComposeKey('sergio@somosbeta.com.br', prefix='emails'),
|
||||
ComposeKey('sergio@somosbeta.com.br', 'emails'),
|
||||
),
|
||||
cond_expr='attribute_not_exists(sk)',
|
||||
)
|
||||
|
||||
2
layercake/uv.lock
generated
2
layercake/uv.lock
generated
@@ -600,7 +600,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "layercake"
|
||||
version = "0.2.5"
|
||||
version = "0.2.8"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "arnparse" },
|
||||
|
||||
Reference in New Issue
Block a user