Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
table.detect_numerics,
table.precision,
sign.value,
).split("\n")
)
for row in map(list, zip_longest(*rows, fillvalue="")):
for i in range(len(row)):
row[i] = pre_process(
row[i], table.detect_numerics, table.precision, sign.value,
)
for row_ in self._clamp_row(row):
for i in range(len(table.columns)):
# str.format method doesn't work for multibyte strings
# hence, we need to manually align the texts instead
# of using the align property of the str.format method
pad_len = width[i] - termwidth(row_[i])
if align[i].value == "<":
right_pad = " " * pad_len
row_[i] = to_unicode(row_[i]) + right_pad
elif align[i].value == ">":
left_pad = " " * pad_len
row_[i] = left_pad + to_unicode(row_[i])
else:
left_pad = " " * (pad_len // 2)
right_pad = " " * (pad_len - pad_len // 2)
row_[i] = left_pad + to_unicode(row_[i]) + right_pad
content = []
for j, item in enumerate(row_):
if j > 0:
content.append(
table.columns.separator
if (mask[j - 1] or mask[j])
sign.value,
).split("\n")
)
item.maxwidth = curr_maxwidth
else:
rows.append(
pre_process(
item,
table.detect_numerics,
table.precision,
sign.value,
).split("\n")
)
for row in map(list, zip_longest(*rows, fillvalue="")):
for i in range(len(row)):
row[i] = pre_process(
row[i], table.detect_numerics, table.precision, sign.value,
)
for row_ in self._clamp_row(row):
for i in range(len(table.columns)):
# str.format method doesn't work for multibyte strings
# hence, we need to manually align the texts instead
# of using the align property of the str.format method
pad_len = width[i] - termwidth(row_[i])
if align[i].value == "<":
right_pad = " " * pad_len
row_[i] = to_unicode(row_[i]) + right_pad
elif align[i].value == ">":
left_pad = " " * pad_len
row_[i] = left_pad + to_unicode(row_[i])
else:
left_pad = " " * (pad_len // 2)
right_pad = " " * (pad_len - pad_len // 2)
row_[i] = left_pad + to_unicode(row_[i]) + right_pad
content = []
for j, item in enumerate(row_):
if j > 0:
content.append(
table.columns.separator
if (mask[j - 1] or mask[j])
else " " * termwidth(table.columns.separator)
)
content.append(item)
content = "".join(content)
content = (
table.border.left
if mask[0]
else " " * termwidth(table.border.left)
) + content
content += (
table.border.right
if mask[-1]
else " " * termwidth(table.border.right)
)
string.append(content)
return "\n".join(string)
for i in range(len(row)):
row[i] = pre_process(
row[i], table.detect_numerics, table.precision, sign.value,
)
for row_ in self._clamp_row(row):
for i in range(len(table.columns)):
# str.format method doesn't work for multibyte strings
# hence, we need to manually align the texts instead
# of using the align property of the str.format method
pad_len = width[i] - termwidth(row_[i])
if align[i].value == "<":
right_pad = " " * pad_len
row_[i] = to_unicode(row_[i]) + right_pad
elif align[i].value == ">":
left_pad = " " * pad_len
row_[i] = left_pad + to_unicode(row_[i])
else:
left_pad = " " * (pad_len // 2)
right_pad = " " * (pad_len - pad_len // 2)
row_[i] = left_pad + to_unicode(row_[i]) + right_pad
content = []
for j, item in enumerate(row_):
if j > 0:
content.append(
table.columns.separator
if (mask[j - 1] or mask[j])
else " " * termwidth(table.columns.separator)
)
content.append(item)
content = "".join(content)
content = (
table.border.left
row[i] = get_output_str(
row[i],
table.detect_numerics,
table.numeric_precision,
sign.value,
)
list_of_rows = self._get_row_within_width(row)
for row_ in list_of_rows:
for i in range(table.column_count):
# str.format method doesn't work for multibyte strings
# hence, we need to manually align the texts instead
# of using the align property of the str.format method
pad_len = width[i] - termwidth(row_[i])
if align[i].value == "<":
right_pad = " " * pad_len
row_[i] = to_unicode(row_[i]) + right_pad
elif align[i].value == ">":
left_pad = " " * pad_len
row_[i] = left_pad + to_unicode(row_[i])
else:
left_pad = " " * (pad_len // 2)
right_pad = " " * (pad_len - pad_len // 2)
row_[i] = left_pad + to_unicode(row_[i]) + right_pad
content = table.column_separator_char.join(row_)
content = table.left_border_char + content
content += table.right_border_char
string.append(content)
return "\n".join(string)
def test_display_leaderboard(self):
attributes = self.leaderboard[0]["leaderboard__schema"]["labels"]
table = BeautifulTable(max_width=150)
attributes = (
["Rank", "Participant Team"] + attributes + ["Last Submitted"]
)
attributes = list(map(lambda item: str(item), attributes))
table.column_headers = attributes
for rank, result in enumerate(self.leaderboard, start=1):
name = result["submission__participant_team__team_name"]
scores = result["result"]
last_submitted = convert_UTC_date_to_local(
result["submission__submitted_at"]
)
value = [rank, name] + scores + [last_submitted]
table.append_row(value)
def test_display_host_teams_list(self):
table = BeautifulTable(max_width=200)
attributes = ["id", "team_name", "created_by"]
columns_attributes = [
"ID",
"Team Name",
"Created By",
"Members",
"Team URL",
]
table.column_headers = columns_attributes
for team in self.host_teams:
values = list(map(lambda item: team[item], attributes))
members = ", ".join(
map(lambda member: member["user"], team["members"])
)
values.append(members)
if team["team_url"]:
table_width = self._width
lpw, rpw = self.columns.padding_left, self.columns.padding_right
pad_widths = [(lpw[i] + rpw[i]) for i in range(len(self.columns))]
maxwidths = [0 for index in range(len(self.columns))]
offset = table_width - sum(self.columns.width) + sum(pad_widths)
self._maxwidth = max(self._maxwidth, offset + len(self.columns))
for index, header in enumerate(self.columns.header):
max_length = 0
for i in pre_process(
header, self.detect_numerics, self.precision, self.sign.value
).split("\n"):
output_str = pre_process(
i, self.detect_numerics, self.precision, self.sign.value,
)
max_length = max(max_length, termwidth(output_str))
maxwidths[index] += max_length
for index, column in enumerate(zip(*self._data)):
max_length = maxwidths[index]
for i in column:
for j in pre_process(
i, self.detect_numerics, self.precision, self.sign.value
).split("\n"):
output_str = pre_process(
j,
self.detect_numerics,
self.precision,
self.sign.value,
)
max_length = max(max_length, termwidth(output_str))
maxwidths[index] = max_length
if align is None:
align = table.columns.alignment
if mask is None:
mask = [True] * len(table.columns)
lpw, rpw = self._get_padding()
string = []
for i, item in enumerate(self._value):
if isinstance(item, type(table)):
# temporarily change the max width of the table
curr_maxwidth = item.maxwidth
item.maxwidth = width[i] - lpw[i] - rpw[i]
rows.append(
pre_process(
item,
table.detect_numerics,
table.precision,
sign.value,
).split("\n")
)
item.maxwidth = curr_maxwidth
else:
rows.append(
pre_process(
item,
table.detect_numerics,
table.precision,
sign.value,
).split("\n")
)
def _compute_width(self):
"""Calculate width of column automatically based on data."""
table_width = self._width
lpw, rpw = self.columns.padding_left, self.columns.padding_right
pad_widths = [(lpw[i] + rpw[i]) for i in range(len(self.columns))]
maxwidths = [0 for index in range(len(self.columns))]
offset = table_width - sum(self.columns.width) + sum(pad_widths)
self._maxwidth = max(self._maxwidth, offset + len(self.columns))
for index, header in enumerate(self.columns.header):
max_length = 0
for i in pre_process(
header, self.detect_numerics, self.precision, self.sign.value
).split("\n"):
output_str = pre_process(
i, self.detect_numerics, self.precision, self.sign.value,
)
max_length = max(max_length, termwidth(output_str))
maxwidths[index] += max_length
for index, column in enumerate(zip(*self._data)):
max_length = maxwidths[index]
for i in column:
for j in pre_process(
i, self.detect_numerics, self.precision, self.sign.value
).split("\n"):
output_str = pre_process(
j,
self.detect_numerics,
self.precision,
self.sign.value,