<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def format_terminal_row(headers, example_row):
 """Uses headers and a row of example data to generate a format string for printing a single row of data. Args: headers (tuple of strings):
 The headers for each column of data example_row (tuple):
 A representative tuple of strings or ints Returns string: A format string with a size for each column """


    def format_column(col):
        if isinstance(col, str):
            return '{{:{w}.{w}}}'
        return '{{:<{w}}}'

    widths = [max(len(h), len(str(d))) for h, d in zip(headers, example_row)]

    # Truncate last column to fit terminal width
    original_last_width = widths[-1]
    if sys.stdout.isatty():
        widths[-1] = max(
            len(headers[-1]),
            # console width - width of other columns and gutters - 3 for '...'
            tty.width() - sum(w + 2 for w in widths[0:-1]) - 3)

    # Build format string
    cols = [format_column(c).format(w=w) for c, w in zip(example_row, widths)]
    format_string = '  '.join(cols)
    if original_last_width > widths[-1]:
        format_string += '...'

    return format_string