def draw_once(self):
        """Draw picker and objects it comprises."""
        ### clean screen
        draw_cached_screen_state()

        ### draw a semitransparent background behind
        ### an inflated union of the areas occupied
        ### by the caption, color widgets and buttons

        inflated_union = self.caption.rect.unionall(
            [
                self.color_widgets.rect,
                self.buttons.rect,
            ]
        ).inflate(16, 16)

        blit_on_screen(
            RECT_SURF_MAP[(*inflated_union.size, (30, 30, 30, 200))],
            inflated_union,
        )

        ### draw the caption
        self.caption.draw()

        ### draw each widget, also drawing its tick surface
        ### at the same spot if its color is chosen

        for color_widget in self.color_widgets:

            ## draw widget
            color_widget.draw()

            ## if widget's 'chosen' flag is on,
            ## draw its tick surface at the same spot
            ## as its rect

            if color_widget.chosen:

                blit_on_screen(color_widget.tick_surf, color_widget.rect)

        ### draw the buttons
        self.buttons.draw()

        ### draw a semitransparent background behind the
        ### labels and the labels themselves

        blit_on_screen(
            RECT_SURF_MAP[(*self.labels.rect.size, WINDOW_BG)], self.labels.rect
        )

        self.labels.draw()
Draw picker and objects it comprises.
nodezator/colorsman/picker/op.py