def set(self, value, custom_command=True):
        """Set the value of the widget.

        Parameters
        ==========
        value (string)
            the value of the widget, which represents a
            text (usually a multiline string, but any
            string can be passed, as long as it is
            considered valid by the validation_command
            callable).
        custom_command (boolean)
            indicates whether the custom command should be
            called after updating the value.
        """
        ### ensure value argument received is a string

        if type(value) is not str:

            ## report problem
            print("'value' received must be of 'str' type")

            ## exit method by returning early
            return

        ### changes are only performed if the new value is
        ### indeed different from the current one

        if self.value != value and self.validation_command(value):

            ### store new value
            self.value = value

            ### update image
            self.update_image()

            ### if requested, execute the custom command
            if custom_command:
                self.command()
Set the value of the widget.

        Parameters
        ==========
        value (string)
            the value of the widget, which represents a
            text (usually a multiline string, but any
            string can be passed, as long as it is
            considered valid by the validation_command
            callable).
        custom_command (boolean)
            indicates whether the custom command should be
            called after updating the value.
        
nodezator/widget/textdisplay.py