def merge_translations(source_stream, *translation_streams, **kwargs):
 source = tuple(source_stream)
 streams = [synchronize(source, t, key=(lambda m: m.merge_key), unused=kwargs.get('unused')) for t in translation_streams]
 for messages in zip(source, *streams):
  (yield match_to_source(*messages))

def merge_translations ( source_stream , * translation_streams , ** kwargs ) : source = tuple ( source_stream ) streams = [ synchronize ( source , t , key = ( lambda m : m . merge_key ) , unused = kwargs . get ( 'unused' ) ) for t in translation_streams ] for messages in zip ( source , * streams ) : ( yield match_to_source ( * messages ) )
for each source message .