def add_row(self, data: list):
<EOL>if self.headers and data:<EOL><INDENT>if len(self.headers) != len(data):<EOL><INDENT>raise ValueError<EOL><DEDENT><DEDENT>offset = <NUM_LIT:0> if not self.headers else <NUM_LIT:1><EOL>row = list()<EOL>for i, e in enumerate(data):<EOL><INDENT>if not isinstance(e, tuple):<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>label, command = e<EOL>button = tk.Button(self, text=str(label), relief=tk.RAISED,<EOL>command=command,<EOL>padx=self.padding,<EOL>pady=self.padding)<EOL>button.grid(row=len(self._rows) + offset, column=i, sticky='<STR_LIT>')<EOL>row.append(button)<EOL><DEDENT>self._rows.append(row)<EOL>
Add a row of buttons each with their own callbacks to the
current widget.  Each element in `data` will consist of a
label and a command.
:param data: a list of tuples of the form ('label', <callback>)
:return: None