aws-lambda-powertools 3.8.1a8__tar.gz → 3.8.1a10__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 (266) hide show
  1. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/logger.py +19 -5
  3. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/functions.py +38 -0
  4. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/metrics.py +2 -0
  5. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +10 -1
  6. aws_lambda_powertools-3.8.1a10/aws_lambda_powertools/metrics/provider/cold_start.py +20 -0
  7. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +7 -2
  8. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/constants.py +2 -0
  9. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/version.py +1 -1
  10. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/tracing/tracer.py +28 -5
  11. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/pyproject.toml +3 -3
  12. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/setup.py +1 -1
  13. aws_lambda_powertools-3.8.1a8/aws_lambda_powertools/metrics/provider/cold_start.py +0 -9
  14. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/LICENSE +0 -0
  15. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/README.md +0 -0
  16. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/THIRD-PARTY-LICENSES +0 -0
  17. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/__init__.py +0 -0
  18. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  19. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
  20. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  21. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/bedrock_agent.py +0 -0
  22. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  23. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  24. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/graphql_appsync/__init__.py +0 -0
  25. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/graphql_appsync/_registry.py +0 -0
  26. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/graphql_appsync/base.py +0 -0
  27. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/graphql_appsync/exceptions.py +0 -0
  28. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/graphql_appsync/router.py +0 -0
  29. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  30. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  31. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/middlewares/base.py +0 -0
  32. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/middlewares/openapi_validation.py +0 -0
  33. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  34. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/__init__.py +0 -0
  35. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/compat.py +0 -0
  36. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/config.py +0 -0
  37. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/constants.py +0 -0
  38. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/dependant.py +0 -0
  39. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/encoders.py +0 -0
  40. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/exceptions.py +0 -0
  41. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/models.py +0 -0
  42. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/params.py +0 -0
  43. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/pydantic_loader.py +0 -0
  44. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/swagger_ui/__init__.py +0 -0
  45. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/swagger_ui/html.py +0 -0
  46. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/swagger_ui/oauth2.py +0 -0
  47. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui-bundle.min.js +0 -0
  48. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/swagger_ui/swagger-ui.min.css +0 -0
  49. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/openapi/types.py +0 -0
  50. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/router.py +0 -0
  51. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/types.py +0 -0
  52. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/util.py +0 -0
  53. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  54. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  55. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/__init__.py +0 -0
  56. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/buffer/__init__.py +0 -0
  57. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/buffer/cache.py +0 -0
  58. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/buffer/config.py +0 -0
  59. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/buffer/functions.py +0 -0
  60. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/constants.py +0 -0
  61. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  62. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/exceptions.py +0 -0
  63. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/filters.py +0 -0
  64. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/formatter.py +0 -0
  65. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  66. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  67. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  68. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/types.py +0 -0
  69. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/logging/utils.py +0 -0
  70. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/__init__.py +0 -0
  71. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/base.py +0 -0
  72. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  73. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/metric.py +0 -0
  74. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  75. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/base.py +0 -0
  76. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  77. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  78. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  79. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  80. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +0 -0
  81. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  82. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  83. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  84. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/metrics/types.py +0 -0
  85. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  86. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  87. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  88. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/package_logger.py +0 -0
  89. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/py.typed +0 -0
  90. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/__init__.py +0 -0
  91. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  92. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/cookies.py +0 -0
  93. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/dynamodb_deserializer.py +0 -0
  94. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/functions.py +0 -0
  95. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  96. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  97. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  98. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/types.py +0 -0
  99. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/shared/user_agent.py +0 -0
  100. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/tracing/__init__.py +0 -0
  101. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/tracing/base.py +0 -0
  102. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/tracing/extensions.py +0 -0
  103. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/__init__.py +0 -0
  104. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  105. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/batch/base.py +0 -0
  106. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  107. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  108. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  109. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/batch/types.py +0 -0
  110. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/__init__.py +0 -0
  111. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  112. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  113. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  114. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  115. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py +0 -0
  116. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/appsync/__init__.py +0 -0
  117. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  118. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  119. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  120. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  121. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py +0 -0
  122. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py +0 -0
  123. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  124. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  125. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py +0 -0
  126. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py +0 -0
  127. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  128. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  129. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  130. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  131. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  132. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  133. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  134. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/iot_registry_event.py +0 -0
  135. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  136. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -0
  137. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  138. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  139. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  140. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py +0 -0
  141. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  142. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  143. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +0 -0
  144. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  145. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  146. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  147. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  148. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/transfer_family_event.py +0 -0
  149. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  150. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/__init__.py +0 -0
  151. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/base.py +0 -0
  152. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/constants.py +0 -0
  153. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/exceptions.py +0 -0
  154. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/provider/__init__.py +0 -0
  155. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/provider/base.py +0 -0
  156. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/provider/kms/__init__.py +0 -0
  157. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/data_masking/provider/kms/aws_encryption_sdk.py +0 -0
  158. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  159. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  160. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  161. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  162. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/constants.py +0 -0
  163. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  164. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  165. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  166. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/feature_flags/types.py +0 -0
  167. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  168. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  169. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  170. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  171. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/hook.py +0 -0
  172. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  173. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/persistence/__init__.py +0 -0
  174. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  175. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/persistence/datarecord.py +0 -0
  176. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  177. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/persistence/redis.py +0 -0
  178. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  179. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  180. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  181. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  182. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/functions.py +0 -0
  183. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  184. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  185. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  186. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  187. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  188. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  189. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/base.py +0 -0
  190. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/constants.py +0 -0
  191. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  192. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  193. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  194. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/ssm.py +0 -0
  195. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parameters/types.py +0 -0
  196. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  197. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  198. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  199. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/apigw_websocket.py +0 -0
  200. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  201. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  202. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/bedrock_agent.py +0 -0
  203. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  204. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  205. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  206. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  207. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  208. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  209. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  210. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  211. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  212. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  213. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py +0 -0
  214. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  215. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/functions.py +0 -0
  216. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  217. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  218. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  219. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/apigw_websocket.py +0 -0
  220. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  221. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/bedrock_agent.py +0 -0
  222. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  223. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +0 -0
  224. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  225. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  226. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/iot_registry_events.py +0 -0
  227. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  228. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  229. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  230. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  231. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  232. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  233. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/s3_batch_operation.py +0 -0
  234. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  235. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  236. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  237. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  238. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  239. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/transfer_family.py +0 -0
  240. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  241. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/models/vpc_latticev2.py +0 -0
  242. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  243. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/parser/types.py +0 -0
  244. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/serialization.py +0 -0
  245. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  246. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  247. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  248. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/constants.py +0 -0
  249. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/s3_object.py +0 -0
  250. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  251. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  252. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  253. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  254. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  255. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/streaming/types.py +0 -0
  256. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  257. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  258. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  259. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  260. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  261. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  262. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  263. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  264. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  265. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
  266. {aws_lambda_powertools-3.8.1a8 → aws_lambda_powertools-3.8.1a10}/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.8.1a8
3
+ Version: 3.8.1a10
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
@@ -64,14 +64,22 @@ def _is_cold_start() -> bool:
64
64
  bool
65
65
  cold start bool value
66
66
  """
67
- cold_start = False
68
-
69
67
  global is_cold_start
70
- if is_cold_start:
71
- cold_start = is_cold_start
68
+
69
+ initialization_type = os.getenv(constants.LAMBDA_INITIALIZATION_TYPE)
70
+
71
+ # Check for Provisioned Concurrency environment
72
+ # AWS_LAMBDA_INITIALIZATION_TYPE is set when using Provisioned Concurrency
73
+ if initialization_type == "provisioned-concurrency":
72
74
  is_cold_start = False
75
+ return False
73
76
 
74
- return cold_start
77
+ if not is_cold_start:
78
+ return False
79
+
80
+ # This is a cold start - flip the flag and return True
81
+ is_cold_start = False
82
+ return True
75
83
 
76
84
 
77
85
  class Logger:
@@ -1127,6 +1135,12 @@ class Logger:
1127
1135
  tracer_id = get_tracer_id()
1128
1136
 
1129
1137
  if tracer_id and self._buffer_config:
1138
+ if not self._buffer_cache.get(tracer_id):
1139
+ # Detect new Lambda invocation context and reset buffer to maintain log isolation
1140
+ # Ensures logs from previous invocations do not leak into current execution
1141
+ # Prevent memory excessive usage
1142
+ self._buffer_cache.clear()
1143
+
1130
1144
  log_record: dict[str, Any] = _create_buffer_record(
1131
1145
  level=level,
1132
1146
  msg=msg,
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import os
4
4
  from datetime import datetime
5
+ from typing import TYPE_CHECKING
5
6
 
6
7
  from aws_lambda_powertools.metrics.provider.cloudwatch_emf.exceptions import (
7
8
  MetricResolutionError,
@@ -11,6 +12,9 @@ from aws_lambda_powertools.metrics.provider.cloudwatch_emf.metric_properties imp
11
12
  from aws_lambda_powertools.shared import constants
12
13
  from aws_lambda_powertools.shared.functions import strtobool
13
14
 
15
+ if TYPE_CHECKING:
16
+ from aws_lambda_powertools.utilities.typing.lambda_context import LambdaContext
17
+
14
18
 
15
19
  def extract_cloudwatch_metric_resolution_value(metric_resolutions: list, resolution: int | MetricResolution) -> int:
16
20
  """Return metric value from CloudWatch metric unit whether that's str or MetricResolution enum
@@ -161,3 +165,37 @@ def is_metrics_disabled() -> bool:
161
165
  ]
162
166
 
163
167
  return any(disable_conditions)
168
+
169
+
170
+ def resolve_cold_start_function_name(function_name: str | None, context: LambdaContext) -> str:
171
+ """
172
+ Resolve the function name for ColdStart metrics with a prioritized approach.
173
+
174
+ Parameters
175
+ ----------
176
+ function_name : str, optional
177
+ Explicitly provided function name (highest priority).
178
+ context : LambdaContext
179
+ AWS Lambda context object.
180
+
181
+ Returns
182
+ -------
183
+ str
184
+ Resolved function name.
185
+
186
+ Notes
187
+ -----
188
+ Function name resolution follows this priority:
189
+ 1. Explicitly provided function_name
190
+ 2. Environment variable POWERTOOLS_METRICS_FUNCTION_NAME
191
+ 3. Lambda context function name
192
+ """
193
+
194
+ if function_name:
195
+ return function_name
196
+
197
+ metrics_function_name_env = os.getenv(constants.METRICS_FUNCTION_NAME_ENV)
198
+ if metrics_function_name_env:
199
+ return metrics_function_name_env
200
+
201
+ return context.function_name
@@ -86,6 +86,7 @@ class Metrics:
86
86
  service: str | None = None,
87
87
  namespace: str | None = None,
88
88
  provider: AmazonCloudWatchEMFProvider | None = None,
89
+ function_name: str | None = None,
89
90
  ):
90
91
  self.metric_set = self._metrics
91
92
  self.metadata_set = self._metadata
@@ -102,6 +103,7 @@ class Metrics:
102
103
  dimension_set=self.dimension_set,
103
104
  metadata_set=self.metadata_set,
104
105
  default_dimensions=self._default_dimensions,
106
+ function_name=function_name,
105
107
  )
106
108
  else:
107
109
  self.provider = provider
@@ -16,6 +16,7 @@ from aws_lambda_powertools.metrics.functions import (
16
16
  extract_cloudwatch_metric_resolution_value,
17
17
  extract_cloudwatch_metric_unit_value,
18
18
  is_metrics_disabled,
19
+ resolve_cold_start_function_name,
19
20
  validate_emf_timestamp,
20
21
  )
21
22
  from aws_lambda_powertools.metrics.provider.base import BaseProvider
@@ -51,6 +52,10 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
51
52
  metric namespace to be set for all metrics
52
53
  POWERTOOLS_SERVICE_NAME : str
53
54
  service name used for default dimension
55
+ POWERTOOLS_METRICS_FUNCTION_NAME: str
56
+ function name used as dimension for the ColdStart metric
57
+ POWERTOOLS_METRICS_DISABLED: bool
58
+ disables all metrics emitted by Powertools
54
59
 
55
60
  Raises
56
61
  ------
@@ -72,12 +77,14 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
72
77
  metadata_set: dict[str, Any] | None = None,
73
78
  service: str | None = None,
74
79
  default_dimensions: dict[str, Any] | None = None,
80
+ function_name: str | None = None,
75
81
  ):
76
82
  self.metric_set = metric_set if metric_set is not None else {}
77
83
  self.dimension_set = dimension_set if dimension_set is not None else {}
78
84
  self.default_dimensions = default_dimensions or {}
79
85
  self.namespace = resolve_env_var_choice(choice=namespace, env=os.getenv(constants.METRICS_NAMESPACE_ENV))
80
86
  self.service = resolve_env_var_choice(choice=service, env=os.getenv(constants.SERVICE_NAME_ENV))
87
+ self.function_name = function_name
81
88
 
82
89
  self.metadata_set = metadata_set if metadata_set is not None else {}
83
90
  self.timestamp: int | None = None
@@ -445,9 +452,11 @@ class AmazonCloudWatchEMFProvider(BaseProvider):
445
452
  context : Any
446
453
  Lambda context
447
454
  """
455
+
456
+ cold_start_function_name = resolve_cold_start_function_name(function_name=self.function_name, context=context)
448
457
  logger.debug("Adding cold start metric and function_name dimension")
449
458
  with single_metric(name="ColdStart", unit=MetricUnit.Count, value=1, namespace=self.namespace) as metric:
450
- metric.add_dimension(name="function_name", value=context.function_name)
459
+ metric.add_dimension(name="function_name", value=cold_start_function_name)
451
460
  if self.service:
452
461
  metric.add_dimension(name="service", value=str(self.service))
453
462
 
@@ -0,0 +1,20 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+
5
+ from aws_lambda_powertools.shared import constants
6
+
7
+ is_cold_start = True
8
+
9
+ initialization_type = os.getenv(constants.LAMBDA_INITIALIZATION_TYPE)
10
+
11
+ # Check for Provisioned Concurrency environment
12
+ # AWS_LAMBDA_INITIALIZATION_TYPE is set when using Provisioned Concurrency
13
+ if initialization_type == "provisioned-concurrency":
14
+ is_cold_start = False
15
+
16
+
17
+ def reset_cold_start_flag():
18
+ global is_cold_start
19
+ if not is_cold_start:
20
+ is_cold_start = True
@@ -10,7 +10,7 @@ import warnings
10
10
  from typing import TYPE_CHECKING, Any
11
11
 
12
12
  from aws_lambda_powertools.metrics.exceptions import MetricValueError, SchemaValidationError
13
- from aws_lambda_powertools.metrics.functions import is_metrics_disabled
13
+ from aws_lambda_powertools.metrics.functions import is_metrics_disabled, resolve_cold_start_function_name
14
14
  from aws_lambda_powertools.metrics.provider import BaseProvider
15
15
  from aws_lambda_powertools.metrics.provider.datadog.warnings import DatadogDataValidationWarning
16
16
  from aws_lambda_powertools.shared import constants
@@ -58,8 +58,10 @@ class DatadogProvider(BaseProvider):
58
58
  namespace: str | None = None,
59
59
  flush_to_log: bool | None = None,
60
60
  default_tags: dict[str, Any] | None = None,
61
+ function_name: str | None = None,
61
62
  ):
62
63
  self.metric_set = metric_set if metric_set is not None else []
64
+ self.function_name = function_name
63
65
  self.namespace = (
64
66
  resolve_env_var_choice(choice=namespace, env=os.getenv(constants.METRICS_NAMESPACE_ENV))
65
67
  or DEFAULT_NAMESPACE
@@ -224,8 +226,11 @@ class DatadogProvider(BaseProvider):
224
226
  context : Any
225
227
  Lambda context
226
228
  """
229
+
230
+ cold_start_function_name = resolve_cold_start_function_name(function_name=self.function_name, context=context)
231
+
227
232
  logger.debug("Adding cold start metric and function_name tagging")
228
- self.add_metric(name="ColdStart", value=1, function_name=context.function_name)
233
+ self.add_metric(name="ColdStart", value=1, function_name=cold_start_function_name)
229
234
 
230
235
  def log_metrics(
231
236
  self,
@@ -41,6 +41,7 @@ METRICS_NAMESPACE_ENV: str = "POWERTOOLS_METRICS_NAMESPACE"
41
41
  DATADOG_FLUSH_TO_LOG: str = "DD_FLUSH_TO_LOG"
42
42
  SERVICE_NAME_ENV: str = "POWERTOOLS_SERVICE_NAME"
43
43
  METRICS_DISABLED_ENV: str = "POWERTOOLS_METRICS_DISABLED"
44
+ METRICS_FUNCTION_NAME_ENV: str = "POWERTOOLS_METRICS_FUNCTION_NAME"
44
45
  # If the timestamp of log event is more than 2 hours in future, the log event is skipped.
45
46
  # If the timestamp of log event is more than 14 days in past, the log event is skipped.
46
47
  # See https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html
@@ -56,6 +57,7 @@ LAMBDA_TASK_ROOT_ENV: str = "LAMBDA_TASK_ROOT"
56
57
  SAM_LOCAL_ENV: str = "AWS_SAM_LOCAL"
57
58
  CHALICE_LOCAL_ENV: str = "AWS_CHALICE_CLI_MODE"
58
59
  LAMBDA_FUNCTION_NAME_ENV: str = "AWS_LAMBDA_FUNCTION_NAME"
60
+ LAMBDA_INITIALIZATION_TYPE: str = "AWS_LAMBDA_INITIALIZATION_TYPE"
59
61
 
60
62
  # Debug constants
61
63
  POWERTOOLS_DEV_ENV: str = "POWERTOOLS_DEV"
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.8.1a8"
3
+ VERSION = "3.8.1a10"
@@ -30,6 +30,32 @@ aws_xray_sdk = LazyLoader(constants.XRAY_SDK_MODULE, globals(), constants.XRAY_S
30
30
  T = TypeVar("T")
31
31
 
32
32
 
33
+ def _is_cold_start() -> bool:
34
+ """Verifies whether is cold start
35
+
36
+ Returns
37
+ -------
38
+ bool
39
+ cold start bool value
40
+ """
41
+ global is_cold_start
42
+
43
+ initialization_type = os.getenv(constants.LAMBDA_INITIALIZATION_TYPE)
44
+
45
+ # Check for Provisioned Concurrency environment
46
+ # AWS_LAMBDA_INITIALIZATION_TYPE is set when using Provisioned Concurrency
47
+ if initialization_type == "provisioned-concurrency":
48
+ is_cold_start = False
49
+ return False
50
+
51
+ if not is_cold_start:
52
+ return False
53
+
54
+ # This is a cold start - flip the flag and return True
55
+ is_cold_start = False
56
+ return True
57
+
58
+
33
59
  class Tracer:
34
60
  """Tracer using AWS-XRay to provide decorators with known defaults for Lambda functions
35
61
 
@@ -340,12 +366,9 @@ class Tracer:
340
366
 
341
367
  raise
342
368
  finally:
343
- global is_cold_start
369
+ cold_start = _is_cold_start()
344
370
  logger.debug("Annotating cold start")
345
- subsegment.put_annotation(key="ColdStart", value=is_cold_start)
346
-
347
- if is_cold_start:
348
- is_cold_start = False
371
+ subsegment.put_annotation(key="ColdStart", value=cold_start)
349
372
 
350
373
  if self.service:
351
374
  subsegment.put_annotation(key="Service", value=self.service)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "aws_lambda_powertools"
3
- version = "3.8.1a8"
3
+ version = "3.8.1a10"
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"]
@@ -107,13 +107,13 @@ hvac = "^2.3.0"
107
107
  aws-requests-auth = "^0.4.3"
108
108
  urllib3 = "<2"
109
109
  requests = ">=2.32.0"
110
- cfn-lint = "1.31.0"
110
+ cfn-lint = "1.32.0"
111
111
  mypy = "^1.1.1"
112
112
  types-python-dateutil = "^2.8.19.6"
113
113
  aws-cdk-aws-appsync-alpha = "^2.59.0a0"
114
114
  httpx = ">=0.23.3,<0.29.0"
115
115
  sentry-sdk = ">=1.22.2,<3.0.0"
116
- ruff = ">=0.5.1,<0.11.1"
116
+ ruff = ">=0.5.1,<0.11.3"
117
117
  retry2 = "^0.9.5"
118
118
  pytest-socket = ">=0.6,<0.8"
119
119
  types-redis = "^4.6.0.7"
@@ -65,7 +65,7 @@ extras_require = \
65
65
 
66
66
  setup_kwargs = {
67
67
  'name': 'aws_lambda_powertools',
68
- 'version': '3.8.1a8',
68
+ 'version': '3.8.1a10',
69
69
  'description': 'Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.',
70
70
  '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&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',
71
71
  'author': 'Amazon Web Services',
@@ -1,9 +0,0 @@
1
- from __future__ import annotations
2
-
3
- is_cold_start = True
4
-
5
-
6
- def reset_cold_start_flag():
7
- global is_cold_start
8
- if not is_cold_start:
9
- is_cold_start = True