docs: kdoc_yaml_file: add a representer to make strings look nicer

The strings representation is not ok, currently. Add a helper
function to improve it, and drop blank lines at beginning and
at the end of the dumps

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <422041a8b49b2609de5749092fe074b7948c32a6.1774256269.git.mchehab+huawei@kernel.org>
This commit is contained in:
Mauro Carvalho Chehab
2026-03-23 10:10:47 +01:00
committed by Jonathan Corbet
parent e896174e46
commit 6e0d7b6367

View File

@@ -126,7 +126,7 @@ class KDocTestFile():
else:
key = "rst"
expected_dict[key]= out_style.output_symbols(fname, [arg])
expected_dict[key]= out_style.output_symbols(fname, [arg]).strip()
name = f"{base_name}_{i:03d}"
@@ -148,8 +148,20 @@ class KDocTestFile():
"""
import yaml
# Helper function to better handle multilines
def str_presenter(dumper, data):
if "\n" in data:
return dumper.represent_scalar("tag:yaml.org,2002:str", data, style="|")
return dumper.represent_scalar("tag:yaml.org,2002:str", data)
# Register the representer
yaml.add_representer(str, str_presenter)
data = {"tests": self.tests}
with open(self.test_file, "w", encoding="utf-8") as fp:
yaml.safe_dump(data, fp, sort_keys=False, default_style="|",
default_flow_style=False, allow_unicode=True)
yaml.dump(data, fp,
sort_keys=False, width=120, indent=2,
default_flow_style=False, allow_unicode=True,
explicit_start=False, explicit_end=False)