def draw(self):
        """Draw on self.image, then draw it on screen."""
        ### reference image attribute in local variables
        image = self.image

        ### clean self.image
        image.blit(self.background, (0, 0))

        ### draw lines
        self.draw_lines()

        ### draw a border around self.image, then draw
        ### self.image on the screen

        draw_border(image, thickness=2)
        super().draw()

        ### execute drawing routine for caption and header

        self.caption_drawing_routine()
        self.header_drawing_routine()

        ### draw the help icon and, if it is hovered,
        ### the help text

        self.help_icon.draw()

        if self.hovering_help_icon:
            self.help_text_obj.draw()

        ### finally update the screen
        SERVICES_NS.update_screen()
Draw on self.image, then draw it on screen.
nodezator/textman/viewer/op.py