aws-lambda-powertools 3.5.1a3__tar.gz → 3.5.1a4__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.
Files changed (258) hide show
  1. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/params.py +20 -3
  3. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/__init__.py +1 -2
  4. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/__init__.py +1 -2
  5. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/metrics.py +3 -3
  6. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/middleware_factory/__init__.py +1 -1
  7. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/version.py +1 -1
  8. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/tracing/__init__.py +1 -2
  9. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/batch/base.py +2 -0
  10. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/batch/decorators.py +4 -5
  11. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +1 -1
  12. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/common.py +6 -0
  13. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/base.py +9 -2
  14. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/provider/base.py +2 -2
  15. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +16 -16
  16. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +5 -0
  17. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/base.py +2 -1
  18. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/comparators.py +3 -2
  19. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +7 -5
  20. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/base.py +6 -0
  21. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/idempotency.py +12 -12
  22. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +1 -1
  23. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +1 -1
  24. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +7 -1
  25. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/base.py +2 -0
  26. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/__init__.py +1 -2
  27. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/parser.py +7 -0
  28. aws_lambda_powertools-3.5.1a4/aws_lambda_powertools/utilities/streaming/__init__.py +9 -0
  29. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/typing/__init__.py +2 -0
  30. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/pyproject.toml +1 -1
  31. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/setup.py +1 -1
  32. aws_lambda_powertools-3.5.1a3/aws_lambda_powertools/utilities/streaming/__init__.py +0 -3
  33. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/LICENSE +0 -0
  34. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/README.md +0 -0
  35. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/THIRD-PARTY-LICENSES +0 -0
  36. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/__init__.py +0 -0
  37. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  38. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
  39. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  40. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  41. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  42. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  43. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  44. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
  45. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
  46. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  47. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
  48. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  49. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  50. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  51. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  52. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  53. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  54. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  55. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  56. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  57. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  58. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  59. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  60. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  61. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  62. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  63. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  64. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  65. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  66. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  67. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/router.py +0 -0
  68. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/types.py +0 -0
  69. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/util.py +0 -0
  70. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  71. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  72. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/constants.py +0 -0
  73. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  74. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/exceptions.py +0 -0
  75. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/filters.py +0 -0
  76. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/formatter.py +0 -0
  77. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  78. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  79. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  80. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/logger.py +0 -0
  81. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/types.py +0 -0
  82. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/logging/utils.py +0 -0
  83. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/base.py +0 -0
  84. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  85. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/functions.py +0 -0
  86. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/metric.py +0 -0
  87. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  88. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  89. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  90. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  91. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  92. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  93. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  94. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  95. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  96. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  97. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  98. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  99. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  100. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/metrics/types.py +0 -0
  101. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  102. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  103. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/package_logger.py +0 -0
  104. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/py.typed +0 -0
  105. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/__init__.py +0 -0
  106. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  107. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/constants.py +0 -0
  108. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/cookies.py +0 -0
  109. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  110. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/functions.py +0 -0
  111. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  112. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  113. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  114. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/types.py +0 -0
  115. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/shared/user_agent.py +0 -0
  116. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/tracing/base.py +0 -0
  117. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/tracing/extensions.py +0 -0
  118. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/tracing/tracer.py +0 -0
  119. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/__init__.py +0 -0
  120. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  121. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  122. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  123. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  124. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  125. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  126. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  127. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  128. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  129. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  130. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  131. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  132. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  133. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  134. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  135. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  136. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  137. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  138. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  139. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  140. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  141. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  142. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  143. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  144. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  145. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  146. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  147. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  148. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  149. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  150. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  151. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  152. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  153. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  154. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  155. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  156. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  157. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  158. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -0
  159. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  160. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  161. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  162. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  163. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  164. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  165. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  166. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  167. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  168. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  169. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  170. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  171. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  172. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  173. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  174. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  175. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  176. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  177. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  178. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  179. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  180. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  181. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +0 -0
  182. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  183. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  184. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  185. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  186. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  187. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  188. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  189. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  190. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  191. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  192. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  193. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  194. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  195. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  196. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  197. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  198. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  199. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  200. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  201. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  202. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  203. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  204. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  205. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  206. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  207. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  208. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  209. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  210. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  211. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  212. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  213. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  214. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  215. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
  216. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  217. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  218. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  219. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  220. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  221. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  222. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  223. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  224. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  225. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  226. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  227. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  228. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  229. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  230. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  231. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  232. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  233. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  234. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
  235. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  236. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  237. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  238. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/serialization.py +0 -0
  239. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  240. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  241. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  242. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  243. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  244. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  245. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  246. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  247. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  248. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  249. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  250. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  251. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  252. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  253. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  254. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  255. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  256. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  257. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  258. {aws_lambda_powertools-3.5.1a3 → aws_lambda_powertools-3.5.1a4}/aws_lambda_powertools/warnings/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: aws_lambda_powertools
3
- Version: 3.5.1a3
3
+ Version: 3.5.1a4
4
4
  Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
5
5
  License: MIT
6
6
  Keywords: aws_lambda_powertools,aws,tracing,logging,lambda,powertools,feature_flags,idempotency,middleware
@@ -932,7 +932,8 @@ def analyze_param(
932
932
  ModelField | None
933
933
  The type annotation and the Pydantic field representing the parameter
934
934
  """
935
- field_info, type_annotation = get_field_info_and_type_annotation(annotation, value, is_path_param)
935
+ field_info, type_annotation = \
936
+ get_field_info_and_type_annotation(annotation, value, is_path_param, is_response_param)
936
937
 
937
938
  # If the value is a FieldInfo, we use it as the FieldInfo for the parameter
938
939
  if isinstance(value, FieldInfo):
@@ -962,7 +963,9 @@ def analyze_param(
962
963
  return field
963
964
 
964
965
 
965
- def get_field_info_and_type_annotation(annotation, value, is_path_param: bool) -> tuple[FieldInfo | None, Any]:
966
+ def get_field_info_and_type_annotation(
967
+ annotation, value, is_path_param: bool, is_response_param: bool
968
+ ) -> tuple[FieldInfo | None, Any]:
966
969
  """
967
970
  Get the FieldInfo and type annotation from an annotation and value.
968
971
  """
@@ -976,6 +979,10 @@ def get_field_info_and_type_annotation(annotation, value, is_path_param: bool) -
976
979
  # If the annotation is a Response type, we recursively call this function with the inner type
977
980
  elif get_origin(annotation) is Response:
978
981
  field_info, type_annotation = get_field_info_response_type(annotation, value)
982
+ # If the response param is a tuple with two elements, we use the first element as the type annotation,
983
+ # just like we did in the APIGateway._to_response
984
+ elif is_response_param and get_origin(annotation) is tuple and len(get_args(annotation)) == 2:
985
+ field_info, type_annotation = get_field_info_tuple_type(annotation, value)
979
986
  # If the annotation is not an Annotated type, we use it as the type annotation
980
987
  else:
981
988
  type_annotation = annotation
@@ -983,12 +990,22 @@ def get_field_info_and_type_annotation(annotation, value, is_path_param: bool) -
983
990
  return field_info, type_annotation
984
991
 
985
992
 
993
+ def get_field_info_tuple_type(annotation, value) -> tuple[FieldInfo | None, Any]:
994
+ (inner_type, _) = get_args(annotation)
995
+
996
+ # If the inner type is an Annotated type, we need to extract the type annotation and the FieldInfo
997
+ if get_origin(inner_type) is Annotated:
998
+ return get_field_info_annotated_type(inner_type, value, False)
999
+
1000
+ return None, inner_type
1001
+
1002
+
986
1003
  def get_field_info_response_type(annotation, value) -> tuple[FieldInfo | None, Any]:
987
1004
  # Example: get_args(Response[inner_type]) == (inner_type,) # noqa: ERA001
988
1005
  (inner_type,) = get_args(annotation)
989
1006
 
990
1007
  # Recursively resolve the inner type
991
- return get_field_info_and_type_annotation(inner_type, value, False)
1008
+ return get_field_info_and_type_annotation(inner_type, value, False, True)
992
1009
 
993
1010
 
994
1011
  def get_field_info_annotated_type(annotation, value, is_path_param: bool) -> tuple[FieldInfo | None, Any]:
@@ -1,5 +1,4 @@
1
- """Logging utility
2
- """
1
+ """Logging utility"""
3
2
 
4
3
  from .logger import Logger
5
4
 
@@ -1,5 +1,4 @@
1
- """CloudWatch Embedded Metric Format utility
2
- """
1
+ """CloudWatch Embedded Metric Format utility"""
3
2
 
4
3
  from aws_lambda_powertools.metrics.base import MetricResolution, MetricUnit, single_metric
5
4
  from aws_lambda_powertools.metrics.exceptions import (
@@ -1,7 +1,7 @@
1
1
  # NOTE: keeps for compatibility
2
2
  from __future__ import annotations
3
3
 
4
- from typing import TYPE_CHECKING, Any
4
+ from typing import TYPE_CHECKING, Any, Callable
5
5
 
6
6
  from aws_lambda_powertools.metrics.provider.cloudwatch_emf.cloudwatch import AmazonCloudWatchEMFProvider
7
7
 
@@ -149,8 +149,8 @@ class Metrics:
149
149
  capture_cold_start_metric: bool = False,
150
150
  raise_on_empty_metrics: bool = False,
151
151
  default_dimensions: dict[str, str] | None = None,
152
- **kwargs,
153
- ):
152
+ **kwargs: dict[str, Any],
153
+ ) -> Callable[..., Any]:
154
154
  return self.provider.log_metrics(
155
155
  lambda_handler=lambda_handler,
156
156
  capture_cold_start_metric=capture_cold_start_metric,
@@ -1,4 +1,4 @@
1
- """ Utilities to enhance middlewares """
1
+ """Utilities to enhance middlewares"""
2
2
 
3
3
  from .factory import lambda_handler_decorator
4
4
 
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.5.1a3"
3
+ VERSION = "3.5.1a4"
@@ -1,5 +1,4 @@
1
- """Tracing utility
2
- """
1
+ """Tracing utility"""
3
2
 
4
3
  from .extensions import aiohttp_trace_config
5
4
  from .tracer import Tracer
@@ -1,5 +1,7 @@
1
1
  """
2
2
  Batch processing utilities
3
+ !!! abstract "Usage Documentation"
4
+ [`Batch processing`](../../utilities/batch.md)
3
5
  """
4
6
 
5
7
  from __future__ import annotations
@@ -51,9 +51,8 @@ def async_batch_processor(
51
51
  processor: AsyncBatchProcessor
52
52
  Batch Processor to handle partial failure cases
53
53
 
54
- Examples
54
+ Example
55
55
  --------
56
- **Processes Lambda's event with a BasePartialProcessor**
57
56
  >>> from aws_lambda_powertools.utilities.batch import async_batch_processor, AsyncBatchProcessor
58
57
  >>> from aws_lambda_powertools.utilities.data_classes.sqs_event import SQSRecord
59
58
  >>>
@@ -119,7 +118,7 @@ def batch_processor(
119
118
  processor: BatchProcessor
120
119
  Batch Processor to handle partial failure cases
121
120
 
122
- Examples
121
+ Example
123
122
  --------
124
123
  **Processes Lambda's event with a BatchProcessor**
125
124
 
@@ -180,7 +179,7 @@ def process_partial_response(
180
179
  result: PartialItemFailureResponse
181
180
  Lambda Partial Batch Response
182
181
 
183
- Examples
182
+ Example
184
183
  --------
185
184
  **Processes Lambda's SQS event**
186
185
 
@@ -244,7 +243,7 @@ def async_process_partial_response(
244
243
  result: PartialItemFailureResponse
245
244
  Lambda Partial Batch Response
246
245
 
247
- Examples
246
+ Example
248
247
  --------
249
248
  **Processes Lambda's SQS event**
250
249
 
@@ -21,7 +21,7 @@ class SqsFifoPartialProcessor(BatchProcessor):
21
21
  Stops processing records when the first record fails. The remaining records are reported as failed items.
22
22
 
23
23
  Example
24
- _______
24
+ -------
25
25
 
26
26
  ## Process batch triggered by a FIFO SQS
27
27
 
@@ -1,3 +1,9 @@
1
+ """
2
+ Base class for Event Source Data Classes
3
+ !!! abstract "Usage Documentation"
4
+ [`Data classes`](../utilities/data_classes.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import base64
@@ -1,3 +1,9 @@
1
+ """
2
+ Base class for Data Masking
3
+ !!! abstract "Usage Documentation"
4
+ [`Data masking`](../../utilities/data_masking.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import functools
@@ -24,8 +30,9 @@ class DataMasking:
24
30
  The DataMasking class orchestrates erasing, encrypting, and decrypting
25
31
  for the base provider.
26
32
 
27
- Example:
28
- ```
33
+ Example
34
+ -------
35
+ ```python
29
36
  from aws_lambda_powertools.utilities.data_masking.base import DataMasking
30
37
 
31
38
  def lambda_handler(event, context):
@@ -11,9 +11,9 @@ class BaseProvider:
11
11
  """
12
12
  The BaseProvider class serves as an abstract base class for data masking providers.
13
13
 
14
- Examples
14
+ Example
15
15
  --------
16
- ```
16
+ ```python
17
17
  from aws_lambda_powertools.utilities._data_masking.provider import BaseProvider
18
18
  from aws_lambda_powertools.utilities.data_masking import DataMasking
19
19
 
@@ -48,9 +48,9 @@ class AWSEncryptionSDKProvider(BaseProvider):
48
48
  """
49
49
  The AWSEncryptionSDKProvider is used as a provider for the DataMasking class.
50
50
 
51
- Usage
51
+ Example
52
52
  -------
53
- ```
53
+ ```python
54
54
  from aws_lambda_powertools.utilities.data_masking import DataMasking
55
55
  from aws_lambda_powertools.utilities.data_masking.providers.kms.aws_encryption_sdk import (
56
56
  AWSEncryptionSDKProvider,
@@ -142,17 +142,17 @@ class KMSKeyProvider:
142
142
 
143
143
  Parameters
144
144
  -------
145
- data : Any
146
- The data to be encrypted.
147
- provider_options : dict
148
- Additional options for the aws_encryption_sdk.EncryptionSDKClient
149
- **encryption_context : str
150
- Additional keyword arguments collected into a dictionary.
145
+ data: Any
146
+ The data to be encrypted.
147
+ provider_options: dict
148
+ Additional options for the aws_encryption_sdk.EncryptionSDKClient
149
+ **encryption_context: str
150
+ Additional keyword arguments collected into a dictionary.
151
151
 
152
152
  Returns
153
153
  -------
154
- ciphertext : str
155
- The encrypted data, as a base64-encoded string.
154
+ ciphertext: str
155
+ The encrypted data, as a base64-encoded string.
156
156
  """
157
157
  provider_options = provider_options or {}
158
158
  self._validate_encryption_context(encryption_context)
@@ -179,15 +179,15 @@ class KMSKeyProvider:
179
179
 
180
180
  Parameters
181
181
  -------
182
- data : str
183
- The encrypted data, as a base64-encoded string
184
- provider_options
185
- Additional options for the aws_encryption_sdk.EncryptionSDKClient
182
+ data: str
183
+ The encrypted data, as a base64-encoded string
184
+ provider_options
185
+ Additional options for the aws_encryption_sdk.EncryptionSDKClient
186
186
 
187
187
  Returns
188
188
  -------
189
- ciphertext : bytes
190
- The decrypted data in bytes
189
+ ciphertext: bytes
190
+ The decrypted data in bytes
191
191
  """
192
192
  provider_options = provider_options or {}
193
193
  self._validate_encryption_context(encryption_context)
@@ -1,3 +1,8 @@
1
+ """Advanced feature flags utility
2
+ !!! abstract "Usage Documentation"
3
+ [`Feature Flags`](../../utilities/feature_flags.md)
4
+ """
5
+
1
6
  from __future__ import annotations
2
7
 
3
8
  import logging
@@ -28,7 +28,8 @@ class StoreProvider(ABC):
28
28
  dict[str, Any]
29
29
  parsed JSON dictionary
30
30
 
31
- **Example**
31
+ Example
32
+ -------
32
33
 
33
34
  ```python
34
35
  {
@@ -56,6 +56,8 @@ def compare_time_range(context_value: Any, condition_value: dict) -> bool:
56
56
  end_time = current_time.replace(hour=int(end_hour), minute=int(end_min))
57
57
 
58
58
  if int(end_hour) < int(start_hour):
59
+ # In normal circumstances, we need to assert **both** conditions
60
+ """
59
61
  # When the end hour is smaller than start hour, it means we are crossing a day's boundary.
60
62
  # In this case we need to assert that current_time is **either** on one side or the other side of the boundary
61
63
  #
@@ -69,10 +71,9 @@ def compare_time_range(context_value: Any, condition_value: dict) -> bool:
69
71
  # │ │ │
70
72
  # └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
71
73
  # │
72
-
74
+ """
73
75
  return (start_time <= current_time) or (current_time <= end_time)
74
76
  else:
75
- # In normal circumstances, we need to assert **both** conditions
76
77
  return start_time <= current_time <= end_time
77
78
 
78
79
 
@@ -179,7 +179,8 @@ class FeatureFlags:
179
179
  dict[str, dict]
180
180
  parsed JSON dictionary
181
181
 
182
- **Example**
182
+ Example
183
+ -------
183
184
 
184
185
  ```python
185
186
  {
@@ -251,7 +252,7 @@ class FeatureFlags:
251
252
  Can be boolean or any JSON values for non-boolean features.
252
253
 
253
254
 
254
- Examples
255
+ Example
255
256
  --------
256
257
 
257
258
  ```python
@@ -343,7 +344,8 @@ class FeatureFlags:
343
344
  list[str]
344
345
  list of all feature names that either matches context or have True as default
345
346
 
346
- **Example**
347
+ Example
348
+ -------
347
349
 
348
350
  ```python
349
351
  ["premium_features", "my_feature_two", "always_true_feature"]
@@ -400,8 +402,8 @@ class FeatureFlags:
400
402
  exc_class : Exception | list[Exception]
401
403
  One or more exceptions to catch
402
404
 
403
- Examples
404
- --------
405
+ Example
406
+ -------
405
407
 
406
408
  ```python
407
409
  feature_flags = FeatureFlags(store=app_config)
@@ -1,3 +1,9 @@
1
+ """
2
+ Base for Idempotency utility
3
+ !!! abstract "Usage Documentation"
4
+ [`Idempotency`](../../utilities/idempotency.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import datetime
@@ -61,20 +61,20 @@ def idempotent(
61
61
  key_prefix: str | Optional
62
62
  Custom prefix for idempotency key: key_prefix#hash
63
63
 
64
- Examples
64
+ Example
65
65
  --------
66
66
  **Processes Lambda's event in an idempotent manner**
67
67
 
68
- >>> from aws_lambda_powertools.utilities.idempotency import (
69
- >>> idempotent, DynamoDBPersistenceLayer, IdempotencyConfig
70
- >>> )
71
- >>>
72
- >>> idem_config=IdempotencyConfig(event_key_jmespath="body")
73
- >>> persistence_layer = DynamoDBPersistenceLayer(table_name="idempotency_store")
74
- >>>
75
- >>> @idempotent(config=idem_config, persistence_store=persistence_layer)
76
- >>> def handler(event, context):
77
- >>> return {"StatusCode": 200}
68
+ from aws_lambda_powertools.utilities.idempotency import (
69
+ idempotent, DynamoDBPersistenceLayer, IdempotencyConfig
70
+ )
71
+
72
+ idem_config=IdempotencyConfig(event_key_jmespath="body")
73
+ persistence_layer = DynamoDBPersistenceLayer(table_name="idempotency_store")
74
+
75
+ @idempotent(config=idem_config, persistence_store=persistence_layer)
76
+ def handler(event, context):
77
+ return {"StatusCode": 200}
78
78
  """
79
79
 
80
80
  # Skip idempotency controls when POWERTOOLS_IDEMPOTENCY_DISABLED has a truthy value
@@ -136,7 +136,7 @@ def idempotent_function(
136
136
  key_prefix: str | Optional
137
137
  Custom prefix for idempotency key: key_prefix#hash
138
138
 
139
- Examples
139
+ Example
140
140
  --------
141
141
  **Processes an order in an idempotent manner**
142
142
 
@@ -76,7 +76,7 @@ class DynamoDBPersistenceLayer(BasePersistenceLayer):
76
76
  boto3_client : DynamoDBClient, optional
77
77
  Boto3 DynamoDB Client to use, boto3_session and boto_config will be ignored if both are provided
78
78
 
79
- Examples
79
+ Example
80
80
  --------
81
81
  **Create a DynamoDB persistence layer with custom settings**
82
82
 
@@ -112,7 +112,7 @@ class RedisConnection:
112
112
  ssl: bool, optional: default True
113
113
  set whether to use ssl for Redis connection
114
114
 
115
- Examples
115
+ Example
116
116
  --------
117
117
 
118
118
  ```python
@@ -1,3 +1,9 @@
1
+ """
2
+ Built-in JMESPath Functions to easily deserialize common encoded JSON payloads in Lambda functions.
3
+ !!! abstract "Usage Documentation"
4
+ [`JMESPath Functions`](../utilities/jmespath_functions.md)
5
+ """
6
+
1
7
  from __future__ import annotations
2
8
 
3
9
  import base64
@@ -42,7 +48,7 @@ def query(data: dict | str, envelope: str, jmespath_options: dict | None = None)
42
48
 
43
49
  Built-in JMESPath functions include: powertools_json, powertools_base64, powertools_base64_gzip
44
50
 
45
- Examples
51
+ Example
46
52
  --------
47
53
 
48
54
  **Deserialize JSON string and extracts data from body key**
@@ -1,5 +1,7 @@
1
1
  """
2
2
  Base for Parameter providers
3
+ !!! abstract "Usage Documentation"
4
+ [`Parameters`](../../utilities/parameters.md)
3
5
  """
4
6
 
5
7
  from __future__ import annotations
@@ -1,5 +1,4 @@
1
- """Advanced event_parser utility
2
- """
1
+ """Advanced event_parser utility"""
3
2
 
4
3
  from pydantic import BaseModel, Field, ValidationError, field_validator, model_validator
5
4
 
@@ -1,3 +1,10 @@
1
+ """
2
+ The Parser utility simplifies data parsing and validation using Pydantic. It allows you to define data models
3
+ in pure Python classes, parse and validate incoming events, and extract only the data you need.
4
+ !!! abstract "Usage Documentation"
5
+ [`Parser`](../utilities/parser.md)
6
+ """
7
+
1
8
  from __future__ import annotations
2
9
 
3
10
  import logging
@@ -0,0 +1,9 @@
1
+ """
2
+ The streaming utility handles datasets larger than the available memory as streaming data.
3
+ !!! abstract "Usage Documentation"
4
+ [`Streaming`](../utilities/streaming.md)
5
+ """
6
+
7
+ from aws_lambda_powertools.utilities.streaming.s3_object import S3Object
8
+
9
+ __all__ = ["S3Object"]
@@ -1,5 +1,7 @@
1
1
  """
2
2
  Typing for developer ease in the IDE
3
+ !!! abstract "Usage Documentation"
4
+ [`Typing`](../utilities/typing.md)
3
5
  """
4
6
 
5
7
  from .lambda_context import LambdaContext
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "3.5.1a3"
3
+ version = "3.5.1a4"
4
4
  description = "Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity."
5
5
  authors = ["Amazon Web Services"]
6
6
  include = ["aws_lambda_powertools/py.typed", "THIRD-PARTY-LICENSES"]
@@ -64,7 +64,7 @@ extras_require = \
64
64
 
65
65
  setup_kwargs = {
66
66
  'name': 'aws_lambda_powertools',
67
- 'version': '3.5.1a3',
67
+ 'version': '3.5.1a4',
68
68
  'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
69
69
  'long_description': '<!-- markdownlint-disable MD013 MD041 MD043 -->\n# Powertools for AWS Lambda (Python)\n\n[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)\n[![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-python/branch/develop/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)\n![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.8|%203.9|%203.10|%203.11|%203.12&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python) [![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET?style=flat-square)](https://discord.gg/B8zZKbbyET)\n\nPowertools for AWS Lambda (Python) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/python/latest/#features).\n\n> Also available in [Java](https://github.com/aws-powertools/powertools-lambda-java), [Typescript](https://github.com/aws-powertools/powertools-lambda-typescript), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).\n\n**[📜Documentation](https://docs.powertools.aws.dev/lambda/python/)** | **[🐍PyPi](https://pypi.org/project/aws-lambda-powertools/)** | **[Roadmap](https://docs.powertools.aws.dev/lambda/python/latest/roadmap/)** | **[Detailed blog post](https://aws.amazon.com/blogs/opensource/simplifying-serverless-best-practices-with-lambda-powertools/)**\n\n![hero-image](https://user-images.githubusercontent.com/3340292/198254617-d0fdb672-86a6-4988-8a40-adf437135e0a.png)\n\n## Features\n\n* **[Tracing](https://docs.powertools.aws.dev/lambda/python/latest/core/tracer/)** - Decorators and utilities to trace Lambda function handlers, and both synchronous and asynchronous functions\n* **[Logging](https://docs.powertools.aws.dev/lambda/python/latest/core/logger/)** - Structured logging made easier, and decorator to enrich structured logging with key Lambda context details\n* **[Metrics](https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)\n* **[Event handler: AppSync](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync/)** - AWS AppSync event handler for Lambda Direct Resolver and Amplify GraphQL Transformer function\n* **[Event handler: API Gateway and ALB](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/api_gateway/)** - Amazon API Gateway REST/HTTP API and ALB event handler for Lambda functions invoked using Proxy integration\n* **[Event handler: Agents for Amazon Bedrock](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/bedrock_agents/)** - Create Agents for Amazon Bedrock, automatically generating OpenAPI schemas\n* **[Bring your own middleware](https://docs.powertools.aws.dev/lambda/python/latest/utilities/middleware_factory/)** - Decorator factory to create your own middleware to run logic before, and after each Lambda invocation\n* **[Parameters utility](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parameters/)** - Retrieve and cache parameter values from Parameter Store, Secrets Manager, or DynamoDB\n* **[Batch processing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/batch/)** - Handle partial failures for AWS SQS batch processing\n* **[Typing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/typing/)** - Static typing classes to speedup development in your IDE\n* **[Validation](https://docs.powertools.aws.dev/lambda/python/latest/utilities/validation/)** - JSON Schema validator for inbound events and responses\n* **[Event source data classes](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_classes/)** - Data classes describing the schema of common Lambda event triggers\n* **[Parser](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parser/)** - Data parsing and deep validation using Pydantic\n* **[Idempotency](https://docs.powertools.aws.dev/lambda/python/latest/utilities/idempotency/)** - Convert your Lambda functions into idempotent operations which are safe to retry\n* **[Data Masking](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/)** - Protect confidential data with easy removal or encryption\n* **[Feature Flags](https://docs.powertools.aws.dev/lambda/python/latest/utilities/feature_flags/)** - A simple rule engine to evaluate when one or multiple features should be enabled depending on the input\n* **[Streaming](https://docs.powertools.aws.dev/lambda/python/latest/utilities/streaming/)** - Streams datasets larger than the available memory as streaming data.\n\n### Installation\n\nWith [pip](https://pip.pypa.io/en/latest/index.html) installed, run: ``pip install aws-lambda-powertools``\n\n## Tutorial and Examples\n\n* [Tutorial](https://docs.powertools.aws.dev/lambda/python/latest/tutorial)\n* [Serverless Shopping cart](https://github.com/aws-samples/aws-serverless-shopping-cart)\n* [Serverless Airline](https://github.com/aws-samples/aws-serverless-airline-booking)\n* [Serverless E-commerce platform](https://github.com/aws-samples/aws-serverless-ecommerce-platform)\n* [Serverless GraphQL Nanny Booking Api](https://github.com/trey-rosius/babysitter_api)\n\n## How to support Powertools for AWS Lambda (Python)?\n\n### Becoming a reference customer\n\nKnowing which companies are using this library is important to help prioritize the project internally. If your company is using Powertools for AWS Lambda (Python), you can request to have your name and logo added to the README file by raising a [Support Powertools for AWS Lambda (Python) (become a reference)](https://github.com/aws-powertools/powertools-lambda-python/issues/new?assignees=&labels=customer-reference&template=support_powertools.yml&title=%5BSupport+Lambda+Powertools%5D%3A+%3Cyour+organization+name%3E) issue.\n\nThe following companies, among others, use Powertools:\n\n* [Alma Media](https://www.almamedia.fi/en/)\n* [Banxware](https://www.banxware.com/)\n* [Brsk](https://www.brsk.co.uk/)\n* [BusPatrol](https://buspatrol.com/)\n* [Capital One](https://www.capitalone.com/)\n* [Caylent](https://caylent.com/)\n* [CHS Inc.](https://www.chsinc.com/)\n* [CPQi (Exadel Financial Services)](https://cpqi.com/)\n* [CloudZero](https://www.cloudzero.com/)\n* [CyberArk](https://www.cyberark.com/)\n* [Flyweight](https://flyweight.io/)\n* [globaldatanet](https://globaldatanet.com/)\n* [IMS](https://ims.tech/)\n* [Jit Security](https://www.jit.io/)\n* [LocalStack](https://www.localstack.cloud/)\n* [Propellor.ai](https://www.propellor.ai/)\n* [Pushpay](https://pushpay.com/)\n* [Recast](https://getrecast.com/)\n* [TopSport](https://www.topsport.com.au/)\n* [Transformity](https://transformity.tech/)\n* [Trek10](https://www.trek10.com/)\n* [Vertex Pharmaceuticals](https://www.vrtx.com/)\n\n### Sharing your work\n\nShare what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [here](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).\n\n### Using Lambda Layer or SAR\n\nThis helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.\n\n## Credits\n\n* Structured logging initial implementation from [aws-lambda-logging](https://gitlab.com/hadrien/aws_lambda_logging)\n* Powertools for AWS Lambda (Python) idea [DAZN Powertools](https://github.com/getndazn/dazn-lambda-powertools/)\n\n## Connect\n\n* **Powertools for AWS Lambda on Discord**: `#python` - **[Invite link](https://discord.gg/B8zZKbbyET)**\n* **Email**: <aws-powertools-maintainers@amazon.com>\n\n## Security disclosures\n\nIf you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [here](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n',
70
70
  'author': 'Amazon Web Services',
@@ -1,3 +0,0 @@
1
- from aws_lambda_powertools.utilities.streaming.s3_object import S3Object
2
-
3
- __all__ = ["S3Object"]