1919
2020import pydantic
2121import redis
22- from typing_extensions import assert_never
2322
2423from corva .api import Api
2524from corva .configuration import SETTINGS
@@ -89,7 +88,13 @@ def wrapper(aws_event: Any, aws_context: Any) -> List[Any]:
8988 )
9089 data_transformation_type = raw_custom_event_type or raw_event_type
9190 if merge_events :
92- aws_event = _merge_events (aws_event , data_transformation_type )
91+ aws_event = _merge_events (
92+ aws_event ,
93+ cast (
94+ Union [Type [RawScheduledEvent ], Type [RawStreamEvent ]],
95+ data_transformation_type ,
96+ ),
97+ )
9398 raw_events = data_transformation_type .from_raw_event (event = aws_event )
9499
95100 if (
@@ -567,7 +572,10 @@ def _get_custom_event_type_by_raw_aws_event(
567572 return None , None
568573
569574
570- def _merge_events (aws_event : Any , data_transformation_type : Type [RawBaseEvent ]) -> Any :
575+ def _merge_events (
576+ aws_event : Any ,
577+ data_transformation_type : Union [Type [RawScheduledEvent ], Type [RawStreamEvent ]],
578+ ) -> Any :
571579 """
572580 Merges incoming aws_events into one.
573581 Merge happens differently, depending on app type.
@@ -578,7 +586,10 @@ def _merge_events(aws_event: Any, data_transformation_type: Type[RawBaseEvent])
578586 # scheduled event
579587 if not isinstance (aws_event [0 ], dict ):
580588 aws_event = list (itertools .chain (* aws_event ))
581- is_depth = aws_event [0 ]["scheduler_type" ] == SchedulerType .data_depth_milestone
589+ scheduler_type = aws_event [0 ]["scheduler_type" ]
590+ if isinstance (scheduler_type , SchedulerType ):
591+ scheduler_type = scheduler_type .value
592+ is_depth = scheduler_type == SchedulerType .data_depth_milestone .value
582593 event_start , event_end = (
583594 ("top_depth" , "bottom_depth" )
584595 if is_depth
@@ -595,13 +606,8 @@ def _merge_events(aws_event: Any, data_transformation_type: Type[RawBaseEvent])
595606 aws_event = aws_event [0 ]
596607 return aws_event
597608
598- elif data_transformation_type == RawStreamEvent :
599- # stream event
600- for event in aws_event [1 :]:
601- aws_event [0 ]["records" ].extend (event ["records" ])
602- aws_event = [aws_event [0 ]]
603- return aws_event
604-
605- else :
606- # unexpected event type, raise an exception
607- assert_never (data_transformation_type ) # type: ignore
609+ # stream event
610+ for event in aws_event [1 :]:
611+ aws_event [0 ]["records" ].extend (event ["records" ])
612+ aws_event = [aws_event [0 ]]
613+ return aws_event
0 commit comments