From 4e01506097044a5494e9cae4be3c232f5570e146 Mon Sep 17 00:00:00 2001 From: Leandro Damascena Date: Mon, 3 Feb 2025 16:57:51 +0000 Subject: [PATCH] Mkdocstrings - Idempotency module --- .../utilities/idempotency/base.py | 6 +++++ .../utilities/idempotency/idempotency.py | 24 +++++++++---------- .../idempotency/persistence/dynamodb.py | 2 +- .../idempotency/persistence/redis.py | 2 +- .../utilities/parameters/base.py | 2 +- docs/api_doc/idempotency/base.md | 2 ++ docs/api_doc/idempotency/config.md | 2 ++ docs/api_doc/idempotency/exceptions.md | 2 ++ docs/api_doc/idempotency/persistence.md | 2 ++ docs/api_doc/idempotency/serialization.md | 2 ++ mkdocs.yml | 6 +++++ 11 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 docs/api_doc/idempotency/base.md create mode 100644 docs/api_doc/idempotency/config.md create mode 100644 docs/api_doc/idempotency/exceptions.md create mode 100644 docs/api_doc/idempotency/persistence.md create mode 100644 docs/api_doc/idempotency/serialization.md diff --git a/aws_lambda_powertools/utilities/idempotency/base.py b/aws_lambda_powertools/utilities/idempotency/base.py index 0841fb7500f..eb4fe0eab5f 100644 --- a/aws_lambda_powertools/utilities/idempotency/base.py +++ b/aws_lambda_powertools/utilities/idempotency/base.py @@ -1,3 +1,9 @@ +""" +Base for Idempotency utility +!!! abstract "Usage Documentation" + [`Idempotency`](../../utilities/idempotency.md) +""" + from __future__ import annotations import datetime diff --git a/aws_lambda_powertools/utilities/idempotency/idempotency.py b/aws_lambda_powertools/utilities/idempotency/idempotency.py index 1305d0a5405..6aec2572fb1 100644 --- a/aws_lambda_powertools/utilities/idempotency/idempotency.py +++ b/aws_lambda_powertools/utilities/idempotency/idempotency.py @@ -61,20 +61,20 @@ def idempotent( key_prefix: str | Optional Custom prefix for idempotency key: key_prefix#hash - Examples + Example -------- **Processes Lambda's event in an idempotent manner** - >>> from aws_lambda_powertools.utilities.idempotency import ( - >>> idempotent, DynamoDBPersistenceLayer, IdempotencyConfig - >>> ) - >>> - >>> idem_config=IdempotencyConfig(event_key_jmespath="body") - >>> persistence_layer = DynamoDBPersistenceLayer(table_name="idempotency_store") - >>> - >>> @idempotent(config=idem_config, persistence_store=persistence_layer) - >>> def handler(event, context): - >>> return {"StatusCode": 200} + from aws_lambda_powertools.utilities.idempotency import ( + idempotent, DynamoDBPersistenceLayer, IdempotencyConfig + ) + + idem_config=IdempotencyConfig(event_key_jmespath="body") + persistence_layer = DynamoDBPersistenceLayer(table_name="idempotency_store") + + @idempotent(config=idem_config, persistence_store=persistence_layer) + def handler(event, context): + return {"StatusCode": 200} """ # Skip idempotency controls when POWERTOOLS_IDEMPOTENCY_DISABLED has a truthy value @@ -136,7 +136,7 @@ def idempotent_function( key_prefix: str | Optional Custom prefix for idempotency key: key_prefix#hash - Examples + Example -------- **Processes an order in an idempotent manner** diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py b/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py index 23ef222b5c8..0b04ec135c7 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py @@ -76,7 +76,7 @@ def __init__( boto3_client : DynamoDBClient, optional Boto3 DynamoDB Client to use, boto3_session and boto_config will be ignored if both are provided - Examples + Example -------- **Create a DynamoDB persistence layer with custom settings** diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/redis.py b/aws_lambda_powertools/utilities/idempotency/persistence/redis.py index 06a6548080b..7f27566cc24 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/redis.py @@ -112,7 +112,7 @@ def __init__( ssl: bool, optional: default True set whether to use ssl for Redis connection - Examples + Example -------- ```python diff --git a/aws_lambda_powertools/utilities/parameters/base.py b/aws_lambda_powertools/utilities/parameters/base.py index b92bfa19cb2..610530f3263 100644 --- a/aws_lambda_powertools/utilities/parameters/base.py +++ b/aws_lambda_powertools/utilities/parameters/base.py @@ -1,7 +1,7 @@ """ Base for Parameter providers !!! abstract "Usage Documentation" - [`Parameters`](../utilities/parameters.md) + [`Parameters`](../../utilities/parameters.md) """ from __future__ import annotations diff --git a/docs/api_doc/idempotency/base.md b/docs/api_doc/idempotency/base.md new file mode 100644 index 00000000000..f93ab9e82f6 --- /dev/null +++ b/docs/api_doc/idempotency/base.md @@ -0,0 +1,2 @@ + +::: aws_lambda_powertools.utilities.idempotency.base diff --git a/docs/api_doc/idempotency/config.md b/docs/api_doc/idempotency/config.md new file mode 100644 index 00000000000..2c3ca67eb83 --- /dev/null +++ b/docs/api_doc/idempotency/config.md @@ -0,0 +1,2 @@ + +::: aws_lambda_powertools.utilities.idempotency.config diff --git a/docs/api_doc/idempotency/exceptions.md b/docs/api_doc/idempotency/exceptions.md new file mode 100644 index 00000000000..674b004ae24 --- /dev/null +++ b/docs/api_doc/idempotency/exceptions.md @@ -0,0 +1,2 @@ + +::: aws_lambda_powertools.utilities.idempotency.exceptions diff --git a/docs/api_doc/idempotency/persistence.md b/docs/api_doc/idempotency/persistence.md new file mode 100644 index 00000000000..a18181c103b --- /dev/null +++ b/docs/api_doc/idempotency/persistence.md @@ -0,0 +1,2 @@ + +::: aws_lambda_powertools.utilities.idempotency.persistence diff --git a/docs/api_doc/idempotency/serialization.md b/docs/api_doc/idempotency/serialization.md new file mode 100644 index 00000000000..014c187151c --- /dev/null +++ b/docs/api_doc/idempotency/serialization.md @@ -0,0 +1,2 @@ + +::: aws_lambda_powertools.utilities.idempotency.serialization diff --git a/mkdocs.yml b/mkdocs.yml index 97fd2b8f04a..5aea420d82a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -63,6 +63,12 @@ nav: # - Casual to regular contributor: contributing/tracks/casual_regular_contributor.md # - Customer to advocate: contributing/tracks/customer_advocate.md - API Documentation: + - Idempotency: + - Base: api_doc/idempotency/base.md + - Config: api_doc/idempotency/config.md + - Exceptions: api_doc/idempotency/exceptions.md + - Persistence: api_doc/idempotency/persistence.md + - Serialization: api_doc/idempotency/serialization.md - JMESPath Functions: api_doc/jmespath_functions.md - Parameters: - Base: api_doc/parameters/base.md