update exception

This commit is contained in:
2025-04-02 12:03:23 -03:00
parent ef4bfc07f3
commit 3a799fbbd1
4 changed files with 15 additions and 13 deletions

View File

@@ -512,7 +512,7 @@ class DynamoDBPersistenceLayer:
return True return True
class MissingError(ValueError): class MissingError(Exception):
pass pass
@@ -556,14 +556,9 @@ class DynamoDBCollection:
self, self,
persistence_layer: DynamoDBPersistenceLayer, persistence_layer: DynamoDBPersistenceLayer,
/, /,
exception_cls: Type[ValueError] = MissingError, exception_cls: Type[Exception] = MissingError,
tz: str = TZ, tz: str = TZ,
) -> None: ) -> None:
if not issubclass(exception_cls, ValueError):
raise TypeError(
f'exception_cls must be a subclass of ValueError, got {exception_cls}'
)
self.persistence_layer = persistence_layer self.persistence_layer = persistence_layer
self.exception_cls = exception_cls self.exception_cls = exception_cls
self.tz = tz self.tz = tz
@@ -572,11 +567,13 @@ class DynamoDBCollection:
self, self,
key: Key, key: Key,
path_spec: str | None = None, path_spec: str | None = None,
/,
raise_on_error: bool = True, raise_on_error: bool = True,
exception_cls: Type[Exception] | None = None,
default: Any = None, default: Any = None,
delimiter: str = '#', delimiter: str = '#',
) -> Any: ) -> Any:
exc_cls = self.exception_cls exc_cls = exception_cls or self.exception_cls
data = self.persistence_layer.get_item(key) data = self.persistence_layer.get_item(key)
if raise_on_error and not data: if raise_on_error and not data:
@@ -592,6 +589,7 @@ class DynamoDBCollection:
def put_item( def put_item(
self, self,
key: Key, key: Key,
*,
ttl: int | datetime | None = None, ttl: int | datetime | None = None,
**kwargs: Any, **kwargs: Any,
) -> bool: ) -> bool:

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "layercake" name = "layercake"
version = "0.1.13" version = "0.1.14"
description = "Add your description here" description = "Add your description here"
readme = "README.md" readme = "README.md"
authors = [ authors = [

View File

@@ -10,7 +10,6 @@ from layercake.dynamodb import (
DynamoDBCollection, DynamoDBCollection,
DynamoDBPersistenceLayer, DynamoDBPersistenceLayer,
KeyPair, KeyPair,
MissingError,
PartitionKey, PartitionKey,
PrefixKey, PrefixKey,
TransactItems, TransactItems,
@@ -121,8 +120,13 @@ def test_collection_get_item(
'update_date': '2023-11-09T12:13:04.308986-03:00', 'update_date': '2023-11-09T12:13:04.308986-03:00',
} }
with pytest.raises(MissingError): class NotFoundError(Exception): ...
collect.get_item(key=KeyPair('5OxmMjL-ujoR5IMGegQz', 'notfound'))
with pytest.raises(NotFoundError):
collect.get_item(
KeyPair('5OxmMjL-ujoR5IMGegQz', 'notfound'),
exception_cls=NotFoundError,
)
def test_collection_put_item( def test_collection_put_item(

2
layercake/uv.lock generated
View File

@@ -488,7 +488,7 @@ wheels = [
[[package]] [[package]]
name = "layercake" name = "layercake"
version = "0.1.12" version = "0.1.14"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "arnparse" }, { name = "arnparse" },