class_docstr: Called when a bad binary operation is encountered.
  
  Parameters
  ----------
  op : str
      The attempted operation
  left : zipline.computable.Term
      The left hand side of the operation.
  right : zipline.computable.Term
      The right hand side of the operation.
class_docstr_tok: ["Called","when","a","bad","binary","operation","is","encountered",".","Parameters","--","--","--","--","--","op",":","str","The","attempted","operation","left",":","zipline.computable.Term","The","left","hand","side","of","the","operation",".","right",":","zipline.computable.Term","The","right","hand","side","of","the","operation","."]
code: def __init__(self, op, left, right):
      super(BadBinaryOperator, self).__init__(
          "Can't compute {left} {op} {right}".format(
              op=op,
              left=type(left).__name__,
              right=type(right).__name__,
          )
      )
  
imports: import re
  from itertools import chain
  from numbers import Number
  import numexpr
  from numexpr.necompiler import getExprNames
  from numpy import full, inf
  from zipline.pipeline.term import Term, ComputableTerm
  from zipline.utils.numpy_utils import bool_dtype
label_desc: Use image node_id 1 to create a new BadBinaryOperator object from inherited base classes: TypeError with example: obj = BadBinaryOperator(op, left, right)