aws-lambda-powertools 3.9.1a8__py3-none-any.whl → 3.10.0__py3-none-any.whl

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.
@@ -357,19 +357,25 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
357
357
  return message
358
358
 
359
359
  def _serialize_stacktrace(self, log_record: logging.LogRecord) -> LogStackTrace | None:
360
- if log_record.exc_info:
360
+ # Check if the first element of exc_info has the __name__ attribute,
361
+ # which indicates it is likely an exception class or object.
362
+ # See: https://github.com/aws-powertools/powertools-lambda-python/issues/6358
363
+ if isinstance(log_record.exc_info, tuple) and hasattr(log_record.exc_info[0], "__name__"):
361
364
  exception_info: LogStackTrace = {
362
365
  "type": log_record.exc_info[0].__name__, # type: ignore
363
366
  "value": log_record.exc_info[1], # type: ignore
364
367
  "module": log_record.exc_info[1].__class__.__module__,
365
- "frames": [],
368
+ "frames": [
369
+ {
370
+ "file": fs.filename,
371
+ "line": fs.lineno,
372
+ "function": fs.name,
373
+ "statement": fs.line,
374
+ }
375
+ for fs in traceback.extract_tb(log_record.exc_info[2])
376
+ ],
366
377
  }
367
378
 
368
- exception_info["frames"] = [
369
- {"file": fs.filename, "line": fs.lineno, "function": fs.name, "statement": fs.line}
370
- for fs in traceback.extract_tb(log_record.exc_info[2])
371
- ]
372
-
373
379
  return exception_info
374
380
 
375
381
  return None
@@ -387,7 +393,7 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter):
387
393
  log_record: tuple[str, str] | tuple[None, None]
388
394
  Log record with constant traceback info and exception name
389
395
  """
390
- if log_record.exc_info:
396
+ if isinstance(log_record.exc_info, tuple) and hasattr(log_record.exc_info[0], "__name__"):
391
397
  return self.formatException(log_record.exc_info), log_record.exc_info[0].__name__ # type: ignore
392
398
 
393
399
  return None, None
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.9.1a8"
3
+ VERSION = "3.10.0"
@@ -1,6 +1,8 @@
1
- from typing import Optional, List, Dict, Union, Any
1
+ from typing import Any, Dict, List, Optional, Union
2
+
2
3
  from pydantic import BaseModel
3
4
 
5
+
4
6
  class AppSyncIamIdentity(BaseModel):
5
7
  accountId: str
6
8
  cognitoIdentityPoolId: Optional[str]
@@ -67,4 +69,4 @@ class AppSyncResolverEventModel(BaseModel):
67
69
  stash: Dict[str, Any]
68
70
 
69
71
 
70
- AppSyncBatchResolverEventModel = List[AppSyncResolverEventModel]
72
+ AppSyncBatchResolverEventModel = List[AppSyncResolverEventModel]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: aws_lambda_powertools
3
- Version: 3.9.1a8
3
+ Version: 3.10.0
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
@@ -45,7 +45,7 @@ aws_lambda_powertools/logging/constants.py,sha256=P0XgbCmG4NiP96kx0qxe6QUC3ShN12
45
45
  aws_lambda_powertools/logging/correlation_paths.py,sha256=uHHrl03aWzpOsrGHZ-9E6PNoMFyKjv3APNMMkI1EN_c,411
46
46
  aws_lambda_powertools/logging/exceptions.py,sha256=Fe_jk8O9vgUSUHxxOkz6Ev521aXsgPkMgA9Hb1nBn6g,232
47
47
  aws_lambda_powertools/logging/filters.py,sha256=icet1o3-QSSvrmj2udL4ZYT0msf5b3rXj5l7p6dAxAs,523
48
- aws_lambda_powertools/logging/formatter.py,sha256=dmE6XXmkWVkYbWdy1Kg69TYJJ0yDXfbK7LY6lLex_Mc,18618
48
+ aws_lambda_powertools/logging/formatter.py,sha256=hWyxAubdJeiHEuCNH2JnPYWEACh0ApLqVfCedEJHrEU,19072
49
49
  aws_lambda_powertools/logging/formatters/__init__.py,sha256=OqddpJcWMqRYhx5SFy-SPqtt72tkRZbfpEi_oCC47eI,301
50
50
  aws_lambda_powertools/logging/formatters/datadog.py,sha256=NwaaBOp7jIlOAH158NzyvW-EwmWqqnYX9f7Uu_nIUYQ,3169
51
51
  aws_lambda_powertools/logging/lambda_context.py,sha256=VHst_6hxMpXgScoxNwaC61UXPTIdd3AEBHTPzb4esPc,1736
@@ -88,7 +88,7 @@ aws_lambda_powertools/shared/json_encoder.py,sha256=JQeWNu-4M7_xI_hqYExrxsb3OcEH
88
88
  aws_lambda_powertools/shared/lazy_import.py,sha256=TbXQm2bcwXdZrYdBaJJXIswyLlumM85RJ_A_0w-h-GU,2019
89
89
  aws_lambda_powertools/shared/types.py,sha256=APkI38HbiTpSF19NSNii8Ydx73vmVUVotgEQ9jHruEI,124
90
90
  aws_lambda_powertools/shared/user_agent.py,sha256=DrCMFQuT4a4iIrpcWpAIjY37EFqR9-QxlxDGD-Nn9Gg,7081
91
- aws_lambda_powertools/shared/version.py,sha256=ibRgO-ZtT188ud7Rw1yhhicMoW_bFgVxhzdd9G4qHmU,84
91
+ aws_lambda_powertools/shared/version.py,sha256=DEvMLVONGmoOJ-qicKqa_JaPNLOdkFKUUlERXaI9khc,83
92
92
  aws_lambda_powertools/tracing/__init__.py,sha256=f4bMThOPBPWTPVcYqcAIErAJPerMsf3H_Z4gCXCsK9I,141
93
93
  aws_lambda_powertools/tracing/base.py,sha256=DbLD8OSK05KLdSV36oNA5wDSGv8KbcOD19qMUqoXh58,4513
94
94
  aws_lambda_powertools/tracing/extensions.py,sha256=APOfXOq-hRBKaK5WyfIyrd_6M1_9SWJZ3zxLA9jDZzU,492
@@ -211,7 +211,7 @@ aws_lambda_powertools/utilities/parser/models/alb.py,sha256=lJPWPjz0_4Hz9Pkpap3N
211
211
  aws_lambda_powertools/utilities/parser/models/apigw.py,sha256=_UbZXcfdcz7U-MrixXor4sc-VkNIuJAj9uwqjJTlhKg,3494
212
212
  aws_lambda_powertools/utilities/parser/models/apigw_websocket.py,sha256=Pi3R9qFudSrujGz_s3m7BfpX_r7FebcYtbomDAetIrA,3004
213
213
  aws_lambda_powertools/utilities/parser/models/apigwv2.py,sha256=x-v1vwVFwf2pGrkZfRri6ZmhHazeVPr1mHyD3R_vH30,2134
214
- aws_lambda_powertools/utilities/parser/models/appsync.py,sha256=43g0X92yDmsQXtTvpDwhIEVQ4V4si5FxTQr30MJMJG4,1551
214
+ aws_lambda_powertools/utilities/parser/models/appsync.py,sha256=mFzfTZgQ98zxwPKQoNRTTx9tQknumJ0J4PaiGaNzHu8,1554
215
215
  aws_lambda_powertools/utilities/parser/models/bedrock_agent.py,sha256=YFu2cFxBZtb2ndweS3Q2iz4E94jyb8lB4xq14xPwq00,1241
216
216
  aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py,sha256=DySFMeZ50qOZ1FkwSzM70IlcCmjKkoynmmKqLYfTL6E,1465
217
217
  aws_lambda_powertools/utilities/parser/models/cloudwatch.py,sha256=1y2WmgBbIo6GkEtw75YzNaz9qREHl_-ThT0Iz7Ntd_k,1291
@@ -258,7 +258,7 @@ aws_lambda_powertools/utilities/validation/envelopes.py,sha256=YD5HOFx6IClQgii0n
258
258
  aws_lambda_powertools/utilities/validation/exceptions.py,sha256=PKy_19zQMBJGCMMFl-sMkcm-cc0v3zZBn_bhGE4wKNo,2084
259
259
  aws_lambda_powertools/utilities/validation/validator.py,sha256=x_1qpuKJBuWpgNU-zCD3Di-vXrZfyUu7oA5RmjZjr84,10034
260
260
  aws_lambda_powertools/warnings/__init__.py,sha256=vqDVeZz8wGtD8WGYNSkQE7AHwqtIrPGRxuoJR_BBnSs,1193
261
- aws_lambda_powertools-3.9.1a8.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
262
- aws_lambda_powertools-3.9.1a8.dist-info/METADATA,sha256=3bfxrbMZk_SJ1_1UdELSUAgjJjEpD8c5I4Q3N-W_8J8,11186
263
- aws_lambda_powertools-3.9.1a8.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
264
- aws_lambda_powertools-3.9.1a8.dist-info/RECORD,,
261
+ aws_lambda_powertools-3.10.0.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
262
+ aws_lambda_powertools-3.10.0.dist-info/METADATA,sha256=TJugcJx1vGaQX1_3EEaKi2fjA4QAtM5nSY9YWCEqQMI,11185
263
+ aws_lambda_powertools-3.10.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
264
+ aws_lambda_powertools-3.10.0.dist-info/RECORD,,