Skip to content

Fix yaml.emit for percent-escaped tag prefixes#930

Open
ShipItAndPray wants to merge 1 commit intoyaml:mainfrom
ShipItAndPray:fix-issue-862-emit-tag-prefix
Open

Fix yaml.emit for percent-escaped tag prefixes#930
ShipItAndPray wants to merge 1 commit intoyaml:mainfrom
ShipItAndPray:fix-issue-862-emit-tag-prefix

Conversation

@ShipItAndPray
Copy link
Copy Markdown

Fixes #862.

Summary

  • stop calling ord() on bytes iteration results in Emitter.prepare_tag_prefix()
  • add a regression test for emitting a %TAG directive parsed from bytes with a percent-escaped prefix

Repro

PYTHONPATH=lib python3 - <<'PY'
import io
import yaml

text = io.BytesIO(b"%TAG ! tag:%002:\n---")
events = list(yaml.parse(text))
print(yaml.emit(events))
PY

Validation

  • PYTHONPATH=lib python3 -m pytest tests/test_emit.py -q
  • PYTHONPATH=lib python3 -m pytest tests/test_dump_load.py tests/test_emit.py -q
  • PYTHONPATH=lib PYYAML_FORCE_LIBYAML=0 python3 -m pytest tests/legacy_tests/test_yaml.py -q -k emitter

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TypeError raised from ord() call in yaml.emit

2 participants