code: def _bool_arith_check(
      op_str,
      a,
      b,
      not_allowed=frozenset(("/", "//", "**")),
      unsupported=None,
  ):
      if unsupported is None:
          unsupported = {"+": "|", "*": "&", "-": "^"}
  
      if _has_bool_dtype(a) and _has_bool_dtype(b):
          if op_str in unsupported:
              warnings.warn(
                  "evaluating in Python space because the {op!r} "
                  "operator is not supported by numexpr for "
                  "the bool dtype, use {alt_op!r} instead".format(
                      op=op_str, alt_op=unsupported[op_str]
                  )
              )
              return False
  
          if op_str in not_allowed:
              raise NotImplementedError(
                  "operator {op!r} not implemented for "
                  "bool dtypes".format(op=op_str)
              )
      return True
  
file_path: catboost/contrib/python/pandas/py2/pandas/core/computation/expressions.py
imports: import warnings
  import numpy
  from pandas.core.dtypes.generic import ABCDataFrame
  import pandas.core.common
  from pandas.core.computation.check import _NUMEXPR_INSTALLED
  from pandas.core.config import get_option
label_desc: Use image node_id 9 for calling a global function with example usage: _bool_arith_check(op_str, a, b, not_allowed, unsupported) and returns: True, False