code: def _conditional_join_type_check(
      left_column: pd.Series,
      right_column: pd.Series,
      op: str,
      use_numba: bool,
  ) -> None:
      """
      Dtype check for columns in the join.
      Checks are not conducted for the equi-join columns,
      except when use_numba is set to True.
      """
  
      if (
          ((op != _JoinOperator.STRICTLY_EQUAL.value) or use_numba)
          and not is_numeric_dtype(left_column)
          and not is_datetime64_dtype(left_column)
          and not is_timedelta64_dtype(left_column)
      ):
          raise TypeError(
              "Only numeric, timedelta and datetime types "
              "are supported in a non equi-join, "
              "or if use_numba is set to True. "
              f"{left_column.name} in condition "
              f"({left_column.name}, {right_column.name}, {op}) "
              f"has a dtype {left_column.dtype}."
          )
  
      if (
          (op != _JoinOperator.STRICTLY_EQUAL.value) or use_numba
      ) and not is_dtype_equal(left_column, right_column):
          raise TypeError(
              f"Both columns should have the same type - "
              f"'{left_column.name}' has {left_column.dtype} type;"
              f"'{right_column.name}' has {right_column.dtype} type."
          )
  
      return None
  
imports: from __future__ import annotations
  import operator
  import warnings
  from typing import Any, Hashable, Literal, Optional, Union
  import numpy
  import pandas
  import pandas_flavor
  from pandas.api.types import is_datetime64_dtype, is_dtype_equal, is_extension_array_dtype, is_numeric_dtype, is_timedelta64_dtype
  from pandas.core.reshape.merge import _MergeOperation
  from janitor.functions.utils import _generic_func_cond_join, _JoinOperator, _keep_output, col, greater_than_join_types, less_than_join_types
  from janitor.utils import check, check_column, find_stack_level
label_desc: Use image node_id 4 for calling a global function with example usage: _conditional_join_type_check(left_column, right_column, op, use_numba) and returns: None