def on_mouse_motion(self, event):
        """Set text on labels according to mouse position.

        That is, if mouse hovers a color widget, shows
        info about that color, otherwise reset the labels
        to their default values.

        Method compliant with the mouse action protocol.

        Parameters
        ==========
        event (pygame.event.Event instance)
            event whose event.type is MOUSEMOTION;
            it is used to retrieve the position of the
            mouse when it moved, stored in its 'pos'
            attribute.
        """
        ### retrieve the mouse position
        mouse_pos = event.pos

        ### iterate over the color widgets, looking for
        ### one hovered by the mouse

        for color_widget in self.color_widgets:

            ## if a color widget hovered by the mouse is
            ## found, set the text of the labels to display
            ## information about its color, highlight it
            ## by drawing an outline around and break out
            ## of the "for loop"

            if color_widget.rect.collidepoint(mouse_pos):

                ## set text of labels

                # retrieve color info
                info = self.color_info[color_widget.color]

                # iterate over labels and respective
                # titles/keys, setting the text of the
                # label

                for label, title, key in zip(
                    self.labels,
                    COLOR_INFO_TITLES,
                    COLOR_INFO_KEYS,
                ):
                    label.set(f'{title.ljust(MAX_CHAR_NO, " ")}:' + f" {info[key]}")

                ##
                self.draw_once()

                ## draw outline around color widget

                draw_rect(
                    SCREEN,
                    color_widget.contrasting_color,
                    color_widget.rect,
                    2,
                )

                ## then return
                return

        ### if reach this point in the method, then a
        ### hovered widget wasn't found, so set the
        ### text of the labels to their default values

        ## set all labels to '' (no text)
        for label in self.labels:
            label.set("")

        ## set the last label to display the default
        ## message
        self.labels[-1].set(DEFAULT_LABEL_MESSAGE)

        ###
        self.draw_once()
Set text on labels according to mouse position.

        That is, if mouse hovers a color widget, shows
        info about that color, otherwise reset the labels
        to their default values.

        Method compliant with the mouse action protocol.

        Parameters
        ==========
        event (pygame.event.Event instance)
            event whose event.type is MOUSEMOTION;
            it is used to retrieve the position of the
            mouse when it moved, stored in its 'pos'
            attribute.
        
nodezator/colorsman/picker/op.py