code: def wrap(self, availWidth, availHeight):
          
  
          # memorize available space
          self.avWidth = availWidth
          self.avHeight = availHeight
  
          logger.debug("*** wrap (%f, %f)", availWidth, availHeight)
  
          if not self.text:
              logger.debug("*** wrap (%f, %f) needed", 0, 0)
              return 0, 0
  
          # Split lines
          width = availWidth
          self.splitIndex = self.text.splitIntoLines(width, availHeight)
  
          self.width, self.height = availWidth, self.text.height
  
          logger.debug("*** wrap (%f, %f) needed, splitIndex %r", self.width, self.height, self.splitIndex)
  
          return self.width, self.height
docs: Determine the rectangle this paragraph really needs.