MCPcopy Index your code
hub / github.com/pathwaycom/pathway / _join

Method _join

python/pathway/stdlib/temporal/_window.py:359–416  ·  view source on GitHub ↗
(
        self,
        left: pw.Table,
        right: pw.Table,
        left_time_expression: pw.ColumnExpression,
        right_time_expression: pw.ColumnExpression,
        *on: pw.ColumnExpression,
        mode: pw.JoinMode,
        left_instance: pw.ColumnReference | None = None,
        right_instance: pw.ColumnReference | None = None,
    )

Source from the content-addressed store, hash-verified

357
358 @check_arg_types
359 def _join(
360 self,
361 left: pw.Table,
362 right: pw.Table,
363 left_time_expression: pw.ColumnExpression,
364 right_time_expression: pw.ColumnExpression,
365 *on: pw.ColumnExpression,
366 mode: pw.JoinMode,
367 left_instance: pw.ColumnReference | None = None,
368 right_instance: pw.ColumnReference | None = None,
369 ) -> WindowJoinResult:
370 check_joint_types(
371 {
372 "left_time_expression": (left_time_expression, TimeEventType),
373 "right_time_expression": (right_time_expression, TimeEventType),
374 "window.hop": (self.hop, IntervalType),
375 "window.duration": (self.duration, IntervalType),
376 "window.origin": (self.origin, TimeEventType),
377 }
378 )
379
380 time_expression_dtype = eval_type(left_time_expression)
381 assert time_expression_dtype == eval_type(
382 right_time_expression
383 ) # checked in check_joint_types
384
385 left_window = _assign_sliding_windows(
386 left,
387 left_time_expression,
388 None,
389 window=self,
390 )
391
392 right_window = _assign_sliding_windows(
393 right,
394 right_time_expression,
395 None,
396 window=self,
397 )
398
399 for cond in on:
400 cond_left, cond_right, cond = validate_join_condition(cond, left, right)
401 cond._left = left_window[cond_left._name]
402 cond._right = right_window[cond_right._name]
403
404 join_result = pw.JoinResult._table_join(
405 left_window,
406 right_window,
407 left_window._pw_window_start == right_window._pw_window_start,
408 left_window._pw_window_end == right_window._pw_window_end,
409 left_window._pw_window == right_window._pw_window,
410 *on,
411 mode=mode,
412 left_instance=left_instance,
413 right_instance=right_instance,
414 )
415
416 return WindowJoinResult(join_result, left, right, left_window, right_window)

Callers

nothing calls this directly

Calls 6

eval_typeFunction · 0.90
validate_join_conditionFunction · 0.90
check_joint_typesFunction · 0.85
_assign_sliding_windowsFunction · 0.85
WindowJoinResultClass · 0.85
_table_joinMethod · 0.80

Tested by

no test coverage detected