Reference: aboutcode-org/scancode-toolkit#3219
We use pyyaml as YAML dumper with unicode support set to True, and pyyaml also fails to load yaml objects which has text with irregular whitespace in them. An example:
Text at path:
Apache License
Version 2.0, January 2004
TERMS AND CONDITIONS
We run the following to create a yaml file:
license_location = test_env.get_test_loc('yaml/simple-license.txt')
with io.open(license_location, encoding='utf-8') as res:
license_text = res.read()
data = {}
data["license_text"] = license_text
yaml_string = saneyaml.dump(data, indent=4)
yaml_location = test_env.get_test_loc('yaml/simple-license.yaml')
with io.open(yaml_location, 'w') as o:
o.write(yaml_string)
Now on this, both loaded_yaml = saneyaml.load(yaml_string) and loaded_yaml = yaml.load(yaml_string) and yaml.CSafeLoader(yaml_string).get_data() fails with the same error as the referenced issue above.
We need to update the dump function in Saneyaml to modify the dumper to check for irregular whitespace and only dump valid yaml.
Reference: aboutcode-org/scancode-toolkit#3219
We use pyyaml as YAML dumper with unicode support set to True, and pyyaml also fails to load yaml objects which has text with irregular whitespace in them. An example:
Text at path:
We run the following to create a yaml file:
Now on this, both
loaded_yaml = saneyaml.load(yaml_string)andloaded_yaml = yaml.load(yaml_string)andyaml.CSafeLoader(yaml_string).get_data()fails with the same error as the referenced issue above.We need to update the dump function in Saneyaml to modify the dumper to check for irregular whitespace and only dump valid yaml.