def delayed_bundle_application(self, op, deferred_remainder): # TODO(SDF): For non-root nodes, need main_input_coder + residual_coder. ((element_and_restriction, output_watermark), deferred_watermark) = deferred_remainder if deferred_watermark: assert isinstance(deferred_watermark, timestamp.Duration) proto_deferred_watermark = duration_pb2.Duration() proto_deferred_watermark.FromMicroseconds(deferred_watermark.micros) else: proto_deferred_watermark = None return beam_fn_api_pb2.DelayedBundleApplication( requested_time_delay=proto_deferred_watermark, application=self.construct_bundle_application( op, output_watermark, element_and_restriction))
def delayed_bundle_application(self, op, deferred_remainder): transform_id, main_input_tag, main_input_coder, outputs = op.input_info # TODO(SDF): For non-root nodes, need main_input_coder + residual_coder. element_and_restriction, watermark = deferred_remainder if watermark: proto_watermark = timestamp_pb2.Timestamp() proto_watermark.FromMicroseconds(watermark.micros) output_watermarks = {output: proto_watermark for output in outputs} else: output_watermarks = None return beam_fn_api_pb2.DelayedBundleApplication( application=beam_fn_api_pb2.BundleApplication( transform_id=transform_id, input_id=main_input_tag, output_watermarks=output_watermarks, element=main_input_coder.get_impl().encode_nested( element_and_restriction)))