def METHOD_NAME(
    self, box: Box, context: DrawContext, bounding_box: Rectangle
) -> None:
    """Draw the vertical partitions as connected swimlanes.
    The partitions are open on the bottom. We divide the total size
    by the total number of partitions and space them evenly.
    """
    cr = context.cairo
    cr.set_line_width(context.style["line-width"])
    partitions = self.partition
    if partitions:
        partition_width = bounding_box.width / len(partitions)
    else:
        partition_width = bounding_box.width / 2
    padding_top, padding_right, padding_bottom, padding_left = context.style[
        "padding"
    ]
    layout = Layout(
        font=context.style,
        width=partition_width - padding_left - padding_right,
    )
    header_height = 0.0
    for num, partition in enumerate(partitions):
        cr.move_to(partition_width * num, 0)
        cr.line_to(partition_width * num, bounding_box.height)
        layout.set(
            text=f"{partition.name}: {partition.represents.name}"
            if isinstance(partition.represents, UML.NamedElement)
            else partition.name
        )
        cr.move_to(partition_width * num + padding_left, padding_top)
        layout.show_layout(cr)
        _, h = layout.size()
        header_height = max(h, header_height)
    cr.move_to(bounding_box.width, 0)
    cr.line_to(bounding_box.width, bounding_box.height)
    header_height += padding_top + padding_bottom
    cr.move_to(0, 0)
    cr.line_to(0 + bounding_box.width, 0)
    cr.move_to(0, header_height)
    cr.line_to(0 + bounding_box.width, header_height)
    stroke(context, fill=True)