From 3a799fbbd15695184178a8dcdf47a49004258e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Wed, 2 Apr 2025 12:03:23 -0300 Subject: [PATCH] update exception --- layercake/layercake/dynamodb.py | 14 ++++++-------- layercake/pyproject.toml | 2 +- layercake/tests/test_dynamodb.py | 10 +++++++--- layercake/uv.lock | 2 +- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/layercake/layercake/dynamodb.py b/layercake/layercake/dynamodb.py index 3adb3ff..a60edc9 100644 --- a/layercake/layercake/dynamodb.py +++ b/layercake/layercake/dynamodb.py @@ -512,7 +512,7 @@ class DynamoDBPersistenceLayer: return True -class MissingError(ValueError): +class MissingError(Exception): pass @@ -556,14 +556,9 @@ class DynamoDBCollection: self, persistence_layer: DynamoDBPersistenceLayer, /, - exception_cls: Type[ValueError] = MissingError, + exception_cls: Type[Exception] = MissingError, tz: str = TZ, ) -> 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.exception_cls = exception_cls self.tz = tz @@ -572,11 +567,13 @@ class DynamoDBCollection: self, key: Key, path_spec: str | None = None, + /, raise_on_error: bool = True, + exception_cls: Type[Exception] | None = None, default: Any = None, delimiter: str = '#', ) -> Any: - exc_cls = self.exception_cls + exc_cls = exception_cls or self.exception_cls data = self.persistence_layer.get_item(key) if raise_on_error and not data: @@ -592,6 +589,7 @@ class DynamoDBCollection: def put_item( self, key: Key, + *, ttl: int | datetime | None = None, **kwargs: Any, ) -> bool: diff --git a/layercake/pyproject.toml b/layercake/pyproject.toml index 6729294..91a62f6 100644 --- a/layercake/pyproject.toml +++ b/layercake/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "layercake" -version = "0.1.13" +version = "0.1.14" description = "Add your description here" readme = "README.md" authors = [ diff --git a/layercake/tests/test_dynamodb.py b/layercake/tests/test_dynamodb.py index 0bca0d5..0742562 100644 --- a/layercake/tests/test_dynamodb.py +++ b/layercake/tests/test_dynamodb.py @@ -10,7 +10,6 @@ from layercake.dynamodb import ( DynamoDBCollection, DynamoDBPersistenceLayer, KeyPair, - MissingError, PartitionKey, PrefixKey, TransactItems, @@ -121,8 +120,13 @@ def test_collection_get_item( 'update_date': '2023-11-09T12:13:04.308986-03:00', } - with pytest.raises(MissingError): - collect.get_item(key=KeyPair('5OxmMjL-ujoR5IMGegQz', 'notfound')) + class NotFoundError(Exception): ... + + with pytest.raises(NotFoundError): + collect.get_item( + KeyPair('5OxmMjL-ujoR5IMGegQz', 'notfound'), + exception_cls=NotFoundError, + ) def test_collection_put_item( diff --git a/layercake/uv.lock b/layercake/uv.lock index afc28c5..25bdd15 100644 --- a/layercake/uv.lock +++ b/layercake/uv.lock @@ -488,7 +488,7 @@ wheels = [ [[package]] name = "layercake" -version = "0.1.12" +version = "0.1.14" source = { editable = "." } dependencies = [ { name = "arnparse" },