Заменил 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
|
||||
for ch in s:
|
||||
cw = 2 if _display_width(ch) == 2 else 1
|
||||
if w + cw + 1 > width: # +1 for "…"
|
||||
if w + cw + 3 > width: # +3 for "..."
|
||||
break
|
||||
result.append(ch)
|
||||
w += cw
|
||||
truncated = ''.join(result) + '…'
|
||||
truncated = ''.join(result) + '...'
|
||||
pad_to = width - _display_width(truncated)
|
||||
return truncated + ' ' * max(0, pad_to)
|
||||
return s + ' ' * (width - cur)
|
||||
|
|
@ -79,9 +79,9 @@ def format_pairings(pairings_data: dict, tournament_name: str) -> str:
|
|||
rnd = pairings_data['round']
|
||||
|
||||
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'
|
||||
|
||||
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':
|
||||
rows.append(
|
||||
f'{_pad_col(str(board), w_board)}│'
|
||||
f'{_pad_col(p1.name, w_name)}│'
|
||||
f'{_pad_col(str(board), w_board)}|'
|
||||
f'{_pad_col(p1.name, w_name)}|'
|
||||
f'{_pad_col(f"{p1.points:.1f}", w_pts)}'
|
||||
)
|
||||
rows.append(
|
||||
f'{_pad_col("", w_board)}│'
|
||||
f'{_pad_col("— BYE —", w_name)}│'
|
||||
f'{_pad_col("", w_board)}|'
|
||||
f'{_pad_col("— BYE —", w_name)}|'
|
||||
f'{_pad_col("", w_pts)}'
|
||||
)
|
||||
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
|
||||
|
||||
rows.append(
|
||||
f'{_pad_col(str(board), w_board)}│'
|
||||
f'{_pad_col(white.name, w_name)}│'
|
||||
f'{_pad_col(str(board), w_board)}|'
|
||||
f'{_pad_col(white.name, w_name)}|'
|
||||
f'{_pad_col(f"{white.points:.1f}", w_pts)}'
|
||||
)
|
||||
rows.append(
|
||||
f'{_pad_col("", w_board)}│'
|
||||
f'{_pad_col(black.name, w_name)}│'
|
||||
f'{_pad_col("", w_board)}|'
|
||||
f'{_pad_col(black.name, w_name)}|'
|
||||
f'{_pad_col(f"{black.points:.1f}", w_pts)}'
|
||||
)
|
||||
board += 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue