def set(self, rc=None, index=None, *args, **kwargs):
        """If rc is specified (either 'row' or 'col') then it is assumes that
        args (if given) represents values which will be set into the
        subsequent columns (if row is specified) or rows (for col).
        If index is not None and args is not given, then it will return the
        value(s) for the cell(s) specified.

        If kwargs is given, assumes that each key in kwargs is a index in this
        table and sets the specified index to the associated value. Table
        validation will not be triggered via this method.

        Note that the table must have an associated array (defined through the
        variable option) in order to this work."""
        if not args or index is not None:
            if rc:
                args = (rc, index)
            else:
                args = (index, )
            return self.tk.call(self._w, 'set', *args)

        if rc is None:
            args = tkinter._flatten(list(kwargs.items()))
            self.tk.call(self._w, 'set', *args)
        else:
            self.tk.call(self._w, 'set', rc, index, args)
dataset/ETHPy150Open Arelle/Arelle/arelle/TkTableWrapper.py/Table.set/operator `and` -> `or`