def setup_formatters(self, *args):
formatters = []<EOL>col_offset = <NUM_LIT:0><EOL>if self.rownum:<EOL><INDENT>formatters.append(fmt.RowNumberFormatter.setup(<NUM_LIT:0>))<EOL>col_offset += <NUM_LIT:1><EOL><DEDENT>if self.timestamp:<EOL><INDENT>formatters.append(fmt.DatetimeFormatter.setup(<EOL>datetime.datetime.now(),<EOL>fmt='<STR_LIT>'.format,<EOL>col_width=<NUM_LIT>))<EOL>col_offset += <NUM_LIT:1><EOL><DEDENT>if self.time_diff:<EOL><INDENT>formatters.append(fmt.TimeDeltaFormatter.setup(<NUM_LIT:0>))<EOL>col_offset += <NUM_LIT:1><EOL><DEDENT>for coli, value in enumerate(args):<EOL><INDENT>fmt_class = type2fmt.get(type(value), fmt.GenericFormatter)<EOL>kwargs = {}<EOL>if self.default_colwidth is not None:<EOL><INDENT>kwargs['<STR_LIT>'] = self.default_colwidth<EOL><DEDENT>if coli in self.column_widths:<EOL><INDENT>kwargs['<STR_LIT>'] = self.column_widths[coli]<EOL><DEDENT>elif self.columns and self.columns[coli + col_offset] in self.column_widths:<EOL><INDENT>kwargs['<STR_LIT>'] = self.column_widths[self.columns[coli + col_offset]]<EOL><DEDENT>if fmt_class == fmt.FloatFormatter and self.float_format is not None:<EOL><INDENT>kwargs['<STR_LIT>'] = self.float_format<EOL><DEDENT>if coli in self.column_formatters:<EOL><INDENT>kwargs['<STR_LIT>'] = self.column_formatters[coli]<EOL><DEDENT>elif self.columns and self.columns[coli + col_offset] in self.column_formatters:<EOL><INDENT>kwargs['<STR_LIT>'] = self.column_formatters[self.columns[coli + col_offset]]<EOL><DEDENT>formatter = fmt_class.setup(value, **kwargs)<EOL>formatters.append(formatter)<EOL><DEDENT>self.formatters = formatters<EOL>
Setup formatters by observing the first row.

        Args:
            *args: row cells