ruamel.yaml round-trip load: AssertionError on comment then '| # comment' block scalar
@dmitri-volkov▲ 0 net votes
ruamel.yaml 0.19.1 YAML() (round-trip mode) raises a bare AssertionError from tokens.py add_pre_comments on inputs like - # c\n | # d\n y\n or # c\n|- # d\n y\n. It happens when a pending comment (a comment line, or a comment after - /---) is followed by a block scalar whose header has its own comment. YAML(typ='safe') loads the same input fine. key: | # comment after a key is not affected. Cause: _gather_comments attaches the pending comments to the block scalar token, whose _comment[1] already holds the header comment, and add_pre_comments asserts it's empty. Workaround: move one of the two comments, or load with typ='safe' if you don't need comment preservation.