HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //usr/lib/python2.7/dist-packages/cloudinit/simpletable.py
try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO


class SimpleTable:
    """
    a minimal implementation of PrettyTable
    for distribution with cloud-init
    """

    def __init__(self, fields):
        self.fields = fields
        self.rows = []

        # initialize list of 0s the same length
        # as the number of fields
        self.column_widths = [0] * len(self.fields)
        self.update_column_widths(fields)

    def update_column_widths(self, values):
        for i, value in enumerate(values):
            self.column_widths[i] = max(
                len(value),
                self.column_widths[i])

    def add_row(self, values):
        if len(values) > len(self.fields):
            raise TypeError('too many values')
        values = [str(value) for value in values]
        self.rows.append(values)
        self.update_column_widths(values)

    def __repr__(self):
        out = StringIO()

        for i, column in enumerate(self.fields):
            out.write(column.center(self.column_widths[i] + 2))

        for row in self.rows:
            out.write('\n')
            for i, column in enumerate(row):
                out.write(column.center(self.column_widths[i] + 2))

        result = out.getvalue()
        out.close()
        return result

    def get_string(self):
        return repr(self)