fix: Stop adding unwanted newlines in multiline strings
This patch set fixes an tools/updater.py YAML export issue in which pyyaml is adding unwanted (multiple) newlines in multiline strings in the output. In other words, currently, tools/updater.py keeps injecting additional newline characters in multiline certificates, such that each newline is rendered, in effect, as two newlines. For example: -----BEGIN CERTIFICATE----- MIIDSDCCAjCgAwIBAgIUegkh/antB1XyDVHdP5dv+0MZyBcwDQYJKoZIhvcNAQEL BQAwKjETMBEGA1UEChMKS3ViZXJuZXRlczETMBEGA1UEAxMKa3ViZXJuZXRlczAe <snip> Currently renders as: -----BEGIN CERTIFICATE----- MIIDSDCCAjCgAwIBAgIUegkh/antB1XyDVHdP5dv+0MZyBcwDQYJKoZIhvcNAQEL BQAwKjETMBEGA1UEChMKS3ViZXJuZXRlczETMBEGA1UEAxMKa3ViZXJuZXRlczAe <snip> This patch set adds code to the updater.py tool to use the solution prescribed in [0] to force pyyaml to ensure that the rendered output for such multiline strings matches the original input. Change-Id: I8b5c5166a0a1b3d945281addd4f562368e1907c3
This commit is contained in:
parent
2e31790ace
commit
5a93c30c85
@ -92,6 +92,26 @@ image_repo_status = {}
|
||||
dict_path = None
|
||||
|
||||
|
||||
def __represent_multiline_yaml_str():
|
||||
"""Compel ``yaml`` library to use block style literals for multi-line
|
||||
strings to prevent unwanted multiple newlines.
|
||||
|
||||
"""
|
||||
|
||||
yaml.SafeDumper.org_represent_str = yaml.SafeDumper.represent_str
|
||||
|
||||
def repr_str(dumper, data):
|
||||
if '\n' in data:
|
||||
return dumper.represent_scalar(
|
||||
'tag:yaml.org,2002:str', data, style='|')
|
||||
return dumper.org_represent_str(data)
|
||||
|
||||
yaml.add_representer(str, repr_str, Dumper=yaml.SafeDumper)
|
||||
|
||||
|
||||
__represent_multiline_yaml_str()
|
||||
|
||||
|
||||
def inverse_dict(dic):
|
||||
"""Accepts dictionary, returns dictionary where keys become values,
|
||||
and values become keys"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user