code: def _get_join_indexers(
      left_keys, right_keys, sort=False, how="inner", **kwargs
  ):
      """
  
      Parameters
      ----------
      left_keys: ndarray, Index, Series
      right_keys: ndarray, Index, Series
      sort: boolean, default False
      how: string {'inner', 'outer', 'left', 'right'}, default 'inner'
  
      Returns
      -------
      tuple of (left_indexer, right_indexer)
          indexers into the left_keys, right_keys
  
      """
      from functools import partial
  
      assert len(left_keys) == len(
          right_keys
      ), "left_key and right_keys must be the same length"
  
      # bind `sort` arg. of _factorize_keys
      fkeys = partial(_factorize_keys, sort=sort)
  
      # get left & right join labels and num. of levels at each location
      llab, rlab, shape = map(
          list, zip(*map(fkeys, left_keys, right_keys))
      )
  
      # get flat i8 keys from label lists
      lkey, rkey = _get_join_keys(llab, rlab, shape, sort)
  
      # factorize keys to a dense i8 space
      # `count` is the num. of unique keys
      # set(lkey) | set(rkey) == range(count)
      lkey, rkey, count = fkeys(lkey, rkey)
  
      # preserve left frame order if how == 'left' and sort == False
      kwargs = copy.copy(kwargs)
      if how == "left":
          kwargs["sort"] = sort
      join_func = _join_functions[how]
  
      return join_func(lkey, rkey, count, **kwargs)
  
imports: import copy
  import string
  import warnings
  import numpy
  from pandas._libs import hashtable, join, lib
  import pandas.compat
  from pandas.compat import filter, lzip, map, range, zip
  from pandas.errors import MergeError
  from pandas.util._decorators import Appender, Substitution
  from pandas.core.dtypes.common import ensure_float64, ensure_int64, ensure_object, is_array_like, is_bool, is_bool_dtype, is_categorical_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_datetimelike, is_dtype_equal, is_extension_array_dtype, is_float_dtype, is_int64_dtype, is_integer, is_integer_dtype, is_list_like, is_number, is_numeric_dtype, is_object_dtype, needs_i8_conversion
  from pandas.core.dtypes.missing import isnull, na_value_for_dtype
  from pandas import Categorical, DataFrame, Index, MultiIndex, Series, Timedelta
  import pandas.core.algorithms
  from pandas.core.arrays.categorical import _recode_for_categories
  import pandas.core.common
  from pandas.core.frame import _merge_doc
  from pandas.core.internals import concatenate_block_managers, items_overlap_with_suffix
  import pandas.core.sorting
  from pandas.core.sorting import is_int64_overflow_possible
label_desc: Use image node_id 5 for calling a global function with example usage: _get_join_indexers(left_keys, right_keys, sort, how) and returns: join_func