comparison configmix/yaml.py @ 21:ce290b10dac5

Better Py2/Py3 compatibility: mark some strings explicitly as Unicode
author Franz Glasner <f.glasner@feldmann-mg.com>
date Thu, 10 Mar 2016 13:28:09 +0100
parents dc058099a4cb
children aa8345dae995
comparison
equal deleted inserted replaced
20:9bdc4e421415 21:ce290b10dac5
13 from ordereddict import OrderedDict 13 from ordereddict import OrderedDict
14 except ImportError: 14 except ImportError:
15 OrderedDict = None 15 OrderedDict = None
16 import yaml 16 import yaml
17 import yaml.constructor 17 import yaml.constructor
18
19 from .compat import u
18 20
19 21
20 __all__ = ["safe_load", "safe_load_all", "load", "load_all"] 22 __all__ = ["safe_load", "safe_load_all", "load", "load_all"]
21 23
22 24
69 mapping[key] = value 71 mapping[key] = value
70 return mapping 72 return mapping
71 73
72 74
73 ConfigLoader.add_constructor( 75 ConfigLoader.add_constructor(
74 "tag:yaml.org,2002:str", 76 u("tag:yaml.org,2002:str"),
75 ConfigLoader.construct_yaml_str) 77 ConfigLoader.construct_yaml_str)
76 if OrderedDict: 78 if OrderedDict:
77 ConfigLoader.add_constructor( 79 ConfigLoader.add_constructor(
78 "tag:yaml.org,2002:map", 80 u("tag:yaml.org,2002:map"),
79 ConfigLoader.construct_yaml_map) 81 ConfigLoader.construct_yaml_map)
80 ConfigLoader.add_constructor( 82 ConfigLoader.add_constructor(
81 "tag:yaml.org,2002:omap", 83 u("tag:yaml.org,2002:omap"),
82 ConfigLoader.construct_yaml_map) 84 ConfigLoader.construct_yaml_map)
83 85
84 86
85 class ConfigSafeLoader(yaml.SafeLoader): 87 class ConfigSafeLoader(yaml.SafeLoader):
86 88
131 mapping[key] = value 133 mapping[key] = value
132 return mapping 134 return mapping
133 135
134 136
135 ConfigSafeLoader.add_constructor( 137 ConfigSafeLoader.add_constructor(
136 "tag:yaml.org,2002:str", 138 u("tag:yaml.org,2002:str"),
137 ConfigSafeLoader.construct_yaml_str) 139 ConfigSafeLoader.construct_yaml_str)
138 if OrderedDict: 140 if OrderedDict:
139 ConfigSafeLoader.add_constructor( 141 ConfigSafeLoader.add_constructor(
140 "tag:yaml.org,2002:map", 142 u("tag:yaml.org,2002:map"),
141 ConfigSafeLoader.construct_yaml_map) 143 ConfigSafeLoader.construct_yaml_map)
142 ConfigSafeLoader.add_constructor( 144 ConfigSafeLoader.add_constructor(
143 "tag:yaml.org,2002:omap", 145 u("tag:yaml.org,2002:omap"),
144 ConfigSafeLoader.construct_yaml_map) 146 ConfigSafeLoader.construct_yaml_map)
145 147
146 148
147 def load(stream, Loader=ConfigLoader): 149 def load(stream, Loader=ConfigLoader):
148 return yaml.load(stream, Loader) 150 return yaml.load(stream, Loader)