summaryrefslogtreecommitdiff
path: root/prettyml
blob: d6932be6fd7d05f67cf29da8769274c1c254f12b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3

import sys

import yaml


def inputs(args):
    if args:
        for filename in args:
            with open(filename) as f:
                yield filename, f
    else:
        yield "-", sys.stdin


def string_representer(dumper, data):
    style = None
    if "\n" in data:
        style = "|"
    return dumper.represent_scalar("tag:yaml.org,2002:str", data, style=style)


yaml.add_representer(str, string_representer, Dumper=yaml.SafeDumper)


objs = []
for filename, f in inputs(sys.argv[1:]):
    objs.append(yaml.load(f, Loader=yaml.CSafeLoader))
yaml.safe_dump_all(objs, stream=sys.stdout, indent=4, default_flow_style=False)