1 from collections
import OrderedDict
9 yaml
.Dumper
.ignore_aliases
= lambda self
, data
: True
12 def set_representer(dumper
, data
):
13 return dumper
.represent_list(sorted(list(data
), key
=utils
.natural_sort_key
))
16 yaml
.add_representer(set, set_representer
)
19 yaml
.add_representer(tuple, lambda dumper
, data
: dumper
.represent_list(data
))
22 # Workaround pyyaml idiocy of forcibly sort dicts by key
23 class DictRenderWrapper
:
25 def __init__(self
, d
):
29 return iter(self
.d
.items())
32 def dict_representer(dumper
, data
):
33 ordered
= OrderedDict()
35 ordered
["label"] = data
["label"]
36 ordered
.update(sorted(data
.items()))
38 #return dumper.represent_dict(DictRenderWrapper(ordered))
40 if len(str(data
)) > 50:
42 return dumper
.represent_mapping('tag:yaml.org,2002:map', DictRenderWrapper(ordered
), flow_style
)
45 yaml
.add_representer(dict, dict_representer
)
47 yaml
.add_representer(core
.REG
, lambda dumper
, data
: dumper
.represent_str(data
.name
))
48 yaml
.add_representer(core
.ADDR
, lambda dumper
, data
: dumper
.represent_str(data
.addr
))
49 yaml
.add_representer(core
.MEM
, lambda dumper
, data
: dumper
.represent_str(str(data
)))