go back to unordered dict parsing for simplicity
ordering is guaranteed by lists
This commit is contained in:
parent
806564e2e8
commit
e784ff88e0
15
update.py
15
update.py
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user