summaryrefslogtreecommitdiff
path: root/prettyml
blob: e15b3b2239c8d7dab3a0025d65278e38ddc343de (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
#!/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)