def create_buttons(self):
        """Build buttons to use/reuse in reports."""
        ### create report related buttons

        self.buttons = (

            List2D(

                Button.from_text(
                    text=text,
                    command=operation,
                    **BUTTON_SETTINGS,
                )

                for text, operation in (
                    ("Export as .html", self.export_html),
                    ("Export as .pyl", self.export_pyl),
                    ("Export as .png", self.export_png),
                    ("Exit report", self.exit),
                )

            )

        )

        ## apply depth finish

        for button in self.buttons:
            draw_depth_finish(button.image)

        ## align and position buttons

        self.buttons.rect.snap_rects_ip(
            retrieve_pos_from='midright',
            assign_pos_to='midleft',
            offset_pos_by=(10, 0),
        )

        self.buttons.rect.bottomright = self.rect.move(-10, -10).bottomright

        ## store as widgets
        self.widgets.extend(self.buttons)
Build buttons to use/reuse in reports.
nodezator/systemtesting/reportviewer/__init__.py