Match the loader's two-row floor, and record that an extension may name two media types
Tests / vet + fmt + tests (pull_request) Successful in 1m25s
Tests / Gitea release from CHANGELOG.md (pull_request) Has been skipped
Tests / vet + fmt + tests (push) Successful in 7s
Tests / Gitea release from CHANGELOG.md (push) Successful in 5s

This commit was merged in pull request #22.
This commit is contained in:
2026-09-18 22:03:09 +02:00
parent ecc0b475ae
commit 17d1703806
3 changed files with 10 additions and 6 deletions
+3 -3
View File
@@ -5,14 +5,14 @@ from pathlib import Path
def write(path, columns, rows):
"""Write the rows as a TSV; the table needs a row, and every cell must be non-empty and free of tabs, newlines and braces."""
"""Write the rows as a TSV; the table needs two rows, and every cell must be non-empty and free of tabs, newlines and braces."""
lines = ["\t".join(columns)]
for row in rows:
cells = [str(row[c]) for c in columns]
if not all(cells) or any(re.search(r"[\t\n{}]", c) for c in cells):
raise ValueError(f"{path}: a cell is empty or holds a tab, newline or brace: {row}")
lines.append("\t".join(cells))
if len(lines) < 2:
raise ValueError(f"{path}: has no rows below its header; a table is at least two rows")
if len(lines) < 3:
raise ValueError(f"{path}: has {len(lines) - 1} rows below its header; a table is at least two rows")
Path(path).write_text("\n".join(lines) + "\n", encoding="utf-8")
print(f"{path}: {len(lines) - 1} rows", file=sys.stderr)