go back to unordered dict parsing for simplicity

ordering is guaranteed by lists
This commit is contained in:
Radovan Bast 2016-04-18 11:57:13 +02:00
parent 806564e2e8
commit e784ff88e0

View File

@ -65,7 +65,6 @@ def interpolate(d, d_map):
def test_interpolate(): def test_interpolate():
from collections import OrderedDict
d = {'foo': 'hey', d = {'foo': 'hey',
'bar': 'ho', 'bar': 'ho',
'one': 'hey %(foo) ho %(bar)', 'one': 'hey %(foo) ho %(bar)',
@ -102,22 +101,10 @@ def fetch_url(src, dst):
def parse_yaml(file_name): def parse_yaml(file_name):
import yaml import yaml
from collections import OrderedDict
def ordered_load(stream, Loader=yaml.Loader, object_pairs_hook=OrderedDict):
class OrderedLoader(Loader):
pass
def construct_mapping(loader, node):
loader.flatten_mapping(node)
return object_pairs_hook(loader.construct_pairs(node))
OrderedLoader.add_constructor(
yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
construct_mapping)
return yaml.load(stream, OrderedLoader)
with open(file_name, 'r') as stream: with open(file_name, 'r') as stream:
try: try:
config = ordered_load(stream, yaml.SafeLoader) config = yaml.load(stream, yaml.SafeLoader)
except yaml.YAMLError as exc: except yaml.YAMLError as exc:
print(exc) print(exc)
sys.exit(-1) sys.exit(-1)