class_docstr: Extension of the stringPict class that knows about basic math applications,
  optimizing double minus signs.
  
  "Binding" is interpreted as follows::
  
      ATOM this is an atom: never needs to be parenthesized
      FUNC this is a function application: parenthesize if added (?)
      DIV  this is a division: make wider division if divided
      POW  this is a power: only parenthesize if exponent
      MUL  this is a multiplication: parenthesize if powered
      ADD  this is an addition: parenthesize if multiplied or powered
      NEG  this is a negative number: optimize if added, parenthesize if
           multiplied or powered
      OPEN this is an open object: parenthesize if added, multiplied, or
           powered (example: Piecewise)
class_docstr_tok: ["Extension","of","the","stringPict","class","that","knows","about","basic","math","applications",",","optimizing","double","minus","signs",".","``","Binding","''","is","interpreted","as","follows",":",":","ATOM","this","is","an","atom",":","never","needs","to","be","parenthesized","FUNC","this","is","a","function","application",":","parenthesize","if","added","(","?",")","DIV","this","is","a","division",":","make","wider","division","if","divided","POW","this","is","a","power",":","only","parenthesize","if","exponent","MUL","this","is","a","multiplication",":","parenthesize","if","powered","ADD","this","is","an","addition",":","parenthesize","if","multiplied","or","powered","NEG","this","is","a","negative","number",":","optimize","if","added",",","parenthesize","if","multiplied","or","powered","OPEN","this","is","an","open","object",":","parenthesize","if","added",",","multiplied",",","or","powered","(","example",":","Piecewise",")"]
docstr: Make a pretty power.
          
docstr_tok: ["Make","a","pretty","power","."]
code: def __pow__(self, b):
      """Make a pretty power."""
      a = self
      use_inline_func_form = False
      if b.binding == prettyForm.POW:
          b = stringPict(*b.parens())
      if a.binding > prettyForm.FUNC:
          a = stringPict(*a.parens())
      elif a.binding == prettyForm.FUNC:
          # heuristic for when to use inline power
          if b.height() > 1:
              a = stringPict(*a.parens())
          else:
              use_inline_func_form = True
  
      if use_inline_func_form:
          #         2
          #  sin  +   + (x)
          b.baseline = a.prettyFunc.baseline + b.height()
          func = stringPict(*a.prettyFunc.right(b))
          return prettyForm(*func.right(a.prettyArgs))
      else:
          #      2    <-- top
          # (x+y)     <-- bot
          top = stringPict(*b.left(" " * a.width()))
          bot = stringPict(*a.right(" " * b.width()))
  
      return prettyForm(binding=prettyForm.POW, *bot.above(top))
  
imports: import shutil
  from .pretty_symbology import hobj, vobj, xsym, xobj, pretty_use_unicode, line_width, center
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 7 for calling the prettyForm obj's underlying member method code with example usage: obj.__pow__(b) and returns: prettyForm, prettyForm