modmex-lambda 0.5.0__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/PKG-INFO +1 -1
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/gateway_response.py +7 -2
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/pyproject.toml +1 -1
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_api_gateway.py +33 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_gateway_response.py +25 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/.github/workflows/ci.yml +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/.github/workflows/release.yml +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/.gitignore +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/LICENSE +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/README.md +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/cloudwatch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/eventbridge.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/icloudwatch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/idynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/ieventbridge.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/ilambda.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/is3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/isns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/isqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/lambda_.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/module.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/connectors/sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/api_gateway_authorizer_event.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/api_gateway_proxy_event.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/api_gateway_websocket_event.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/cognito_user_pool_event.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/common.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/dependencies.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/api_gateway.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/constants.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/content_types.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/cors.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/compat.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/dependant.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/dependency_middleware.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/depends.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/params.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/types.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/exception_handler.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/exceptions.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/middlewares.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/params.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/request.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/response.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/routing.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/routing_fallbacks.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/types.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_sources.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/exceptions.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/logging.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/params.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/parser.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/request.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/resolver.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/response.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/routing.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/shared/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/shared/cookies.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/shared/headers_serializer.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/shared/json_encoder.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/shared/types.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/events/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/events/dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/events/kinesis.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/events/s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/events/sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/events/sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/filters/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/filters/content.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/filters/event_type.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/filters/latch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/filters/skip.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/base_flavor.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/cdc.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/collect.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/correlate.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/evaluate.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/expired.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/iflavor.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/job.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/materialize.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/task.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/flavors/update.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/irules_registry.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/cloudwatch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/ioperator.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/lambda_.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/publisher.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/operators/sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/rules_registry.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/runner.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/base.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/kinesis.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/sources/sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/apigateway.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/aws.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/batch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/cloudwatch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/concurrency.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/contracts.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/data_classes/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/data_classes/dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/decorators.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/eventbridge.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/faults.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/filters.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/json_encoder.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/lambda_.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/operators.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/pluralize.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/print.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/retry.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/split.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/tags.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/time.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/uow.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/tracing.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/validation.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/poetry.lock +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/conftest.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/conftest.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_cloudwatch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_lazy_clients.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_simple_connectors.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/connectors/test_sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/data_classes/test_api_gateway_proxy_event.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/data_classes/test_cognito_user_pool_event.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/data_classes/test_common.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_cors.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_dependencies.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_exception_handler.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_request.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_response.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/event_handler/test_routing.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/shared/test_cookies_headers.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/shared/test_json_encoder.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/conftest.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/events/test_dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/events/test_kinesis.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/events/test_s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/events/test_sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/events/test_sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/filters/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/filters/test_content.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/filters/test_event_type.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/filters/test_latch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/filters/test_skip.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/source_events.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_base_flavor.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_cdc.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_collect.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_correlate.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_evaluate.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_expired.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_job.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_materialize.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_task.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/flavors/test_update.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/test_dependency_resolver.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/test_rules_registry.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/test_runner.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/test_runner_pipeline.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/test_sources.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/__init__.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/faults.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_apigateway.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_aws.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_batch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_cloudwatch.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_concurrency.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_decorators.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_dynamodb.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_eventbridge.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_filters.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_json_encoder.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_lambda.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_operators.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_pluralize.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_print.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_retry.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_s3.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_sns.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_split.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_sqs.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_tags.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_time.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/stream/utils/test_uow.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/test_lazy_imports.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/test_logging.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/test_parser_event_sources.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/test_reexports.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/test_tracing.py +0 -0
- {modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/test_validation.py +0 -0
|
@@ -20,8 +20,13 @@ class GatewayResponseBuilder:
|
|
|
20
20
|
self.json_serializer = json_serializer
|
|
21
21
|
|
|
22
22
|
def serialize(self, event: BaseProxyEvent, cors: CORSConfig | None = None) -> dict[str, Any]:
|
|
23
|
-
if self.response.
|
|
24
|
-
self.response.body =
|
|
23
|
+
if self.response.body is None:
|
|
24
|
+
self.response.body = ""
|
|
25
|
+
elif self.response.is_json() and not isinstance(self.response.body, (str, bytes)):
|
|
26
|
+
if hasattr(self.response.body, "model_dump_json"):
|
|
27
|
+
self.response.body = self.response.body.model_dump_json()
|
|
28
|
+
else:
|
|
29
|
+
self.response.body = self.json_serializer(self.response.body)
|
|
25
30
|
|
|
26
31
|
self._handle_route_configuration(event, cors)
|
|
27
32
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "modmex-lambda"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.1"
|
|
8
8
|
description = "Ultra-lightweight AWS Lambda utilities for API Gateway routing and event handling."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10,<4.0"
|
|
@@ -58,6 +58,11 @@ class AuditService:
|
|
|
58
58
|
return {"user_id": user_id, "tenant_id": self.tenant_id}
|
|
59
59
|
|
|
60
60
|
|
|
61
|
+
class DumpJsonModel:
|
|
62
|
+
def model_dump_json(self) -> str:
|
|
63
|
+
return '{"ok":true}'
|
|
64
|
+
|
|
65
|
+
|
|
61
66
|
def test_public_api_requires_explicit_api_gateway_resolver() -> None:
|
|
62
67
|
assert modmex_lambda.APIGatewayHttpResolver is APIGatewayHttpResolver
|
|
63
68
|
assert modmex_lambda.APIGatewayRestResolver is APIGatewayRestResolver
|
|
@@ -209,6 +214,34 @@ def test_http_resolver_serializes_cookies_in_http_api_shape() -> None:
|
|
|
209
214
|
assert response_body(response) == {"ok": True}
|
|
210
215
|
|
|
211
216
|
|
|
217
|
+
def test_http_resolver_serializes_model_dump_json_body_without_double_encoding() -> None:
|
|
218
|
+
app = APIGatewayHttpResolver()
|
|
219
|
+
|
|
220
|
+
@app.get("/model")
|
|
221
|
+
def model():
|
|
222
|
+
return DumpJsonModel()
|
|
223
|
+
|
|
224
|
+
response = app.resolve(http_v2_event("GET", "/model"), object())
|
|
225
|
+
|
|
226
|
+
assert response["headers"]["Content-Type"] == "application/json"
|
|
227
|
+
assert response["body"] == '{"ok":true}'
|
|
228
|
+
assert response_body(response) == {"ok": True}
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def test_http_resolver_serializes_no_content_response_with_empty_body() -> None:
|
|
232
|
+
app = APIGatewayHttpResolver()
|
|
233
|
+
|
|
234
|
+
@app.delete("/users/<user_id>", status_code=204)
|
|
235
|
+
def delete_user(user_id: str):
|
|
236
|
+
return None
|
|
237
|
+
|
|
238
|
+
response = app.resolve(http_v2_event("DELETE", "/users/42"), object())
|
|
239
|
+
|
|
240
|
+
assert response["statusCode"] == 204
|
|
241
|
+
assert response["body"] == ""
|
|
242
|
+
assert response_body(response) is None
|
|
243
|
+
|
|
244
|
+
|
|
212
245
|
def test_static_dynamic_any_404_and_405_routing() -> None:
|
|
213
246
|
app = APIGatewayHttpResolver()
|
|
214
247
|
|
|
@@ -44,3 +44,28 @@ def test_gateway_response_builder_uses_first_origin_and_response_compression_ove
|
|
|
44
44
|
assert payload["isBase64Encoded"] is False
|
|
45
45
|
assert payload["multiValueHeaders"]["Access-Control-Allow-Origin"] == ["*"]
|
|
46
46
|
assert "Content-Encoding" not in payload["multiValueHeaders"]
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def test_gateway_response_builder_serializes_none_body_as_empty_string() -> None:
|
|
50
|
+
event = APIGatewayProxyEvent(
|
|
51
|
+
{
|
|
52
|
+
"path": "/users/42",
|
|
53
|
+
"httpMethod": "DELETE",
|
|
54
|
+
"headers": {},
|
|
55
|
+
"multiValueHeaders": {},
|
|
56
|
+
"requestContext": {},
|
|
57
|
+
},
|
|
58
|
+
)
|
|
59
|
+
response = Response(
|
|
60
|
+
status_code=204,
|
|
61
|
+
body=None,
|
|
62
|
+
content_type=content_types.APPLICATION_JSON,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
payload = GatewayResponseBuilder(
|
|
66
|
+
response=response,
|
|
67
|
+
route=None,
|
|
68
|
+
json_serializer=lambda value: "null",
|
|
69
|
+
).serialize(event)
|
|
70
|
+
|
|
71
|
+
assert payload["body"] == ""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/api_gateway_proxy_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/data_classes/cognito_user_pool_event.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/__init__.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/compat.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/dependant.py
RENAMED
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/depends.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/params.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/dependencies/types.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/exception_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/event_handler/routing_fallbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/data_classes/__init__.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/modmex_lambda/stream/utils/data_classes/dynamodb.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/data_classes/test_api_gateway_proxy_event.py
RENAMED
|
File without changes
|
{modmex_lambda-0.5.0 → modmex_lambda-0.5.1}/tests/data_classes/test_cognito_user_pool_event.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|