| Server IP : 103.88.176.108 / Your IP : 216.73.216.82 Web Server : Apache/2.4.41 (Ubuntu) System : Linux webserver 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3/dist-packages/cloudinit/ |
Upload File : |
# Copyright (C) 2017 Amazon.com, Inc. or its affiliates
#
# Author: Ethan Faust <efaust@amazon.com>
# Author: Andrew Jorgensen <ajorgens@amazon.com>
#
# This file is part of cloud-init. See LICENSE file for license information.
class SimpleTable(object):
"""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 _hdiv(self):
"""Returns a horizontal divider for the table."""
return '+' + '+'.join(
['-' * (w + 2) for w in self.column_widths]) + '+'
def _row(self, row):
"""Returns a formatted row."""
return '|' + '|'.join(
[col.center(self.column_widths[i] + 2)
for i, col in enumerate(row)]) + '|'
def __str__(self):
"""Returns a string representation of the table with lines around.
+-----+-----+
| one | two |
+-----+-----+
| 1 | 2 |
| 01 | 10 |
+-----+-----+
"""
lines = [self._hdiv(), self._row(self.fields), self._hdiv()]
lines += [self._row(r) for r in self.rows] + [self._hdiv()]
return '\n'.join(lines)
def get_string(self):
return self.__str__()