1515
1616@lambda_handler_decorator
1717def event_parser (
18- handler : Callable [[ Any , LambdaContext ] , EventParserReturnType ],
18+ handler : Callable [... , EventParserReturnType ],
1919 event : Dict [str , Any ],
2020 context : LambdaContext ,
2121 model : Optional [Type [Model ]] = None ,
2222 envelope : Optional [Type [Envelope ]] = None ,
23+ ** kwargs : Any ,
2324) -> EventParserReturnType :
2425 """Lambda handler decorator to parse & validate events using Pydantic models
2526
@@ -93,9 +94,13 @@ def handler(event: Order, context: LambdaContext):
9394 "or as the type hint of `event` in the handler that it wraps" ,
9495 )
9596
96- parsed_event = parse (event = event , model = model , envelope = envelope ) if envelope else parse (event = event , model = model )
97+ if envelope :
98+ parsed_event = parse (event = event , model = model , envelope = envelope )
99+ else :
100+ parsed_event = parse (event = event , model = model )
101+
97102 logger .debug (f"Calling handler { handler .__name__ } " )
98- return handler (parsed_event , context )
103+ return handler (parsed_event , context , ** kwargs )
99104
100105
101106@overload
@@ -104,7 +109,7 @@ def parse(event: Dict[str, Any], model: Type[Model]) -> Model:
104109
105110
106111@overload
107- def parse (event : Dict [str , Any ], model : Type [Model ], envelope : Type [Envelope ]):
112+ def parse (event : Dict [str , Any ], model : Type [Model ], envelope : Type [Envelope ]) -> Model :
108113 ... # pragma: no cover
109114
110115
0 commit comments