Open
Description
My use case:
- I want to use the awesome jsonpatch on yaml files
- I wish to preserve yaml comments
This is actually very easy to do with minimal code using ruamel (which preserves comments, unlike pyyaml):
import sys
from ruamel.yaml import YAML
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
yaml = YAML()
obj = yaml.load(inp)
patch = JsonPatch([
{'op': 'add', 'path': '/foo', 'value': {'bar': 'baz'}},
{'op': 'remove', 'path': '/name/family'}
])
obj = patch.apply(obj)
yaml.dump(obj, sys.stdout)
yields:
# example
name:
# details
given: Alice # one of the siblings
foo:
bar: baz
which is nice
I would like to put a convenient (if trivial) interface on top of this. I could
- Make a new pypi module python-yaml-patch that has this trivial wrapping code, plus CLI bindings
- Make a PR on this repo
I suspect (1) would be preferred but thought I would check first. Feel free to close this issue, and I will go ahead with (1), and post a link here when done.
Aside:
I note there is a lib https://github.com/krishicks/yaml-patch from @krishicks but this seems abandoned, and also duplicative. If I go ahead with (1) I wouldn't duplicate any code, just wrap as in the example above
There is also https://github.com/campos-ddc/yaml-patch from @campos-ddc which looks great, but this isn't intended to support the json-patch standard
Metadata
Metadata
Assignees
Labels
No labels