docs: def _split(self, rect):
          """
          Split all max_rects intersecting the rectangle rect into up to
          4 new max_rects.
          
          Arguments:
              rect (Rectangle): Rectangle
  
          Returns:
              split (Rectangle list): List of rectangles resulting from the split
          """
          max_rects = collections.deque()
  
          for r in self._max_rects:
              if r.intersects(rect):
                  max_rects.extend(self._generate_splits(r, rect))
              else:
                  max_rects.append(r)
  
          # Add newly generated max_rects
          self._max_rects = list(max_rects)