Skip to content

Saneyaml doesn't support whitespaces/empty lines #9

Description

@AyanSinhaMahapatra

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions