Closed chrisjsewell closed 9 months ago
Attention: 46 lines
in your changes are missing coverage. Please review.
Comparison is base (
1f61fa0
) 90.26% compared to head (86dc085
) 90.08%.
Files | Patch % | Lines |
---|---|---|
myst_parser/parsers/options.py | 89.57% | 39 Missing :warning: |
myst_parser/parsers/directives.py | 88.67% | 6 Missing :warning: |
myst_parser/mocking.py | 0.00% | 1 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Previously, directive options blocks have been parsed using a "full" YAML parser. This is unnecessary, and problematic since only a mapping of string key to string value is required, not any of the other YAML constructs; sequences, flow style, anchors, aliases, tags, ..., It required addition handling of non-string values (failing or converting back to strings), and could also cause confusion when values were not parsed as strings (see e.g. #712).
This commit, introduces a new "restricted" YAML parser (adapted from pyyaml), which will maintain back-compatibilty with existing options blocks, but will only parse mappings of string keys to string values (including multi-line strings and comment parsing). Parsing errors are also improved, by reporting the exact line on which the error occured.
closes #382