aws-lambda-powertools 3.23.1a8__tar.gz → 3.23.1a9__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 (301) hide show
  1. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/PKG-INFO +5 -5
  2. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/README.md +2 -1
  3. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/api_gateway.py +21 -0
  4. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/bedrock_agent_function.py +6 -0
  5. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/compat.py +1 -1
  6. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/version.py +1 -1
  7. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/batch/base.py +1 -1
  8. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +1 -6
  9. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/serialization.py +1 -6
  10. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/__init__.py +2 -0
  11. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +90 -1
  12. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +4 -3
  13. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/pyproject.toml +7 -11
  14. aws_lambda_powertools-3.23.1a9/setup.py +91 -0
  15. aws_lambda_powertools-3.23.1a8/setup.py +0 -91
  16. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/LICENSE +0 -0
  17. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/THIRD-PARTY-LICENSES +0 -0
  18. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/__init__.py +0 -0
  19. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  20. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  21. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  22. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  23. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/__init__.py +0 -0
  24. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/_registry.py +0 -0
  25. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/appsync_events.py +0 -0
  26. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/base.py +0 -0
  27. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/exceptions.py +0 -0
  28. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/functions.py +0 -0
  29. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/router.py +0 -0
  30. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/events_appsync/types.py +0 -0
  31. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/exception_handling.py +0 -0
  32. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  33. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  34. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
  35. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
  36. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  37. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
  38. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  39. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  40. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  41. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  42. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  43. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  44. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/config.py +0 -0
  45. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  46. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  47. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  48. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  49. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  50. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
  51. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  52. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  53. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  54. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  55. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  56. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  57. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  58. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/router.py +0 -0
  59. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/types.py +0 -0
  60. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/util.py +0 -0
  61. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  62. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  63. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/__init__.py +0 -0
  64. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/buffer/__init__.py +0 -0
  65. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/buffer/cache.py +0 -0
  66. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/buffer/config.py +0 -0
  67. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/buffer/functions.py +0 -0
  68. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/constants.py +0 -0
  69. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  70. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/exceptions.py +0 -0
  71. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/filters.py +0 -0
  72. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/formatter.py +0 -0
  73. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  74. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  75. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  76. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/logger.py +0 -0
  77. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/types.py +0 -0
  78. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/logging/utils.py +0 -0
  79. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/__init__.py +0 -0
  80. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/base.py +0 -0
  81. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  82. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/functions.py +0 -0
  83. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/metric.py +0 -0
  84. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/metrics.py +0 -0
  85. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  86. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  87. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  88. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  89. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  90. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  91. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  92. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  93. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  94. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  95. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  96. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  97. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  98. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/metrics/types.py +0 -0
  99. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  100. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  101. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  102. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/package_logger.py +0 -0
  103. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/py.typed +0 -0
  104. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/__init__.py +0 -0
  105. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  106. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/constants.py +0 -0
  107. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/cookies.py +0 -0
  108. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  109. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/functions.py +0 -0
  110. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  111. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  112. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  113. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/types.py +0 -0
  114. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/shared/user_agent.py +0 -0
  115. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/tracing/__init__.py +0 -0
  116. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/tracing/base.py +0 -0
  117. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/tracing/extensions.py +0 -0
  118. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/tracing/tracer.py +0 -0
  119. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/__init__.py +0 -0
  120. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  121. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  122. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  123. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  124. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  125. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  126. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  127. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  128. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  129. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  130. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py +0 -0
  131. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  132. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  133. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  134. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  135. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_events_event.py +0 -0
  136. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  137. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  138. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_function_event.py +0 -0
  139. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  140. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  141. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  142. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  143. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  144. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  145. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  146. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  147. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  148. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  149. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  150. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  151. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/iot_registry_event.py +0 -0
  152. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  153. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  154. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  155. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  156. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  157. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  158. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  159. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  160. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  161. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  162. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  163. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  164. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  165. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -0
  166. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  167. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  168. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  169. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  170. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  171. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  172. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
  173. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  174. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  175. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  176. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  177. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  178. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  179. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  180. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  181. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  182. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  183. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  184. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  185. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  186. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  187. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  188. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  189. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  190. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  191. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  192. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/cache.py +0 -0
  193. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  194. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  195. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  196. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  197. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  198. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  199. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  200. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  201. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  202. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  203. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  204. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/__init__.py +0 -0
  205. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/consumer_records.py +0 -0
  206. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/__init__.py +0 -0
  207. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/avro.py +0 -0
  208. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/base.py +0 -0
  209. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/default.py +0 -0
  210. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/deserializer.py +0 -0
  211. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/json.py +0 -0
  212. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/deserializer/protobuf.py +0 -0
  213. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/exceptions.py +0 -0
  214. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/kafka_consumer.py +0 -0
  215. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/schema_config.py +0 -0
  216. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/__init__.py +0 -0
  217. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/base.py +0 -0
  218. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/custom_dict.py +0 -0
  219. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/dataclass.py +0 -0
  220. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/pydantic.py +0 -0
  221. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/kafka/serialization/types.py +0 -0
  222. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  223. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  224. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  225. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  226. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  227. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  228. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  229. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  230. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  231. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  232. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  233. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  234. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  235. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  236. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  237. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  238. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  239. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  240. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  241. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  242. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  243. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  244. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  245. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  246. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  247. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  248. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  249. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  250. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  251. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  252. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  253. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
  254. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  255. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/appsync.py +0 -0
  256. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/appsync_events.py +0 -0
  257. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  258. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  259. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  260. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/cognito.py +0 -0
  261. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  262. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/iot_registry_events.py +0 -0
  263. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  264. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  265. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  266. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  267. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  268. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  269. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  270. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  271. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  272. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  273. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  274. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  275. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
  276. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  277. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  278. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  279. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  280. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/serialization.py +0 -0
  281. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  282. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  283. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  284. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  285. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  286. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  287. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  288. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  289. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  290. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  291. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  292. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  293. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  294. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  295. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  296. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  297. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  298. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  299. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  300. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  301. {aws_lambda_powertools-3.23.1a8 → aws_lambda_powertools-3.23.1a9}/aws_lambda_powertools/warnings/__init__.py +0 -0
@@ -1,18 +1,17 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: aws_lambda_powertools
3
- Version: 3.23.1a8
3
+ Version: 3.23.1a9
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
7
7
  Author: Amazon Web Services
8
- Requires-Python: >=3.9,<4.0.0
8
+ Requires-Python: >=3.10,<4.0.0
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: License :: OSI Approved :: MIT No Attribution License (MIT-0)
13
13
  Classifier: Natural Language :: English
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.9
16
15
  Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
@@ -42,7 +41,7 @@ Requires-Dist: pydantic (>=2.4.0,<3.0.0) ; extra == "parser" or extra == "all"
42
41
  Requires-Dist: pydantic-settings (>=2.6.1,<3.0.0) ; extra == "all"
43
42
  Requires-Dist: redis (>=4.4,<8.0) ; extra == "redis"
44
43
  Requires-Dist: typing-extensions (>=4.11.0,<5.0.0)
45
- Requires-Dist: valkey-glide (>=1.3.5,<3.0) ; (python_version < "3.14") and (extra == "valkey")
44
+ Requires-Dist: valkey-glide (>=1.3.5,<3.0) ; extra == "valkey"
46
45
  Project-URL: Documentation, https://docs.powertools.aws.dev/lambda/python/
47
46
  Project-URL: Issue tracker, https://github.com/aws-powertools/powertools-lambda-python/issues
48
47
  Project-URL: Repository, https://github.com/aws-powertools/powertools-lambda-python
@@ -54,7 +53,7 @@ Description-Content-Type: text/markdown
54
53
 
55
54
  [![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)
56
55
  [![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)
57
- ![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.9|%203.10|%203.11|%203.12|%203.13|%203.14&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)
56
+ ![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.10|%203.11|%203.12|%203.13|%203.14&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://scorecard.dev/viewer/?uri=github.com/aws-powertools/powertools-lambda-python)
58
57
  [![Discord](https://img.shields.io/badge/Discord-Join_Community-7289da.svg)](https://discord.gg/B8zZKbbyET)
59
58
 
60
59
  Powertools 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).
@@ -115,6 +114,7 @@ The following companies, among others, use Powertools:
115
114
  * [CPQi (Exadel Financial Services)](https://cpqi.com/)
116
115
  * [CloudZero](https://www.cloudzero.com/)
117
116
  * [CyberArk](https://www.cyberark.com/)
117
+ * [EF Education First](https://www.ef.com/)
118
118
  * [Flyweight](https://flyweight.io/)
119
119
  * [globaldatanet](https://globaldatanet.com/)
120
120
  * [Guild](https://guild.com/)
@@ -3,7 +3,7 @@
3
3
 
4
4
  [![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)
5
5
  [![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)
6
- ![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.9|%203.10|%203.11|%203.12|%203.13|%203.14&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)
6
+ ![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.10|%203.11|%203.12|%203.13|%203.14&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://scorecard.dev/viewer/?uri=github.com/aws-powertools/powertools-lambda-python)
7
7
  [![Discord](https://img.shields.io/badge/Discord-Join_Community-7289da.svg)](https://discord.gg/B8zZKbbyET)
8
8
 
9
9
  Powertools 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).
@@ -64,6 +64,7 @@ The following companies, among others, use Powertools:
64
64
  * [CPQi (Exadel Financial Services)](https://cpqi.com/)
65
65
  * [CloudZero](https://www.cloudzero.com/)
66
66
  * [CyberArk](https://www.cyberark.com/)
67
+ * [EF Education First](https://www.ef.com/)
67
68
  * [Flyweight](https://flyweight.io/)
68
69
  * [globaldatanet](https://globaldatanet.com/)
69
70
  * [Guild](https://guild.com/)
@@ -261,6 +261,15 @@ class BedrockResponse(Generic[ResponseT]):
261
261
  """
262
262
  Contains the response body, status code, content type, and optional attributes
263
263
  for session management and knowledge base configuration.
264
+
265
+ Note
266
+ ----
267
+ Amazon Bedrock Agents only support TEXT content type in the responseBody according to the
268
+ Lambda integration documentation. As a result, all response bodies are automatically serialized
269
+ as JSON strings regardless of the content_type parameter. The content_type parameter is maintained
270
+ for API consistency but does not affect the actual format sent to Bedrock Agents.
271
+
272
+ See: https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html
264
273
  """
265
274
 
266
275
  def __init__(
@@ -282,6 +291,18 @@ class BedrockResponse(Generic[ResponseT]):
282
291
  def is_json(self) -> bool:
283
292
  """
284
293
  Returns True if the response is JSON, based on the Content-Type.
294
+
295
+ Note
296
+ ----
297
+ This method always returns True for BedrockResponse regardless of the content_type parameter.
298
+ This is because Amazon Bedrock Agents only support TEXT content type in the responseBody,
299
+ and the event handler automatically serializes all response bodies as JSON strings when
300
+ sending to Bedrock Agents.
301
+
302
+ See: https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html
303
+
304
+ The content_type parameter in BedrockResponse is maintained for API consistency but does not
305
+ affect the actual response format sent to Bedrock Agents.
285
306
  """
286
307
  return True
287
308
 
@@ -133,6 +133,12 @@ class BedrockAgentFunctionResolver:
133
133
  context: dict
134
134
 
135
135
  def __init__(self, serializer: Callable | None = None) -> None:
136
+ """
137
+ Parameters
138
+ ----------
139
+ serializer: Callable, optional
140
+ function to serialize `obj` to a JSON formatted `str`, by default json.dumps
141
+ """
136
142
  self._tools: dict[str, dict[str, Any]] = {}
137
143
  self.current_event: BedrockAgentFunctionEvent | None = None
138
144
  self.context = {}
@@ -211,7 +211,7 @@ def copy_field_info(*, field_info: FieldInfo, annotation: Any) -> FieldInfo:
211
211
  base_type, constraints = extract_metadata(annotation)
212
212
 
213
213
  # Set the annotation with base type and all constraint metadata
214
- # Use tuple unpacking for Python 3.9+ compatibility
214
+ # Use tuple unpacking for Python 3.10+ compatibility
215
215
  if constraints:
216
216
  new_field.annotation = Annotated[(base_type, *constraints)]
217
217
  else:
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.23.1a8"
3
+ VERSION = "3.23.1a9"
@@ -135,7 +135,7 @@ class BasePartialProcessor(ABC):
135
135
  # Python 3.14+ will raise RuntimeError if get_event_loop() is called when there's no running loop
136
136
  # We need to handle both cases: existing loop (container reuse) and no loop (cold start)
137
137
  try:
138
- loop = asyncio.get_running_loop()
138
+ loop = asyncio.get_event_loop()
139
139
  except RuntimeError:
140
140
  # No running loop, create a new one
141
141
  loop = asyncio.new_event_loop()
@@ -1,12 +1,7 @@
1
1
  import sys
2
+ from types import UnionType # Available in Python 3.10+
2
3
  from typing import Any, Optional, Union, get_args, get_origin
3
4
 
4
- # Conditionally import or define UnionType based on Python version
5
- if sys.version_info >= (3, 10):
6
- from types import UnionType # Available in Python 3.10+
7
- else:
8
- UnionType = Union # Fallback for Python 3.9
9
-
10
5
  from aws_lambda_powertools.utilities.idempotency.exceptions import (
11
6
  IdempotencyModelTypeError,
12
7
  )
@@ -2,14 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  import sys
4
4
  from dataclasses import is_dataclass
5
+ from types import UnionType # Available in Python 3.10+
5
6
  from typing import TYPE_CHECKING, Annotated, Any, Optional, Union, get_args, get_origin
6
7
 
7
- # Conditionally import or define UnionType based on Python version
8
- if sys.version_info >= (3, 10):
9
- from types import UnionType # Available in Python 3.10+
10
- else:
11
- UnionType = Union # Fallback for Python 3.9
12
-
13
8
  from aws_lambda_powertools.utilities.kafka.serialization.custom_dict import CustomDictOutputSerializer
14
9
  from aws_lambda_powertools.utilities.kafka.serialization.dataclass import DataclassOutputSerializer
15
10
 
@@ -66,6 +66,7 @@ from .cognito import (
66
66
  )
67
67
  from .dynamodb import (
68
68
  DynamoDBStreamChangedRecordModel,
69
+ DynamoDBStreamLambdaOnFailureDestinationModel,
69
70
  DynamoDBStreamModel,
70
71
  DynamoDBStreamRecordModel,
71
72
  )
@@ -173,6 +174,7 @@ __all__ = [
173
174
  "DynamoDBStreamModel",
174
175
  "EventBridgeModel",
175
176
  "DynamoDBStreamChangedRecordModel",
177
+ "DynamoDBStreamLambdaOnFailureDestinationModel",
176
178
  "DynamoDBStreamRecordModel",
177
179
  "DynamoDBStreamChangedRecordModel",
178
180
  "KinesisDataStreamModel",
@@ -2,7 +2,8 @@
2
2
  from datetime import datetime
3
3
  from typing import Any, Dict, List, Literal, Optional, Type, Union
4
4
 
5
- from pydantic import BaseModel, Field, field_validator
5
+ from pydantic import BaseModel, ConfigDict, Field, field_validator
6
+ from pydantic.alias_generators import to_camel
6
7
 
7
8
  from aws_lambda_powertools.shared.dynamodb_deserializer import TypeDeserializer
8
9
 
@@ -110,3 +111,91 @@ class DynamoDBStreamModel(BaseModel):
110
111
  },
111
112
  ],
112
113
  )
114
+
115
+
116
+ class DDBStreamBatchInfo(BaseModel):
117
+ model_config = ConfigDict(alias_generator=to_camel)
118
+
119
+ approximate_arrival_of_first_record: datetime = Field(
120
+ description="The approximate date and time when the first stream record from the batch was created"
121
+ ", in ISO-8601 format.",
122
+ examples=["1970-01-01T00:00:00.000Z"],
123
+ )
124
+ approximate_arrival_of_last_record: datetime = Field(
125
+ description="The approximate date and time when the last stream record from the batch was created"
126
+ ", in ISO-8601 format.",
127
+ examples=["1970-01-01T00:00:00.000Z"],
128
+ )
129
+ batch_size: int = Field(
130
+ description="The size of the batch.",
131
+ examples=[1],
132
+ )
133
+ end_sequence_number: str = Field(
134
+ description="The unique identifier of the last stream record from the batch.",
135
+ examples=["222"],
136
+ )
137
+ shard_id: str = Field(
138
+ description="The unique identifier of the DynamoDB Stream shard that contains the records from the batch.",
139
+ examples=["shardId-00000000000000000000-00000000"],
140
+ )
141
+ start_sequence_number: str = Field(
142
+ description="The unique identifier of the first stream record from the batch.",
143
+ examples=["222"],
144
+ )
145
+ stream_arn: str = Field(
146
+ description="The Amazon Resource Name (ARN) of the DynamoDB stream.",
147
+ examples=["arn:aws:dynamodb:us-west-2:123456789012:table/ExampleTable/stream/2021-01-01T00:00:00.000"],
148
+ )
149
+
150
+
151
+ class RequestContext(BaseModel):
152
+ model_config = ConfigDict(alias_generator=to_camel)
153
+
154
+ approximate_invoke_count: int = Field(
155
+ description="The number of Lambda invocations for the record.",
156
+ examples=[1],
157
+ )
158
+ condition: str = Field(
159
+ description="The condition that caused the record to be discarded.",
160
+ examples=["RetryAttemptsExhausted"],
161
+ )
162
+ function_arn: str = Field(
163
+ description="The Amazon Resource Name (ARN) of the Lambda.",
164
+ examples=["arn:aws:lambda:eu-west-1:809313241:function:test"],
165
+ )
166
+ request_id: str = Field(
167
+ description="The unique identifier of the request.",
168
+ )
169
+
170
+
171
+ class ResponseContext(BaseModel):
172
+ model_config = ConfigDict(alias_generator=to_camel)
173
+
174
+ executed_version: str = Field(
175
+ description="The version of the Lambda executed",
176
+ examples=["$LATEST"],
177
+ )
178
+ function_error: str = Field(
179
+ description="",
180
+ examples=["Unhandled"],
181
+ )
182
+ status_code: int = Field(
183
+ description="The status code returned by the Lambda",
184
+ )
185
+
186
+
187
+ # https://docs.aws.amazon.com/lambda/latest/dg/services-dynamodb-errors.html
188
+ class DynamoDBStreamLambdaOnFailureDestinationModel(BaseModel):
189
+ model_config = ConfigDict(alias_generator=to_camel)
190
+
191
+ ddb_stream_batch_info: DDBStreamBatchInfo = Field(alias="DDBStreamBatchInfo")
192
+ request_context: RequestContext
193
+ response_context: ResponseContext
194
+ timestamp: datetime = Field(
195
+ description="The record time, in ISO-8601 format.",
196
+ examples=["1970-01-01T00:00:00.000Z"],
197
+ )
198
+ version: str = Field(
199
+ description="The version of the record format.",
200
+ examples=["1.0"],
201
+ )
@@ -2,12 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  import io
4
4
  import logging
5
- from typing import IO, TYPE_CHECKING, Any, TypeVar, cast
5
+ from typing import IO, TYPE_CHECKING, Any, TypeVar
6
6
 
7
7
  import boto3
8
8
 
9
9
  from aws_lambda_powertools.shared import user_agent
10
- from aws_lambda_powertools.utilities.streaming.compat import PowertoolsStreamingBody
11
10
  from aws_lambda_powertools.utilities.streaming.constants import MESSAGE_STREAM_NOT_WRITABLE
12
11
 
13
12
  if TYPE_CHECKING:
@@ -16,6 +15,8 @@ if TYPE_CHECKING:
16
15
 
17
16
  from mypy_boto3_s3.client import S3Client
18
17
 
18
+ from aws_lambda_powertools.utilities.streaming.compat import PowertoolsStreamingBody
19
+
19
20
  _CData = TypeVar("_CData")
20
21
 
21
22
  logger = logging.getLogger(__name__)
@@ -103,7 +104,7 @@ class _S3SeekableIO(IO[bytes]):
103
104
  self._raw_stream = self.s3_client.get_object(Range=range_header, **self._sdk_options).get("Body")
104
105
  self._closed = False
105
106
 
106
- return cast(PowertoolsStreamingBody, self._raw_stream)
107
+ return self._raw_stream
107
108
 
108
109
  def seek(self, offset: int, whence: int = io.SEEK_SET) -> int:
109
110
  """
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "3.23.1a8"
3
+ version = "3.23.1a9"
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"]
@@ -9,7 +9,6 @@ classifiers = [
9
9
  "Intended Audience :: Developers",
10
10
  "License :: OSI Approved :: MIT No Attribution License (MIT-0)",
11
11
  "Natural Language :: English",
12
- "Programming Language :: Python :: 3.9",
13
12
  "Programming Language :: Python :: 3.10",
14
13
  "Programming Language :: Python :: 3.11",
15
14
  "Programming Language :: Python :: 3.12",
@@ -39,7 +38,7 @@ license = "MIT"
39
38
  "Releases" = "https://github.com/aws-powertools/powertools-lambda-python/releases"
40
39
 
41
40
  [tool.poetry.dependencies]
42
- python = ">=3.9,<4.0.0"
41
+ python = ">=3.10,<4.0.0"
43
42
 
44
43
  # Required libraries installed by default
45
44
  jmespath = "^1.0.1"
@@ -52,7 +51,7 @@ pydantic = { version = "^2.4.0", optional = true }
52
51
  pydantic-settings = {version = "^2.6.1", optional = true}
53
52
  boto3 = { version = "^1.34.32", optional = true }
54
53
  redis = { version = ">=4.4,<8.0", optional = true }
55
- valkey-glide = { version = ">=1.3.5,<3.0", optional = true, python = "<3.14" }
54
+ valkey-glide = { version = ">=1.3.5,<3.0", optional = true }
56
55
  aws-encryption-sdk = { version = ">=3.1.1,<5.0.0", optional = true }
57
56
  jsonpath-ng = { version = "^1.6.0", optional = true }
58
57
  datadog-lambda = { version = ">=8.114.0,<9.0.0", optional = true }
@@ -87,7 +86,7 @@ boto3 = "^1.26.164"
87
86
  isort = ">=5.13.2,<7.0.0"
88
87
  pytest-cov = ">=5,<8"
89
88
  pytest-mock = "^3.14.0"
90
- pytest-asyncio = ">=0.24,<1.3"
89
+ pytest-asyncio = ">=0.24,<1.4"
91
90
  bandit = "^1.7.10"
92
91
  radon = "^6.0.1"
93
92
  xenon = "^0.9.3"
@@ -109,18 +108,15 @@ mypy-boto3-appconfigdata = "^1.36.0"
109
108
  ijson = "^3.3.0"
110
109
  hvac = "^2.3.0"
111
110
  aws-requests-auth = "^0.4.3"
112
- urllib3 = [
113
- { version = ">=1.26.0,<2.0.0", python = "<3.10" },
114
- { version = ">=1.25.4,!=2.2.0,<3", python = ">=3.10" },
115
- ]
111
+ urllib3 = ">=1.25.4,!=2.2.0,<3"
116
112
  requests = ">=2.32.0"
117
- cfn-lint = "1.41.0"
113
+ cfn-lint = "1.43.0"
118
114
  mypy = "^1.1.1"
119
115
  types-python-dateutil = "^2.8.19.6"
120
116
  aws-cdk-aws-appsync-alpha = "^2.59.0a0"
121
117
  httpx = ">=0.23.3,<0.29.0"
122
118
  sentry-sdk = ">=1.22.2,<3.0.0"
123
- ruff = ">=0.5.1,<0.14.7"
119
+ ruff = ">=0.5.1,<0.14.10"
124
120
  retry2 = "^0.9.5"
125
121
  pytest-socket = ">=0.6,<0.8"
126
122
  types-redis = "^4.6.0.7"
@@ -0,0 +1,91 @@
1
+ # -*- coding: utf-8 -*-
2
+ from setuptools import setup
3
+
4
+ packages = \
5
+ ['aws_lambda_powertools',
6
+ 'aws_lambda_powertools.event_handler',
7
+ 'aws_lambda_powertools.event_handler.events_appsync',
8
+ 'aws_lambda_powertools.event_handler.graphql_appsync',
9
+ 'aws_lambda_powertools.event_handler.middlewares',
10
+ 'aws_lambda_powertools.event_handler.openapi',
11
+ 'aws_lambda_powertools.event_handler.openapi.swagger_ui',
12
+ 'aws_lambda_powertools.exceptions',
13
+ 'aws_lambda_powertools.logging',
14
+ 'aws_lambda_powertools.logging.buffer',
15
+ 'aws_lambda_powertools.logging.formatters',
16
+ 'aws_lambda_powertools.metrics',
17
+ 'aws_lambda_powertools.metrics.provider',
18
+ 'aws_lambda_powertools.metrics.provider.cloudwatch_emf',
19
+ 'aws_lambda_powertools.metrics.provider.datadog',
20
+ 'aws_lambda_powertools.middleware_factory',
21
+ 'aws_lambda_powertools.shared',
22
+ 'aws_lambda_powertools.tracing',
23
+ 'aws_lambda_powertools.utilities',
24
+ 'aws_lambda_powertools.utilities.batch',
25
+ 'aws_lambda_powertools.utilities.data_classes',
26
+ 'aws_lambda_powertools.utilities.data_classes.appsync',
27
+ 'aws_lambda_powertools.utilities.data_masking',
28
+ 'aws_lambda_powertools.utilities.data_masking.provider',
29
+ 'aws_lambda_powertools.utilities.data_masking.provider.kms',
30
+ 'aws_lambda_powertools.utilities.feature_flags',
31
+ 'aws_lambda_powertools.utilities.idempotency',
32
+ 'aws_lambda_powertools.utilities.idempotency.persistence',
33
+ 'aws_lambda_powertools.utilities.idempotency.serialization',
34
+ 'aws_lambda_powertools.utilities.jmespath_utils',
35
+ 'aws_lambda_powertools.utilities.kafka',
36
+ 'aws_lambda_powertools.utilities.kafka.deserializer',
37
+ 'aws_lambda_powertools.utilities.kafka.serialization',
38
+ 'aws_lambda_powertools.utilities.parameters',
39
+ 'aws_lambda_powertools.utilities.parser',
40
+ 'aws_lambda_powertools.utilities.parser.envelopes',
41
+ 'aws_lambda_powertools.utilities.parser.models',
42
+ 'aws_lambda_powertools.utilities.streaming',
43
+ 'aws_lambda_powertools.utilities.streaming.transformations',
44
+ 'aws_lambda_powertools.utilities.typing',
45
+ 'aws_lambda_powertools.utilities.validation',
46
+ 'aws_lambda_powertools.warnings']
47
+
48
+ package_data = \
49
+ {'': ['*']}
50
+
51
+ install_requires = \
52
+ ['jmespath>=1.0.1,<2.0.0', 'typing-extensions>=4.11.0,<5.0.0']
53
+
54
+ extras_require = \
55
+ {'all': ['aws-xray-sdk>=2.8.0,<3.0.0',
56
+ 'fastjsonschema>=2.14.5,<3.0.0',
57
+ 'pydantic>=2.4.0,<3.0.0',
58
+ 'pydantic-settings>=2.6.1,<3.0.0',
59
+ 'aws-encryption-sdk>=3.1.1,<5.0.0',
60
+ 'jsonpath-ng>=1.6.0,<2.0.0'],
61
+ 'aws-sdk': ['boto3>=1.34.32,<2.0.0'],
62
+ 'datadog': ['datadog-lambda>=8.114.0,<9.0.0'],
63
+ 'datamasking': ['aws-encryption-sdk>=3.1.1,<5.0.0',
64
+ 'jsonpath-ng>=1.6.0,<2.0.0'],
65
+ 'kafka-consumer-avro': ['avro>=1.12.0,<2.0.0'],
66
+ 'kafka-consumer-protobuf': ['protobuf>=6.30.2,<7.0.0'],
67
+ 'parser': ['pydantic>=2.4.0,<3.0.0'],
68
+ 'redis': ['redis>=4.4,<8.0'],
69
+ 'tracer': ['aws-xray-sdk>=2.8.0,<3.0.0'],
70
+ 'validation': ['fastjsonschema>=2.14.5,<3.0.0'],
71
+ 'valkey': ['valkey-glide>=1.3.5,<3.0']}
72
+
73
+ setup_kwargs = {
74
+ 'name': 'aws_lambda_powertools',
75
+ 'version': '3.23.1a9',
76
+ 'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
77
+ '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.10|%203.11|%203.12|%203.13|%203.14&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://scorecard.dev/viewer/?uri=github.com/aws-powertools/powertools-lambda-python)\n[![Discord](https://img.shields.io/badge/Discord-Join_Community-7289da.svg)](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* [EF Education First](https://www.ef.com/)\n* [Flyweight](https://flyweight.io/)\n* [globaldatanet](https://globaldatanet.com/)\n* [Guild](https://guild.com/)\n* [IMS](https://ims.tech/)\n* [Instil](https://instil.co/)\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* [QuasiScience Limited](https://quasiscience.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) [in this link](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 [in this link](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',
78
+ 'author': 'Amazon Web Services',
79
+ 'author_email': 'None',
80
+ 'maintainer': 'None',
81
+ 'maintainer_email': 'None',
82
+ 'url': 'https://github.com/aws-powertools/powertools-lambda-python',
83
+ 'packages': packages,
84
+ 'package_data': package_data,
85
+ 'install_requires': install_requires,
86
+ 'extras_require': extras_require,
87
+ 'python_requires': '>=3.10,<4.0.0',
88
+ }
89
+
90
+
91
+ setup(**setup_kwargs)
@@ -1,91 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- from setuptools import setup
3
-
4
- packages = \
5
- ['aws_lambda_powertools',
6
- 'aws_lambda_powertools.event_handler',
7
- 'aws_lambda_powertools.event_handler.events_appsync',
8
- 'aws_lambda_powertools.event_handler.graphql_appsync',
9
- 'aws_lambda_powertools.event_handler.middlewares',
10
- 'aws_lambda_powertools.event_handler.openapi',
11
- 'aws_lambda_powertools.event_handler.openapi.swagger_ui',
12
- 'aws_lambda_powertools.exceptions',
13
- 'aws_lambda_powertools.logging',
14
- 'aws_lambda_powertools.logging.buffer',
15
- 'aws_lambda_powertools.logging.formatters',
16
- 'aws_lambda_powertools.metrics',
17
- 'aws_lambda_powertools.metrics.provider',
18
- 'aws_lambda_powertools.metrics.provider.cloudwatch_emf',
19
- 'aws_lambda_powertools.metrics.provider.datadog',
20
- 'aws_lambda_powertools.middleware_factory',
21
- 'aws_lambda_powertools.shared',
22
- 'aws_lambda_powertools.tracing',
23
- 'aws_lambda_powertools.utilities',
24
- 'aws_lambda_powertools.utilities.batch',
25
- 'aws_lambda_powertools.utilities.data_classes',
26
- 'aws_lambda_powertools.utilities.data_classes.appsync',
27
- 'aws_lambda_powertools.utilities.data_masking',
28
- 'aws_lambda_powertools.utilities.data_masking.provider',
29
- 'aws_lambda_powertools.utilities.data_masking.provider.kms',
30
- 'aws_lambda_powertools.utilities.feature_flags',
31
- 'aws_lambda_powertools.utilities.idempotency',
32
- 'aws_lambda_powertools.utilities.idempotency.persistence',
33
- 'aws_lambda_powertools.utilities.idempotency.serialization',
34
- 'aws_lambda_powertools.utilities.jmespath_utils',
35
- 'aws_lambda_powertools.utilities.kafka',
36
- 'aws_lambda_powertools.utilities.kafka.deserializer',
37
- 'aws_lambda_powertools.utilities.kafka.serialization',
38
- 'aws_lambda_powertools.utilities.parameters',
39
- 'aws_lambda_powertools.utilities.parser',
40
- 'aws_lambda_powertools.utilities.parser.envelopes',
41
- 'aws_lambda_powertools.utilities.parser.models',
42
- 'aws_lambda_powertools.utilities.streaming',
43
- 'aws_lambda_powertools.utilities.streaming.transformations',
44
- 'aws_lambda_powertools.utilities.typing',
45
- 'aws_lambda_powertools.utilities.validation',
46
- 'aws_lambda_powertools.warnings']
47
-
48
- package_data = \
49
- {'': ['*']}
50
-
51
- install_requires = \
52
- ['jmespath>=1.0.1,<2.0.0', 'typing-extensions>=4.11.0,<5.0.0']
53
-
54
- extras_require = \
55
- {'all': ['aws-xray-sdk>=2.8.0,<3.0.0',
56
- 'fastjsonschema>=2.14.5,<3.0.0',
57
- 'pydantic>=2.4.0,<3.0.0',
58
- 'pydantic-settings>=2.6.1,<3.0.0',
59
- 'aws-encryption-sdk>=3.1.1,<5.0.0',
60
- 'jsonpath-ng>=1.6.0,<2.0.0'],
61
- 'aws-sdk': ['boto3>=1.34.32,<2.0.0'],
62
- 'datadog': ['datadog-lambda>=8.114.0,<9.0.0'],
63
- 'datamasking': ['aws-encryption-sdk>=3.1.1,<5.0.0',
64
- 'jsonpath-ng>=1.6.0,<2.0.0'],
65
- 'kafka-consumer-avro': ['avro>=1.12.0,<2.0.0'],
66
- 'kafka-consumer-protobuf': ['protobuf>=6.30.2,<7.0.0'],
67
- 'parser': ['pydantic>=2.4.0,<3.0.0'],
68
- 'redis': ['redis>=4.4,<8.0'],
69
- 'tracer': ['aws-xray-sdk>=2.8.0,<3.0.0'],
70
- 'validation': ['fastjsonschema>=2.14.5,<3.0.0'],
71
- 'valkey:python_version < "3.14"': ['valkey-glide>=1.3.5,<3.0']}
72
-
73
- setup_kwargs = {
74
- 'name': 'aws_lambda_powertools',
75
- 'version': '3.23.1a8',
76
- 'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
77
- '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.9|%203.10|%203.11|%203.12|%203.13|%203.14&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)\n[![Discord](https://img.shields.io/badge/Discord-Join_Community-7289da.svg)](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* [Guild](https://guild.com/)\n* [IMS](https://ims.tech/)\n* [Instil](https://instil.co/)\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* [QuasiScience Limited](https://quasiscience.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) [in this link](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 [in this link](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',
78
- 'author': 'Amazon Web Services',
79
- 'author_email': 'None',
80
- 'maintainer': 'None',
81
- 'maintainer_email': 'None',
82
- 'url': 'https://github.com/aws-powertools/powertools-lambda-python',
83
- 'packages': packages,
84
- 'package_data': package_data,
85
- 'install_requires': install_requires,
86
- 'extras_require': extras_require,
87
- 'python_requires': '>=3.9,<4.0.0',
88
- }
89
-
90
-
91
- setup(**setup_kwargs)