import os
try:
from yaml import CSafeLoader as SafeLoader
except ImportError:
from yaml import SafeLoader
class UnicodeLoader(SafeLoader): def construct_yaml_str(self, node):
return self.construct_scalar(node)
UnicodeLoader.add_constructor("tag:yaml.org,2002:str", UnicodeLoader.construct_yaml_str)
def load_stream(stream):
loader = UnicodeLoader(stream)
try:
return loader.get_single_data()
finally:
loader.dispose()
def load_yaml(*parts):
filename = os.path.join(*parts)
with open(filename, "rb") as f:
return load_stream(f)