Заменил box-drawing юникод на ASCII (│→|, ─→-, ┼→+, …→...) — гарантированное выравнивание на всех платформах
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 8s
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 8s
This commit is contained in:
parent
bc6e57b91d
commit
14d5a13afb
1 changed files with 12 additions and 12 deletions
|
|
@ -64,11 +64,11 @@ def _pad_col(s: str, width: int) -> str:
|
||||||
w = 0
|
w = 0
|
||||||
for ch in s:
|
for ch in s:
|
||||||
cw = 2 if _display_width(ch) == 2 else 1
|
cw = 2 if _display_width(ch) == 2 else 1
|
||||||
if w + cw + 1 > width: # +1 for "…"
|
if w + cw + 3 > width: # +3 for "..."
|
||||||
break
|
break
|
||||||
result.append(ch)
|
result.append(ch)
|
||||||
w += cw
|
w += cw
|
||||||
truncated = ''.join(result) + '…'
|
truncated = ''.join(result) + '...'
|
||||||
pad_to = width - _display_width(truncated)
|
pad_to = width - _display_width(truncated)
|
||||||
return truncated + ' ' * max(0, pad_to)
|
return truncated + ' ' * max(0, pad_to)
|
||||||
return s + ' ' * (width - cur)
|
return s + ' ' * (width - cur)
|
||||||
|
|
@ -79,9 +79,9 @@ def format_pairings(pairings_data: dict, tournament_name: str) -> str:
|
||||||
rnd = pairings_data['round']
|
rnd = pairings_data['round']
|
||||||
|
|
||||||
w_board, w_name, w_pts = 2, 17, 4
|
w_board, w_name, w_pts = 2, 17, 4
|
||||||
border = '┼'.join('─' * w for w in [w_board, w_name, w_pts])
|
border = '+'.join('-' * w for w in [w_board, w_name, w_pts])
|
||||||
|
|
||||||
header = f'{_pad_col("#", w_board)}│{_pad_col("Игрок", w_name)}│{_pad_col("О", w_pts)}'
|
header = f'{_pad_col("#", w_board)}|{_pad_col("Игрок", w_name)}|{_pad_col("О", w_pts)}'
|
||||||
table_header = f'```\n{header}\n{border}\n'
|
table_header = f'```\n{header}\n{border}\n'
|
||||||
|
|
||||||
source = pairings_data.get('source', 'algorithm')
|
source = pairings_data.get('source', 'algorithm')
|
||||||
|
|
@ -107,13 +107,13 @@ def _build_table_rows(pairings: list, w_board: int, w_name: int, w_pts: int,
|
||||||
|
|
||||||
if color == 'bye':
|
if color == 'bye':
|
||||||
rows.append(
|
rows.append(
|
||||||
f'{_pad_col(str(board), w_board)}│'
|
f'{_pad_col(str(board), w_board)}|'
|
||||||
f'{_pad_col(p1.name, w_name)}│'
|
f'{_pad_col(p1.name, w_name)}|'
|
||||||
f'{_pad_col(f"{p1.points:.1f}", w_pts)}'
|
f'{_pad_col(f"{p1.points:.1f}", w_pts)}'
|
||||||
)
|
)
|
||||||
rows.append(
|
rows.append(
|
||||||
f'{_pad_col("", w_board)}│'
|
f'{_pad_col("", w_board)}|'
|
||||||
f'{_pad_col("— BYE —", w_name)}│'
|
f'{_pad_col("— BYE —", w_name)}|'
|
||||||
f'{_pad_col("", w_pts)}'
|
f'{_pad_col("", w_pts)}'
|
||||||
)
|
)
|
||||||
board += 1
|
board += 1
|
||||||
|
|
@ -127,13 +127,13 @@ def _build_table_rows(pairings: list, w_board: int, w_name: int, w_pts: int,
|
||||||
white, black = p2, p1
|
white, black = p2, p1
|
||||||
|
|
||||||
rows.append(
|
rows.append(
|
||||||
f'{_pad_col(str(board), w_board)}│'
|
f'{_pad_col(str(board), w_board)}|'
|
||||||
f'{_pad_col(white.name, w_name)}│'
|
f'{_pad_col(white.name, w_name)}|'
|
||||||
f'{_pad_col(f"{white.points:.1f}", w_pts)}'
|
f'{_pad_col(f"{white.points:.1f}", w_pts)}'
|
||||||
)
|
)
|
||||||
rows.append(
|
rows.append(
|
||||||
f'{_pad_col("", w_board)}│'
|
f'{_pad_col("", w_board)}|'
|
||||||
f'{_pad_col(black.name, w_name)}│'
|
f'{_pad_col(black.name, w_name)}|'
|
||||||
f'{_pad_col(f"{black.points:.1f}", w_pts)}'
|
f'{_pad_col(f"{black.points:.1f}", w_pts)}'
|
||||||
)
|
)
|
||||||
board += 1
|
board += 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue