build v_1.0.1
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""ASCII key/value table printing.
|
||||
|
||||
Replaces the bash original's ad-hoc `echo`/`printf` table blocks (STEP 1, 7,
|
||||
8) and the nameref-based print_map_as_table() helper (STAGE 3) with a single
|
||||
generic function. Python has no need for bash's nameref indirection -- the
|
||||
dict is just passed directly.
|
||||
|
||||
The bash version used a Unicode combining-overline row as an ersatz bottom
|
||||
border; that's purely decorative with no functional role, so it's replaced
|
||||
here with a plain ASCII divider of matching visual weight -- a deliberate,
|
||||
low-risk cosmetic judgment call, not a fidelity gap.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Iterable
|
||||
|
||||
|
||||
def print_kv_table(
|
||||
rows: dict[str, str] | Iterable[tuple[str, str]],
|
||||
col1: str,
|
||||
col2: str,
|
||||
title: str | None = None,
|
||||
width1: int = 36,
|
||||
width2: int = 36,
|
||||
) -> None:
|
||||
items = list(rows.items()) if isinstance(rows, dict) else list(rows)
|
||||
border = "=" * (width1 + width2 + 7)
|
||||
|
||||
if title:
|
||||
print(border)
|
||||
print(title)
|
||||
print(border)
|
||||
else:
|
||||
print("_" * (width1 + width2 + 7))
|
||||
|
||||
print(f"| {col1:<{width1}} | {col2:<{width2}} |")
|
||||
print("-" * (width1 + width2 + 7))
|
||||
for key, value in items:
|
||||
print(f"| {key:<{width1}} | {value:<{width2}} |")
|
||||
print("-" * (width1 + width2 + 7))
|
||||
|
||||
if title:
|
||||
print()
|
||||
Reference in New Issue
Block a user