code: def get_coeffs(expr, expand=False, epsilon=0.):
      
      if expand:
          expr = expr.expand()
      ret = defaultdict(int)
      operands = expr.operands if isinstance(expr, OperatorPlus) else [expr]
      for e in operands:
          c, t = _coeff_term(e)
          try:
              if abs(complex(c)) < epsilon:
                  continue
          except TypeError:
              pass
          ret[t] += c
      return ret
docs: Create a dictionary with all Operator terms of the expression
      (understood as a sum) as keys and their coefficients as values.
  
      The returned object is a defaultdict that return 0. if a term/key
      doesn't exist.
  
      Args:
          expr: The operator expression to get all coefficients from.
          expand: Whether to expand the expression distributively.
          epsilon: If non-zero, drop all Operators with coefficients that have
              absolute value less than epsilon.
  
      Returns:
          dict: A dictionary ``{op1: coeff1, op2: coeff2, ...}``