def METHOD_NAME(self, screw_hole=3.5, hole_renderer=None, move="right"):
    width = (
        self.columns * (self.lid_size_with_margin + self.column_spacing)
        - self.column_spacing
        + 2 * self.outer_margin
    )
    height = self.rows * self.lid_size + 2 * self.outer_margin
    if self.move(width, height, move, True):
        return
    with self.saved_context():
        self.moveTo(self.corner_radius)
        self.polyline(
            width - 2 * self.corner_radius,
            (90, self.corner_radius),
            height - 2 * self.corner_radius,
            (90, self.corner_radius),
            width - 2 * self.corner_radius,
            (90, self.corner_radius),
            height - 2 * self.corner_radius,
            (90, self.corner_radius),
        )
    if hole_renderer:
        for col in range(self.columns):
            with self.saved_context():
                self.moveTo(
                    self.outer_margin + col * (self.lid_size_with_margin + self.column_spacing) - self.burn,
                    self.outer_margin + (self.rows - 0.5) * self.lid_size + self.burn,
                    -90,
                )
                hole_renderer()
    if screw_hole:
        for x in [self.screw_margin, width - self.screw_margin]:
            for y in [self.screw_margin, height - self.screw_margin]:
                self.hole(x, y + self.burn, d=screw_hole)
    self.move(width, height, move)