aws-lambda-powertools 2.24.0__tar.gz → 2.25.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/PKG-INFO +1 -1
  2. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/middlewares/base.py +1 -2
  3. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/filters.py +2 -2
  4. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/formatter.py +9 -9
  5. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/logger.py +35 -24
  6. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/types.py +2 -17
  7. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/base.py +2 -2
  8. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/functions.py +1 -2
  9. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/base.py +2 -2
  10. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/types.py +1 -3
  11. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/types.py +1 -1
  12. aws_lambda_powertools-2.25.1/aws_lambda_powertools/shared/__init__.py +1 -0
  13. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/cookies.py +3 -1
  14. aws_lambda_powertools-2.25.1/aws_lambda_powertools/shared/types.py +25 -0
  15. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/version.py +1 -1
  16. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/batch/types.py +2 -5
  17. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/__init__.py +11 -1
  18. aws_lambda_powertools-2.25.1/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +308 -0
  19. aws_lambda_powertools-2.25.1/aws_lambda_powertools/utilities/data_classes/secrets_manager_event.py +24 -0
  20. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/base.py +1 -1
  21. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/ssm.py +1 -1
  22. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/types.py +1 -1
  23. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/cloudwatch.py +3 -1
  24. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/types.py +1 -6
  25. aws_lambda_powertools-2.25.1/aws_lambda_powertools/utilities/serialization.py +59 -0
  26. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/s3_object.py +1 -2
  27. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/pyproject.toml +9 -9
  28. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/setup.py +1 -1
  29. aws_lambda_powertools-2.24.0/aws_lambda_powertools/shared/types.py +0 -14
  30. aws_lambda_powertools-2.24.0/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py +0 -112
  31. aws_lambda_powertools-2.24.0/aws_lambda_powertools/utilities/idempotency/serialization/__init__.py +0 -0
  32. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/LICENSE +0 -0
  33. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/README.md +0 -0
  34. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/THIRD-PARTY-LICENSES +0 -0
  35. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/__init__.py +0 -0
  36. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/__init__.py +0 -0
  37. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/api_gateway.py +0 -0
  38. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/appsync.py +0 -0
  39. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/content_types.py +0 -0
  40. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/exceptions.py +0 -0
  41. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/lambda_function_url.py +0 -0
  42. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/middlewares/__init__.py +0 -0
  43. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/middlewares/schema_validation.py +0 -0
  44. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/router.py +0 -0
  45. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/types.py +0 -0
  46. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/event_handler/vpc_lattice.py +0 -0
  47. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/exceptions/__init__.py +0 -0
  48. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/__init__.py +0 -0
  49. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/compat.py +0 -0
  50. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/correlation_paths.py +0 -0
  51. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/exceptions.py +0 -0
  52. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/formatters/__init__.py +0 -0
  53. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/formatters/datadog.py +0 -0
  54. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/lambda_context.py +0 -0
  55. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/logging/utils.py +0 -0
  56. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/__init__.py +0 -0
  57. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/exceptions.py +0 -0
  58. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/metric.py +0 -0
  59. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/metrics.py +0 -0
  60. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/__init__.py +0 -0
  61. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/__init__.py +0 -0
  62. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/cloudwatch.py +0 -0
  63. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/constants.py +0 -0
  64. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/exceptions.py +0 -0
  65. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cloudwatch_emf/metric_properties.py +0 -0
  66. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/cold_start.py +0 -0
  67. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/datadog/__init__.py +0 -0
  68. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/datadog/datadog.py +0 -0
  69. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/datadog/metrics.py +0 -0
  70. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/metrics/provider/datadog/warnings.py +0 -0
  71. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/middleware_factory/__init__.py +0 -0
  72. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/middleware_factory/exceptions.py +0 -0
  73. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/middleware_factory/factory.py +0 -0
  74. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/package_logger.py +0 -0
  75. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/py.typed +0 -0
  76. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/cache_dict.py +0 -0
  77. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/constants.py +0 -0
  78. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/functions.py +0 -0
  79. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/headers_serializer.py +0 -0
  80. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/json_encoder.py +0 -0
  81. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/lazy_import.py +0 -0
  82. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/shared/user_agent.py +0 -0
  83. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/tracing/__init__.py +0 -0
  84. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/tracing/base.py +0 -0
  85. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/tracing/extensions.py +0 -0
  86. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/tracing/tracer.py +0 -0
  87. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/__init__.py +0 -0
  88. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/batch/__init__.py +0 -0
  89. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/batch/base.py +0 -0
  90. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/batch/decorators.py +0 -0
  91. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/batch/exceptions.py +0 -0
  92. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/batch/sqs_fifo_partial_processor.py +0 -0
  93. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/active_mq_event.py +0 -0
  94. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/alb_event.py +0 -0
  95. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py +0 -0
  96. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py +0 -0
  97. {aws_lambda_powertools-2.24.0/aws_lambda_powertools/shared → aws_lambda_powertools-2.25.1/aws_lambda_powertools/utilities/data_classes/appsync}/__init__.py +0 -0
  98. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py +0 -0
  99. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py +0 -0
  100. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py +0 -0
  101. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py +0 -0
  102. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py +0 -0
  103. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py +0 -0
  104. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py +0 -0
  105. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py +0 -0
  106. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/common.py +0 -0
  107. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py +0 -0
  108. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py +0 -0
  109. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py +0 -0
  110. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/event_source.py +0 -0
  111. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/kafka_event.py +0 -0
  112. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py +0 -0
  113. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py +0 -0
  114. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py +0 -0
  115. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/s3_event.py +0 -0
  116. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/s3_object_event.py +0 -0
  117. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/ses_event.py +0 -0
  118. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/shared_functions.py +0 -0
  119. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/sns_event.py +0 -0
  120. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/sqs_event.py +0 -0
  121. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py +0 -0
  122. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/__init__.py +0 -0
  123. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/appconfig.py +0 -0
  124. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/base.py +0 -0
  125. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/comparators.py +0 -0
  126. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/exceptions.py +0 -0
  127. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/feature_flags.py +0 -0
  128. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/feature_flags/schema.py +0 -0
  129. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/__init__.py +0 -0
  130. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/base.py +0 -0
  131. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/config.py +0 -0
  132. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/exceptions.py +0 -0
  133. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/idempotency.py +0 -0
  134. {aws_lambda_powertools-2.24.0/aws_lambda_powertools/utilities/data_classes/appsync → aws_lambda_powertools-2.25.1/aws_lambda_powertools/utilities/idempotency/persistence}/__init__.py +0 -0
  135. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/persistence/base.py +0 -0
  136. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py +0 -0
  137. {aws_lambda_powertools-2.24.0/aws_lambda_powertools/utilities/idempotency/persistence → aws_lambda_powertools-2.25.1/aws_lambda_powertools/utilities/idempotency/serialization}/__init__.py +0 -0
  138. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/serialization/base.py +0 -0
  139. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/serialization/custom_dict.py +0 -0
  140. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/serialization/dataclass.py +0 -0
  141. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/serialization/no_op.py +0 -0
  142. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/idempotency/serialization/pydantic.py +0 -0
  143. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/jmespath_utils/__init__.py +0 -0
  144. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/jmespath_utils/envelopes.py +0 -0
  145. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/__init__.py +0 -0
  146. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/appconfig.py +0 -0
  147. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/dynamodb.py +0 -0
  148. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/exceptions.py +0 -0
  149. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parameters/secrets.py +0 -0
  150. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/__init__.py +0 -0
  151. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/compat.py +0 -0
  152. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/__init__.py +0 -0
  153. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/apigw.py +0 -0
  154. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/apigwv2.py +0 -0
  155. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/base.py +0 -0
  156. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/cloudwatch.py +0 -0
  157. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/dynamodb.py +0 -0
  158. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/event_bridge.py +0 -0
  159. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/kafka.py +0 -0
  160. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/kinesis.py +0 -0
  161. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/kinesis_firehose.py +0 -0
  162. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/lambda_function_url.py +0 -0
  163. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/sns.py +0 -0
  164. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/sqs.py +0 -0
  165. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py +0 -0
  166. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/exceptions.py +0 -0
  167. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/__init__.py +0 -0
  168. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/alb.py +0 -0
  169. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/apigw.py +0 -0
  170. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/apigwv2.py +0 -0
  171. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py +0 -0
  172. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/dynamodb.py +0 -0
  173. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/event_bridge.py +0 -0
  174. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/kafka.py +0 -0
  175. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/kinesis.py +0 -0
  176. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose.py +0 -0
  177. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/kinesis_firehose_sqs.py +0 -0
  178. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/lambda_function_url.py +0 -0
  179. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/s3.py +0 -0
  180. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/s3_event_notification.py +0 -0
  181. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/s3_object_event.py +0 -0
  182. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/ses.py +0 -0
  183. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/sns.py +0 -0
  184. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/sqs.py +0 -0
  185. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/models/vpc_lattice.py +0 -0
  186. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/parser.py +0 -0
  187. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/parser/pydantic.py +0 -0
  188. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/__init__.py +0 -0
  189. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/_s3_seekable_io.py +0 -0
  190. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/compat.py +0 -0
  191. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/transformations/__init__.py +0 -0
  192. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/transformations/base.py +0 -0
  193. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/transformations/csv.py +0 -0
  194. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/transformations/gzip.py +0 -0
  195. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/streaming/transformations/zip.py +0 -0
  196. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/typing/__init__.py +0 -0
  197. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/typing/lambda_client_context.py +0 -0
  198. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/typing/lambda_client_context_mobile_client.py +0 -0
  199. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/typing/lambda_cognito_identity.py +0 -0
  200. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/typing/lambda_context.py +0 -0
  201. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/validation/__init__.py +0 -0
  202. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/validation/base.py +0 -0
  203. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/validation/envelopes.py +0 -0
  204. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/validation/exceptions.py +0 -0
  205. {aws_lambda_powertools-2.24.0 → aws_lambda_powertools-2.25.1}/aws_lambda_powertools/utilities/validation/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-lambda-powertools
3
- Version: 2.24.0
3
+ Version: 2.25.1
4
4
  Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
5
5
  Home-page: https://github.com/aws-powertools/powertools-lambda-python
6
6
  License: MIT
@@ -1,10 +1,9 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Generic
3
3
 
4
- from typing_extensions import Protocol
5
-
6
4
  from aws_lambda_powertools.event_handler.api_gateway import Response
7
5
  from aws_lambda_powertools.event_handler.types import EventHandlerInstance
6
+ from aws_lambda_powertools.shared.types import Protocol
8
7
 
9
8
 
10
9
  class NextMiddleware(Protocol):
@@ -2,10 +2,10 @@ import logging
2
2
 
3
3
 
4
4
  class SuppressFilter(logging.Filter):
5
- def __init__(self, logger):
5
+ def __init__(self, logger: str):
6
6
  self.logger = logger
7
7
 
8
- def filter(self, record): # noqa: A003
8
+ def filter(self, record: logging.LogRecord) -> bool: # noqa: A003
9
9
  """Suppress Log Records from registered logger
10
10
 
11
11
  It rejects log records from registered logger e.g. a child logger
@@ -44,14 +44,14 @@ RESERVED_LOG_ATTRS = (
44
44
 
45
45
  class BasePowertoolsFormatter(logging.Formatter, metaclass=ABCMeta):
46
46
  @abstractmethod
47
- def append_keys(self, **additional_keys):
47
+ def append_keys(self, **additional_keys) -> None:
48
48
  raise NotImplementedError()
49
49
 
50
- def remove_keys(self, keys: Iterable[str]):
50
+ def remove_keys(self, keys: Iterable[str]) -> None:
51
51
  raise NotImplementedError()
52
52
 
53
53
  @abstractmethod
54
- def clear_state(self):
54
+ def clear_state(self) -> None:
55
55
  """Removes any previously added logging keys"""
56
56
  raise NotImplementedError()
57
57
 
@@ -78,7 +78,7 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
78
78
  utc: bool = False,
79
79
  use_rfc3339: bool = False,
80
80
  **kwargs,
81
- ):
81
+ ) -> None:
82
82
  """Return a LambdaPowertoolsFormatter instance.
83
83
 
84
84
  The `log_record_order` kwarg is used to specify the order of the keys used in
@@ -217,26 +217,26 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
217
217
  custom_fmt = self.default_time_format.replace(self.custom_ms_time_directive, msecs)
218
218
  return time.strftime(custom_fmt, record_ts)
219
219
 
220
- def append_keys(self, **additional_keys):
220
+ def append_keys(self, **additional_keys) -> None:
221
221
  self.log_format.update(additional_keys)
222
222
 
223
- def remove_keys(self, keys: Iterable[str]):
223
+ def remove_keys(self, keys: Iterable[str]) -> None:
224
224
  for key in keys:
225
225
  self.log_format.pop(key, None)
226
226
 
227
- def clear_state(self):
227
+ def clear_state(self) -> None:
228
228
  self.log_format = dict.fromkeys(self.log_record_order)
229
229
  self.log_format.update(**self.keys_combined)
230
230
 
231
231
  @staticmethod
232
- def _build_default_keys():
232
+ def _build_default_keys() -> Dict[str, str]:
233
233
  return {
234
234
  "level": "%(levelname)s",
235
235
  "location": "%(funcName)s:%(lineno)d",
236
236
  "timestamp": "%(asctime)s",
237
237
  }
238
238
 
239
- def _get_latest_trace_id(self):
239
+ def _get_latest_trace_id(self) -> Optional[str]:
240
240
  xray_trace_id_key = self.log_format.get("xray_trace_id", "")
241
241
  if xray_trace_id_key is None:
242
242
  # key is explicitly disabled; ignore it. e.g., Logger(xray_trace_id=None)
@@ -221,7 +221,7 @@ class Logger:
221
221
  utc: bool = False,
222
222
  use_rfc3339: bool = False,
223
223
  **kwargs,
224
- ):
224
+ ) -> None:
225
225
  self.service = resolve_env_var_choice(
226
226
  choice=service,
227
227
  env=os.getenv(constants.SERVICE_NAME_ENV, "service_undefined"),
@@ -270,7 +270,7 @@ class Logger:
270
270
  # https://github.com/aws-powertools/powertools-lambda-python/issues/97
271
271
  return getattr(self._logger, name)
272
272
 
273
- def _get_logger(self):
273
+ def _get_logger(self) -> logging.Logger:
274
274
  """Returns a Logger named {self.service}, or {self.service.filename} for child loggers"""
275
275
  logger_name = self.service
276
276
  if self.child:
@@ -278,7 +278,12 @@ class Logger:
278
278
 
279
279
  return logging.getLogger(logger_name)
280
280
 
281
- def _init_logger(self, formatter_options: Optional[Dict] = None, log_level: Union[str, int, None] = None, **kwargs):
281
+ def _init_logger(
282
+ self,
283
+ formatter_options: Optional[Dict] = None,
284
+ log_level: Union[str, int, None] = None,
285
+ **kwargs,
286
+ ) -> None:
282
287
  """Configures new logger"""
283
288
 
284
289
  # Skip configuration if it's a child logger or a pre-configured logger
@@ -296,7 +301,7 @@ class Logger:
296
301
  self.structure_logs(formatter_options=formatter_options, **kwargs)
297
302
 
298
303
  # Maintenance: We can drop this upon Py3.7 EOL. It's a backport for "location" key to work
299
- self._logger.findCaller = compat.findCaller
304
+ self._logger.findCaller = compat.findCaller # type: ignore[method-assign]
300
305
 
301
306
  # Pytest Live Log feature duplicates log records for colored output
302
307
  # but we explicitly add a filter for log deduplication.
@@ -313,9 +318,9 @@ class Logger:
313
318
  # therefore we set a custom attribute in the Logger that will be returned
314
319
  # std logging will return the same Logger with our attribute if name is reused
315
320
  logger.debug(f"Marking logger {self.service} as preconfigured")
316
- self._logger.init = True
321
+ self._logger.init = True # type: ignore[attr-defined]
317
322
 
318
- def _configure_sampling(self):
323
+ def _configure_sampling(self) -> None:
319
324
  """Dynamically set log level based on sampling rate
320
325
 
321
326
  Raises
@@ -329,8 +334,10 @@ class Logger:
329
334
  self._logger.setLevel(logging.DEBUG)
330
335
  except ValueError:
331
336
  raise InvalidLoggerSamplingRateError(
332
- f"Expected a float value ranging 0 to 1, but received {self.sampling_rate} instead."
333
- f"Please review POWERTOOLS_LOGGER_SAMPLE_RATE environment variable.",
337
+ (
338
+ f"Expected a float value ranging 0 to 1, but received {self.sampling_rate} instead."
339
+ "Please review POWERTOOLS_LOGGER_SAMPLE_RATE environment variable."
340
+ ),
334
341
  )
335
342
 
336
343
  @overload
@@ -452,7 +459,7 @@ class Logger:
452
459
  stacklevel: int = 2,
453
460
  extra: Optional[Mapping[str, object]] = None,
454
461
  **kwargs,
455
- ):
462
+ ) -> None:
456
463
  extra = extra or {}
457
464
  extra = {**extra, **kwargs}
458
465
 
@@ -477,7 +484,7 @@ class Logger:
477
484
  stacklevel: int = 2,
478
485
  extra: Optional[Mapping[str, object]] = None,
479
486
  **kwargs,
480
- ):
487
+ ) -> None:
481
488
  extra = extra or {}
482
489
  extra = {**extra, **kwargs}
483
490
 
@@ -502,7 +509,7 @@ class Logger:
502
509
  stacklevel: int = 2,
503
510
  extra: Optional[Mapping[str, object]] = None,
504
511
  **kwargs,
505
- ):
512
+ ) -> None:
506
513
  extra = extra or {}
507
514
  extra = {**extra, **kwargs}
508
515
 
@@ -527,7 +534,7 @@ class Logger:
527
534
  stacklevel: int = 2,
528
535
  extra: Optional[Mapping[str, object]] = None,
529
536
  **kwargs,
530
- ):
537
+ ) -> None:
531
538
  extra = extra or {}
532
539
  extra = {**extra, **kwargs}
533
540
 
@@ -552,7 +559,7 @@ class Logger:
552
559
  stacklevel: int = 2,
553
560
  extra: Optional[Mapping[str, object]] = None,
554
561
  **kwargs,
555
- ):
562
+ ) -> None:
556
563
  extra = extra or {}
557
564
  extra = {**extra, **kwargs}
558
565
 
@@ -577,7 +584,7 @@ class Logger:
577
584
  stacklevel: int = 2,
578
585
  extra: Optional[Mapping[str, object]] = None,
579
586
  **kwargs,
580
- ):
587
+ ) -> None:
581
588
  extra = extra or {}
582
589
  extra = {**extra, **kwargs}
583
590
 
@@ -593,13 +600,13 @@ class Logger:
593
600
  extra=extra,
594
601
  )
595
602
 
596
- def append_keys(self, **additional_keys):
603
+ def append_keys(self, **additional_keys) -> None:
597
604
  self.registered_formatter.append_keys(**additional_keys)
598
605
 
599
- def remove_keys(self, keys: Iterable[str]):
606
+ def remove_keys(self, keys: Iterable[str]) -> None:
600
607
  self.registered_formatter.remove_keys(keys)
601
608
 
602
- def structure_logs(self, append: bool = False, formatter_options: Optional[Dict] = None, **keys):
609
+ def structure_logs(self, append: bool = False, formatter_options: Optional[Dict] = None, **keys) -> None:
603
610
  """Sets logging formatting to JSON.
604
611
 
605
612
  Optionally, it can append keyword arguments
@@ -645,7 +652,7 @@ class Logger:
645
652
  self.registered_formatter.clear_state()
646
653
  self.registered_formatter.append_keys(**log_keys)
647
654
 
648
- def set_correlation_id(self, value: Optional[str]):
655
+ def set_correlation_id(self, value: Optional[str]) -> None:
649
656
  """Sets the correlation_id in the logging json
650
657
 
651
658
  Parameters
@@ -676,7 +683,9 @@ class Logger:
676
683
  @property
677
684
  def registered_handler(self) -> logging.Handler:
678
685
  """Convenience property to access the first logger handler"""
679
- handlers = self._logger.parent.handlers if self.child else self._logger.handlers
686
+ # We ignore mypy here because self.child encodes whether or not self._logger.parent is
687
+ # None, mypy can't see this from context but we can
688
+ handlers = self._logger.parent.handlers if self.child else self._logger.handlers # type: ignore[union-attr]
680
689
  return handlers[0]
681
690
 
682
691
  @property
@@ -720,7 +729,7 @@ def set_package_logger(
720
729
  level: Union[str, int] = logging.DEBUG,
721
730
  stream: Optional[IO[str]] = None,
722
731
  formatter: Optional[logging.Formatter] = None,
723
- ):
732
+ ) -> None:
724
733
  """Set an additional stream handler, formatter, and log level for aws_lambda_powertools package logger.
725
734
 
726
735
  **Package log by default is suppressed (NullHandler), this should only used for debugging.
@@ -755,16 +764,18 @@ def set_package_logger(
755
764
  logger.addHandler(handler)
756
765
 
757
766
 
758
- def log_uncaught_exception_hook(exc_type, exc_value, exc_traceback, logger: Logger):
767
+ def log_uncaught_exception_hook(exc_type, exc_value, exc_traceback, logger: Logger) -> None:
759
768
  """Callback function for sys.excepthook to use Logger to log uncaught exceptions"""
760
769
  logger.exception(exc_value, exc_info=(exc_type, exc_value, exc_traceback)) # pragma: no cover
761
770
 
762
771
 
763
- def _get_caller_filename():
772
+ def _get_caller_filename() -> str:
764
773
  """Return caller filename by finding the caller frame"""
765
774
  # Current frame => _get_logger()
766
775
  # Previous frame => logger.py
767
776
  # Before previous frame => Caller
777
+ # We ignore mypy here because *we* know that there will always be at least
778
+ # 3 frames (above) so repeatedly calling f_back is safe here
768
779
  frame = inspect.currentframe()
769
- caller_frame = frame.f_back.f_back.f_back
770
- return caller_frame.f_globals["__name__"]
780
+ caller_frame = frame.f_back.f_back.f_back # type: ignore[union-attr]
781
+ return caller_frame.f_globals["__name__"] # type: ignore[union-attr]
@@ -1,24 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
- import sys
4
-
5
- if sys.version_info >= (3, 11):
6
- from typing import NotRequired
7
- else:
8
- from typing_extensions import NotRequired
9
-
10
- if sys.version_info >= (3, 8):
11
- from typing import TypedDict
12
- else:
13
- from typing_extensions import TypedDict
14
-
15
- if sys.version_info >= (3, 10):
16
- from typing import TypeAlias
17
- else:
18
- from typing_extensions import TypeAlias
19
-
20
3
  from typing import Any, Dict, List, Union
21
4
 
5
+ from aws_lambda_powertools.shared.types import NotRequired, TypeAlias, TypedDict
6
+
22
7
  LogRecord: TypeAlias = Union[Dict[str, Any], "PowertoolsLogRecord"]
23
8
 
24
9
 
@@ -378,11 +378,11 @@ class MetricManager:
378
378
  )
379
379
 
380
380
  @functools.wraps(lambda_handler)
381
- def decorate(event, context):
381
+ def decorate(event, context, *args, **kwargs):
382
382
  try:
383
383
  if default_dimensions:
384
384
  self.set_default_dimensions(**default_dimensions)
385
- response = lambda_handler(event, context)
385
+ response = lambda_handler(event, context, *args, **kwargs)
386
386
  if capture_cold_start_metric:
387
387
  self._add_cold_start_metric(context=context)
388
388
  finally:
@@ -1,12 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import List
4
-
5
3
  from aws_lambda_powertools.metrics.provider.cloudwatch_emf.exceptions import (
6
4
  MetricResolutionError,
7
5
  MetricUnitError,
8
6
  )
9
7
  from aws_lambda_powertools.metrics.provider.cloudwatch_emf.metric_properties import MetricResolution, MetricUnit
8
+ from aws_lambda_powertools.shared.types import List
10
9
 
11
10
 
12
11
  def extract_cloudwatch_metric_resolution_value(metric_resolutions: List, resolution: int | MetricResolution) -> int:
@@ -199,9 +199,9 @@ class BaseProvider(ABC):
199
199
  )
200
200
 
201
201
  @functools.wraps(lambda_handler)
202
- def decorate(event, context):
202
+ def decorate(event, context, *args, **kwargs):
203
203
  try:
204
- response = lambda_handler(event, context)
204
+ response = lambda_handler(event, context, *args, **kwargs)
205
205
  if capture_cold_start_metric:
206
206
  self._add_cold_start_metric(context=context)
207
207
  finally:
@@ -1,6 +1,4 @@
1
- from typing import List
2
-
3
- from typing_extensions import NotRequired, TypedDict
1
+ from aws_lambda_powertools.shared.types import List, NotRequired, TypedDict
4
2
 
5
3
 
6
4
  class CloudWatchEMFMetric(TypedDict):
@@ -1,4 +1,4 @@
1
- from typing_extensions import NotRequired, TypedDict
1
+ from aws_lambda_powertools.shared.types import NotRequired, TypedDict
2
2
 
3
3
 
4
4
  class MetricNameUnitResolution(TypedDict):
@@ -0,0 +1 @@
1
+ """Internal shared functions. Do not rely on it besides internal usage."""
@@ -1,7 +1,9 @@
1
1
  from datetime import datetime
2
2
  from enum import Enum
3
3
  from io import StringIO
4
- from typing import List, Optional
4
+ from typing import Optional
5
+
6
+ from aws_lambda_powertools.shared.types import List
5
7
 
6
8
 
7
9
  class SameSite(Enum):
@@ -0,0 +1,25 @@
1
+ import sys
2
+ from typing import Any, Callable, Dict, List, TypeVar, Union
3
+
4
+ if sys.version_info >= (3, 8):
5
+ from typing import Literal, Protocol, TypedDict
6
+ else:
7
+ from typing_extensions import Literal, Protocol, TypedDict
8
+
9
+
10
+ if sys.version_info >= (3, 11):
11
+ from typing import NotRequired
12
+ else:
13
+ from typing_extensions import NotRequired
14
+
15
+
16
+ if sys.version_info >= (3, 10):
17
+ from typing import TypeAlias
18
+ else:
19
+ from typing_extensions import TypeAlias
20
+
21
+ AnyCallableT = TypeVar("AnyCallableT", bound=Callable[..., Any]) # noqa: VNE001
22
+ # JSON primitives only, mypy doesn't support recursive tho
23
+ JSONType = Union[str, int, float, bool, None, Dict[str, Any], List[Any]]
24
+
25
+ __all__ = ["Protocol", "TypedDict", "Literal", "NotRequired", "TypeAlias"]
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "2.24.0"
3
+ VERSION = "2.25.1"
@@ -1,10 +1,7 @@
1
- #
2
- # type specifics
3
- #
4
1
  import sys
5
- from typing import List, Optional, Type, Union
2
+ from typing import Optional, Type, Union
6
3
 
7
- from typing_extensions import TypedDict
4
+ from aws_lambda_powertools.shared.types import List, TypedDict
8
5
 
9
6
  has_pydantic = "pydantic" in sys.modules
10
7
 
@@ -14,10 +14,16 @@ from .dynamo_db_stream_event import DynamoDBStreamEvent
14
14
  from .event_bridge_event import EventBridgeEvent
15
15
  from .event_source import event_source
16
16
  from .kafka_event import KafkaEvent
17
- from .kinesis_firehose_event import KinesisFirehoseEvent
17
+ from .kinesis_firehose_event import (
18
+ KinesisFirehoseDataTransformationRecord,
19
+ KinesisFirehoseDataTransformationRecordMetadata,
20
+ KinesisFirehoseDataTransformationResponse,
21
+ KinesisFirehoseEvent,
22
+ )
18
23
  from .kinesis_stream_event import KinesisStreamEvent
19
24
  from .lambda_function_url_event import LambdaFunctionUrlEvent
20
25
  from .s3_event import S3Event, S3EventBridgeNotificationEvent
26
+ from .secrets_manager_event import SecretsManagerEvent
21
27
  from .ses_event import SESEvent
22
28
  from .sns_event import SNSEvent
23
29
  from .sqs_event import SQSEvent
@@ -26,6 +32,7 @@ from .vpc_lattice import VPCLatticeEvent
26
32
  __all__ = [
27
33
  "APIGatewayProxyEvent",
28
34
  "APIGatewayProxyEventV2",
35
+ "SecretsManagerEvent",
29
36
  "AppSyncResolverEvent",
30
37
  "ALBEvent",
31
38
  "CloudWatchDashboardCustomWidgetEvent",
@@ -37,6 +44,9 @@ __all__ = [
37
44
  "KafkaEvent",
38
45
  "KinesisFirehoseEvent",
39
46
  "KinesisStreamEvent",
47
+ "KinesisFirehoseDataTransformationResponse",
48
+ "KinesisFirehoseDataTransformationRecord",
49
+ "KinesisFirehoseDataTransformationRecordMetadata",
40
50
  "LambdaFunctionUrlEvent",
41
51
  "S3Event",
42
52
  "S3EventBridgeNotificationEvent",