docs: def _refine_candidate(self, width, height):
          """
          Use bottom-left packing algorithm to find a lower height for the 
          container.
  
          Arguments:
              width
              height
  
          Returns:
              tuple (width, height, PackingAlgorithm):
          """
          packer = newPacker(PackingMode.Offline, PackingBin.BFF, 
                  pack_algo=self._pack_algo, sort_algo=SORT_LSIDE,
                  rotation=self._rotation)
          packer.add_bin(width, height)
         
          for r in self._rectangles:
              packer.add_rect(*r)
  
          packer.pack()
  
          # Check all rectangles where packed
          if len(packer[0]) != len(self._rectangles):
              return None
  
          # Find highest rectangle
          new_height = max(packer[0], key=lambda x: x.top).top
          return(width, new_height, packer)