code: def to_pretty_formula(self) -> str:
      if self.op.name in ["+", "-", "*", "/"]:
          left = self.children[0].to_pretty_formula()
          right = self.children[1].to_pretty_formula()
          return f"{left} {self.op.name} {right}"
      else:
          result = [self.op.name, "("]
          for i in range(len(self.children)):
              string_i = self.children[i].to_pretty_formula()
              result.append(string_i)
              result.append(", ")
          result.pop()
          result.append(")")
          return "".join(result)
  
imports: import hashlib
  import itertools
  from typing import Dict, List, Optional, Tuple, Union
  import numpy
  import pandas
  from pandas._typing import DtypeObj
  from upgini.autofe.all_operands import find_op
  from upgini.autofe.operand import Operand, PandasOperand
label_desc: Use image node_id 15 for calling the Feature obj's underlying member method code with example usage: obj.to_pretty_formula() and returns: left, str, self, str, right, str