def set(self, value, custom_command=True):
        """Set the current value of this OptionTray instance.

        Parameters
        ==========
        value (any python object)
            value to which the widget will be set. It must
            be equal to one of the available options in the
            list from the "options" attribute;
            no type checking is performed, since the items
            of the option list are already type checked;
        custom_command (boolean)
            indicates whether the custom command must be
            executed or not after updating the value.
        """
        ### if the value is already set, exit the method by
        ### returning, since choosing a value which is
        ### already chosen isn't considered a change at all
        if self.value == value:
            return

        ### if value received isn't within allowed values
        ### (values inside list in "options" attribute),
        ### report and cancel this operation by returning

        if value not in self.options:

            print("'value' isn't among available options")
            return

        ### if we reach this point in the method, then we
        ### can safely set the new value and perform other
        ### related operations

        ## assign the value to the "value" attribute
        self.value = value

        ## update image so it corresponds with value
        self.update_image()

        ## execute custom command if requested
        if custom_command:
            self.command()
Set the current value of this OptionTray instance.

        Parameters
        ==========
        value (any python object)
            value to which the widget will be set. It must
            be equal to one of the available options in the
            list from the "options" attribute;
            no type checking is performed, since the items
            of the option list are already type checked;
        custom_command (boolean)
            indicates whether the custom command must be
            executed or not after updating the value.
        
nodezator/widget/optiontray/op.py